]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/58453 (Revision 202431 results in miscompare for CPU2006...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
9fed7f3a
RB
12013-09-20 Richard Biener <rguenther@suse.de>
2
3 PR tree-optimization/58453
4 * tree-loop-distribution.c (distribute_loop): Apply the cost
5 model for -ftree-loop-distribute-patterns, too.
6
a820c834
RB
72013-09-20 Richard Biener <rguenther@suse.de>
8
9 PR middle-end/58473
10 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
11 make type comparison less strict.
12
3cbe17f7
AM
132013-09-20 Alan Modra <amodra@gmail.com>
14
15 * configure: Regenerate.
16 * aclocal.m4: Regenerate.
17
87fccdbb
MP
182013-09-20 Marek Polacek <polacek@redhat.com>
19
20 PR other/58467
21 * doc/extend.texi: Document that attribute used is meant to be used
22 on variables with static storage duration.
23
8928eff3
JJ
242013-09-19 Jakub Jelinek <jakub@redhat.com>
25
26 PR tree-optimization/58472
27 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
28 simd_lane_access set inv_p = false.
29 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
30 the simduid magic VAR_DECL.
31
b7b28c53
JH
322013-09-19 Jan Hubicka <jh@suse.cz>
33
34 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
35
83ae86f5
JL
362013-09-17 Jeff Law <law@redhat.com>
37
38 * tree-ssa-dom.c (record_temporary_equivalences): New function
39 split out of dom_opt_dom_walker::after_dom_children.
40 (dom_opt_dom_walker::thread_across_edge): Move common code
41 in here from dom_opt_dom_walker::after_dom_children.
42 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
43
9d532162
JH
442013-09-19 Jan Hubicka <jh@suse.cz>
45
46 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
47 (TARGET_GENERIC): Use PROCESOR_GENERIC
48 (enum processor_type): Unify generic32 and 64.
49 * i386.md (cpu): Likewise.
50 * x86-tune.def (use_leave): Enable for generic32.
51 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
52 * athlon.md: Change generic64 to generic in all occurences.
53 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
54 (ix86_target_macros_internal): Likewise.
55 * driver-i386.c (host_detect_local_cpu): Likewise.
56 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename to ..
57 (generic_memcpy, generic_memset, generic_cost): This one.
58 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
59 (m_GENERIC32, m_GENERIC64): Remove.
60 (m_GENERIC): Turn into one flag.
61 (processor_target): Unify generic tunnings.
62 (ix86_option_override_internal): Replace generic32/64 by generic.
63 (ix86_issue_rate): Likewise.
64 (ix86_adjust_cost): Likewise.
65
188c7d00
JH
662013-09-19 Jan Hubicka <jh@suse.cz>
67
68 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
69 of speculative flag.
70
4befd127
JJ
712013-09-19 Jakub Jelinek <jakub@redhat.com>
72
73 * omp-low.c (expand_omp_sections): Always pass len - 1 to
74 GOMP_sections_start, even if !exit_reachable.
75
8a26ad39
VM
762013-09-18 Vladimir Makarov <vmakarov@redhat.com>
77
78 * lra-constraints.c (need_for_all_save_p): Use macro
79 HARD_REGNO_CALL_PART_CLOBBERED.
80 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
81 set up pseudo conflict hard regs.
82
09487185
MM
832013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
84
85 PR target/58452
86 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
87 operands.
88
080cbf9e
VM
892013-09-18 Vladimir Makarov <vmakarov@redhat.com>
90
91 PR rtl-optimization/58438
92 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
93 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
94 from previous subpasses.
95
a0f70fcb
RE
962013-09-18 Richard Earnshaw <rearnsha@arm.com>
97
98 * arm.c (arm_get_frame_offsets): Validate architecture supports
99 LDRD/STRD before accepting the tuning preference.
100 (arm_expand_prologue): Likewise.
101 (arm_expand_epilogue): Likewise.
102
0547c9b6
RB
1032013-09-18 Richard Biener <rguenther@suse.de>
104
105 PR tree-optimization/58417
106 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
107 have chrecs with symbols defined in the loop as operands.
108 (chrec_fold_multiply): Likewise.
109 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
110 parameters before folding binary operations.
111 (struct instantiate_cache_entry_hasher): Remove.
112 (struct instantiate_cache_type): Use a pointer-map.
113 (instantiate_cache_type::instantiate_cache_type): New function.
114 (instantiate_cache_type::get): Likewise.
115 (instantiate_cache_type::set): Likewise.
116 (instantiate_cache_type::~instantiate_cache_type): Adjust.
117 (get_instantiated_value_entry): Likewise.
118 (global_cache): New global.
119 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
120 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
121 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
122 (instantiate_scev_name): Adjust.
123 (instantiate_scev): Construct global instead of local cache.
124 (resolve_mixers): Likewise.
125
309dc1aa
DM
1262013-09-18 Daniel Morris <danielm@ecoscentric.com>
127 Paolo Carlini <paolo.carlini@oracle.com>
128
129 PR c++/58458
130 * doc/implement-cxx.texi: Fix references to the C++ standards.
131
995a1b4a
JJ
1322013-09-18 Jakub Jelinek <jakub@redhat.com>
133
134 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
135 * tree-vect-data-refs.c (vect_analyze_data_refs): For
136 simd_lane_access drs, update also DR_ALIGNED_TO.
137
ce6923c5
MP
1382013-09-18 Marek Polacek <polacek@redhat.com>
139
140 PR sanitizer/58411
141 * doc/extend.texi: Document no_sanitize_undefined attribute.
142 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
143 no_sanitize_undefined attribute.
144
d30d00a2
NC
1452013-09-18 Nick Clifton <nickc@redhat.com>
146
147 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
148 (ASM_DECLARE_FUNCTION_NAME): Define.
149
4d9192b5
TS
1502013-09-17 Trevor Saunders <tsaunders@mozilla.com>
151
152 * compare-elim.c (find_comparison_dom_walker): New class
153 (find_comparisons_in_bb): Rename to
154 find_comparison_dom_walker::before_dom_children
155 (find_comparisons): Adjust
156 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
157 adjust.
158 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
159 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
160 (init_walk_dominator_tree): Remove declaration.
161 (fini_walk_dominator_tree): Remove declaration.
162 * fwprop.c (single_def_use_dom_walker): New class
163 (single_def_use_enter_block): Convert to
164 single_def_use_dom_walker::before_dom_children.
165 (single_def_use_leave_block): Convert to
166 single_def_use_dom_walker::after_dom_children.
167 (build_single_def_use_links): Adjust.
168 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
169 class.
170 (find_candidates_in_block): Convert to
171 find_candidates_dom_walker::before_dom_children.
172 (execute_strength_reduction): Adjust.
173 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
174 (sese_dom_walker): New class.
175 (sese_dom_walker::sese_dom_walker): New constructor.
176 (sese_dom_walker::~sese_dom_walker): New destructor.
177 (build_sese_conditions_before): Convert to
178 sese_dom_walker::before_dom_children.
179 (build_sese_conditions_after): Convert to
180 sese_dom_walker::after_dom_children.
181 (build_poly_scop): Adjust
182 * tree-into-ssa.c (rewrite_dom_walker): New class
183 (rewrite_enter_block): Convert to
184 rewrite_dom_walker::before_dom_children.
185 (rewrite_leave_block): Convert to
186 rewrite_dom_walker::after_dom_children.
187 (rewrite_update_dom_walker): New class.
188 (rewrite_update_enter_block): Convert to
189 rewrite_update_dom_walker::before_dom_children.
190 (rewrite_update_leave_block): Convert to
191 rewrite_update_dom_walker::after_dom_children.
192 (rewrite_blocks, rewrite_into_ssa): Adjust.
193 (mark_def_dom_walker): New class.
194 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
195 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
196 (mark_def_sites_blocks): Convert to
197 mark_def_dom_walker::before_dom_children.
198 (mark_def_site_blocks): Remove.
199 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
200 (tree_ssa_dominator_optimize): Adjust.
201 (dom_thread_across_edge): Convert to method
202 dom_opt_dom_walker::thread_across_edge.
203 (dom_opt_enter_block): Convert to member function
204 dom_opt_dom_walker::before_dom_children.
205 (dom_opt_leave_block): Convert to member function
206 dom_opt_dom_walker::after_dom_children.
207 * tree-ssa-dse.c (dse_dom_walker): New class.
208 (dse_enter_block): Convert to member function
209 dse_dom_walker::before_dom_children.
210 (tree_ssa_dse): Adjust.
211 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
212 (determine_invariantness_stmt): Convert to method
213 invariantness_dom_walker::before_dom_children.
214 (determine_invariantness): Remove
215 (move_computations_dom_walker): New class.
216 (move_computations_stmt): Convert to method
217 move_computations_dom_walker::before_dom_children.
218 (move_computations, tree_ssa_lim): Adjust.
219 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
220 (nt_init_block): Make method
221 notrappping_dom_walker::before_dom_children.
222 (nt_fini_block): Make
223 method nontrapping_dom_walker::after_dom_children.
224 (get_non_trapping): Adjust.
225 * tree-ssa-pre.c (eliminate_dom_walker): New class.
226 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
227 (eliminate_leave_block): Make method.
228 eliminate_dom_walker::after_dom_children.
229 (eliminate): Adjust
230 * tree-ssa-strlen.c (strlen_dom_walker): New class.
231 (strlen_enter_block): Make method
232 strlen_dom_walker::before_dom_children.
233 (strlen_leave_block): Make
234 method strlen_dom_walker::after_dom_children.
235 (tree_ssa_strlen): Adjust.
236 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
237 (tree_ssa_uncprop): Adjust.
238 (uncprop_leave_block): Make method
239 uncprop_dom_walker::after_dom_children.
240 (uncprop_leave_block): Make method
241 uncprop_dom_walker::before_dom_children.
242
3b3cc26b
BC
2432013-09-18 Bin Cheng <bin.cheng@arm.com>
244
245 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn
246 before branch in same basic block. Check both src and dest of
247 the move insn.
248
b5ba3a9b
NC
2492013-09-17 Nick Clifton <nickc@redhat.com>
250
251 * config/rl78/rl78-real.md (bf): New pattern.
252 (bt): New pattern.
253 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
254 (rl78_print_operand): Do not put a # before a %B.
255 * config/rl78/rl78.opt: Tweak doc strings.
256
09d5094b
DD
2572013-09-17 DJ Delorie <dj@redhat.com>
258
259 * config/rl78/constraints.md (Wcv): Allow up to $r31.
260 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
261 (rl78_option_override): Likewise, if -mallregs.
262 (is_virtual_register): Likewise.
263 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
264 (REGNO_OK_FOR_BASE_P): Likewise.
265 * config/rl78/rl78.opt (-mallregs): New.
266
2ba1dca1
NC
2672013-09-17 Nick Clifton <nickc@redhat.com>
268
269 * config/rl78/rl78.c (need_to_save): Change return type to bool.
270 For interrupt functions: save all call clobbered registers if the
271 interrupt handler is not a leaf function.
272 (rl78_expand_prologue): Always recompute the frame information.
273 For interrupt functions: only select bank 0 if one of the bank 0
274 registers is going to be psuhed.
275
2e7c3f21
DD
2762013-09-17 DJ Delorie <dj@redhat.com>
277
278 * config/rl78/constraints.md: For each W* constraint, rename to C*
279 and create a W* constraint that checks for an optional ES: prefix
280 pattern also.
281 * config/rl78/rl78.md (UNS_ES_ADDR): New.
282 (es_addr): New. Used to wrap far addresses.
283 * config/rl78/rl78-protos.h (rl78_es_addr): New.
284 (rl78_es_base): New.
285 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
286 wrapped far addresses.
287 (rl78_print_operand_1): Unwrap far addresses before processing.
288 (rl78_lo16): Wrap far addresses in unspecs.
289 (rl78_es_addr): New.
290 (rl78_es_base): New.
291 (insn_ok_now): Check for not-yet-wrapped far addresses.
292 (transcode_memory_rtx): Properly re-wrap far addresses.
293
5c26a69a
SH
2942013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
295
296 * config/sparc/t-rtems: Add leon3 multilibs.
297
181f5f3e
CH
2982013-09-17 Cong Hou <congh@google.com>
299
300 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
301 when checking the dot production pattern. The type of rhs operand
302 of multiply is now checked correctly.
303
8d34e421
JL
3042013-09-17 Jeff Law <law@redhat.com>
305
306 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
307 edge implied equivalences into successor phis.
308 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
309 here from tree-ssa-threadedge.c.
310 (mark_threaded_blocks): When threading through a joiner, if both
311 successors of the joiner's clone reach the same block, verify the
312 PHI arguments are equal. If not, cancel the jump threading request.
313 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
314 tree-ssa-threadupdate.c
315 (thread_across_edge): Don't check PHI argument equality when
316 threading through joiner block here.
317
c152901f
AM
3182013-09-17 Andrew MacLeod <amacleod@redhat.com>
319
320 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
321 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
322 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
323 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
324 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
325 (has_undefined_value_p): New. Pass dependant parts of
326 ssa_undefined_value_p.
327 (uninit_undefined_value_p): Use has_undefined_value_p.
328 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
329 make_pass_early_warn_uninitialized): Move from tree-ssa.c
330 * tree-ssa.h: Adjust prototypes
331
b631d45a
JH
3322013-09-17 Jan Hubicka <jh@suse.cz>
333
334 PR middle-end/58332
335 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
336 * ipa-inline.c (can_inline_edge_p): Do not downgrade
337 FUNCTION_NOT_OPTIMIZED.
338 * ipa-inline-analysis.c (compute_inline_parameters): Function
339 not optimized is not inlinable unless it is alwaysinline.
340 (inline_analyze_function): Force calls in not optimized
341 function not inlinable.
342
5b79657a
JH
3432013-09-17 Jan Hubicka <jh@suse.cz>
344
345 PR middle-end/58329
346 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
347 to return NULL.
348 * ipa.c (function_and_variable_visibility): Likewise.
349 * ipa-profile.c (ipa_profile): Likewise.
350
27442c24
BE
3512013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
352
353 PR ipa/58398
354 * cgraph.c (cgraph_function_body_availability): Check for ifunc
355 attribute, and don't inline the resolver in this case.
356
753b9bc3
TJ
3572013-09-17 Teresa Johnson <tejohnson@google.com>
358
359 * coverage.c (get_coverage_counts): Add missing newline.
360
e3d3cfb4
KT
3612013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
362
363 PR tree-optimization/58088
364 * fold-const.c (mask_with_trailing_zeros): New function.
365 (fold_binary_loc): Make sure we don't recurse infinitely
366 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
367 Use mask_with_trailing_zeros where appropriate.
368
9a0ac98f
YR
3692013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
370
371 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
372 of 'prev' var to get better distance estimation.
373
78bbd765
EB
3742013-09-17 Eric Botcazou <ebotcazou@adacore.com>
375
376 * tree-inline.h (struct copy_body_data): Add transform_parameter.
377 * tree-inline.c (is_parameter_of): New predicate.
378 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
379 a parameter has been remapped.
380 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
381 (optimize_inline_calls): Initialize transform_parameter.
382 (copy_gimple_seq_and_replace_locals): Likewise.
383 (tree_function_versioning): Likewise.
384 (maybe_inline_call_in_expr): Likewise.
385
cad055a4
NC
3862013-09-17 Nick Clifton <nickc@redhat.com>
387
388 * config/msp430/msp430-protos.h: Add prototypes for new functions.
389 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
390 interrupt handlers.
391 (is_attr_func): New function.
392 (msp430_is_interrupt_func): New function.
393 (is_naked_func): New function.
394 (is_reentrant_func): New function.
395 (is_critical_func): New function.
396 (msp430_start_function): Add annotations for function attributes.
397 (msp430_attr): New function.
398 (msp430_attribute_table): New.
399 (msp430_function_section): New function.
400 (TARGET_ASM_FUNCTION_SECTION): Define.
401 (msp430_builtin): New enum.
402 (msp430_init_builtins): New function.
403 (msp430_builtin_devl): New function.
404 (msp430_expand_builtin): New function.
405 (TARGET_INIT_BUILTINS): Define.
406 (TARGET_EXPAND_BUILTINS): Define.
407 (TARGET_BUILTIN_DECL): Define.
408 (msp430_expand_prologue): Add support for naked, interrupt,
409 critical and reentrant functions.
410 (msp430_expand_epilogue): Likewise.
411 (msp430_print_operand): Handle 'O' character.
412 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
413 NO_TRAMPOLINES.
414 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
415 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
416 (pushm): Use a 'n' rather than an 'i' constraint.
417 (msp_return): Add generation of the interrupt return instruction.
418 (disable_interrupts): New pattern.
419 (enable_interrupts): New pattern.
420 (push_intr_state): New pattern.
421 (pop_intr_state): New pattern.
422 (bic_SR): New pattern.
423 (bis_SR): New pattern.
424 * doc/extend.texi: Document MSP430 function attributes and builtin
425 functions.
426
deb6c11a
RB
4272013-09-17 Richard Biener <rguenther@suse.de>
428
429 PR tree-optimization/58432
430 * tree-loop-distribution.c (tree_loop_distribution): Also
431 scan PHIs for outside loop uses and seed a partition from them.
432
c068654b
BC
4332013-09-17 Bin Cheng <bin.cheng@arm.com>
434
435 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
436 (restructure_reference): Call backtrace_base_for_ref.
437
567969e4
AM
4382013-09-17 Alan Modra <amodra@gmail.com>
439
440 PR target/57589
441 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
442
5c0029de
DD
4432013-09-16 DJ Delorie <dj@redhat.com>
444
445 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
446 vregs location for RL78/G10.
447 (rl78_expand_prologue): Avoid SEL on G10.
448 (rl78_expand_epilogue): Likewise.
449 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
450 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
451 __RL78_G10__ when appropriate.
452 (ASM_SPEC): Pass -mg10 along to the assembler.
453 * config/rl78/rl78.md (sel_rb): Disable for G10.
454 * config/rl78/rl78.opt: Add -mg10 option.
455 * config/rl78/t-rl78: Add -mg10 multilib.
456
ea0f3e87
XDL
4572013-09-16 Xinliang David Li <davidxl@google.com>
458
459 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
460 * omp-low.c (omp_max_vf): Ditto.
461 (expand_omp_simd): Ditto.
462 * tree-vectorizer.c (vectorize_loops): Ditto.
463 (gate_vect_slp): Ditto.
464 (gate_increase_alignment): Ditto.
465 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
466 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
467 (gate_tree_vectorize): Name change.
468 (tree_vectorize): Ditto.
469 (pass_vectorize::gate): Call new function.
470 (pass_vectorize::execute): Ditto.
471 opts.c: O3 default setting change.
472 (finish_options): Check new flag.
473 * doc/invoke.texi: Document new flags.
474 * common.opt: New flags.
475
4f3da2e5
AS
4762013-09-16 Andreas Schwab <schwab@linux-m68k.org>
477
478 * doc/tm.texi.in (Cond Exec Macros): Remove node.
479 (Condition Code): Don't reference it.
480 * doc/tm.texi: Regenerate.
481
aa940f7c
VM
4822013-09-16 Vladimir Makarov <vmakarov@redhat.com>
483
484 PR middle-end/58418
485 * lra-constraints.c (undo_optional_reloads): Consider all optional
486 reload even if it did not get a hard reg.
487
e645e942
TJ
4882013-09-16 Teresa Johnson <tejohnson@google.com>
489
490 * dumpfile.c (dump_loc): Remove newline emission.
491 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
492 emission to dump_printf_loc calls where missing.
493 (vect_mark_for_runtime_alias_test): Ditto.
494 (vect_analyze_data_ref_dependence): Ditto.
495 (vect_analyze_data_ref_dependences): Ditto.
496 (vect_slp_analyze_data_ref_dependence): Ditto.
497 (vect_slp_analyze_data_ref_dependences): Ditto.
498 (vect_compute_data_ref_alignment): Ditto.
499 (vect_update_misalignment_for_peel): Ditto.
500 (vect_verify_datarefs_alignment): Ditto.
501 (vector_alignment_reachable_p): Ditto.
502 (vect_get_data_access_cost): Ditto.
503 (vect_enhance_data_refs_alignment): Ditto.
504 (vect_find_same_alignment_drs): Ditto.
505 (vect_analyze_data_refs_alignment): Ditto.
506 (vect_analyze_group_access): Ditto.
507 (vect_analyze_data_ref_access): Ditto.
508 (vect_analyze_data_ref_accesses): Ditto.
509 (vect_prune_runtime_alias_test_list): Ditto.
510 (vect_analyze_data_refs): Ditto.
511 (vect_create_addr_base_for_vector_ref): Ditto.
512 (vect_create_data_ref_ptr): Ditto.
513 (vect_grouped_store_supported): Ditto.
514 (vect_grouped_load_supported): Ditto.
515 * value-prof.c (check_counter): Ditto.
516 (check_ic_target): Ditto.
517 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
518 (vect_recog_widen_mult_pattern): Ditto.
519 (vect_recog_widen_sum_pattern): Ditto.
520 (vect_recog_over_widening_pattern): Ditto.
521 (vect_recog_widen_shift_pattern): Ditto.
522 (vect_recog_rotate_pattern): Ditto.
523 (vect_recog_vector_vector_shift_pattern): Ditto.
524 (vect_recog_divmod_pattern): Ditto.
525 (vect_recog_mixed_size_cond_pattern): Ditto.
526 (vect_recog_bool_pattern): Ditto.
527 (vect_pattern_recog_1): Ditto.
528 (vect_pattern_recog): Ditto.
529 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
530 (vect_is_simple_iv_evolution): Ditto.
531 (vect_analyze_scalar_cycles_1): Ditto.
532 (vect_get_loop_niters): Ditto.
533 (vect_analyze_loop_1): Ditto.
534 (vect_analyze_loop_form): Ditto.
535 (vect_analyze_loop_operations): Ditto.
536 (vect_analyze_loop_2): Ditto.
537 (vect_analyze_loop): Ditto.
538 (report_vect_op): Ditto.
539 (vect_is_slp_reduction): Ditto.
540 (vect_is_simple_reduction_1): Ditto.
541 (vect_get_known_peeling_cost): Ditto.
542 (vect_estimate_min_profitable_iters): Ditto.
543 (vect_model_reduction_cost): Ditto.
544 (vect_model_induction_cost): Ditto.
545 (get_initial_def_for_induction): Ditto.
546 (vect_create_epilog_for_reduction): Ditto.
547 (vectorizable_reduction): Ditto.
548 (vectorizable_induction): Ditto.
549 (vectorizable_live_operation): Ditto.
550 (vect_loop_kill_debug_uses): Ditto.
551 (vect_transform_loop): Ditto.
552 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
553 (vect_stmt_relevant_p): Ditto.
554 (process_use): Ditto.
555 (vect_mark_stmts_to_be_vectorized): Ditto.
556 (vect_model_simple_cost): Ditto.
557 (vect_model_promotion_demotion_cost): Ditto.
558 (vect_model_store_cost): Ditto.
559 (vect_get_store_cost): Ditto.
560 (vect_model_load_cost): Ditto.
561 (vect_get_load_cost): Ditto.
562 (vect_init_vector_1): Ditto.
563 (vect_get_vec_def_for_operand): Ditto.
564 (vect_finish_stmt_generation): Ditto.
565 (vectorizable_call): Ditto.
566 (vectorizable_conversion): Ditto.
567 (vectorizable_assignment): Ditto.
568 (vectorizable_shift): Ditto.
569 (vectorizable_operation): Ditto.
570 (vectorizable_store): Ditto.
571 (vectorizable_load): Ditto.
572 (vectorizable_condition): Ditto.
573 (vect_analyze_stmt): Ditto.
574 (vect_transform_stmt): Ditto.
575 (vect_is_simple_use): Ditto.
576 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
577 (vect_can_advance_ivs_p): Ditto.
578 (vect_update_ivs_after_vectorizer): Ditto.
579 (vect_do_peeling_for_loop_bound): Ditto.
580 (vect_gen_niters_for_prolog_loop): Ditto.
581 (vect_update_inits_of_drs): Ditto.
582 (vect_create_cond_for_alias_checks): Ditto.
583 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
584 (vect_build_slp_tree_1): Ditto.
585 (vect_supported_load_permutation_p): Ditto.
586 (vect_analyze_slp_instance): Ditto.
587 (vect_analyze_slp): Ditto.
588 (vect_make_slp_decision): Ditto.
589 (vect_detect_hybrid_slp): Ditto.
590 (vect_bb_vectorization_profitable_p): Ditto.
591 (vect_slp_analyze_bb_1): Ditto.
592 (vect_update_slp_costs_according_to_vf): Ditto.
593 (vect_get_mask_element): Ditto.
594 (vect_transform_slp_perm_load): Ditto.
595 (vect_schedule_slp_instance): Ditto.
596 (vect_schedule_slp): Ditto.
597 (vect_slp_transform_bb): Ditto.
598 * profile.c (read_profile_edge_counts): Ditto.
599 (compute_branch_probabilities): Ditto.
600 * coverage.c (get_coverage_counts): Ditto.
601
46f851f3
DN
6022013-09-16 Diego Novillo <dnovillo@google.com>
603
604 * tree-core.h: Add missing comment lines from refactoring
605 of tree.h.
606
1632a686
JH
6072013-09-16 Jan Hubicka <jh@suse.cz>
608
609 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
610 abstract functions; for static functions check the presence
611 of body.
612
828e70c1
JG
6132013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
614
615 * config/aarch64/aarch64-simd-builtins.def (fma): New.
616 * config/aarch64/aarch64-simd.md
617 (aarch64_mla_elt<mode>): New.
618 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
619 (aarch64_mls_elt<mode>): Likewise.
620 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
621 (aarch64_fma4_elt<mode>): Likewise.
622 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
623 (aarch64_fma4_elt_to_128v2df): Likewise.
624 (aarch64_fma4_elt_to_64df): Likewise.
625 (fnma<mode>4): Likewise.
626 (aarch64_fnma4_elt<mode>): Likewise.
627 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
628 (aarch64_fnma4_elt_to_128v2df): Likewise.
629 (aarch64_fnma4_elt_to_64df): Likewise.
630 * config/aarch64/iterators.md (VDQSF): New.
631 * config/aarch64/arm_neon.h
632 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
633 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
634
779aea46
JG
6352013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
636
637 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
638 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
639 (aarch64_mul3_elt_to_128df): Likewise.
640 (aarch64_mul3_elt_to_64v2df): Likewise.
641 * config/aarch64/iterators.md (VEL): Also handle DFmode.
642 (VMUL): New.
643 (VMUL_CHANGE_NLANES) Likewise.
644 (h_con): Likewise.
645 (f): Likewise.
646 * config/aarch64/arm_neon.h
647 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
648
a407a750
JG
6492013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
650
651 * config/aarch64/arm_neon.h
652 (vcvtx_high_f32_f64): Fix parameters.
653
f77e2d2d 6542013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 655 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 656
a5bd71fa 657 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 658
36875e8f
RB
6592013-09-16 Richard Biener <rguenther@suse.de>
660
661 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
662 (dot_rdg_1): Handle control_dd.
663 (create_edge_for_control_dependence): New function.
664 (create_rdg_edges): Add control dependences if asked for.
665 (build_rdg): Likewise.
666 (generate_loops_for_partition): If there are not necessary
667 control stmts remove all their dependencies.
668 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
669 (distribute_loop): Pass on control dependences.
670 (tree_loop_distribution): Compute control dependences and remove
671 restriction on number of loop nodes.
672
96e24d49
JJ
6732013-09-16 Jakub Jelinek <jakub@redhat.com>
674
675 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
676 for internal calls.
677
40dbb05c
RS
6782013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
679
680 * cse.c (try_const_anchors): Punt on CC modes.
681
97191ad0
JBG
6822013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
683
684 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
685
403a3fb7
JDA
6862013-09-14 John David Anglin <danglin@gcc.gnu.org>
687
688 PR target/58382
689 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
690 calls to word_mode.
691
fb5610fb
IS
6922013-09-14 Iain Sandoe <iain@codesourcery.com>
693
694 PR target/48094
695 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
696 seen.
697 (darwin_objc1_section): Likewise.
fb5610fb
IS
698 (darwin_file_end): Emit Image Info section when required.
699
afdec9bd
JH
7002013-09-14 Jan Hubicka <jh@suse.cz>
701
702 * tree-into-ssa.c (gate_into_ssa): New.
703 (pass_data_build_ssa): Use it.
704 * cgraph.h (expand_thunk): Update prototype.
705 * cgraphunit.c (analyze_function): Expand thunks early.
706 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
707 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
708 set lowered flag; do not add new function.
709 (assemble_thunks_and_aliases): Update.
710 * tree-ssa.c (gate_init_datastructures): New gate.
711 (pass_data_init_datastructures): Use it.
712
492d1e0a
IS
7132013-09-14 Iain Sandoe <iain@codesourcery.com>
714
715 PR target/58269
f77e2d2d 716 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
717 xmm register set described in the psABI.
718
d13c6b70
EG
7192013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
720
f77e2d2d
JBG
721 * dwarf2out.c (should_emit_struct_debug): Add check
722 for type_decl variable is not NULL.
d13c6b70 723
88b0e79e
JC
7242013-09-13 Jacek Caban <jacek@codeweavers.com>
725
726 * config.gcc: Use new winnt-c.c target hooks
727 * config/t-winnt: New file
728 * config/winnt-c.c: New file
729 * doc/tm.texi.in: Document new hook
730 * doc/tm.texi: Regenerated
731
19ba6aab
JH
7322013-09-13 Jan Hubicka <jh@suse.cz>
733
734 PR middle-end/58094
735 * ipa-inline.c (check_callers): New function.
736 (check_caller_edge): Remove.
737 (want_inline_function_to_all_callers_p): Also permit alises that are
738 called dirrectly.
739 (inline_to_all_callers): Terminate the walk when devirtualization
740 introduce new calls.
741
a93c18c8
JH
7422013-09-13 Jan Hubicka <jh@suse.cz>
743
744 * ipa-inline-analysis.c (struct growth_data): Add node.
745 (do_estimate_growth_1): Fix detection of recursion.
746
f3b331d1
JJ
7472013-09-13 Jakub Jelinek <jakub@redhat.com>
748
749 PR tree-optimization/58392
750 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
751 to avoid shadowing of outer loop variable. If
752 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
753 replace_by_duplicate_decl simduid of loops that have it set and
754 set dest_cfun->has_simduid_loops and/or
755 dest_cfun->has_force_vect_loops.
756 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
757 instead of maybe_lookup_decl.
758 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
759 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
760 call. Copy over force_vect and copy and remap simduid. Set
761 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
762 (copy_cfg_body): Remove blocks_to_copy argument. Use
763 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
764 caller. Don't set cfun->has_simduid_loops and/or
765 cfun->has_force_vect_loops here.
766 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
767 caller.
768 (expand_call_inline, tree_function_versioning): Adjust copy_body
769 callers.
770
ae6d0907
MJ
7712013-09-13 Martin Jambor <mjambor@suse.cz>
772
773 PR bootstrap/58388
774 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
775 the assert if the edge was a speculative one.
776
2fd5894f
RB
7772013-09-13 Richard Biener <rguenther@suse.de>
778
779 * tree-data-ref.h (known_dependences_p): Move here ...
780 * tree-loop-distribution.c (known_dependences_p): ... from here.
781 (dump_rdg_component, debug_rdg_component): Remove.
782 (dump_rdg): Adjust.
783 (generate_loops_for_partition): Use gimple_uid instead of
784 relying on matching stmt visit order.
785 (rdg_build_partitions): Take starting stmt vector.
786 (ldist_gen): Merge into ...
787 (distribute_loop): ... this function. Do not compute starting
788 vertices vector.
789 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
790
86eb4bd7
KT
7912013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
792
793 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
794 Set type attribute correctly. Set predicable_short_it attribute.
795 (cmpsi_shiftsi): Remove %? from output template.
796
83a95546
RB
7972013-09-13 Richard Biener <rguenther@suse.de>
798
799 * tree-loop-distribution.c (struct rdg_component,
800 rdg_defs_used_in_other_loops_p, free_rdg_components,
801 rdg_build_components): Remove.
802 (stmts_from_loop): Do not record virtual PHIs.
803 (generate_loops_for_partition): Skip virtual PHIs.
804 (build_rdg_partition_for_component): Rename to ...
805 (build_rdg_partition_for_vertex): ... this and adjust.
806 (rdg_build_partitions): Take a vector of starting vertices
807 instead of components. Remove unnecessary leftover handling.
808 (ldist_gen): Do not build components or record other stores.
809 (distribute_loop): Do not distribute loops containing stmts
810 with side-effects.
811
c0ecf7f1
CB
8122013-09-13 Christian Bruel <christian.bruel@st.com>
813
814 PR target/58314
815 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
816
34f56efc
KT
8172013-09-13 Kai Tietz <ktietz@redhat.com>
818
740f2bf3
KT
819 * config.gcc: Separate cases for mingw and cygwin targets,
820 and add 64-bit cygwin target case.
821
34f56efc
KT
822 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
823 dll-export inline-functions.
824 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
825
826
8272013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
828
829 PR middle-end/58387
830 Revert:
831 2013-09-06 Jeff Law <law@redhat.com>
832
833 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
834 edge implied equivalences into successor phis.
835
aadb52ad
DD
8362013-09-12 DJ Delorie <dj@redhat.com>
837
838 * config/rl78/rl78-virt.md: Change from | to \; for asm line
839 separators.
840
90ae7019
BM
8412013-09-12 Brooks Moses <bmoses@google.com>
842
843 PR driver/42955
844 * Makefile.in: Do not install driver binaries in $(target)/bin.
845
17b2557c
DD
8462013-09-12 DJ Delorie <dj@redhat.com>
847
c5215a9b
DD
848 * config/rl78/rl78.opt (mrelax): New.
849 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
850 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
851
17b2557c
DD
852 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
853 between SP and FP.
854 (rl78_expand_epilogue): Likewise.
855
ecafcf05
VM
8562013-09-12 Vladimir Makarov <vmakarov@redhat.com>
857
858 PR middle-end/58335
84f6d9fa 859 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
860 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
861 pointer elimination with using remove_reg_equal_offset_note.
862
8369f38a
DD
8632013-09-12 DJ Delorie <dj@redhat.com>
864
f6a83b4a
DD
865 * config/msp430/: New port.
866 * config.gcc (msp430): Added.
867 * doc/invoke.texi: Document MSP430 options.
868 * doc/install.texi: Document msp430-elf
869 * doc/md.texi: Document msp430-elf
870 * doc/contrib.texi: Document msp430-elf
871
8369f38a
DD
872 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
873 PSImode.
874
a854f856
MJ
8752013-09-12 Martin Jambor <mjambor@suse.cz>
876
877 PR ipa/58389
878 * ipa-prop.c (remove_described_reference): Give up if the edge in the
879 reference descriptor is NULL.
880 (ipa_edge_removal_hook): If owning a reference descriptor, set its
881 edge to NULL.
882
b12ebd96
AM
8832013-09-12 Andrew MacLeod <amacleod@redhat.com>
884
885 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
886 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
887 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
888 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
889 make_temp_ssa_name): move to tree-ssanames.h
890 * tree-ssa-alias.h: Move prototype.
891 * tree-ssa.h: Include tree-ssanames.h.
892 * tree-ssanames.c (FREE_SSANAMES): Move to here.
893 * tree-ssanames.h: New. Move items from tree-flow*.h
894 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
895
e1fb4ad3
RB
8962013-09-12 Richard Biener <rguenther@suse.de>
897
898 PR tree-optimization/58404
899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
900 propagate non-invariant addresses into dereferences wrapped
901 in component references.
902
154c9188
RB
9032013-09-12 Richard Biener <rguenther@suse.de>
904
905 PR tree-optimization/58402
906 * passes.def: Move pass_late_warn_uninitialized later.
907
7a300452
AM
9082013-09-12 Andrew MacLeod <amacleod@redhat.com>
909
910 * tree-ssa.h: New. Move content from tree-flow.h and
911 tree-flow-inline.h.
912 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
913 Move prototypes belonging to tree-ssa.c.
f77e2d2d 914 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
915 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
916 tree-ssa.h.
917 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
918 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
919 to...
920 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
921 * tree.h: Move prototype to tree-ssa.h.
922 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
923 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
924 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
925 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
926 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
927 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
928 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
929 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
930 graphite-blocking.c, graphite-clast-to-gimple.c,
931 graphite-dependences.c, graphite-interchange.c,
932 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
933 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
934 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
935 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
936 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
937 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
938 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
939 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
940 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
941 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
942 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
943 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
944 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
945 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
946 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
947 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
948 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
949 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
950 value-prof.c, var-tracking.c,
951 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
952
97463b2b
RB
9532013-09-12 Richard Biener <rguenther@suse.de>
954
955 PR tree-optimization/58396
956 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
957 (build_rdg): Take a loop-nest parameter, fix memleaks.
958 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
959
80ecd89d
YR
9602013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
961
962 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
963 for SLM.
964
893e85fa
CM
9652013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
966
967 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
968 The FMA instruction names should have a 'v' prefix.
969
174ec470
RB
9702013-09-12 Richard Biener <rguenther@suse.de>
971
972 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
973 (dot_rdg): Use popen instead of system in optional code.
974 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
975 (already_processed_vertex_p): Adjust.
976 (has_anti_or_output_dependence, predecessor_has_mem_write,
977 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
978 rdg_flag_uses): Remove.
979 (rdg_flag_vertex): Simplify.
980 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
981 remove recursion.
982 (build_rdg_partition_for_component): Process the first vertex
983 of a component only.
984 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
985
38c89763
AM
9862013-09-12 Alan Modra <amodra@gmail.com>
987
988 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
989
3e3d9d17
DD
9902013-09-11 DJ Delorie <dj@redhat.com>
991 Nick Clifton <nickc@redhat.com>
992
993 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
994 (rl78_stack_based_mem): New.
995 * config/rl78/constraints.md (Iv08): New.
996 (Iv16): New.
997 (Iv24): New.
998 (Is09): New.
999 (Is17): New.
1000 (Is25): New.
1001 (ISsi): New.
1002 (IShi): New.
1003 (ISqi): New.
1004 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
1005 (movhi): Likewise.
1006 (movsi): Change from expand to insn-and-split.
1007 (ashrsi3): Clobber AX.
1008 (lshrsi3): New.
1009 (ashlsi3): New.
1010 (cbranchsi4): New.
1011 * config/rl78/rl78.md (CC_REG): Fix.
1012 (addsi3): Allow memory and immediate operands.
1013 (addsi3_internal): Split into...
1014 (addsi3_internal_virt): ...new, and ...
1015 (addsi3_internal_real): ...new.
1016 (subsi): New.
1017 (subsi3_internal_virt): New.
1018 (subsi3_internal_real): New.
1019 (mulsi3): Add memory operand.
1020 (mulsi3_rl78): Likewise.
1021 (mulsi3_g13): Likewise.
1022 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
1023 (cbranchqi4_real): Add more constraint options.
1024 (cbranchhi4_real): Expand pattern.
1025 (cbranchhi4_real_signed): New.
1026 (cbranchhi4_real_inverted): New.
1027 (cbranchsi4_real_lt): New.
1028 (cbranchsi4_real_ge): New.
1029 (cbranchsi4_real_signed): New.
1030 (cbranchsi4_real): New.
1031 (peephole2): New.
893e85fa
CM
1032 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
1033 constant shifts.
3e3d9d17
DD
1034 (lshrsi3_virt): Likewise.
1035 (ashlsi3_virt): Likewise.
1036 (cbranchqi4_virt_signed): New.
1037 (cbranchhi4_virt_signed): New.
1038 (cbranchsi4_virt): New.
1039 * config/rl78/rl78.c: Whitespace fixes throughout.
1040 (move_elim_pass): New.
1041 (pass_data_rl78_move_elim): New.
1042 (pass_rl78_move_elim): New.
1043 (make_pass_rl78_move_elim): New.
1044 (rl78_devirt_info): Run devirt earlier.
1045 (rl78_move_elim_info): New.
1046 (rl78_asm_file_start): Register it.
1047 (rl78_split_movsi): New.
1048 (rl78_as_legitimate_address): Allow virtual base registers when
1049 appropriate.
1050 (rl78_addr_space_convert): Remove spurious debug stuff.
1051 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
1052 (rl78_print_operand): More cases for not printing '#'.
1053 (rl78_expand_compare): Remove most of the logic.
1054 (content_memory): New.
1055 (clear_content_memory): New.
1056 (get_content_index): New.
1057 (get_content_name): New.
1058 (display_content_memory): New.
1059 (update_content): New.
1060 (record_content): New.
1061 (already_contains): New.
1062 (insn_ok_now): Re-recog insns with virtual registers.
1063 (add_postponed_content_update): New.
1064 (process_postponed_content_update): New.
1065 (gen_and_emit_move): New.
893e85fa
CM
1066 (transcode_memory_rtx): Record new location content.
1067 Use gen_and_emit_move.
3e3d9d17
DD
1068 (force_into_acc): New.
1069 (move_to_acc): Use gen_and_emit_move.
1070 (move_from_acc): Likewise.
1071 (move_acc_to_reg): Likewise.
1072 (move_to_x): Likewise.
1073 (move_to_hl): Likewise.
1074 (move_to_de): Likewise.
1075 (rl78_alloc_physical_registers_op1): Record location content.
1076 (has_constraint): New.
1077 (rl78_alloc_physical_registers_op2): Record location content.
1078 Optimize use of HL.
1079 (rl78_alloc_physical_registers_ro1): Likewise.
1080 (rl78_alloc_physical_registers_cmp): Likewise.
1081 (rl78_alloc_physical_registers_umul): Likewise.
1082 (rl78_alloc_address_registers_macax): New.
1083 (rl78_alloc_physical_registers): Initialize and set location
1084 content memory as needed.
1085 (rl78_reorg): Make sure split2 is called.
1086 (rl78_rtx_costs): New.
1087
088845a5
RS
10882013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
1089
1090 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
1091 for (not (neg ...)) and (neg (not ...)) cases.
1092
5c2961cf
RB
10932013-09-11 Richard Biener <rguenther@suse.de>
1094
1095 PR middle-end/58377
1096 * passes.def: Split critical edges before late uninit warning passes.
1097 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
1098
427e6a14
JJ
10992013-09-11 Jakub Jelinek <jakub@redhat.com>
1100
1101 PR tree-optimization/58385
1102 * fold-const.c (build_range_check): If both low and high are NULL,
1103 use omit_one_operand_loc to preserve exp side-effects.
1104
df45c0cc
KT
11052013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1106
1107 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
1108
80ab0b19
RB
11092013-09-11 Richard Biener <rguenther@suse.de>
1110
1111 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
1112 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
1113 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
1114 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1115 stmts_from_loop, known_dependences_p, build_empty_rdg,
1116 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
1117 * tree-loop-distribution.c: ... here.
1118 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
1119 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
1120 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
1121 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
1122 * tree-loop-distribution.c: ... here.
1123 * tree-loop-distribution.c: Include gimple-pretty-print.h.
1124 (struct partition_s): Add loops member.
1125 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
1126 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
1127 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
1128
85a77221
AI
11292013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1130 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1131 Sergey Lega <sergey.s.lega@intel.com>
1132 Anna Tikhonova <anna.tikhonova@intel.com>
1133 Ilya Tocar <ilya.tocar@intel.com>
1134 Andrey Turetskiy <andrey.turetskiy@intel.com>
1135 Ilya Verbin <ilya.verbin@intel.com>
1136 Kirill Yukhin <kirill.yukhin@intel.com>
1137 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1138
1139 * config/i386/constraints.md (k): New.
1140 (Yk): Ditto.
1141 * config/i386/i386.c (const regclass_map): Add new mask registers.
1142 (dbx_register_map): Ditto.
1143 (dbx64_register_map): Ditto.
1144 (svr4_dbx_register_map): Ditto.
1145 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
1146 disabled.
1147 (ix86_preferred_reload_class): Disable constants for mask registers.
1148 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
1149 (ix86_hard_regno_mode_ok): Support new mask registers.
1150 (x86_order_regs_for_local_alloc): Ditto.
1151 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
1152 (FIXED_REGISTERS): Add new mask registers.
1153 (CALL_USED_REGISTERS): Ditto.
1154 (REG_ALLOC_ORDER): Ditto.
1155 (VALID_MASK_REG_MODE): New.
1156 (FIRST_MASK_REG): Ditto.
1157 (LAST_MASK_REG): Ditto.
1158 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
1159 (MAYBE_MASK_CLASS_P): New.
1160 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
1161 (REG_CLASS_CONTENTS): Ditto.
1162 (MASK_REGNO_P): New.
1163 (ANY_MASK_REG_P): Ditto.
1164 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
1165 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
1166 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
1167 mask registers.
85a77221
AI
1168 (attribute "type"): Add mskmov, msklog.
1169 (attribute "length_immediate"): Support them.
1170 (attribute "memory"): Ditto.
1171 (attribute "prefix_0f"): Ditto.
1172 (*movhi_internal): Support new mask registers.
1173 (*movqi_internal): Ditto.
1174 (define_split): Split out clobber pattern is a logic
1175 insn on mask registers.
1176 (*k<logic><mode>): New.
1177 (*andhi_1): Extend to support mask regs.
1178 (*andqi_1): Extend to support mask regs.
1179 (kandn<mode>): New.
1180 (define_split): Split and-not to and and not if operands
1181 are not mask regs.
1182 (*<code><mode>_1): Separate HI mode to new pattern...
1183 (*<code>hi_1): This.
1184 (*<code>qi_1): Extend to support mask regs.
1185 (kxnor<mode>): New.
1186 (kortestzhi): Ditto.
1187 (kortestchi): Ditto.
1188 (kunpckhi): Ditto.
1189 (*one_cmpl<mode>2_1): Remove HImode and handle it...
1190 (*one_cmplhi2_1): ...Here, now with mask registers support.
1191 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
1192 (HI/QImode arithmetics splitter): Don't split if mask registers
1193 are used.
85a77221
AI
1194 (HI/QImode not splitter): Ditto.
1195 * config/i386/predicated.md (mask_reg_operand): New.
1196 (general_reg_operand): Ditto.
1197
7e570821
AI
11982013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1199
1200 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
1201 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
1202
9e1376e9
JL
12032013-09-10 Jeff Law <law@redhat.com>
1204
1205 PR tree-optimization/58380
1206 * tree-ssa-threadupdate.c (thread_block): Recognize another case
1207 of threading through a buried loop header.
1208
1209 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
1210 return value for single successor case.
1211
5bbcb888
JH
12122013-09-10 Jan Hubicka <jh@suse.cz>
1213
1214 * ipa-devirt.c (ipa_devirt): Enable with LTO.
1215
d742ff4b
RE
12162013-09-10 Richard Earnshaw <rearnsha@arm.com>
1217
1218 PR target/58361
1219 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
1220 support conditional execution.
1221 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
1222
b0681c9e
VM
12232013-09-10 Vladimir Makarov <vmakarov@redhat.com>
1224
1225 * lra.c (lra): Clear lra_optional_reload_pseudos before every
1226 constraint pass.
f77e2d2d
JBG
1227 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
1228 Check destination too to check move insn.
b0681c9e 1229 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
1230 changed its allocation and the optional reload was inherited on last
1231 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
1232 (lra_undo_inheritance): Add check that inherited pseudo still in
1233 memory.
1234
c9b1c957
JG
12352013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
1236
1237 * config/aarch64/aarch64.md (generic_sched): New.
1238 * config/aarch64/aarch64-generic.md (load): Make conditional
1239 on generic_sched attribute.
1240 (nonload): Likewise.
1241
82d618d3
JH
12422013-09-10 Jan Hubicka <jh@suse.cz>
1243
1244 * lto-cgraph.c: Include ipa-utils.h.
1245 (compute_ltrans_boundary): Also add possible targets into the boundary.
1246
668b6894
JH
12472013-09-10 Jan Hubicka <jh@suse.cz>
1248
1249 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
1250 VAR_DECL of vtable rather than full expression.
1251
4f90d3e0
JH
12522013-09-10 Jan Hubicka <jh@suse.cz>
1253 Paolo Carlini <paolo.carlini@oracle.com>
1254
1255 * cgraphunit.c (analyze_functions): Save input_location, set it
1256 to UNKNOWN_LOCATION and restore it at the end.
1257
39e87baf
MJ
12582013-09-10 Martin Jambor <mjambor@suse.cz>
1259
1260 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
1261 represented by a thunk.
1262
581aedec
JL
12632013-09-10 Jeff Law <law@redhat.com>
1264
1265 PR tree-optimization/58343
1266 * tree-ssa-threadupdate.c (thread_block): Identify and disable
1267 jump threading requests through loop headers buried in the middle
1268 of a jump threading path.
1269
1270 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
1271 in return value/type.
1272
84cf4ab6
JJ
12732013-09-10 Jakub Jelinek <jakub@redhat.com>
1274
1275 PR rtl-optimization/58365
1276 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
1277 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
1278 it differs.
1279
447dd906
RB
12802013-09-10 Richard Biener <rguenther@suse.de>
1281
1282 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
1283 * tree-data-ref.c (create_rdg_vertices): Collect all data
1284 references, signal failure to the caller, use data-ref API.
893e85fa
CM
1285 (build_rdg): Compute data references only once. Maintain lifetime
1286 of data references and data dependences from within RDG.
447dd906
RB
1287 (free_rdg): Free dependence relations.
1288 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
1289 inventing extra dependences.
1290 (distribute_loop): Update for RDG API changes.
1291
f14a7324
KT
12922013-09-10 Kai Tietz <ktietz@redhat.com>
1293
1294 * doc/invoke.texi (fms-extensions): Document changed
1295 behavior for ms-abi targets.
1296 * config/i386/i386.c (ix86_option_override_internal):
1297 Set default value of option -fms-extension for ms-abi targets.
1298
ff131f26
MZ
12992013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1300
1301 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
1302
33115a2c
AM
13032013-09-10 Alan Modra <amodra@gmail.com>
1304
1305 PR target/58330
1306 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
1307
b6872a13
AM
13082013-09-10 Alan Modra <amodra@gmail.com>
1309
1310 * config/rs6000/predicates.md (add_cint_operand): New.
1311 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
1312 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
1313 using add_cint_operand.
1314 (largetoc_high_plus_aix): Likewise.
1315
28fd0ba2
JJ
13162013-09-09 Jakub Jelinek <jakub@redhat.com>
1317
1318 PR tree-optimization/58364
1319 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
1320 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
1321 the current range can't be an unconditional true or false.
1322
552d99fe
JG
13232013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1324
1325 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
1326
f43245d1
UB
13272013-09-09 Uros Bizjak <ubizjak@gmail.com>
1328
1329 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1330
c9b0866a
PC
13312013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1332
1333 PR c++/43452
1334 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1335
78d8b9f0
IB
13362013-09-09 Ian Bolton <ian.bolton@arm.com>
1337
1338 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1339 NO_REGS for immediate that can't be moved directly into FP_REGS.
1340
274b2532
KT
13412013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1342
1343 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1344 comparison with negated operand.
c9b0866a
PC
1345 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1346 RTL form.
274b2532 1347
467a3558
RB
13482013-09-09 Richard Biener <rguenther@suse.de>
1349
1350 PR middle-end/58326
1351 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1352 of a subloop record all its block as affecting loop-closed SSA form.
1353
088c5368
RS
13542013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1355
1356 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1357 of an rtx/bitpos pair.
1358 (store_fixed_bit_field): Update accordingly.
1359
69db2d57
RS
13602013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1361
1362 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1363 GEN_INT.
1364 * builtins.c (expand_errno_check): Likewise.
1365 * dwarf2cfi.c (init_return_column_size): Likewise.
1366 * except.c (sjlj_mark_call_sites): Likewise.
1367 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1368 * lra-constraints.c (emit_inc): Likewise.
1369 * ree.c (combine_set_extension): Likewise.
1370 * regmove.c (fixup_match_2): Likewise.
1371 * reload1.c (inc_for_reload): Likewise.
1372
69a59f0f
RS
13732013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1374
1375 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1376 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1377 Use gen_int_mode with the mode of the associated simplify_* call.
1378 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1379 * expmed.c (expand_shift_1): Likewise.
1380 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1381 * loop-iv.c (iv_number_of_iterations): Likewise.
1382 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1383 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1384
2f1cd2eb
RS
13852013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1386
1387 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1388 of the associated expand_* call.
1389 (asan_emit_stack_protection): Likewise.
1390 * builtins.c (round_trampoline_addr): Likewise.
1391 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1392 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1393 (emit_store_flag): Likewise.
1394 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1395 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1396 Likewise.
1397 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1398 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1399 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1400 * modulo-sched.c (generate_prolog_epilog): Likewise.
1401 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1402 (expand_ctz, expand_ffs, expand_unop): Likewise.
1403
4789c0ce
RS
14042013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1405
1406 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1407 of the associated gen_rtx_* call.
1408 * caller-save.c (init_caller_save): Likewise.
1409 * combine.c (find_split_point, make_extraction): Likewise.
1410 (make_compound_operation): Likewise.
1411 * dwarf2out.c (mem_loc_descriptor): Likewise.
1412 * explow.c (plus_constant, probe_stack_range): Likewise.
1413 * expmed.c (expand_mult_const): Likewise.
1414 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1415 * reload1.c (init_reload): Likewise.
1416 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1417 * var-tracking.c (adjust_mems): Likewise.
1418 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1419 rather than gen_rtx_fmt_ee.
1420
a811f7cb
JH
14212013-09-09 Jan Hubicka <jh@suse.cz>
1422
1423 PR middle-end/58294
1424 * value-prof.c (gimple_ic): Copy also abnormal edges.
1425
dcad1dd3
RS
14262013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1427
1428 * asan.c (asan_shadow_cst): Use gen_int_mode.
1429
daf5c770
JH
14302013-09-08 Jan Hubicka <jh@suse.cz>
1431
1432 * ipa-profile.c: Add toplevel comment.
1433 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1434 (contains_hot_call_p): New function.
1435 (ipa_propagate_frequency): Set frequencies based on counts when
1436 profile is read.
1437 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1438 profile; do not tamper with profile after inlining if it is read.
1439
a12cd2db
JH
14402013-09-08 Jan Hubicka <jh@suse.cz>
1441
1442 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1443 speculative edges.
1444
856a1588
JH
14452013-09-08 Jan Hubicka <jh@suse.cz>
1446
1447 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1448 summary generation.
1449
4f4b0b73
JL
14502013-09-08 Jeff Law <law@redhat.com>
1451
1452 PR bootstrap/58340
1453 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1454 of 'found'.
1455
cc4029ee
AK
14562013-09-08 Andi Kleen <ak@linux.intel.com>
1457
1458 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1459
7b395ddd
JH
14602013-09-08 Jan Hubicka <jh@suse.cz>
1461
1462 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1463
c34c46dd
RS
14642013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1465
1466 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1467 for non-debug insns.
1468 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1469 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1470 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1471 accordingly.
1472
3462aa02
JH
14732013-09-08 Jan Hubicka <jh@suse.cz>
1474
1475 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1476 targets and devirtualize to BUILT_IN_UNREACHABLE.
1477 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1478 * ipa.c (walk_polymorphic_call_targets): New function.
1479 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1480 functions; use the new timevar.
1481 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1482 was removed from the program.
1483 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1484 not consider it in the walk when its vtable is dead.
1485 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1486 record_binfo.
1487 (devirt_variable_node_removal_hook): New function.
1488 (possible_polymorphic_call_targets): Also register
1489 devirt_variable_node_removal_hook.
1490 (ipa_devirt): Do not do non-speculative devirtualization.
1491 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1492
26e5b0fd
JH
14932013-09-08 Jan Hubicka <jh@suse.cz>
1494
1495 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1496 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1497 varpool_remove_variable_insertion_hook): Declare.
1498 * varpool.c (varpool_node_hook_list): New structure.
1499 (first_varpool_node_removal_hook,
1500 first_varpool_variable_insertion_hook): New variables.
1501 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1502 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1503 varpool_remove_variable_insertion_hook,
1504 varpool_call_variable_insertion_hooks): New functions.
1505 (varpool_remove_node): Use it.
1506
97f1f314 15072013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1508
97f1f314
PC
1509 PR c++/54941
1510 * diagnostic.c (diagnostic_build_prefix): When s.file is
1511 "<built-in>" don't output line and column numbers.
6df2ca09 1512
bcb650cb
JH
15132013-09-06 Jan Hubicka <jh@suse.cz>
1514
1515 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1516 * lto-streamer-out.c: Stream thunks, too.
1517 * lto-streamer-in.c (input_function): Pop cfun here
1518 (lto_read_body): Instead of here.
1519
87f3fea8
CT
15202013-09-06 Caroline Tice <cmtice@google.com>
1521
1522 * doc/install.texi: Add documentation for the --enable-vtable-verify
1523 and the --disable-libvtv configure options.
1524
5e8d9b45
JL
15252013-09-06 Jeff Law <law@redhat.com>
1526
1527 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1528 edge implied equivalences into successor phis.
1529
3a001aff
JR
15302013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1531
1532 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1533
15342013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1535
1536 * resource.c (mark_target_live_regs): Compute resources taking
1537 into account if a call is predicated or not.
1538
2c641f8b
EB
15392013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1540
1541 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1542 the compiler in the function names.
1543
a81b0a3d
JH
15442013-09-06 Jan Hubicka <jh@suse.cz>
1545
1546 PR middle-end/58094
1547 * ipa-inline.c (has_caller_p): New function.
1548 (want_inline_function_to_all_callers_p): Use it.
1549 (sum_callers, inline_to_all_callers): Break out from ...
1550 (ipa_inline): ... here.
1551
68e4ca7e
JH
15522013-09-06 Jan Hubicka <jh@suse.cz>
1553
2c641f8b
EB
1554 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1555 only when AVX is enabled.
68e4ca7e 1556
3c73e2fe
JG
15572013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1558
1559 * config/aarch64/aarch64.md
1560 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1561 is fpsimd_<load/store>2.
1562 (load_pair<mode>): Likewise.
1563 (store_pair<mode>): Likewise.
1564
8c48eecd
JG
15652013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1566
1567 * config/arm/types.md (type): Add "mrs" type.
1568 * config/aarch64/aarch64.md
1569 (aarch64_load_tp_hard): Make type "mrs".
1570 * config/arm/arm.md
1571 (load_tp_hard): Make type "mrs".
1572 * config/arm/cortex-a15.md: Update with new attributes.
1573 * config/arm/cortex-a5.md: Update with new attributes.
1574 * config/arm/cortex-a53.md: Update with new attributes.
1575 * config/arm/cortex-a7.md: Update with new attributes.
1576 * config/arm/cortex-a8.md: Update with new attributes.
1577 * config/arm/cortex-a9.md: Update with new attributes.
1578 * config/arm/cortex-m4.md: Update with new attributes.
1579 * config/arm/cortex-r4.md: Update with new attributes.
1580 * config/arm/fa526.md: Update with new attributes.
1581 * config/arm/fa606te.md: Update with new attributes.
1582 * config/arm/fa626te.md: Update with new attributes.
1583 * config/arm/fa726te.md: Update with new attributes.
1584
9ea187a5
JG
15852013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1586
1587 * config/aarch64/aarch64.md
1588 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1589 (*movtf_aarch64): Likewise.
1590 * config/arm/arm.md
1591 (thumb1_movdi_insn): Use "multiple" for type where more than one
1592 instruction is used for a move.
1593 (*arm32_movhf): Likewise.
1594 (*thumb_movdf_insn): Likewise.
1595
292b89b3
JG
15962013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1597
1598 * config/arm/types.md (type): Rename fcpys to fmov.
1599 * config/arm/vfp.md
1600 (*arm_movsi_vfp): Rename type fcpys as fmov.
1601 (*thumb2_movsi_vfp): Likewise
1602 (*movhf_vfp_neon): Likewise
1603 (*movhf_vfp): Likewise
1604 (*movsf_vfp): Likewise
1605 (*thumb2_movsf_vfp): Likewise
1606 (*movsfcc_vfp): Likewise
1607 (*thumb2_movsfcc_vfp): Likewise
1608 * config/aarch64/aarch64-simd.md
1609 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1610 * config/aarch64/aarch64.md
1611 (*movsi_aarch64): Replace type mov_reg with fmovs.
1612 (*movdi_aarch64): Likewise
1613 (*movsf_aarch64): Likewise
1614 (*movdf_aarch64): Likewise
1615 * config/arm/arm.c
1616 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1617 * config/arm/iwmmxt.md
1618 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1619 * config/arm/arm1020e.md: Update with new attributes.
1620 * config/arm/cortex-a15-neon.md: Update with new attributes.
1621 * config/arm/cortex-a5.md: Update with new attributes.
1622 * config/arm/cortex-a53.md: Update with new attributes.
1623 * config/arm/cortex-a7.md: Update with new attributes.
1624 * config/arm/cortex-a8-neon.md: Update with new attributes.
1625 * config/arm/cortex-a9.md: Update with new attributes.
1626 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1627 * config/arm/cortex-r4f.md: Update with new attributes.
1628 * config/arm/marvell-pj4.md: Update with new attributes.
1629 * config/arm/vfp11.md: Update with new attributes.
1630
6a24a83e
JG
16312013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1632
1633 * config/aarch64/aarch64.md
1634 (*madd<mode>): Fix type attribute.
1635 (*maddsi_uxtw): Likewise.
1636 (*msub<mode>): Likewise.
1637 (*msubsi_uxtw): Likewise.
1638 (<su_optab>maddsidi4): Likewise.
1639 (<su_optab>msubsidi4): Likewise.
1640
b86923f0
JG
16412013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1642
1643 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1644 * config/arm/arm.md (core_cycles): Remove fdiv.
1645 * config/arm/vfp.md:
1646 (*sqrtsf2_vfp): Update for attribute changes.
1647 (*sqrtdf2_vfp): Likewise.
1648 * config/aarch64/aarch64.md:
1649 (sqrt<mode>2): Update for attribute changes.
1650 * config/arm/arm1020e.md: Update with new attributes.
1651 * config/arm/cortex-a15-neon.md: Update with new attributes.
1652 * config/arm/cortex-a5.md: Update with new attributes.
1653 * config/arm/cortex-a53.md: Update with new attributes.
1654 * config/arm/cortex-a7.md: Update with new attributes.
1655 * config/arm/cortex-a8-neon.md: Update with new attributes.
1656 * config/arm/cortex-a9.md: Update with new attributes.
1657 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1658 * config/arm/cortex-r4f.md: Update with new attributes.
1659 * config/arm/marvell-pj4.md: Update with new attributes.
1660 * config/arm/vfp11.md: Update with new attributes.
1661
7b49c9e1
JG
16622013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1663
1664 * config/arm/types.md
1665 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
1666 * config/aarch64/aarch64.md
1667 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
1668 new attributes.
1669 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
1670 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
1671 (float<GPI:mode><GPF:mode>2): Likewise.
1672 * config/arm/vfp.md
1673 (*truncsisf2_vfp): Update with new attributes.
1674 (*truncsidf2_vfp): Likewise.
1675 (fixuns_truncsfsi2): Likewise.
1676 (fixuns_truncdfsi2): Likewise.
1677 (*floatsisf2_vfp): Likewise.
1678 (*floatsidf2_vfp): Likewise.
1679 (floatunssisf2): Likewise.
1680 (floatunssidf2): Likewise.
1681 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
1682 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
1683 * config/arm/arm1020e.md: Update with new attributes.
1684 * config/arm/cortex-a15-neon.md: Update with new attributes.
1685 * config/arm/cortex-a5.md: Update with new attributes.
1686 * config/arm/cortex-a53.md: Update with new attributes.
1687 * config/arm/cortex-a7.md: Update with new attributes.
1688 * config/arm/cortex-a8-neon.md: Update with new attributes.
1689 * config/arm/cortex-a9.md: Update with new attributes.
1690 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1691 * config/arm/cortex-r4f.md: Update with new attributes.
1692 * config/arm/marvell-pj4.md: Update with new attributes.
1693 * config/arm/vfp11.md: Update with new attributes.
1694
e7df8af8
JG
16952013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1696
1697 * config/aarch64/arm_neon.h
1698 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
1699 (vqtbx<1,2,3,4><q>_s8): Likewise.
1700
594726e4
JG
17012013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1702
f43245d1
UB
1703 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
1704 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
1705 (add<mode>3): Add type attribute.
1706 (add<mode>3): Likewise.
1707 (usadd<mode>3): Likewise.
1708 (ssadd<mode>3): Likewise.
1709 (sub<mode>3): Likewise.
1710 (sub<mode>3): Likewise.
1711 (ussub<mode>3): Likewise.
1712 (sssub<mode>3): Likewise.
1713 (ssmulsa3): Likewise.
1714 (usmulusa3): Likewise.
1715 (arm_usatsihi): Likewise.
1716 * config/arm/vfp.md
1717 (*movdi_vfp): Add types for all instructions.
1718 (*movdi_vfp_cortexa8): Likewise.
1719 (*movhf_vfp_neon): Likewise.
1720 (*movhf_vfp): Likewise.
1721 (*movdf_vfp): Likewise.
1722 (*thumb2_movdf_vfp): Likewise.
1723 (*thumb2_movdfcc_vfp): Likewise.
1724 * config/arm/arm.md: Add type attribute to all insn patterns.
1725 (*thumb1_adddi3): Add type attribute.
1726 (*arm_adddi3): Likewise.
1727 (*adddi_sesidi_di): Likewise.
1728 (*adddi_zesidi_di): Likewise.
1729 (*thumb1_addsi3): Likewise.
1730 (addsi3_compare0): Likewise.
1731 (*addsi3_compare0_scratch): Likewise.
1732 (*compare_negsi_si): Likewise.
1733 (cmpsi2_addneg): Likewise.
1734 (*addsi3_carryin_<optab>): Likewise.
1735 (*addsi3_carryin_alt2_<optab>): Likewise.
1736 (*addsi3_carryin_clobercc_<optab>): Likewise.
1737 (*subsi3_carryin): Likewise.
1738 (*subsi3_carryin_const): Likewise.
1739 (*subsi3_carryin_compare): Likewise.
1740 (*subsi3_carryin_compare_const): Likewise.
1741 (*arm_subdi3): Likewise.
1742 (*thumb_subdi3): Likewise.
1743 (*subdi_di_zesidi): Likewise.
1744 (*subdi_di_sesidi): Likewise.
1745 (*subdi_zesidi_di): Likewise.
1746 (*subdi_sesidi_di): Likewise.
1747 (*subdi_zesidi_ze): Likewise.
1748 (thumb1_subsi3_insn): Likewise.
1749 (*arm_subsi3_insn): Likewise.
1750 (*anddi3_insn): Likewise.
1751 (*anddi_zesidi_di): Likewise.
1752 (*anddi_sesdi_di): Likewise.
1753 (*ne_zeroextracts): Likewise.
1754 (*ne_zeroextracts): Likewise.
1755 (*ite_ne_zeroextr): Likewise.
1756 (*ite_ne_zeroextr): Likewise.
1757 (*anddi_notdi_di): Likewise.
1758 (*anddi_notzesidi): Likewise.
1759 (*anddi_notsesidi): Likewise.
1760 (andsi_notsi_si): Likewise.
1761 (thumb1_bicsi3): Likewise.
1762 (*iordi3_insn): Likewise.
1763 (*iordi_zesidi_di): Likewise.
1764 (*iordi_sesidi_di): Likewise.
1765 (*thumb1_iorsi3_insn): Likewise.
1766 (*xordi3_insn): Likewise.
1767 (*xordi_zesidi_di): Likewise.
1768 (*xordi_sesidi_di): Likewise.
1769 (*arm_xorsi3): Likewise.
1770 (*andsi_iorsi3_no): Likewise.
1771 (*smax_0): Likewise.
1772 (*smax_m1): Likewise.
1773 (*arm_smax_insn): Likewise.
1774 (*smin_0): Likewise.
1775 (*arm_smin_insn): Likewise.
1776 (*arm_umaxsi3): Likewise.
1777 (*arm_uminsi3): Likewise.
1778 (*minmax_arithsi): Likewise.
1779 (*minmax_arithsi_): Likewise.
1780 (*satsi_<SAT:code>): Likewise.
1781 (arm_ashldi3_1bit): Likewise.
1782 (arm_ashrdi3_1bit): Likewise.
1783 (arm_lshrdi3_1bit): Likewise.
1784 (*arm_negdi2): Likewise.
1785 (*thumb1_negdi2): Likewise.
1786 (*arm_negsi2): Likewise.
1787 (*thumb1_negsi2): Likewise.
1788 (*negdi_extendsid): Likewise.
1789 (*negdi_zero_extend): Likewise.
1790 (*arm_abssi2): Likewise.
1791 (*thumb1_abssi2): Likewise.
1792 (*arm_neg_abssi2): Likewise.
1793 (*thumb1_neg_abss): Likewise.
1794 (one_cmpldi2): Likewise.
1795 (extend<mode>di2): Likewise.
1796 (*compareqi_eq0): Likewise.
1797 (*arm_extendhisi2addsi): Likewise.
1798 (*arm_movdi): Likewise.
1799 (*thumb1_movdi_insn): Likewise.
1800 (*arm_movt): Likewise.
1801 (*thumb1_movsi_insn): Likewise.
1802 (pic_add_dot_plus_four): Likewise.
1803 (pic_add_dot_plus_eight): Likewise.
1804 (tls_load_dot_plus_eight): Likewise.
1805 (*thumb1_movhi_insn): Likewise.
1806 (*thumb1_movsf_insn): Likewise.
1807 (*movdf_soft_insn): Likewise.
1808 (*thumb_movdf_insn): Likewise.
1809 (cbranchsi4_insn): Likewise.
1810 (cbranchsi4_scratch): Likewise.
1811 (*negated_cbranchsi4): Likewise.
1812 (*tbit_cbranch): Likewise.
1813 (*tlobits_cbranch): Likewise.
1814 (*tstsi3_cbranch): Likewise.
1815 (*cbranchne_decr1): Likewise.
1816 (*addsi3_cbranch): Likewise.
1817 (*addsi3_cbranch_scratch): Likewise.
1818 (*arm_cmpdi_insn): Likewise.
1819 (*arm_cmpdi_unsig): Likewise.
1820 (*arm_cmpdi_zero): Likewise.
1821 (*thumb_cmpdi_zero): Likewise.
1822 (*deleted_compare): Likewise.
1823 (*mov_scc): Likewise.
1824 (*mov_negscc): Likewise.
1825 (*mov_notscc): Likewise.
1826 (*cstoresi_eq0_thumb1_insn): Likewise.
1827 (cstoresi_nltu_thumb1): Likewise.
1828 (cstoresi_ltu_thu): Likewise.
1829 (thumb1_addsi3_addgeu): Likewise.
1830 (*arm_jump): Likewise.
1831 (*thumb_jump): Likewise.
1832 (*check_arch2): Likewise.
1833 (arm_casesi_internal): Likewise.
1834 (thumb1_casesi_dispatch): Likewise.
1835 (*arm_indirect_jump): Likewise.
1836 (*thumb1_indirect_jump): Likewise.
1837 (nop): Likewise.
1838 (*and_scc): Likewise.
1839 (*ior_scc): Likewise.
1840 (*compare_scc): Likewise.
1841 (*cond_move): Likewise.
1842 (*cond_arith): Likewise.
1843 (*cond_sub): Likewise.
1844 (*cmp_ite0): Likewise.
1845 (*cmp_ite1): Likewise.
1846 (*cmp_and): Likewise.
1847 (*cmp_ior): Likewise.
1848 (*ior_scc_scc): Likewise.
1849 (*ior_scc_scc_cmp): Likewise.
1850 (*and_scc_scc): Likewise.
1851 (*and_scc_scc_cmp): Likewise.
1852 (*and_scc_scc_nod): Likewise.
1853 (*negscc): Likewise.
1854 (movcond_addsi): Likewise.
1855 (movcond): Likewise.
1856 (*ifcompare_plus_move): Likewise.
1857 (*if_plus_move): Likewise.
1858 (*ifcompare_move_plus): Likewise.
1859 (*if_move_plus): Likewise.
1860 (*ifcompare_arith_arith): Likewise.
1861 (*if_arith_arith): Likewise.
1862 (*ifcompare_arith_move): Likewise.
1863 (*if_arith_move): Likewise.
1864 (*ifcompare_move_arith): Likewise.
1865 (*if_move_arith): Likewise.
1866 (*ifcompare_move_not): Likewise.
1867 (*if_move_not): Likewise.
1868 (*ifcompare_not_move): Likewise.
1869 (*if_not_move): Likewise.
1870 (*ifcompare_shift_move): Likewise.
1871 (*if_shift_move): Likewise.
1872 (*ifcompare_move_shift): Likewise.
1873 (*if_move_shift): Likewise.
1874 (*ifcompare_shift_shift): Likewise.
1875 (*ifcompare_not_arith): Likewise.
1876 (*ifcompare_arith_not): Likewise.
1877 (*if_arith_not): Likewise.
1878 (*ifcompare_neg_move): Likewise.
1879 (*if_neg_move): Likewise.
1880 (*ifcompare_move_neg): Likewise.
1881 (*if_move_neg): Likewise.
1882 (prologue_thumb1_interwork): Likewise.
1883 (*cond_move_not): Likewise.
1884 (*sign_extract_onebit): Likewise.
1885 (*not_signextract_onebit): Likewise.
1886 (stack_tie): Likewise.
1887 (align_4): Likewise.
1888 (align_8): Likewise.
1889 (consttable_end): Likewise.
1890 (consttable_1): Likewise.
1891 (consttable_2): Likewise.
1892 (consttable_4): Likewise.
1893 (consttable_8): Likewise.
1894 (consttable_16): Likewise.
1895 (*thumb1_tablejump): Likewise.
1896 (prefetch): Likewise.
1897 (force_register_use): Likewise.
1898 (thumb_eh_return): Likewise.
1899 (load_tp_hard): Likewise.
1900 (load_tp_soft): Likewise.
1901 (tlscall): Likewise.
1902 (*arm_movtas_ze): Likewise.
1903 (*arm_rev): Likewise.
1904 (*arm_revsh): Likewise.
1905 (*arm_rev16): Likewise.
1906 * config/arm/thumb2.md
1907 (*thumb2_smaxsi3): Likewise.
1908 (*thumb2_sminsi3): Likewise.
1909 (*thumb32_umaxsi3): Likewise.
1910 (*thumb2_uminsi3): Likewise.
1911 (*thumb2_negdi2): Likewise.
1912 (*thumb2_abssi2): Likewise.
1913 (*thumb2_neg_abss): Likewise.
1914 (*thumb2_movsi_insn): Likewise.
1915 (tls_load_dot_plus_four): Likewise.
1916 (*thumb2_movhi_insn): Likewise.
1917 (*thumb2_mov_scc): Likewise.
1918 (*thumb2_mov_negs): Likewise.
1919 (*thumb2_mov_negs): Likewise.
1920 (*thumb2_mov_nots): Likewise.
1921 (*thumb2_mov_nots): Likewise.
1922 (*thumb2_movsicc_): Likewise.
1923 (*thumb2_movsfcc_soft_insn): Likewise.
1924 (*thumb2_indirect_jump): Likewise.
1925 (*thumb2_and_scc): Likewise.
1926 (*thumb2_ior_scc): Likewise.
1927 (*thumb2_ior_scc_strict_it): Likewise.
1928 (*thumb2_cond_move): Likewise.
1929 (*thumb2_cond_arith): Likewise.
1930 (*thumb2_cond_ari): Likewise.
1931 (*thumb2_cond_sub): Likewise.
1932 (*thumb2_negscc): Likewise.
1933 (*thumb2_movcond): Likewise.
1934 (thumb2_casesi_internal): Likewise.
1935 (thumb2_casesi_internal_pic): Likewise.
1936 (*thumb2_alusi3_short): Likewise.
1937 (*thumb2_mov<mode>_shortim): Likewise.
1938 (*thumb2_addsi_short): Likewise.
1939 (*thumb2_subsi_short): Likewise.
1940 (thumb2_addsi3_compare0): Likewise.
1941 (*thumb2_cbz): Likewise.
1942 (*thumb2_cbnz): Likewise.
1943 (*thumb2_one_cmplsi2_short): Likewise.
1944 (*thumb2_negsi2_short): Likewise.
1945 (*orsi_notsi_si): Likewise.
1946 * config/arm/arm1020e.md: Update with new attributes.
1947 * config/arm/arm1026ejs.md: Update with new attributes.
1948 * config/arm/arm1136jfs.md: Update with new attributes.
1949 * config/arm/arm926ejs.md: Update with new attributes.
1950 * config/arm/cortex-a15.md: Update with new attributes.
1951 * config/arm/cortex-a5.md: Update with new attributes.
1952 * config/arm/cortex-a53.md: Update with new attributes.
1953 * config/arm/cortex-a7.md: Update with new attributes.
1954 * config/arm/cortex-a8.md: Update with new attributes.
1955 * config/arm/cortex-a9.md: Update with new attributes.
1956 * config/arm/cortex-m4.md: Update with new attributes.
1957 * config/arm/cortex-r4.md: Update with new attributes.
1958 * config/arm/fa526.md: Update with new attributes.
1959 * config/arm/fa606te.md: Update with new attributes.
1960 * config/arm/fa626te.md: Update with new attributes.
1961 * config/arm/fa726te.md: Update with new attributes.
1962
1c83b673
JG
19632013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1964
1965 * config/aarch64/aarch64-simd.md
1966 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
1967 <vwx> iterator to ensure correct register choice.
1968 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1969 (aarch64_sqdmull_n<mode>): Likewise.
1970 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1971 * config/aarch64/arm_neon.h
1972 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
1973 (vml<as><q>_n_<su>16): Likewise.
1974 (vml<as>l_high_lane<q>_<su>16): Likewise.
1975 (vml<as>l_high_n_<su>16): Likewise.
1976 (vml<as>l_lane<q>_<su>16): Likewise.
1977 (vml<as>l_n_<su>16): Likewise.
1978 (vmul<q>_lane<q>_<su>16): Likewise.
1979 (vmul<q>_n_<su>16): Likewise.
1980 (vmull_lane<q>_<su>16): Likewise.
1981 (vmull_n_<su>16): Likewise.
1982 (vmull_high_lane<q>_<su>16): Likewise.
1983 (vmull_high_n_<su>16): Likewise.
1984 (vqrdmulh<q>_n_s16): Likewise.
1985
bb1ae543
TB
19862013-09-06 Tejas Belagod <tejas.belagod@arm.com>
1987
1988 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
1989 have the correct lane parameter.
1990
f23c0742
RB
19912013-09-06 Richard Biener <rguenther@suse.de>
1992
1993 * cfganal.c (control_dependences::~control_dependences):
1994 Properly free all of the vector.
1995
c1d49770
KY
19962013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
1997
1998 PR target/58269
1999 * config/i386/i386.c (ix86_conditional_register_usage):
2000 Proper initialize extended SSE registers.
2001
6da47f52
JH
20022013-09-06 Jan Hubicka <jh@suse.cz>
2003
2004 PR tree-optimization/58311
2005 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
2006
20072013-09-06 Jan Hubicka <jh@suse.cz>
2008
2009 * Makefile.in (tree-sra.o): Update dependencies.
2010 * tree-sra.c: Include ipa-utils.h
2011 (scan_function): Use recursive_call_p.
2012 (has_caller_p): New function.
2013 (cgraph_for_node_and_aliases): Count also callers of aliases.
2014
fc11f321
JH
20152013-09-06 Jan Hubicka <jh@suse.cz>
2016
2017 PR middle-end/58094
2018 * cgraph.h (symtab_semantically_equivalent_p): Declare.
2019 * tree-tailcall.c: Include ipa-utils.h.
2020 (find_tail_calls): Use it.
2021 * ipa-pure-const.c (check_call): Likewise.
2022 * ipa-utils.c (recursive_call_p): New function.
2023 * ipa-utils.h (recursive_call_p): Dclare.
2024 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
2025 (symtab_semantically_equivalent_p): New function.
2026 * Makefile.in (tree-tailcall.o): Update dependencies.
2027
9a6af450
EB
20282013-09-06 Eric Botcazou <ebotcazou@adacore.com>
2029
2030 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
2031 non-inlinable part.
2032
35f32ad4
RB
20332013-09-06 Richard Biener <rguenther@suse.de>
2034
2035 * lto-streamer.h (lto_global_var_decls): Remove.
2036 * Makefile.in (OBJS): Remove lto-symtab.o.
2037 (lto-symtab.o): Remove.
2038 (GTFILES): Remove lto-symtab.c
2039 * lto-symtab.c: Move to lto/
2040
d12a76f3
AK
20412013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2042
2043 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
2044 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
2045 (UNSPEC_FPINT_RINT): New constant definitions.
2046 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
2047 definition with 2 attributes.
2048 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
2049 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
2050 definitions.
2051
20522013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2053
f43245d1 2054 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
2055 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
2056 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
2057 attribute to "z196_alone".
2058 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
2059 "zEC12_simple".
2060
c8e9d8c3
RB
20612013-09-06 Richard Biener <rguenther@suse.de>
2062
2063 * basic-block.h (class control_dependences): New.
2064 * tree-ssa-dce.c (control_dependence_map): Remove.
2065 (cd): New global.
2066 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
2067 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
2068 find_pdom, find_control_dependence, find_all_control_dependences):
2069 Move to cfganal.c.
f43245d1
UB
2070 (mark_control_dependent_edges_necessary,
2071 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
2072 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
2073 * cfganal.c (set_control_dependence_map_bit,
2074 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
2075 find_all_control_dependences): Move from tree-ssa-dce.c and
2076 implement as methods of control_dependences class.
2077 (control_dependences::control_dependences): New.
2078 (control_dependences::~control_dependences): Likewise.
2079 (control_dependences::get_edges_dependent_on): Likewise.
2080 (control_dependences::get_edge): Likewise.
2081
7d2ba471
JH
20822013-09-04 Jan Hubicka <jh@suse.cz>
2083
2084 * tree.c (types_same_for_odr): Drop overactive check.
2085 * ipa-devirt.c (hash_type_name): Likewise.
2086
e18412fc
JH
20872013-09-04 Jan Hubicka <jh@suse.cz>
2088
2089 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
2090 (analyze_functions): ... here.
2091
d352b245
JH
20922013-09-04 Jan Hubicka <jh@suse.cz>
2093
2094 PR middle-end/58201
2095 * cgraphunit.c (analyze_functions): Clear AUX fields
2096 after processing; initialize assembler name has.
2097
770da076
JL
20982013-09-05 Jeff Law <law@redhat.com>
2099
2100 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
2101 from thread_around_empty_block. Record threading path into PATH.
2102 Recurse if threading through the initial block is successful.
2103 (thread_across_edge): Corresponding changes to slightly simplify.
2104
fe6f68e2
JG
21052013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2106
2107 * config/aarch64/aarch64.md
2108 (type): Remove frecpe, frecps, frecpx.
2109 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
2110 fix to be a TARGET_SIMD instruction.
2111 (aarch64_frecps): Remove.
2112 * config/aarch64/aarch64-simd.md
2113 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
2114 (aarch64_frecps<mode>): Handle all float/vector of float modes.
2115
6e4150e1
JG
21162013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2117 Sofiane Naci <sofiane.naci@arm.com>
2118
f43245d1 2119 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 2120 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
2121 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
2122 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
2123 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
2124 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
2125 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
2126 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
2127 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 2128 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 2129 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
2130 shift* types.
2131 * config/arm/arm-fixed.md: Update for attribute changes
2132 all occurrences of arlo_* types.
2133 * config/arm/thumb2.md: Update for attribute changes all occurrences
2134 of arlo_* types.
2135 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
2136 (cortexa7_older_only): Likewise.
2137 (cortexa7_younger): Likewise.
2138 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2139 (1020alu_shift_op): Likewise.
2140 (1020alu_shift_reg_op): Likewise.
2141 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2142 (alu_shift_op): Likewise.
2143 (alu_shift_reg_op): Likewise.
f43245d1 2144 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
2145 (11_alu_shift_op): Likewise.
2146 (11_alu_shift_reg_op): Likewise.
2147 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2148 (9_alu_shift_reg_op): Likewise.
2149 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
2150 attribute changes.
2151 (cortex_a15_alu_shift): Likewise.
2152 (cortex_a15_alu_shift_reg): Likewise.
2153 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
2154 attribute changes.
2155 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
2156 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
2157 attribute changes.
6e4150e1 2158 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
2159 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
2160 attribute changes.
6e4150e1
JG
2161 (cortex_a7_alu_reg): Likewise.
2162 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
2163 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
2164 attribute changes.
6e4150e1
JG
2165 (cortex_a8_alu_shift): Likewise.
2166 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 2167 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 2168 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
2169 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
2170 attribute changes.
6e4150e1
JG
2171 * config/arm/cortex-r4.md
2172 (cortex_r4_alu): Update for attribute changes.
2173 (cortex_r4_mov): Likewise.
2174 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 2175 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 2176 (526_alu_shift_op): Likewise.
f43245d1
UB
2177 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2178 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 2179 (626te_alu_shift_op): Likewise.
f43245d1 2180 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
2181 (726te_alu_shift_op): Likewise.
2182 (726te_alu_shift_reg_op): Likewise.
2183 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2184 (mp626_alu_shift_op): Likewise.
2185 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
2186 (pj4_alu_conds): Likewise.
2187 (pj4_shift): Likewise.
2188 (pj4_shift_conds): Likewise.
2189 (pj4_alu_shift): Likewise.
2190 (pj4_alu_shift_conds): Likewise.
2191 * config/aarch64/aarch64.md: Update for attribute change
2192 all occurrences of arlo_* and shift* types.
2193
e6523306
MS
21942013-09-05 Mike Stump <mikestump@comcast.net>
2195
2196 * tree.h: Move documentation for tree_function_decl to tree-core.h
2197 with the declaration.
2198
80a18161
PB
21992013-09-05 Peter Bergner <bergner@vnet.ibm.com>
2200
2201 PR target/58139
2202 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
2203 looking for widest mode.
2204
6994430a
EB
22052013-09-05 Eric Botcazou <ebotcazou@adacore.com>
2206
2207 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
2208
e67f39f7
RB
22092013-09-05 Richard Biener <rguenther@suse.de>
2210
2211 PR tree-optimization/58137
2212 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2213 Do not create vectors of pointers.
2214 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
2215 types for the components of the vector initializer.
2216 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
2217 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
2218
568cda29
MJ
22192013-09-05 Martin Jambor <mjambor@suse.cz>
2220
2221 * ipa-prop.c (remove_described_reference): Accept missing references,
2222 return false if that hppens, otherwise return true.
2223 (cgraph_node_for_jfunc): New function.
2224 (try_decrement_rdesc_refcount): Likewise.
2225 (try_make_edge_direct_simple_call): Use them.
2226 (ipa_edge_removal_hook): Remove references from rdescs.
2227 (ipa_edge_duplication_hook): Clone rdescs and their references
2228 when the new edge has the same caller as the old one.
2229 * cgraph.c (cgraph_resolve_speculation): Remove speculative
2230 reference before removing any edges.
2231
5a200acb
RE
22322013-09-05 Richard Earnshaw <rearnsha@arm.com>
2233
2234 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2235 initial store.
2236 * thumb2.md (thumb2_storewb_parisi): New pattern.
2237
5922847b
YZ
22382013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2239
2240 * config/aarch64/aarch64-option-extensions.def: Add
2241 AARCH64_OPT_EXTENSION of 'crc'.
2242 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2243 (AARCH64_ISA_CRC): Ditto.
2244 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2245 description of the CRC extension.
2246
996746aa
AI
22472013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
2248
2249 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
2250 * config/rs6000/linux.h: Ditto.
2251 * alpha/linux.h: Ditto.
2252 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
2253 no_c99_libc_has_function.
2254 * config/c6x/uclinux-elf.h: Ditto.
2255 * config/lm32/uclinux-elf.h: Ditto.
2256 * config/m68k/uclinux.h: Ditto.
2257 * config/moxie/uclinux.h: Ditto.
2258 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
2259 (crisv32-*-linux*, cris-*-linux*): Ditto.
2260 * config/bfin/bfin.c: Include "tm_p.h".
2261
c370d99f
RB
22622013-09-05 Richard Biener <rguenther@suse.de>
2263
2264 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
2265 check for a definition without a basic-block.
2266
003bb7f3
JG
22672013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2268 Sofiane Naci <sofiane.naci@arm.com>
2269
2270 * config/aarch64/aarch64.md
2271 (*movti_aarch64): Rename r_2_f and f_2_r.
2272 (*movsf_aarch64): Likewise.
2273 (*movdf_aarch64): Likewise.
2274 (*movtf_aarch64): Likewise.
2275 (aarch64_movdi_<mode>low): Likewise.
2276 (aarch64_movdi_<mode>high): Likewise.
2277 (aarch64_mov<mode>high_di): Likewise.
2278 (aarch64_mov<mode>low_di): Likewise.
2279 (aarch64_movtilow_tilow): Likewise.
2280 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
2281 values to config/arm/types.md
2282 (attribute "conds"): Update for attribute change.
2283 (anddi3_insn): Likewise.
2284 (iordi3_insn): Likewise.
2285 (xordi3_insn): Likewise.
2286 (one_cmpldi2): Likewise.
2287 * config/arm/types.md (type): Add Neon types.
2288 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
2289 use "type" attribute.
2290 (movmisalign<mode>_neon_store): Likewise.
2291 (movmisalign<mode>_neon_load): Likewise.
2292 (vec_set<mode>_internal): Likewise.
2293 (vec_setv2di_internal): Likewise.
2294 (vec_extract<mode>): Likewise.
2295 (vec_extractv2di): Likewise.
2296 (add<mode>3_neon): Likewise.
2297 (adddi3_neon): Likewise.
2298 (sub<mode>3_neon): Likewise.
2299 (subdi3_neon): Likewise.
2300 (mul<mode>3_neon): Likewise.
2301 (mul<mode>3add<mode>_neon): Likewise.
2302 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2303 (fma<VCVTF:mode>4)): Likewise.
2304 (fma<VCVTF:mode>4_intrinsic): Likewise.
2305 (fmsub<VCVTF:mode>4)): Likewise.
2306 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
2307 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
2308 (ior<mode>3): Likewise.
2309 (and<mode>3): Likewise.
2310 (anddi3_neon): Likewise.
2311 (orn<mode>3_neon): Likewise.
2312 (orndi3_neon): Likewise.
2313 (bic<mode>3_neon): Likewise.
2314 (bicdi3_neon): Likewise.
2315 (xor<mode>3): Likewise.
2316 (one_cmpl<mode>2): Likewise.
2317 (abs<mode>2): Likewise.
2318 (neg<mode>2): Likewise.
2319 (umin<mode>3_neon): Likewise.
2320 (umax<mode>3_neon): Likewise.
2321 (smin<mode>3_neon): Likewise.
2322 (smax<mode>3_neon): Likewise.
2323 (vashl<mode>3): Likewise.
2324 (vashr<mode>3_imm): Likewise.
2325 (vlshr<mode>3_imm): Likewise.
2326 (ashl<mode>3_signed): Likewise.
2327 (ashl<mode>3_unsigned): Likewise.
2328 (neon_load_count): Likewise.
2329 (ashldi3_neon_noclobber): Likewise.
2330 (signed_shift_di3_neon): Likewise.
2331 (unsigned_shift_di3_neon): Likewise.
2332 (ashrdi3_neon_imm_noclobber): Likewise.
2333 (lshrdi3_neon_imm_noclobber): Likewise.
2334 (widen_ssum<mode>3): Likewise.
2335 (widen_usum<mode>3): Likewise.
2336 (quad_halves_<code>v4si): Likewise.
2337 (quad_halves_<code>v4sf): Likewise.
2338 (quad_halves_<code>v8hi): Likewise.
2339 (quad_halves_<code>v16qi): Likewise.
2340 (reduc_splus_v2di): Likewise.
2341 (neon_vpadd_internal<mode>): Likewise.
2342 (neon_vpsmin<mode>): Likewise.
2343 (neon_vpsmax<mode>): Likewise.
2344 (neon_vpumin<mode>): Likewise.
2345 (neon_vpumax<mode>): Likewise.
2346 (ss_add<mode>_neon): Likewise.
2347 (us_add<mode>_neon): Likewise.
2348 (ss_sub<mode>_neon): Likewise.
2349 (us_sub<mode>_neon): Likewise.
2350 (neon_vadd<mode>_unspec): Likewise.
2351 (neon_vaddl<mode>): Likewise.
2352 (neon_vaddw<mode>): Likewise.
2353 (neon_vhadd<mode>): Likewise.
2354 (neon_vqadd<mode>): Likewise.
2355 (neon_vaddhn<mode>): Likewise.
2356 (neon_vmul<mode>): Likewise.
2357 (neon_vmla<mode>): Likewise.
2358 (neon_vmlal<mode>): Likewise.
2359 (neon_vmls<mode>): Likewise.
2360 (neon_vmlsl<mode>): Likewise.
2361 (neon_vqdmulh<mode>): Likewise.
2362 (neon_vqdmlal<mode>): Likewise.
2363 (neon_vqdmlsl<mode>): Likewise.
2364 (neon_vmull<mode>): Likewise.
2365 (neon_vqdmull<mode>): Likewise.
2366 (neon_vsub<mode>_unspec): Likewise.
2367 (neon_vsubl<mode>): Likewise.
2368 (neon_vsubw<mode>): Likewise.
2369 (neon_vqsub<mode>): Likewise.
2370 (neon_vhsub<mode>): Likewise.
2371 (neon_vsubhn<mode>): Likewise.
2372 (neon_vceq<mode>): Likewise.
2373 (neon_vcge<mode>): Likewise.
2374 (neon_vcgeu<mode>): Likewise.
2375 (neon_vcgt<mode>): Likewise.
2376 (neon_vcgtu<mode>): Likewise.
2377 (neon_vcle<mode>): Likewise.
2378 (neon_vclt<mode>): Likewise.
2379 (neon_vcage<mode>): Likewise.
2380 (neon_vcagt<mode>): Likewise.
2381 (neon_vtst<mode>): Likewise.
2382 (neon_vabd<mode>): Likewise.
2383 (neon_vabdl<mode>): Likewise.
2384 (neon_vaba<mode>): Likewise.
2385 (neon_vabal<mode>): Likewise.
2386 (neon_vmax<mode>): Likewise.
2387 (neon_vmin<mode>): Likewise.
2388 (neon_vpaddl<mode>): Likewise.
2389 (neon_vpadal<mode>): Likewise.
2390 (neon_vpmax<mode>): Likewise.
2391 (neon_vpmin<mode>): Likewise.
2392 (neon_vrecps<mode>): Likewise.
2393 (neon_vrsqrts<mode>): Likewise.
2394 (neon_vqabs<mode>): Likewise.
2395 (neon_vqneg<mode>): Likewise.
2396 (neon_vcls<mode>): Likewise.
2397 (clz<mode>2): Likewise.
2398 (popcount<mode>2): Likewise.
2399 (neon_vrecpe): Likewise.
2400 (neon_vrsqrte): Likewise.
2401 (neon_vget_lane<mode>_sext_internal): Likewise.
2402 (neon_vget_lane<mode>_zext_internal): Likewise.
2403 (neon_vdup_n<mode>): Likewise.
2404 (neon_vdup_nv2di): Likewise.
2405 (neon_vdpu_lane<mode>_internal): Likewise.
2406 (neon_vswp<mode>): Likewise.
2407 (float<mode><V_cvtto>2): Likewise.
2408 (floatuns<mode><V_cvtto>2): Likewise.
2409 (fix_trunc<mode><V_cvtto>)2): Likewise
2410 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2411 (neon_vcvt<mode>): Likewise.
2412 (neon_vcvtv4sfv4hf): Likewise.
2413 (neon_vcvtv4hfv4sf): Likewise.
2414 (neon_vcvt_n<mode>): Likewise.
2415 (neon_vmovn<mode>): Likewise.
2416 (neon_vqmovn<mode>): Likewise.
2417 (neon_vqmovun<mode>): Likewise.
2418 (neon_vmovl<mode>): Likewise.
2419 (neon_vmul_lane<mode>): Likewise.
2420 (neon_vmull_lane<mode>): Likewise.
2421 (neon_vqdmull_lane<mode>): Likewise.
2422 (neon_vqdmulh_lane<mode>): Likewise.
2423 (neon_vmla_lane<mode>): Likewise.
2424 (neon_vmlal_lane<mode>): Likewise.
2425 (neon_vqdmlal_lane<mode>): Likewise.
2426 (neon_vmls_lane<mode>): Likewise.
2427 (neon_vmlsl_lane<mode>): Likewise.
2428 (neon_vqdmlsl_lane<mode>): Likewise.
2429 (neon_vext<mode>): Likewise.
2430 (neon_vrev64<mode>): Likewise.
2431 (neon_vrev32<mode>): Likewise.
2432 (neon_vrev16<mode>): Likewise.
2433 (neon_vbsl<mode>_internal): Likewise.
2434 (neon_vshl<mode>): Likewise.
2435 (neon_vqshl<mode>): Likewise.
2436 (neon_vshr_n<mode>): Likewise.
2437 (neon_vshrn_n<mode>): Likewise.
2438 (neon_vqshrn_n<mode>): Likewise.
2439 (neon_vqshrun_n<mode>): Likewise.
2440 (neon_vshl_n<mode>): Likewise.
2441 (neon_vqshl_n<mode>): Likewise.
2442 (neon_vqshlu_n<mode>): Likewise.
2443 (neon_vshll_n<mode>): Likewise.
2444 (neon_vsra_n<mode>): Likewise.
2445 (neon_vsri_n<mode>): Likewise.
2446 (neon_vsli_n<mode>): Likewise.
2447 (neon_vtbl1v8qi): Likewise.
2448 (neon_vtbl2v8qi): Likewise.
2449 (neon_vtbl3v8qi): Likewise.
2450 (neon_vtbl4v8qi): Likewise.
2451 (neon_vtbx1v8qi): Likewise.
2452 (neon_vtbx2v8qi): Likewise.
2453 (neon_vtbx3v8qi): Likewise.
2454 (neon_vtbx4v8qi): Likewise.
2455 (neon_vtrn<mode>_internal): Likewise.
2456 (neon_vzip<mode>_internal): Likewise.
2457 (neon_vuzp<mode>_internal): Likewise.
2458 (neon_vld1<mode>): Likewise.
2459 (neon_vld1_lane<mode>): Likewise.
2460 (neon_vld1_dup<mode>): Likewise.
2461 (neon_vld1_dupv2di): Likewise.
2462 (neon_vst1<mode>): Likewise.
2463 (neon_vst1_lane<mode>): Likewise.
2464 (neon_vld2<mode>): Likewise.
2465 (neon_vld2_lane<mode>): Likewise.
2466 (neon_vld2_dup<mode>): Likewise.
2467 (neon_vst2<mode>): Likewise.
2468 (neon_vst2_lane<mode>): Likewise.
2469 (neon_vld3<mode>): Likewise.
2470 (neon_vld3qa<mode>): Likewise.
2471 (neon_vld3qb<mode>): Likewise.
2472 (neon_vld3_lane<mode>): Likewise.
2473 (neon_vld3_dup<mode>): Likewise.
2474 (neon_vst3<mode>): Likewise.
2475 (neon_vst3qa<mode>): Likewise.
2476 (neon_vst3qb<mode>): Likewise.
2477 (neon_vst3_lane<mode>): Likewise.
2478 (neon_vld4<mode>): Likewise.
2479 (neon_vld4qa<mode>): Likewise.
2480 (neon_vld4qb<mode>): Likewise.
2481 (neon_vld4_lane<mode>): Likewise.
2482 (neon_vld4_dup<mode>): Likewise.
2483 (neon_vst4<mode>): Likewise.
2484 (neon_vst4qa<mode>): Likewise.
2485 (neon_vst4qb<mode>): Likewise.
2486 (neon_vst4_lane<mode>): Likewise.
2487 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2488 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2489 (neon_vec_<US>mult_lo_<mode>): Likewise.
2490 (neon_vec_<US>mult_hi_<mode>): Likewise.
2491 (neon_vec_<US>shiftl_<mode>): Likewise.
2492 (neon_unpack<US>_<mode>): Likewise.
2493 (neon_vec_<US>mult_<mode>): Likewise.
2494 (vec_pack_trunc_<mode>): Likewise.
2495 (neon_vec_pack_trunk_<mode>): Likewise.
2496 (neon_vabd<mode>_2): Likewise.
2497 (neon_vabd<mode>_3): Likewise.
2498 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2499 (thumb2_movsi_vfp): Likewise.
2500 (movdi_vfp): Likewise.
2501 (movdi_vfp_cortexa8): Likewise.
2502 (movhf_vfp_neon): Likewise.
2503 (movhf_vfp): Likewiwse.
2504 (movsf_vfp): Likewiwse.
2505 (thumb2_movsf_vfp): Likewiwse.
2506 (movdf_vfp): Likewise.
2507 (thumb2_movdf_vfp): Likewise.
2508 (movsfcc_vfp): Likewise.
2509 (thumb2_movsfcc_vfp): Likewise.
2510 (movdfcc_vfp): Likewise.
2511 (thumb2_movdfcc_vfp): Likewise.
2512 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2513 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2514 (v10_v2c): Likewise.
2515 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2516 attribute change.
2517 (cortex_a15_neon_int_2): Likewise.
2518 (cortex_a15_neon_int_3): Likewise.
2519 (cortex_a15_neon_int_4): Likewise.
2520 (cortex_a15_neon_int_5): Likewise.
2521 (cortex_a15_neon_vqneg_vqabs): Likewise.
2522 (cortex_a15_neon_vmov): Likewise.
2523 (cortex_a15_neon_vaba): Likewise.
2524 (cortex_a15_neon_vaba_qqq): Likewise.
2525 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2526 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2527 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2528 scalar_64_32_long_scalar): Likewise.
2529 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2530 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2531 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2532 lotype_qdd_64_32_long): Likewise.
2533 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2534 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2535 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2536 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2537 (cortex_a15_neon_shift_1): Likewise.
2538 (cortex_a15_neon_shift_2): Likewise.
2539 (cortex_a15_neon_shift_3): Likewise.
2540 (cortex_a15_neon_vshl_ddd): Likewise.
2541 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2542 (cortex_a15_neon_vsra_vrsra): Likewise.
2543 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2544 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2545 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2546 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2547 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2548 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2549 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2550 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2551 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2552 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2553 (cortex_a15_neon_bp_simple): Likewise.
2554 (cortex_a15_neon_bp_2cycle): Likewise.
2555 (cortex_a15_neon_bp_3cycle): Likewise.
2556 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2557 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2558 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2559 (cortex_a15_neon_vld2_4_regs): Likewise.
2560 (cortex_a15_neon_vld3_vld4): Likewise.
2561 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2562 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2563 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2564 (cortex_a15_neon_vst3_vst4): Likewise.
2565 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2566 (cortex_a15_neon_vld3_vld4_lane" 10
2567 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2568 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2569 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2570 (cortex_a15_neon_ldm_2): Likewise.0
2571 (cortex_a15_neon_stm_2): Likewise.
2572 (cortex_a15_neon_mcr): Likewise.
2573 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2574 (cortex_a15_neon_mrc): Likewise.
2575 (cortex_a15_neon_mrrc): Likewise.
2576 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2577 change.
2578 (cortex_a15_alu_shift): Likewise.
2579 (cortex_a15_alu_shift_reg): Likewise.
2580 (cortex_a15_mult32): Likewise.
2581 (cortex_a15_mult64): Likewise.
2582 (cortex_a15_block): Likewise.
2583 (cortex_a15_branch): Likewise.
2584 (cortex_a15_load1): Likewise.
2585 (cortex_a15_load3): Likewise.
2586 (cortex_a15_store1): Likewise.
2587 (cortex_a15_store3): Likewise.
2588 (cortex_a15_call): Likewise.
f43245d1 2589 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2590 (cortex_a5_f2r): Likewise.
2591 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2592 change.
2593 (cortex_a53_f2r): Likewise.
2594 * config/arm/cortex-a7.md
2595 (cortex_a7_branch): Update for attribute change.
2596 (cortex_a7_call): Likewise.
2597 (cortex_a7_alu_imm): Likewise.
2598 (cortex_a7_alu_reg): Likewise.
2599 (cortex_a7_alu_shift): Likewise.
2600 (cortex_a7_mul): Likewise.
2601 (cortex_a7_load1): Likewise.
2602 (cortex_a7_store1): Likewise.
2603 (cortex_a7_load2): Likewise.
2604 (cortex_a7_store2): Likewise.
2605 (cortex_a7_load3): Likewise.
2606 (cortex_a7_store3): Likewise.
2607 (cortex_a7_load4): Likewise.
2608 (cortex_a7_store4): Likewise.
2609 (cortex_a7_fpalu): Likewise.
2610 (cortex_a7_fconst): Likewise.
2611 (cortex_a7_fpmuls): Likewise.
2612 (cortex_a7_neon_mul): Likewise.
2613 (cortex_a7_fpmacs): Likewise.
2614 (cortex_a7_neon_mla: Likewise.
2615 (cortex_a7_fpmuld: Likewise.
2616 (cortex_a7_fpmacd: Likewise.
2617 (cortex_a7_fpfmad: Likewise.
2618 (cortex_a7_fdivs: Likewise.
2619 (cortex_a7_fdivd: Likewise.
2620 (cortex_a7_r2f: Likewise.
2621 (cortex_a7_f2r: Likewise.
2622 (cortex_a7_f_flags: Likewise.
2623 (cortex_a7_f_loads: Likewise.
2624 (cortex_a7_f_loadd: Likewise.
2625 (cortex_a7_f_stores: Likewise.
2626 (cortex_a7_f_stored: Likewise.
2627 (cortex_a7_neon): Likewise.
2628 * config/arm/cortex-a8-neon.md
2629 (cortex_a8_neon_mrc): Update for attribute change.
2630 (cortex_a8_neon_mrrc): Likewise.
2631 (cortex_a8_neon_int_1): Likewise.
2632 (cortex_a8_neon_int_2): Likewise.
2633 (cortex_a8_neon_int_3): Likewise.
2634 (cortex_a8_neon_int_4): Likewise.
2635 (cortex_a8_neon_int_5): Likewise.
2636 (cortex_a8_neon_vqneg_vqabs): Likewise.
2637 (cortex_a8_neon_vmov): Likewise.
2638 (cortex_a8_neon_vaba): Likewise.
2639 (cortex_a8_neon_vaba_qqq): Likewise.
2640 (cortex_a8_neon_vsma): Likewise.
2641 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2642 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2643 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2644 long_scalar): Likewise.
003bb7f3
JG
2645 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2646 (cortex_a8_neon_mla_qqq_8_16): Likewise.
2647 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2648 long_scalar_qdd_64_32_long): Likewise.
2649 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2650 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2651 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
2652 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2653 (cortex_a8_neon_shift_1): Likewise.
2654 (cortex_a8_neon_shift_2): Likewise.
2655 (cortex_a8_neon_shift_3): Likewise.
2656 (cortex_a8_neon_vshl_ddd): Likewise.
2657 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2658 (cortex_a8_neon_vsra_vrsra): Likewise.
2659 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
2660 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
2661 (cortex_a8_neon_fp_vsum): Likewise.
2662 (cortex_a8_neon_fp_vmul_ddd): Likewise.
2663 (cortex_a8_neon_fp_vmul_qqd): Likewise.
2664 (cortex_a8_neon_fp_vmla_ddd): Likewise.
2665 (cortex_a8_neon_fp_vmla_qqq): Likewise.
2666 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
2667 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
2668 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2669 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2670 (cortex_a8_neon_bp_simple): Likewise.
2671 (cortex_a8_neon_bp_2cycle): Likewise.
2672 (cortex_a8_neon_bp_3cycle): Likewise.
2673 (cortex_a8_neon_ldr): Likewise.
2674 (cortex_a8_neon_str): Likewise.
2675 (cortex_a8_neon_vld1_1_2_regs): Likewise.
2676 (cortex_a8_neon_vld1_3_4_regs): Likewise.
2677 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2678 (cortex_a8_neon_vld2_4_regs): Likewise.
2679 (cortex_a8_neon_vld3_vld4): Likewise.
2680 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2681 (cortex_a8_neon_vst1_3_4_regs): Likewise.
2682 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
2683 (cortex_a8_neon_vst3_vst4): Likewise.
2684 (cortex_a8_neon_vld1_vld2_lane): Likewise.
2685 (cortex_a8_neon_vld3_vld4_lane): Likewise.
2686 (cortex_a8_neon_vst1_vst2_lane): Likewise.
2687 (cortex_a8_neon_vst3_vst4_lane): Likewise.
2688 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
2689 (cortex_a8_neon_mcr): Likewise.
2690 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 2691 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
2692 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
2693 change.
2694 (ca9_neon_mrrc): Likewise.
2695 (cortex_a9_neon_int_1): Likewise.
2696 (cortex_a9_neon_int_2): Likewise.
2697 (cortex_a9_neon_int_3): Likewise.
2698 (cortex_a9_neon_int_4): Likewise.
2699 (cortex_a9_neon_int_5): Likewise.
2700 (cortex_a9_neon_vqneg_vqabs): Likewise.
2701 (cortex_a9_neon_vmov): Likewise.
2702 (cortex_a9_neon_vaba): Likewise.
2703 (cortex_a9_neon_vaba_qqq): Likewise.
2704 (cortex_a9_neon_vsma): Likewise.
2705 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2706 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2707 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2708 long_scalar): Likewise.
003bb7f3
JG
2709 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2710 (cortex_a9_neon_mla_qqq_8_16): Likewise.
2711 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2712 long_scalar_qdd_64_32_long): Likewise.
2713 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2714 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2715 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
2716 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2717 (cortex_a9_neon_shift_1): Likewise.
2718 (cortex_a9_neon_shift_2): Likewise.
2719 (cortex_a9_neon_shift_3): Likewise.
2720 (cortex_a9_neon_vshl_ddd): Likewise.
2721 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2722 (cortex_a9_neon_vsra_vrsra): Likewise.
2723 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
2724 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
2725 (cortex_a9_neon_fp_vsum): Likewise.
2726 (cortex_a9_neon_fp_vmul_ddd): Likewise.
2727 (cortex_a9_neon_fp_vmul_qqd): Likewise.
2728 (cortex_a9_neon_fp_vmla_ddd): Likewise.
2729 (cortex_a9_neon_fp_vmla_qqq): Likewise.
2730 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
2731 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
2732 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2733 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2734 (cortex_a9_neon_bp_simple): Likewise.
2735 (cortex_a9_neon_bp_2cycle): Likewise.
2736 (cortex_a9_neon_bp_3cycle): Likewise.
2737 (cortex_a9_neon_ldr): Likewise.
2738 (cortex_a9_neon_str): Likewise.
2739 (cortex_a9_neon_vld1_1_2_regs): Likewise.
2740 (cortex_a9_neon_vld1_3_4_regs): Likewise.
2741 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2742 (cortex_a9_neon_vld2_4_regs): Likewise.
2743 (cortex_a9_neon_vld3_vld4): Likewise.
2744 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2745 (cortex_a9_neon_vst1_3_4_regs): Likewise.
2746 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
2747 (cortex_a9_neon_vst3_vst4): Likewise.
2748 (cortex_a9_neon_vld1_vld2_lane): Likewise.
2749 (cortex_a9_neon_vld3_vld4_lane): Likewise.
2750 (cortex_a9_neon_vst1_vst2_lane): Likewise.
2751 (cortex_a9_neon_vst3_vst4_lane): Likewise.
2752 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
2753 (cortex_a9_neon_mcr): Likewise.
2754 (cortex_a9_neon_mcr_2_mcrr): Likewise.
2755 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
2756 (cortex_a9_fps): Likewise.
2757 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
2758 change.
2759 (cortex_m4_fmuls): Likewise.
2760 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2761 change.
2762 (cortex_r4_mrc): Likewise.
2763 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 2764 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 2765 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
2766 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
2767 attribute change.
003bb7f3
JG
2768 (pj4_core_to_vfp): Likewise.
2769 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
2770 attribute change.
2771 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
2772 (vfp_fstore): Likewise.
2773 * doc/md.texi: Change references to neon_type to refer to type.
2774
fbe0dc78
DS
27752013-09-04 Dodji Seketeli <dodji@redhat.com>
2776
2777 * tree.h (DECL_BUILT_IN): Fix typo in comment.
2778
c167bc5b
DE
27792013-09-04 David Edelsohn <dje.gcc@gmail.com>
2780
2781 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
2782 lglobl if not weak.
2783
035cb59f
ER
27842013-09-04 Easwaran Raman <eraman@google.com>
2785
2786 PR middle-end/57370
2787 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
2788 (build_and_add_sum): Use it.
2789 (appears_later_in_bb): Simplify code.
2790
71191083
TJ
27912013-09-04 Teresa Johnson <tejohnson@google.com>
2792
2793 * dumpfile.c (dump_finish): Don't close stderr/stdout.
2794
0c488213
JG
27952013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
2796
2797 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
2798
61a74079
JH
27992013-09-04 Jan Hubicka <jh@suse.cz>
2800
2801 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
2802 * ipa-devirt.c: Include diganostic.h
2803 (odr_type_d): Add types and types_set.
2804 (hash_type_name): Work for types with vtables during LTO.
2805 (odr_hasher::remove): Fix comment; destroy types_set.
2806 (add_type_duplicate): New function,
2807 (get_odr_type): Use it.
2808 (dump_type_inheritance_graph): Dump type duplicates.
2809 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
2810 graph.
2811 * tree.c (types_same_for_odr): Give exact answers on types with
2812 virtual tables.
2813
24ba8195
DS
28142013-09-04 Dodji Seketeli <dodji@redhat.com>
2815
2816 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
2817 explaining their differences.
2818
0a04869e
SKS
28192013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
2820
2821 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
2822
3b18bc42
JL
28232013-09-03 Jeff Law <law@redhat.com>
2824
2825 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
2826 when not threading through a joiner block. Pass joiner/no joiner
2827 state to register_jump_thread.
2828 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
2829 state from argument rather than implying on path length.
2830 Dump the entire jump thread path into debugging dump.
2831 * tree-flow.h (register_jump_thread): Update prototype.
2832
ae84e151
XDL
28332013-08-29 Xinliang David Li <davidxl@google.com>
2834
2835 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2836 Remove a trivial gcc_assert.
2837
c716e67f
XDL
28382013-08-29 Xinliang David Li <davidxl@google.com>
2839
2840 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
2841 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
2842 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2843 Delay base decl alignment adjustment.
2844 * tree-vectorizer.c (vect_destroy_datarefs): New function.
2845 * tree-vectorizer.h: New data structure.
2846 (set_dr_misalignment): New function.
2847 (dr_misalignment): Ditto.
2848 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
2849 (vectorizable_load): Ditto.
2850 (ensure_base_align): New function.
2851 (vectorize_loops): Add dbg_cnt support.
2852 (execute_vect_slp): Ditto.
2853 * dbgcnt.def: New debug counter.
2854 * Makefile: New dependency.
2855
db8800bc
MI
28562013-09-03 Meador Inge <meadori@codesourcery.com>
2857
2858 Revert:
2859
2860 2013-08-30 Meador Inge <meadori@codesourcery.com>
2861
2862 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2863
0d9b4f5c
DE
28642013-09-03 David Edelsohn <dje.gcc@gmail.com>
2865
2866 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
2867 function descriptor.
2868
29e810b9
RB
28692013-09-03 Richard Biener <rguenther@suse.de>
2870
2871 * tree-affine.c (add_elt_to_tree): Fix association issue,
2872 avoid useless converts and make sure to always return a
2873 properly typed result.
2874
dbfc2894
RB
28752013-09-03 Richard Biener <rguenther@suse.de>
2876
2877 PR middle-end/57656
2878 * fold-const.c (negate_expr_p): Fix division case.
2879 (negate_expr): Likewise.
2880
fa3bf4ce
RB
28812013-09-03 Richard Biener <rguenther@suse.de>
2882
2883 PR lto/58285
2884 * tree-streamer-out.c: Include tm.h.
2885 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
2886
a64bbb3f
JH
28872013-09-03 Jan Hubicka <jh@suse.cz>
2888
2889 * tree-profile.c (tree_profiling): Cleanup CFG when done.
2890
93ed07e2
AM
28912013-09-03 Alan Modra <amodra@gmail.com>
2892
2893 * config.gcc (powerpc*-*-linux*): Add support for little-endian
2894 multilibs to big-endian target and vice versa.
2895 * config/rs6000/t-linux64: Use := assignment on all vars.
2896 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2897 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2898 * config/rs6000/t-linux64le: New file.
2899 * config/rs6000/t-linux64bele: New file.
2900 * config/rs6000/t-linux64lebe: New file.
2901
07d6cd64
JH
29022013-09-02 Jan Hubicka <jh@suse.cz>
2903
2904 * ipa-inline-transform.c (inline_transform): Do not
2905 optimize_inline_calls when not optimizing.
2906
8e4c9a10
JH
29072013-09-02 Jan Hubicka <jh@suse.cz>
2908
2909 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
2910 duplicated nodes for assembler names.
2911 * symtab.c (symtab_unregister_node): Do not attempt to unlink
2912 hard registers from assembler name hash.
2913
c91061e6
JH
29142013-09-02 Jan Hubicka <jh@suse.cz>
2915
2916 * ipa-split.c (execute_split_functions): Split externally visible
2917 functions called once.
2918
2fd0985c
MJ
29192013-09-02 Martin Jambor <mjambor@suse.cz>
2920
2921 PR ipa/58106
2922 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
2923 linked list. When finding the correct duplicate, also consider also
2924 the caller in additon to its inlined_to node.
2925
91bd4114
JG
29262013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
2927
2928 * config/aarch64/aarch64-simd-builtins.def
2929 (dup_lane_scalar): Remove.
2930 * config/aarch64/aarch64-simd.md
2931 (aarch64_simd_dup): Add 'w->w' alternative.
2932 (aarch64_dup_lane<mode>): Allow for VALL.
2933 (aarch64_dup_lane_scalar<mode>): Remove.
2934 (aarch64_dup_lane_<vswap_width_name><mode>): New.
2935 (aarch64_get_lane_signed<mode>): Add w->w altenative.
2936 (aarch64_get_lane_unsigned<mode>): Likewise.
2937 (aarch64_get_lane<mode>): Likewise.
2938 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
2939 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
2940 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
2941 (VCON): Change container of V2SF.
2942 (vswap_width_name): Likewise.
2943 * config/aarch64/arm_neon.h
2944 (__aarch64_vdup_lane_any): New.
2945 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2946 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
2947 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2948
d617d2d8
EB
29492013-09-02 Eric Botcazou <ebotcazou@adacore.com>
2950
2951 PR middle-end/56382
2952 * expr.c (emit_move_complex): Do not move complex FP values as parts if
2953 the source or the destination is a single hard register.
2954
63fdb7be
RB
29552013-09-02 Richard Biener <rguenther@suse.de>
2956
2957 PR middle-end/57511
2958 * tree-scalar-evolution.c (instantiate_scev_name): Allow
2959 non-linear SCEVs.
2960
78de2333
RB
29612013-09-02 Richard Biener <rguenther@suse.de>
2962
2963 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
2964 arithmetic to sizetype.
2965
85ff4ec6
BC
29662013-09-02 Bin Cheng <bin.cheng@arm.com>
2967
2968 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2969 Find auto-increment use both before and after candidate.
2970
576016fe
MP
29712013-09-02 Marek Polacek <polacek@redhat.com>
2972
2973 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2974
08f835dc
JH
29752013-09-01 Jan Hubicka <jh@suse.cz>
2976
2977 * Makefile.in: Add ipa-profile.o
2978 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
2979 * cgraph.c (struct cgraph_propagate_frequency_data,
2980 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
2981 ipa-profile.c; replace cgraph_ by ipa_ prefix.
2982 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
2983 * ipa-inline-analysis.c: Include ipa-utils.h;
2984 drop duplicated cfgloop.h.
08f835dc
JH
2985 (inline_update_callee_summaries): Update.
2986 * ipa-profile.c: New file.
2987 * ipa-utils.h (ipa_propagate_frequency): Declare.
2988 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 2989 data-streamer.h, value-prof.h.
08f835dc
JH
2990 (symtab_remove_unreachable_nodes): Update profile.
2991 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
2992 account_time_size, cmp_counts, dump_histogram,
2993 ipa_profile_generate_summary, ipa_profile_write_summary,
2994 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
2995 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 2996 Move to ipa-profile.c.
08f835dc 2997
cec8583c
JDA
29982013-09-01 John David Anglin <danglin@gcc.gnu.org>
2999
3000 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
3001
bbc9396b
JH
30022013-09-01 Jan Hubicka <jh@suse.cz>
3003
3004 * common.opt (fdevirtualize-speculatively): New function.
3005 * invoke.texi (fdevirtualize-speculatively): Document.
3006 * ipa-devirt.c: Include ipa-inline.h
3007 (likely_target_p): New function.
3008 (ipa_devirt): New function.
3009 (gate_ipa_devirt): New function.
3010 (pass_data_ipa_devirt): New static var.
3011 (pass_ipa_devirt): Likewise.
3012 (make_pass_ipa_devirt): New function.
3013 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
3014 (common_handle_option): Disable devirtualization when
3015 value range profiling is available.
3016 * passes.def (pass_ipa_devirt): Add.
3017 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 3018 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 3019
0cea211e
IS
30202013-09-01 Iain Sandoe <iain@codesourcery.com>
3021
3022 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
3023 include sanitize(undefined).
3024
5e351e96
DN
30252013-08-31 Diego Novillo <dnovillo@google.com>
3026
3027 * Makefile.in (TREE_CORE_H): Define.
3028 (TREE_H): Use.
3029 (GTFILES): Add tree-core.h.
3030 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
3031 size the array.
3032 * tree-core.h: New file.
3033 Move all data structures, enum, typedefs, global
3034 declarations and constants from ...
3035 * tree.h: ... here.
3036
63bf9a90
JH
30372013-08-31 Jan Hubicka <jh@suse.cz>
3038
3039 * bulitins.c (expand_builtin): Do not early exit for gcov
3040 instrumented functions.
3041
5c0abd6a
MP
30422013-08-31 Marek Polacek <polacek@redhat.com>
3043
3044 * ubsan.c: Include tm_p.h.
3045
4843f032
JH
30462013-08-31 Jan Hubicka <jh@suse.cz>
3047
8356c89c
JH
3048 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
3049 warning.
3050
4843f032
JH
3051 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
3052 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 3053 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
3054 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
3055 (ipa_merge_profiles): New function.
3056 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
3057 (lto_input_function_body): Likewise.
5e581212
JH
3058 * ipa-utils.h (ipa_merge_profiles): Declare.
3059 * lto-streamer.h (lto_input_function_body): Update prototype.
3060 (emit_label_in_global_context_p): Remove.
3061 * lto-symtab.c: Include ipa-utils.h
3062 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 3063
57292ce9
JH
30642013-08-31 Jan Hubicka <jh@suse.cz>
3065
3066 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
3067
b9cbfeeb
JH
30682013-08-31 Jan Hubicka <jh@suse.cz>
3069
3070 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
3071
41dedebd
UB
30722013-08-31 Uros Bizjak <ubizjak@gmail.com>
3073
3074 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
3075 "cmp" RTX before signed_comparison_operator check to account
3076 for "code" changes.
3077
06d65050
JH
30782013-08-30 Jan Hubicka <jh@suse.cz>
3079
41dedebd 3080 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
3081 (detect_type_change_1): Rename to ...
3082 (detect_type_change): ... this one; early return on non-polymorphic
3083 types.
41dedebd 3084 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
3085 use of detect_type_change.
3086 (compute_complex_assign_jump_func): Add param_type parameter;
3087 update use of detect_type_change_ssa.
3088 (compute_complex_ancestor_jump_func): Likewise.
3089 (ipa_get_callee_param_type): New function.
3090 (ipa_compute_jump_functions_for_edge): Compute parameter type;
3091 update calls to the jump function computation functions.
3092
600b5b1d
TJ
30932013-08-30 Teresa Johnson <tejohnson@google.com>
3094 Steven Bosscher <steven@gcc.gnu.org>
3095
3096 * cfgrtl.c (fixup_new_cold_bb): New routine.
3097 (commit_edge_insertions): Invoke fixup_partitions.
3098 (find_partition_fixes): New routine.
3099 (fixup_partitions): Ditto.
3100 (verify_hot_cold_block_grouping): Update comments.
3101 (rtl_verify_edges): Invoke find_partition_fixes.
3102 (rtl_verify_bb_pointers): Update comments.
3103 (rtl_verify_bb_layout): Ditto.
3104 * basic-block.h (probably_never_executed_edge_p): Declare.
3105 (fixup_partitions): Ditto.
3106 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
3107 * bb-reorder.c (sanitize_hot_paths): New function.
3108 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
3109 sanitize_hot_paths.
3110 * predict.c (probably_never_executed_edge_p): New routine.
3111 * cfg.c (check_bb_profile): Add partition insanity warnings.
3112
0a6ea5c9
MI
31132013-08-30 Meador Inge <meadori@codesourcery.com>
3114
3115 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3116
de5a5fa1
MP
31172013-08-30 Marek Polacek <polacek@redhat.com>
3118
3119 * Makefile.in (ubsan.o): Add.
3120 (c-family/c-ubsan.o): Add.
3121 (builtins.o): Add ubsan.h dependency.
3122 * ubsan.h: New file.
3123 * ubsan.c: New file.
3124 * common.opt: Add -fsanitize=undefined option.
3125 (flag_sanitize): Add variable.
3126 (fsanitize=): Add option. Add Driver.
3127 (fsanitize=thread): Remove option.
3128 (fsanitize=address): Likewise.
3129 (static-libubsan): New option.
3130 * doc/invoke.texi: Document the new flag and -static-libubsan.
3131 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
3132 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
3133 * builtin-attrs.def (ATTR_COLD): Define.
3134 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3135 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
3136 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
3137 * flag-types.h (sanitize_code): New enum.
3138 * opts.c (common_handle_option): Parse command line arguments
3139 of -fsanitize=. Add -fsanitize=unreachable option.
3140 * varasm.c (get_variable_section): Adjust.
3141 (assemble_noswitch_variable): Likewise.
3142 (assemble_variable): Likewise.
3143 (output_constant_def_contents): Likewise.
3144 (categorize_decl_for_section): Likewise.
3145 (place_block_symbol): Likewise.
3146 (output_object_block): Likewise.
3147 * builtins.def: Likewise.
3148 * toplev.c (compile_file): Likewise.
3149 (process_options): Likewise.
3150 * cppbuiltin.c: Likewise.
3151 * tsan.c (tsan_pass): Likewise.
3152 (tsan_gate): Likewise.
3153 (tsan_gate_O0): Likewise.
3154 * cfgexpand.c (partition_stack_vars): Likewise.
3155 (expand_stack_vars): Likewise.
3156 (defer_stack_allocation): Likewise.
3157 (expand_used_vars): Likewise.
3158 * cfgcleanup.c (old_insns_match_p): Likewise.
3159 * asan.c (asan_finish_file): Likewise.
3160 (asan_instrument): Likewise.
3161 (gate_asan): Likewise.
3162 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
3163 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3164 (asan_global_struct): Use pointer_sized_int_node instead
3165 calling build_nonstandard_integer_type.
3166 (initialize_sanitizer_builtins): Likewise.
3167 (asan_finish_file): Likewise.
3168 * gcc.c: Document %{%:function(args):X}.
3169 (static_spec_functions): Add sanitize.
3170 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
3171 store funcval != NULL there.
3172 (do_spec_1): Adjust handle_spec_function caller.
3173 (handle_braces): Allow %:function(args) as condition.
3174 (sanitize_spec_function): New function.
3175 (ADD_STATIC_LIBUBSAN_LIBS): Define.
3176 (LIBUBSAN_SPEC): Likewise.
3177 (LIBUBSAN_EARLY_SPEC): Likewise.
3178 (SANITIZER_SPEC): Handle libubsan.
3179 (SANITIZER_EARLY_SPEC): Likewise.
3180 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
3181 instead of fsanitize=address.
3182 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
3183 instead of fsanitize=address*.
3184 * builtins.c: Include ubsan.h.
3185 (fold_builtin_0): Instrument __builtin_unreachable.
3186 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
3187 instead of flag_asan.
3188 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
3189 (pointer_sized_int_node): Define.
41dedebd 3190 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 3191
f07f30cf
MS
31922013-08-30 Mike Stump <mikestump@comcast.net>
3193
3194 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
3195 with RE patterns.
3196
8a41354f
JH
31972013-08-29 Jan Hubicka <jh@suse.cz>
3198
3199 * cgraph.c (cgraph_function_body_availability): Handle weakref
3200 correctly.
3201 * passes.def: Remove pass_fixup_cfg.
3202 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
3203 track when we need to remove functions.
3204 (gate_ipa_inline): Execute inlining always; add comment why.
3205 (pass_data_ipa_inline): Remove TODO_remove_functions.
3206 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
3207 do not produce summaries.
3208 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
3209 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
3210 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
3211 constant pool and vtable.
3212
dc8d7a0f
TB
32132013-08-30 Tejas Belagod <tejas.belagod@arm.com>
3214
41dedebd
UB
3215 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
3216 New arm_neon.h's internal macros to specify 64-bit constants.
3217 Avoid using stdint.h's macros.
dc8d7a0f 3218
ac7eacd2
JR
32192013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
3220
3221 * recog.c (verify_changes): Verify that changes[i].old is non-zero
3222 before applying REG_P.
3223
8b29fd4e
JJ
32242013-08-30 Jakub Jelinek <jakub@redhat.com>
3225
3226 PR tree-optimization/58277
3227 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
3228 after seeing too many stmts with vdef in between dombb and current
3229 bb, invalidate everything.
3230
26d75703
RB
32312013-08-30 Richard Biener <rguenther@suse.de>
3232
3233 * fold-const.c (fold_single_bit_test): Fix overflow test.
3234
f7e088e7
EB
32352013-08-30 Eric Botcazou <ebotcazou@adacore.com>
3236
3237 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
3238 and which can live in a register, always retrieve the value on entry.
3239 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
3240 passed by invisible reference specially.
3241 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
3242 (vt_add_function_parameter): Correctly deal with a parameter passed by
3243 invisible reference.
3244
32452013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
3246
3247 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
3248
6e8dad05
RB
32492013-08-30 Richard Biener <rguenther@suse.de>
3250
3251 PR tree-optimization/58228
3252 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
3253 allow invariant loads in nested loop vectorization.
3254
062ef2c8
RB
32552013-08-30 Richard Biener <rguenther@suse.de>
3256
3257 PR tree-optimization/58223
3258 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
3259 (has_anti_or_output_dependence): ... this and adjust to also
3260 look for output dependences.
3261 (mark_nodes_having_upstream_mem_writes): Adjust.
3262 (rdg_flag_uses): Likewise.
3263
7a764c60
RB
32642013-08-30 Richard Biener <rguenther@suse.de>
3265
3266 PR tree-optimization/58010
3267 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3268 assert that we have a loop-closed PHI.
3269
82e9d642
JH
32702013-08-29 Jan Hubicka <jh@suse.cz>
3271
3272 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
3273 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
3274 * lto-section-in.c (lto_free_function_in_decl_state): New function.
3275 (lto_free_function_in_decl_state_for_node): New function.
3276
9cc1fb4b
XDL
32772013-08-29 Xinliang David Li <davidxl@google.com>
3278
41dedebd 3279 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
3280 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
3281 Emit alignment peeling message with default -fopt-info.
3282 (vect_loop_versioning): Emit loop version info message.
41dedebd 3283 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
3284 (execute_vect_slp): Ditto.
3285
440a5082
EB
32862013-08-29 Eric Botcazou <ebotcazou@adacore.com>
3287
3288 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
3289 of the clone from the DECL_NAME of the original function.
3290
3fa3690d
OE
32912013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
3292
3293 * passes.c (register_pass): Add overload.
3294 * tree-pass.h (register_pass): Forward declare it. Add comment.
3295
0170f33c
JH
32962013-08-29 Jan Hubicka <jh@suse.cz>
3297
41dedebd
UB
3298 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
3299 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
3300 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
3301 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3302 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
3303 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 3304 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3305 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
3306
103ff0d6
TJ
33072013-08-29 Teresa Johnson <tejohnson@google.com>
3308
3309 * dumpfile.c (dump_loc): Output column number.
3310 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
3311 * doc/invoke.texi: Document optall -fopt-info flag.
3312 * profile.c (read_profile_edge_counts): Use new dump framework.
3313 (compute_branch_probabilities): Ditto.
3314 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
3315 when pass not in any opt group.
3316 * pass_manager.h (pass_manager::get_pass_profile): New method.
3317 * value-prof.c (check_counter): Use new dump framework.
3318 (check_ic_target): Ditto.
3319 * coverage.c (get_coverage_counts): Ditto.
3320 (coverage_init): Setup new dump framework.
3321
301bbc16
RB
33222013-08-29 Richard Biener <rguenther@suse.de>
3323
3324 PR tree-optimization/58246
3325 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
3326 handle the dominance check inside a basic-block.
3327
1b275000
RB
33282013-08-29 Richard Biener <rguenther@suse.de>
3329
3330 PR middle-end/57287
3331 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3332 of default defs that appear in abnormal PHI nodes.
3333
6b1184ba
RB
33342013-08-29 Richard Biener <rguenther@suse.de>
3335
3336 PR tree-optimization/57685
3337 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3338 single-use operands to avoid exponential complexity.
3339
1b08b734
DC
33402013-08-28 Dehao Chen <dehao@google.com>
3341
3342 * ipa-inline.c (edge_badness): Fix integer underflow.
3343
48a3fa69
UB
33442013-08-28 Uros Bizjak <ubizjak@gmail.com>
3345
3346 * gtm-builtins.def (_ITM_free): Declare leaf.
3347
215f73e6
JJ
33482013-08-28 Jakub Jelinek <jakub@redhat.com>
3349
3350 PR target/58067
3351 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3352 (*tls_local_dynamic_base_64_largepic): Likewise.
3353 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3354 Remove predicate from call operand.
3355 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3356 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3357
34554d1a
JL
33582013-08-28 Jeff Law <law@redhat.com>
3359
3360 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3361 checks for the number of predecessors and successors allowed.
3362 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3363 which require copying a joiner block if there is a request which
3364 is a subpath that requires no joiner block copying.
3365
c01c111b
JH
33662013-08-28 Jan Hubicka <jh@suse.cz>
3367
3368 * lto-streamer-out.c (DFS_write_tree_body): Drop
3369 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3370 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3371 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3372 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3373 Do not read DECL_ERROR_ISSUED.
3374 (unpack_ts_decl_with_vis_value_fields): Do not read
3375 DECL_DEFER_OUTPUT.
48a3fa69
UB
3376 (lto_input_ts_binfo_tree_pointers): Do not read
3377 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3378 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3379 write DECL_ERROR_ISSUED..
3380 (pack_ts_decl_with_vis_value_fields): Do not write
3381 DECL_DEFER_OUTPUT.
3382 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3383 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3384 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3385 * tree.h (tree_decl_common): Update comment.
3386 (DECL_ERROR_ISSUED): Remove.
3387
4b128ece
JJ
33882013-08-28 Jakub Jelinek <jakub@redhat.com>
3389
3390 PR middle-end/58257
3391 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3392
12211b99 33932013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3394
3395 * builtins.def (free): Declare leaf.
3396
8dce4dbc
DM
33972013-08-27 David Malcolm <dmalcolm@redhat.com>
3398
3399 * gdbhooks.py: New.
3400 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3401 * configure: Regenerate.
3402
b8f6e610
MJ
34032013-08-27 Martin Jambor <mjambor@suse.cz>
3404
3405 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3406 (ipa_ancestor_jf_data): Likewise.
3407 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3408 (ipa_get_jf_pass_through_type_preserved): New function.
3409 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3410 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3411 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3412 (ipa_get_jf_ancestor_result): Likewise.
3413 (propagate_vals_accross_pass_through): Use
3414 ipa_get_jf_pass_through_result to do all the value mappings.
3415 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3416 type_preserved flag.
3417 (ipa_set_jf_cst_copy): New function.
3418 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3419 (ipa_set_jf_arith_pass_through): Likewise.
3420 (ipa_set_ancestor_jf): Likewise.
3421 (compute_complex_assign_jump_func): Set type_preserved instead of
3422 punting.
3423 (ipa_compute_jump_functions_for_edge): Likewise.
3424 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3425 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3426 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3427 (ipa_write_jump_function): Stream the type_preserved flags.
3428 (ipa_read_jump_function): Likewise.
3429
74bf76ed
JJ
34302013-08-27 Jakub Jelinek <jakub@redhat.com>
3431 Aldy Hernandez <aldyh@redhat.com>
3432
3433 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3434 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3435 * function.h (struct function): Add has_force_vect_loops and
3436 has_simduid_loops.
12211b99 3437 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3438 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3439 handle it.
3440 * gimple.def: Update CLAUSES comments.
3441 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3442 (gimple_build_omp_for): Add argument to prototype.
3443 (gimple_omp_for_kind): New.
3444 (gimple_omp_for_set_kind): New.
3445 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3446 GOVD_DATA_SHARE_CLASS.
3447 (enum omp_region_type): Add ORT_SIMD.
3448 (gimple_add_tmp_var): Handle ORT_SIMD.
3449 (gimplify_var_or_parm_decl): Same.
3450 (is_gimple_stmt): Same.
3451 (omp_firstprivatize_variable): Same.
3452 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3453 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3454 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3455 (omp_check_private): Handle ORT_SIMD.
3456 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3457 OMP_CLAUSE_SAFELEN.
3458 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3459 Handle OMP_CLAUSE_LASTPRIVATE.
3460 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3461 OMP_CLAUSE_SAFELEN.
3462 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3463 (gimplify_expr): Handle OMP_SIMD.
3464 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3465 (expand_GOMP_SIMD_VF): New.
3466 (expand_GOMP_SIMD_LAST_LANE): New.
3467 * internal-fn.def (GOMP_SIMD_LANE): New.
3468 (GOMP_SIMD_VF): New.
3469 (GOMP_SIMD_LAST_LANE): New.
3470 * omp-low.c: Include target.h.
3471 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3472 OMP_CLAUSE_SAFELEN.
3473 (check_omp_nesting_restrictions): Same.
3474 (omp_max_vf): New.
3475 (lower_rec_simd_input_clauses): New.
3476 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3477 OMP_CLAUSE_LINEAR.
3478 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3479 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3480 (expand_omp_build_assign): New.
3481 (expand_omp_for_init_counts): New.
3482 (expand_omp_for_init_vars): New.
3483 (extract_omp_for_update_vars): New.
3484 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3485 and rewrite accordingly.
3486 (expand_omp_simd): New.
3487 (expand_omp_for): Use expand_omp_simd.
3488 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3489 (lower_omp_for): Do not lower the body.
3490 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3491 in their own loops.
3492 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3493 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3494 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3495 (gate_tree_if_conversion): Similarly.
3496 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3497 gimple_build_omp_for.
3498 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3499 * tree-parloops (create_parallel_loop): Pass kind argument to
3500 gimple_build_omp_for.
3501 * tree-pretty-print.c (dump_omp_clause): Add cases for
3502 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3503 OMP_CLAUSE__SIMDUID_.
3504 (dump_generic_node): Handle OMP_SIMD.
3505 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3506 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3507 unroll OMP_SIMD loops here.
12211b99 3508 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3509 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3510 loop->safelen.
74bf76ed
JJ
3511 (vect_analyze_data_refs): Handle simd loops.
3512 * tree-vect-loop.c (vectorizable_live_operation): Handle
3513 IFN_GOMP_SIMD*.
12211b99 3514 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3515 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3516 (vectorizable_load): Same.
12211b99 3517 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3518 (struct simduid_to_vf): New.
3519 (simduid_to_vf::hash): New.
3520 (simduid_to-vf::equal): New.
3521 (struct simd_array_to_simduid): New.
3522 (simd_array_to_simduid::hash): New.
3523 (simd_array_to_simduid::equal): New.
3524 (adjust_simduid_builtins): New.
3525 (struct note_simd_array_uses_struct): New.
3526 (note_simd_array_uses_cb): New.
3527 (note_simd_array_uses): New.
3528 (vectorize_loops): Handle simd hints and adjust simd builtins
3529 accordingly.
3530 * tree-vectorizer.h (struct _stmt_vec_info): Add
3531 simd_lane_access_p field.
3532 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3533 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3534 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3535 (omp_clause_code_name): Same.
3536 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3537 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3538 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3539 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3540 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3541 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3542 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3543 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3544 (OMP_CLAUSE_LINEAR_STEP): New.
3545 (OMP_CLAUSE_SAFELEN_EXPR): New.
3546 (OMP_CLAUSE__SIMDUID__DECL): New.
3547 (find_omp_clause): New prototype.
3548
d0cf4e84
L
35492013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3550
3551 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3552 Haswell processor detection.
3553
992592ec
CW
35542013-08-27 Christian Widmer <shadow@umbrox.de>
3555
3556 PR target/57927
3557 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3558 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3559 AVX2 capable processors.
3560
9116eb22
TB
35612013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3562
3563 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3564 of vget_low_* with implementations in terms of other intrinsics.
3565
1c5abb53
MG
35662013-08-27 Marc Glisse <marc.glisse@inria.fr>
3567
3568 PR middle-end/57219
3569 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3570 values to -1, 0 and 1.
3571
2e100703
VP
35722013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3573
3574 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3575 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3576 (<optab><mode>3_insn): Remove.
3577 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3578 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3579 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3580 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3581 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3582 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3583 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3584 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3585 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3586 (ror<mode>3_insn): Likewise.
3587 * config/aarch64/predicates.md (aarch64_simd_register): New.
3588
4ded8276
RB
35892013-08-27 Richard Biener <rguenther@suse.de>
3590
3591 PR tree-optimization/57521
3592 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3593 one edge is non-critical.
3594 (find_phi_replacement_condition): Make sure to use a non-critical
3595 edge. Cleanup and remove old bug workarounds.
3596 (bb_postdominates_preds): Remove.
3597 (if_convertible_loop_p_1): Do not compute post-dominators.
3598 (combine_blocks): Do not free post-dominators.
3599 (main_tree_if_conversion): Likewise.
3600 (pass_data_if_conversion): Add TODO_verify_ssa.
3601
5aa11061
DD
36022013-08-27 DJ Delorie <dj@redhat.com>
3603
3604 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3605
fd91cfe3
YZ
36062013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3607
3608 * function.c (assign_parm_find_data_types): Set passed_mode and
3609 nominal_mode to the TYPE_MODE of nominal_type for the built
3610 pointer type in case of the struct-pass-by-reference.
3611
907555ce
JR
36122013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3613
3614 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
3615 (UINT16_TYPE): Change default to "unsigned int".
3616
67518c93
JR
3617 * config/avr/avr.opt (mfract-convert-truncate): New option.
3618 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
3619 is set, round negative fractional integers according to n1169
3620 when converting to integer types.
3621
d6d989fc
JH
36222013-08-26 Jan Hubicka <jh@suse.cz>
3623
3624 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
3625 methods can not be called indirectly when their address is not taken.
3626
2aa3da06
JH
36272013-08-26 Jan Hubicka <jh@suse.cz>
3628
12211b99
UB
3629 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
3630 ctor_for_folding.
2aa3da06 3631
0987ffe7
JH
36322013-08-26 Jan Hubicka <jh@suse.cz>
3633
3634 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
3635 can be unshared.
3636
befe8647
JR
36372013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3638
3639 * reload.c (find_valid_class): Allow classes that do not include
3640 FIRST_PSEUDO_REGISTER - 1.
3641
a21e735e
JH
36422013-08-26 Jan Hubicka <jh@suse.cz>
3643
3644 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
3645 fix edge count/frequency when speculation failed; fix type check
3646 for the direct call.
3647
e067bd43
JH
36482013-08-26 Jan Hubicka <jh@suse.cz>
3649
3650 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
3651
e8aec975
JH
36522013-08-26 Jan Hubicka <jh@suse.cz>
3653
3654 * ipa-inline-transform.c (inline_transform): Be ready for basic block
3655 to be changed by edge redirection.
3656
d0b66480
JH
36572013-08-26 Jan Hubicka <jh@suse.cz>
3658
12211b99
UB
3659 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
3660 formating; add sanity check.
d0b66480
JH
3661 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
3662 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
3663 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
3664 (resolve_noninline_speculation): Update callee keys, too.
3665
0f9aaac7
JH
36662013-08-26 Jan Hubicka <jh@suse.cz>
3667
3668 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
3669 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
3670
4b37444e
JR
36712013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3672
3673 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
3674 into proper place.
3675
5339fc0c
UB
36762013-08-26 Uros Bizjak <ubizjak@gmail.com>
3677
3678 * config/i386/i386.c (ix86_debug_options): Remove prototype.
3679 (x86_64_elf_select_section): Ditto.
3680 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
3681 arguments.
3682 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
3683 (output_set_got): Ditto.
3684 (ix86_unary_operator_ok): Ditto.
3685 (ix86_expand_builtin): Ditto.
3686
d5c3d3ef
JH
36872013-08-23 Jan Hubicka <jh@suse.cz>
3688
5339fc0c 3689 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 3690
5b1e7435
JH
36912013-08-23 Jan Hubicka <jh@suse.cz>
3692
3693 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
3694 (tree_decl_with_vis): Add FINAL field.
3695
ead69dac
JL
36962013-08-23 Jeff Law <law@redhat.com>
3697
3698 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
3699 the debugging dump when the expression is fully redundant.
3700
025311c4
GDR
37012013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3702
3703 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
3704 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
3705 * pretty-print.c (pp_formatted_text_data): Likewise.
3706 (pp_write_text_to_stream): Likewise.
3707 (pp_write_text_as_dot_label_to_stream): Likewise.
3708 (pp_append_r): Likewise.
3709 (pp_format): Likewise.
3710 (pp_flush): Likewise.
3711 (pp_clear_output_area): Likewise.
3712 (pp_append_text): Likewise.
3713 (pp_formatted_text): Likewise.
3714 (pp_remaining_character_count_for_line): Likewise.
3715 (pp_newline): Likewise.
3716 (pp_character): Likewise.
3717 (output_buffer::~output_buffer): Define.
3718 (pretty_printer::~pretty_printer): Destruct output buffer.
3719 * pretty-print.h (output_buffer::~output_buffer): Declare.
3720 (pretty_printer::~pretty_printer): Declare virtual.
3721
0cadbfaa
MG
37222013-08-24 Marc Glisse <marc.glisse@inria.fr>
3723
3724 PR other/57324
3725 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
3726 HOST_WIDE_INT_M1U): New macros.
3727 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
3728 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
3729 unsigned -1 for lshift.
3730 * cse.c (cse_insn): Likewise.
3731 * double-int.c (rshift_double, lshift_double): Likewise.
3732 * builtins.c (fold_builtin_bitop): Likewise.
3733 * combine.c (force_to_mode): Likewise.
3734 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
3735 * simplify-rtx.c (simplify_const_unary_operation,
3736 simplify_const_binary_operation): Likewise.
3737 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
3738 check_va_list_escapes): Likewise.
3739 * rtlanal.c (nonzero_bits1): Likewise.
3740 * expmed.c (expand_smod_pow2): Likewise.
3741 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
3742
009e5353
JH
37432013-08-23 Jan Hubicka <jh@suse.cz>
3744
3745 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
3746 as having address taken.
3747
c4be6568
JH
37482013-08-23 Jan Hubicka <jh@suse.cz>
3749
64cbf23d
JH
3750 * ipa-utils.h (method_class_type): Declare.
3751 * ipa-devirt.c (method_class_type): Export.
3752
c4be6568
JH
3753 * cgraphunit.c (analyze_functions): Do basic devirtualization;
3754 do not walk base classes of anonymous types.
3755
97aba8e9
KK
37562013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
3757
3758 PR rtl-optimization/58220
3759 PR regression/58221
3760 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
3761 handle SEQUENCE insns properly.
3762
0fc80001
GDR
37632013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3764
3765 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
3766 definition.
3767 (pp_newline_and_indent): Likewise.
3768 (pp_separate_with): Likewise.
3769 * pretty-print.c (pp_newline_and_flush): Define.
3770 (pp_newline_and_indent): Likewise.
3771 (pp_separate_with): Likewise.
3772
520a5868
JJ
37732013-08-23 Jakub Jelinek <jakub@redhat.com>
3774
3775 PR target/58218
3776 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
3777 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
3778
e500c62a
KY
37792013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
3780
f43245d1
UB
3781 * config/i386/predicates.md (ext_sse_reg_operand): New.
3782 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
3783 predicate to determine if EVEX is needed.
3784 (*movsi_internal): Ditto.
3785 (*movdf_internal): Ditto.
3786 (*movsf_internal): Ditto.
f43245d1 3787 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 3788
6b00d7dd
JJ
37892013-08-23 Jakub Jelinek <jakub@redhat.com>
3790
3791 PR tree-optimization/58209
3792 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
3793 (find_tail_calls): Give up for pointer result types if m is non-NULL.
3794 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
3795 emit POINTER_PLUS_EXPR.
3796 (create_tailcall_accumulator): For pointer result type accumulate in
3797 sizetype type.
3798
4f2a9f90
PC
37992013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
3800
3801 * configure.ac: Add backslashes missing from the last change.
3802 * configure: Regenerate.
3803
7bf4274e
JH
38042013-08-22 Jan Hubicka <jh@susue.cz>
3805
4f2a9f90
PC
3806 * ipa.c (function_and_variable_visibility): First remember function
3807 was global and then make it local.
7bf4274e 3808
1bea243d
JB
38092013-08-22 Julian Brown <julian@codesourcery.com>
3810
3811 * configure.ac: Add aarch64 to list of arches which use "nop" in
3812 debug_line test.
3813 * configure: Regenerate.
3814
bcba7ecc
AK
38152013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3816
3817 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
3818 gnu_libc_has_function.
3819 * config/s390/tpf.h: Likewise.
3820
4c495b0d
JH
38212013-08-22 Jan Hubicka <jh@susue.cz>
3822
3823 * timevar.c (validate_phases): Add cast.
3824
5e302bca
JH
38252013-08-22 Jan Hubicka <jh@susue.cz>
3826
3827 * timevar.c (validate_phases): Use size_t for memory.
3828 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
3829
da6ca2b5
GDR
38302013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3831
3832 * pretty-print.h (output_buffer::output_buffer): Declare.
3833 (pretty_printer::pretty_printer): Likewise.
3834 (pp_construct): Remove.
3835 * pretty-print.c (output_buffer::output_buffer): Define.
3836 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
3837 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
3838 (print_gimple_expr): Likewise.
3839 (print_gimple_seq): Likewise.
3840 (gimple_dump_bb): Likewise.
3841 * sched-vis.c (dump_value_slim): Likewise.
3842 (dump_insn_slim): Likewise.
3843 (dump_rtl_slim): Likewise.
3844 (str_pattern_slim): Likewise.
3845 * tree-mudflap.c (mf_varname_tree): Likewise.
3846 * graph.c (print_graph_cfg): Likewise.
3847 (start_graph_dump): Likewise.
3848 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
3849 placement-new.
3850 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
3851 pretty printer initialization.
3852 * coretypes.h (diagnostic_context): Remove superflous type alias
3853 declaration.
3854 (pretty_printer): Likewise. Declare directly as a class.
3855 (pretty_print_info): Remove declaration as class.
3856 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
3857 and pp_clear_output_area.
3858 (asan_add_global): Likewise.
3859
0e1474e5
JH
38602013-08-22 Jan Hubicka <jh@suse.cz>
3861
3862 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
3863 * ipa-utils.h (update_type_inheritance_graph): Declare.
3864 (possible_polymorphic_call_target_p): Declare.
3865 (possible_polymorphic_call_target_p): New.
3866 * ipa-devirt.c: Update toplevel comments.
3867 (cached_polymorphic_call_targets): Move up.
3868 (odr_type_d): Move ID down.
3869 (polymorphic_type_binfo_p): Update comment.
3870 (odr_hasher::remove): Likewise;
3871 (get_odr_type): Set anonymous_namespace.
3872 (dump_odr_type): Dump it.
3873 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
3874 (maybe_record_node): Record node in cached_polymorphic_call_targets.
3875 (record_binfo): Add comment.
5339fc0c
UB
3876 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
3877 built.
0e1474e5
JH
3878 (devirt_node_removal_hook): Do not iCE when cache is freed.
3879 (possible_polymorphic_call_target_p): New predicate.
3880 (update_type_inheritance_graph): New function.
3881
3f97cb0b
AI
38822013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
3883 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3884 Sergey Lega <sergey.s.lega@intel.com>
3885 Anna Tikhonova <anna.tikhonova@intel.com>
3886 Ilya Tocar <ilya.tocar@intel.com>
3887 Andrey Turetskiy <andrey.turetskiy@intel.com>
3888 Ilya Verbin <ilya.verbin@intel.com>
3889 Kirill Yukhin <kirill.yukhin@intel.com>
3890 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3891
3892 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
3893 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
3894 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
3895 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
3896 (OPTION_MASK_ISA_AVX2_UNSET): Update.
3897 (OPTION_MASK_ISA_AVX512F_UNSET): New.
3898 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
3899 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
3900 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
3901 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
3902 OPT_mavx512pf, OPT_mavx512er cases.
3903 * config/i386/constraints.md (v): New constraint.
3904 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
3905 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
3906 (bit_AVX512CD): New.
3907 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3908 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
3909 * config/i386/i386-c.c (ix86_target_macros_internal):
3910 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
3911 __AVX512PF__.
3912 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
3913 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
3914 * config/i386/i386.c (regclass_map, dbx_register_map)
3915 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
3916 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
3917 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
3918 -mavx512pf options.
3919 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
3920 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
3921 -mavx512pf options. Fix formatting.
3922 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
3923 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
3924 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
3925 -mavx512cd, -mavx512pf options.
3926 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
3927 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
3928 (ix86_preferred_output_reload_class): Replace SSE_REGS with
3929 ALL_SSE_REGS.
3930 (ix86_hard_regno_mode_ok): Support 512-bit registers.
3931 (ix86_set_reg_reg_cost): Ditto.
3932 (x86_order_regs_for_local_alloc): Ditto.
3933 (MAX_VECT_LEN): Extend to 64-byte.
3934 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
3935 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
3936 (TARGET_AVX512ER, TARGET_AVX512CD): New.
3937 (BIGGEST_ALIGNMENT): Extend to 512-bits.
3938 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
3939 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
3940 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
3941 (SSE_REG_MODE_P): Support new modes.
3942 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
3943 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
3944 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
3945 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
3946 (REG_CLASS_CONTENTS): Add new registers.
3947 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
3948 (EXT_REX_SSE_REGNO_P): New.
3949 (HI_REGISTER_NAMES): Add new registers.
3950 * config/i386/i386.md: Define constants for new registers.
3951 (mode): Add new 512-bit modes.
3952 (prefix): Support evex prefix.
3953 (isa): Support avx512f, noavx512f, fma_avx512f.
3954 (ssemodesuffix): Add new 512-bit modes.
3955 (movxi): New.
3956 (*movxi_internal_avx512f): Ditto.
3957 (*movdi_internal): Replace constraint "x" with the new constraint "v".
3958 Support MODE_XI.
3959 (*movsi_internal): Likewise.
3960 (*movdf_internal): Likewise.
3961 (*movsf_internal): Likewise.
3962 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
3963 (<code><mode>3): Likewise.
5339fc0c
UB
3964 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
3965 New.
3f97cb0b
AI
3966 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
3967 with the new constraint "v".
3968 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
3969 modes.
3970 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
3971 with the new constraint "v".
3972 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
3973 (<sse2>_storedqu<avxsizesuffix>): Likewise.
3974 (*<plusminus_insn><mode>3): Likewise.
3975 (<sse>_vm<plusminus_insn><mode>3): Likewise.
3976 (*mul<mode>3): Likewise.
3977 (<sse>_vmmul<mode>3): Likewise.
3978 (<sse>_div<mode>3): Likewise.
3979 (<sse>_vmdiv<mode>3): Likewise.
3980 (<sse>_sqrt<mode>2): Likewise.
3981 (<sse>_vmsqrt<mode>2): Likewise.
3982 (*<code><mode>3_finite): Likewise.
3983 (*<code><mode>3) <smaxmin>: Likewise.
3984 (<sse>_vm<code><mode>3): Likewise.
3985 (*<code><mode>3) <any_logic>: Likewise.
3986 (*fma_fmadd_<mode>): Likewise.
3987 (*fma_fmsub_<mode>): Likewise.
3988 (*fma_fnmadd_<mode>): Likewise.
3989 (*fma_fnmsub_<mode>): Likewise.
3990 (*fma_fmaddsub_<mode>): Likewise.
3991 (*fma_fmsubadd_<mode>): Likewise.
3992 (*fmai_fmadd_<mode>): Likewise.
3993 (*fmai_fmsub_<mode>): Likewise.
3994 (*fmai_fnmadd_<mode>): Likewise.
3995 (*fmai_fnmsub_<mode>): Likewise.
3996 (sse_cvtsi2ss): Likewise.
3997 (sse_cvtsi2ssq): Likewise.
3998 (sse_cvtss2si): Likewise.
3999 (sse_cvtss2si_2): Likewise.
4000 (sse_cvtss2siq): Likewise.
4001 (sse_cvtss2siq_2): Likewise.
4002 (sse_cvttss2si): Likewise.
4003 (sse_cvtss2siq_2): Likewise.
4004 (float<sseintvecmodelower><mode>2): Likewise.
4005 (sse2_cvtsd2si_2): Likewise.
4006 (sse2_cvtsd2siq_2): Likewise.
4007 (*<plusminus_insn><mode>3): Likewise.
4008 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
4009 (*<sse4_1_avx2>_mul<mode>3): Likewise.
4010 (ashr<mode>3): Likewise.
4011 (<shift_insn><mode>3): Likewise.
4012 (avx2_<code><mode>3): Likewise.
4013 (*avx2_<code><mode>3): Likewise.
4014 (*andnot<mode>3): Likewise.
4015 (*<code><mode>3) <any_logic>: Likewise.
4016 (abs<mode>2): Likewise.
4017 (avx2_permvar<mode>): Likewise.
4018 (avx2_perm<mode>_1): Likewise.
4019 (*avx_vpermilp<mode>): Likewise.
4020 (avx_vpermilvar<mode>3): Likewise.
4021 (avx2_ashrv<mode>): Likewise.
4022 (avx2_<shift_insn>v<mode>): Likewise.
4023 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
4024 -mavx512cd.
4025 * doc/rtl.texi: Document XImode.
4026
dd5e8423
JL
40272013-08-21 Jeff Law <law@redhat.com>
4028
b9ebee5d
JL
4029 * tree-flow.h (register_jump_thread): Pass vector of edges
4030 instead of each important edge.
4031 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
4032 thread path into a vector and pass that to register_jump_thread.
4033 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
4034 passed in edge vector to the current 3-edge form.
4035
dd5e8423
JL
4036 Revert:
4037 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4038
9bb6628e 4039 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
4040 delete_unmarked_insns removed anything.
4041
445dc8df
JR
40422013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
4043
4044 * reload.h (struct reg_equivs): Rename to ..
4045 (struct reg_equivs_s): .. this.
4046
e0df53dd
ML
40472013-08-20 Martin Liska <marxin.liska@gmail.com>
4048
4049 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
4050
e7d1d3eb
RO
40512013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4052
5339fc0c 4053 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 4054
5562e26e
JL
40552013-08-21 Jeff Law <law@redhat.com>
4056
4057 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
4058 simplify assignments too. If the RHS collapses to a singleton
4059 range, then return the value for the range.
4060
c7ecdec6
KY
40612013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
4062
4063 * config/i386/sse.md (V16): Rename to...
4064 (VMOVE): this.
4065 (mov<mode>): Update iterator name.
4066 (*mov<mode>_internal): Ditto.
4067 (push<mode>1): Ditto.
4068 (movmisalign<mode>): Ditto.
4069
bfa3b50a
JH
40702013-08-20 Jan Hubicka <jh@suse.cz>
4071
4072 PR bootstrap/58186
4073 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
4074 entry for direct edges.
4075 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
4076
6cd4d135
DM
40772013-08-20 David Malcolm <dmalcolm@redhat.com>
4078
4079 Revert my last two changes, r201865 and r201864:
4080
4081 Revert r201865:
4082 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4083
4084 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4085 instances can own GC refs.
4086
4087 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4088 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4089 (gcc::context::gt_pch_nx): Likewise.
4090 (gcc::context::gt_pch_nx): Likewise.
4091 * ggc.h (gt_ggc_mx <T>): New.
4092 (gt_pch_nx_with_op <T>): New.
4093 (gt_pch_nx <T>): New.
4094 * passes.c (opt_pass::gt_ggc_mx): New.
4095 (opt_pass::gt_pch_nx): New.
4096 (opt_pass::gt_pch_nx_with_op): New.
4097 (pass_manager::gt_ggc_mx): New.
4098 (pass_manager::gt_pch_nx): New.
4099 (pass_manager::gt_pch_nx_with_op): New.
4100 (pass_manager::operator new): Use
4101 ggc_internal_cleared_alloc_stat rather than xcalloc.
4102 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4103 (pass_manager::gt_ggc_mx): New.
4104 (pass_manager::gt_pch_nx): New.
4105 (pass_manager::gt_pch_nx_with_op): New.
4106 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4107 (opt_pass::operator new): New.
4108 (opt_pass::gt_ggc_mx): New.
4109 (opt_pass::gt_pch_nx): New.
4110 (opt_pass::gt_pch_nx_with_op): New.
4111
4112 Revert r201864:
4113 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4114
4115 * Makefile.in (GTFILES): Add context.h.
4116 * context.c (gcc::context::operator new): New.
4117 (gcc::context::gt_ggc_mx): New.
4118 (gcc::context::gt_pch_nx): New.
4119 (gcc::context::gt_pch_nx): New.
4120 * context.h (gcc::context): Add GTY((user)) marking.
4121 (gcc::context::operator new): New.
4122 (gcc::context::gt_ggc_mx): New.
4123 (gcc::context::gt_pch_nx): New.
4124 (gcc::context::gt_pch_nx): New.
4125 (g): Add GTY marking.
4126 (gt_ggc_mx (gcc::context *)): New.
4127 (gt_pch_nx (gcc::context *)): New.
4128 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4129 void *cookie)): New.
4130 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4131
a046136a
AM
41322013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4133
4134 * dce.c (fini_dce): Call df_analyze again just in case
4135 delete_unmarked_insns removed anything.
4136
67598720
TJ
41372013-08-20 Teresa Johnson <tejohnson@google.com>
4138
4139 PR rtl-optimizations/57451
4140 * final.c (reemit_insn_block_notes): Prevent lexical blocks
4141 from crossing split section boundaries.
4142
f8693faf
MGD
41432013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4144
4145 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
4146 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
4147 with MULTLIB_DEFAULTS.
4148
7d0b9a9c
NC
41492013-08-20 Nick Clifton <nickc@redhat.com>
4150
4151 * target.def (narrow_volatile_bitfield): Note that the default
4152 value is false, not !TARGET_STRICT_ALIGN.
4153 * doc/tm.texi: Regenerate.
4154
8edb8dc8
PC
41552013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
4156
4157 Fix LIB_SPEC for systems without libpthread.
4158
4159 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
4160 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
4161 for Android.
4162 * config/i386/linux-common.h: Likewise.
4163 * config/mips/linux-common.h: Likewise.
4164
12211b99 41652013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
4166
4167 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
4168 checks.
4169
e42c64cb
DM
41702013-08-20 David Malcolm <dmalcolm@redhat.com>
4171
4172 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4173 instances can own GC refs.
4174
4175 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4176 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4177 (gcc::context::gt_pch_nx): Likewise.
4178 (gcc::context::gt_pch_nx): Likewise.
4179 * ggc.h (gt_ggc_mx <T>): New.
4180 (gt_pch_nx_with_op <T>): New.
4181 (gt_pch_nx <T>): New.
4182 * passes.c (opt_pass::gt_ggc_mx): New.
4183 (opt_pass::gt_pch_nx): New.
4184 (opt_pass::gt_pch_nx_with_op): New.
4185 (pass_manager::gt_ggc_mx): New.
4186 (pass_manager::gt_pch_nx): New.
4187 (pass_manager::gt_pch_nx_with_op): New.
4188 (pass_manager::operator new): Use
4189 ggc_internal_cleared_alloc_stat rather than xcalloc.
4190 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4191 (pass_manager::gt_ggc_mx): New.
4192 (pass_manager::gt_pch_nx): New.
4193 (pass_manager::gt_pch_nx_with_op): New.
4194 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4195 (opt_pass::operator new): New.
4196 (opt_pass::gt_ggc_mx): New.
4197 (opt_pass::gt_pch_nx): New.
4198 (opt_pass::gt_pch_nx_with_op): New.
4199
910c02a0
DM
42002013-08-20 David Malcolm <dmalcolm@redhat.com>
4201
4202 * Makefile.in (GTFILES): Add context.h.
4203 * context.c (gcc::context::operator new): New.
4204 (gcc::context::gt_ggc_mx): New.
4205 (gcc::context::gt_pch_nx): New.
4206 (gcc::context::gt_pch_nx): New.
4207 * context.h (gcc::context): Add GTY((user)) marking.
4208 (gcc::context::operator new): New.
4209 (gcc::context::gt_ggc_mx): New.
4210 (gcc::context::gt_pch_nx): New.
4211 (gcc::context::gt_pch_nx): New.
4212 (g): Add GTY marking.
4213 (gt_ggc_mx (gcc::context *)): New.
4214 (gt_pch_nx (gcc::context *)): New.
4215 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4216 void *cookie)): New.
4217 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4218
af4b4236
AM
42192013-08-20 Alan Modra <amodra@gmail.com>
4220
4221 PR target/57865
4222 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
4223 (rs6000_emit_epilogue): Likewise.
4224
12211b99 42252013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
4226
4227 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4228
e2323f5b
PB
42292013-08-19 Peter Bergner <bergner@vnet.ibm.com>
4230 Jakub Jelinek <jakub@redhat.com>
4231
4232 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
4233 (BUILT_IN_FABSD64): Likewise.
4234 (BUILT_IN_FABSD128): Likewise.
4235 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
4236 (fold_builtin_1): Likewise.
5339fc0c
UB
4237 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
4238 destination and source operands.
e2323f5b
PB
4239 (*abstd2_fpr): Likewise.
4240 (*nabstd2_fpr): Likewise.
4241
cfbf3ee8
RS
42422013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
4243
4244 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
4245 JUMP_P and INSN_P.
4246
d3136aeb
AH
42472013-08-19 Aldy Hernandez <aldyh@redhat.com>
4248
4249 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
4250 incomplete.
4251
d33d9e47
AI
42522013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
4253
4254 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
4255 * builtins.c (default_libc_has_function): New.
4256 (gnu_libc_has_function): Ditto.
4257 (no_c99_libc_has_function): Ditto.
4258 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
4259 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
4260 (fold_builtin_sincos): Likewise.
4261 (fold_builtin_cexp): Likewise.
4262 * builtins.def (DEF_C94_BUILTIN): Likewise.
4263 (DEF_C99_BUILTIN): Likewise.
4264 (DEF_C99_C90RES_BUILTIN): Likewise.
4265 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
4266 definitions to using this define.
4267 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 4268 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
4269 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
4270 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
4271 * config/darwin.h: Ditto.
4272 * config/elfos.h: Ditto.
4273 * config/freebsd.h: Ditto.
4274 * config/i386/cygming.h: Ditto.
4275 * config/i386/djgpp.h: Ditto.
4276 * config/i386/i386-interix.h: Ditto.
4277 * config/microblaze/microblaze.h: Ditto.
4278 * config/mmix/mmix.h: Ditto.
4279 * config/gnu-user.h: Ditto.
4280 * config/ia64/hpux.h: Ditto.
4281 * config/pa/pa-hpux.h: Ditto.
4282 * config/pdp11/pdp11.h: Ditto.
4283 * config/picochip/picochip.h: Ditto.
4284 * config/linux.h: Ditto.
4285 * config/netbsd.h: Ditto.
4286 * config/openbsd.h: Ditto.
4287 * config/rs6000/aix43.h: Ditto.
4288 * config/rs6000/aix51.h: Ditto.
4289 * config/rs6000/aix52.h: Ditto.
4290 * config/rs6000/aix53.h: Ditto.
4291 * config/rs6000/aix61.h: Ditto.
4292 * config/rs6000/darwin.h: Ditto.
4293 * config/rs6000/linux.h: Ditto.
4294 * config/rs6000/linux64.h: Ditto.
4295 * config/s390/tpf.h: Ditto.
4296 * config/sol2-10.h: Ditto.
4297 * config/sol2.h: Ditto.
4298 * config/vms/vms.h: Ditto.
4299 * config/vxworks.h: Ditto.
4300 * config/linux-android.c (linux_android_libc_has_function):
4301 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
4302 * config/linux-protos.h (linux_android_libc_has_function):
4303 New declaration.
4304 * config/i386/i386.c (ix86_libc_has_function): New.
4305 * config/i386/i386-protos.h
4306 (ix86_libc_has_function): New declaration.
4307 * config/i386/i386.md
4308 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
4309 ("isinf<mode>2): Likewise.
4310 * convert.c (convert_to_integer): Using new target hook
4311 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
4312 TARGET_C99_FUNCTIONS.
4313 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
4314 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
4315 * coretypes.h (function_class): New enum for different
4316 classes of functions.
4317 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
4318 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
4319 (TARGET_HAS_SINCOS): Likewise.
4320 (TARGET_LIBC_HAS_FUNCTION): New.
4321 * doc/tm.texi: Regenerated.
4322 * targhooks.h (default_libc_has_function): New declaration.
4323 (no_c99_libc_has_function): Ditto.
4324 (gnu_libc_has_function): Ditto.
4325 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
4326 and TARGET_HAS_SINCOS.
4327
eefe9a99
JH
43282013-08-18 Jan Hubicka <jh@suse.cz>
4329
4330 * Makeifle-in (ipa-devirt.o): New.
4331 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4332 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4333 (analyze_functions): Look into possible targets of polymorphic call.
4334 * dumpfile.c (dump_files): Add type-inheritance dump.
4335 * dumpfile.h (TDI_inheritance): New.
4336 * ipa-devirt.c: New file.
4337 * ipa-utils.h (odr_type_d): Forward declare.
4338 (odr_type): New type.
4339 (build_type_inheritance_graph): Declare.
4340 (possible_polymorphic_call_targets): Declare and introduce inline
4341 variant when only edge is pased.
4342 (dump_possible_polymorphic_call_targets): Likewise.
4343 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4344 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4345 (types_same_for_odr): ... here.
4346 * tree.h (type_in_anonymous_namespace_p): Declare.
4347
29b89442
JJ
43482013-08-18 Jakub Jelinek <jakub@redhat.com>
4349
4350 PR tree-optimization/58006
4351 * tree-parloops.c (take_address_of): Don't ICE if get_name
4352 returns NULL.
4353 (eliminate_local_variables_stmt): Remove clobber stmts.
4354
4f219961
EB
43552013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4356
4357 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4358 error message is issued for an alias to undefined symbol.
4359
1d5755ef
JH
43602013-08-18 Jan Hubicka <jh@suse.cz>
4361
4362 * cgraph.c (cgraph_create_indirect_edge): Discover
4363 polymorphic calls and record basic info into indirect_info.
4364 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4365 devirtualization, ignore objc function calls.
4366 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4367 call with no parm index info.
4368 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4369 * tree.c (virtual_method_call_p): New function.
4370 * tree.h (virtual_method_call_p): Declare.
4371
5945bebf
JH
43722013-08-16 Jan Hubicka <jh@suse.cz>
4373
4374 PR middle-end/58179
4375 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4376
47fa5d23
DE
43772013-08-16 David Edelsohn <dje.gcc@gmail.com>
4378
4379 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4380 attribute.
4381
c74f54a0
DM
43822013-08-16 David Malcolm <dmalcolm@redhat.com>
4383
4384 * gengtype.c (type_for_name): Add special-case support for
4385 locating types within the "gcc::" namespace.
4386 (open_base_files): Emit a "using namespace gcc" directive.
4387
f758f299
MM
43882013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4389
4390 PR target/58160
4391 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4392 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4393
4394 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4395 array instead of each individual operand as a separate argument.
4396 (emit_fusion_gpr_load): Likewise.
4397 (expand_fusion_gpr_load): Add new function declaration.
4398
4399 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4400 signature to have the operands passed as an array, instead of as
4401 separate arguments. Allow ZERO_EXTEND to be in the memory
4402 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4403 depend on the register live/dead flags when peepholes are run.
4404 (expand_fusion_gpr_load): New function to be called from the
4405 peephole2 pass, to change the register that addis sets to be the
4406 target register.
4407 (emit_fusion_gpr_load): Change the calling signature to have the
4408 operands passed as an array, instead of as separate arguments.
4409 Allow ZERO_EXTEND to be in the memory address, and also
4410 SIGN_EXTEND if -mpower8-fusion-sign.
4411
4412 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4413 unspec enumeration.
4414 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4415 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4416 depend on the register live/dead state when the peephole pass is done.
f758f299 4417
158f4e4f
DM
44182013-08-16 David Malcolm <dmalcolm@redhat.com>
4419
4420 * gengtype.c (create_user_defined_type): Ensure that the kind
4421 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4422 declaration is seen before the GTY((user)) marking.
4423
22f8cea5
BE
44242013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4425
4426 PR target/58105
4427 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4428
c49bdb2e
JH
44292013-08-16 Jan Hubicka <jh@suse.cz>
4430
4431 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4432 arugment expected_type.
4433 (gimple_fold_call): Use it.
4434 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4435 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4436 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4437 (try_make_edge_direct_virtual_call): Likewise.
4438 * tree.c (obj_type_ref_class): New.
4439 * tree.h (obj_type_ref_class): Use it.
4440
4042dca9
GDR
44412013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4442
4443 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4444 (rtl_slim_pp): Likewise.
4445 (init_rtl_slim_pretty_print): Likewise.
4446 (dump_value_slim): Don't call it. Use local pretty printer.
4447 (dump_insn_slim): Likewise.
4448 (dump_rtl_slim): Likewise.
4449 (str_pattern_slim): Likewise.
4450 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4451 Simplify.
4452
7a460594
JJ
44532013-08-16 Jakub Jelinek <jakub@redhat.com>
4454
639dc669
JJ
4455 PR tree-optimization/58164
4456 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4457 walk gimple_goto_dest of GIMPLE_GOTO.
4458
7a460594
JJ
4459 PR tree-optimization/58165
4460 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4461 bi_call must be the last stmt in a bb, don't split_block, instead
4462 use fallthru edge from it and give up if there is none.
4463 Release conds vector when returning early.
4464
e3c02cc7
XDL
44652013-08-14 Xinliang David Li <davidxl@google.com>
4466
4467 * config/i386/i386.c (ix86_option_override_internal):
4468 Remove unused variable and field.
4469
6469da2c
BS
44702013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4471
4472 PR target/57949
22f8cea5 4473 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4474 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4475 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4476 and Linux, correct BLKmode alignment when 128-bit alignment is
4477 required and compatibility flag is not set.
22f8cea5
BE
4478 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4479 for zero-size arguments when compatibility flag is not set.
6469da2c 4480
4ca890e2
JJ
44812013-08-14 Jakub Jelinek <jakub@redhat.com>
4482
4483 PR tree-optimization/58145
4484 * tree-sra.c (build_ref_for_offset): If prev_base has
4485 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4486
daec1759 44872013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4488
daec1759 4489 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4490 Fix uninitialized variable error.
daec1759 4491
3ad20bd4
XDL
44922013-08-14 Xinliang David Li <davidxl@google.com>
4493
4494 * config/i386/i386.opt: Define two new options.
4495 * config/i386/x86-tune.def: Add arch selector field in macros.
4496 * config/i386/i386.h: Adjust macro definition.
4497 * config/i386/i386.c (ix86_option_override_internal):
4498 Refactor the code.
4499 (parse_mtune_ctrl_str): New function.
4500 (set_ix86_tune_features): New function.
4501 (ix86_function_specific_restore): Call the new helper function.
4502
e839e2a9
AB
45032013-08-14 Andrey Belevantsev <abel@ispras.ru>
4504
4505 PR rtl-optimization/57662
4506 * sel-sched.c (code_motion_process_successors): When the current insn
4507 is removed after the recursive traversal, break from the loop.
4508 Add comments and debug printouts.
4509
27ed665f
JJ
45102013-08-14 Jakub Jelinek <jakub@redhat.com>
4511 Alexandre Oliva <aoliva@redhat.com>
4512
4513 PR target/58067
4514 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4515 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4516 there also UNSPEC_PLTOFF.
4517
61c1a609
MP
45182013-08-14 Marek Polacek <polacek@redhat.com>
4519
4520 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4521 NUM_CONDITIONS bit positions.
4522
0e901c67
CC
45232013-08-13 Cary Coutant <ccoutant@google.com>
4524
4525 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4526 (attr_checksum): Hash vector contents instead of pointer.
4527 (attr_checksum_ordered): Likewise.
4528
061eff6d
UB
45292013-08-13 Uros Bizjak <ubizjak@gmail.com>
4530
4531 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4532 when Pmode != word_mode. Add length_address attribute.
4533 (sse3_monitor_<mode>): Merge from sse3_monitor and
4534 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4535 Pmode != word_mode. Update insn length attribute.
4536 * config/i386/i386.c (ix86_option_override_internal): Update
4537 ix86_gen_monitor selection for merged sse3_monitor insn.
4538
8ec9249b
JB
45392013-08-13 Julian Brown <julian@codesourcery.com>
4540
4541 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4542 perform invalid legitimization on greater-than-word-size modes for
4543 TARGET_E500_DOUBLE.
4544
761a8eb7
VM
45452013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4546
4547 * ira.c (setup_class_translate_array): Use aclass instead of cl
4548 for classes not fully covered by allocno classes.
4549
99c2bd54
JJ
45502013-08-13 Jakub Jelinek <jakub@redhat.com>
4551
4029a5e0
JJ
4552 PR tree-optimization/57661
4553 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4554 * tree-inline.c (tree_function_versioning): Initialize it.
4555 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4556 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4557 that is not being copied.
4558
99c2bd54
JJ
4559 PR sanitizer/56417
4560 * asan.c (instrument_strlen_call): Fix typo in comment.
4561 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4562
b5f8f063
SE
45632013-08-13 Steve Ellcey <sellcey@mips.com>
4564
4565 * config/mips/mips.md (prefetch): Use lw instead of ld on
4566 loongson in 32bit mode.
4567
4de80584
NC
45682013-08-13 Nick Clifton <nickc@redhat.com>
4569
4570 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4571
09ce3660
JH
45722013-08-13 Jan Hubicka <jh@suse.cz>
4573
4574 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4575 introduced edge; fix typo in sanity check.
4576 (cgraph_resolve_speculation): Export; improve diagnostic.
4577 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4578 speculation at type mismatch.
4579 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4580 (cgraph_resolve_speculation): Declare.
4581 (symtab_can_be_discarded): New function.
4582 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4583 * ipa-inline-transform.c (speculation_removed): New global var.
4584 (clone_inlined_nodes): See if speculation can be removed.
4585 (inline_call): If speculations was removed, we growths may not match.
4586 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4587 (speculation_useful_p): New function.
4588 (resolve_noninline_speculation): New function.
4589 (inline_small_functions): Resolve useless speculations.
4590 * ipa-inline.h (speculation_useful_p): Declare
4591 * ipa.c (can_replace_by_local_alias): Simplify.
4592 (ipa_profile): Produce speculative calls in non-lto, too;
4593 add simple cost model; produce local aliases.
4594
f971dc24
DM
45952013-08-13 David Malcolm <dmalcolm@redhat.com>
4596
4597 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4598 PASS_MANAGER_H.
f971dc24 4599
2e507b9a
PC
46002013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4601
4602 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4603
c97fd4b8
UB
46042013-08-12 Uros Bizjak <ubizjak@gmail.com>
4605
4606 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4607 iterator instead of X87MODEF.
4608
46092013-08-12 Perez Read <netfirewall@gmail.com>
4610
4611 PR target/58132
4612 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
4613 operand 0 for intel asm alternative.
4614 (*movabs<mode>_2): Ditto for operand 1.
4615
f4f4204c
JG
46162013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
4617
4618 * config/aarch64/arm_none.h
4619 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
4620
133b1a8e
NC
46212013-08-12 Nick Clifton <nickc@redhat.com>
4622
4623 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
4624
15dd8b3a
YR
46252013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4626
4627 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
4628 expand for QI/HImode operand to produce more effictive code for
4629 unsigned char(short) --> float(double) conversion.
4630
94109a6a
AM
46312013-08-12 Alexander Monakov <amonakov@ispras.ru>
4632
4633 * doc/invoke.texi: Mention that -ftls-model does not force the final
4634 model.
4635
4e115102
MP
46362013-08-12 Marek Polacek <polacek@redhat.com>
4637 Marc Glisse <marc.glisse@inria.fr>
4638
4639 PR tree-optimization/57980
4640 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
4641 when creating -1 constant.
4642
748d71f3
JH
46432013-08-10 Jan Hubicka <jh@suse.cz>
4644
1f97e193 4645 Workaround binutils PR14342.
748d71f3
JH
4646 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
4647 (gimple_init_edge_profiler): Likewise.
4648 (gimple_gen_ic_func_profiler): Likewise.
4649
5979aa54
JH
46502013-08-09 Jan Hubicka <jh@suse.cz>
4651
4652 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
4653
ad83025e
XDL
46542013-08-09 Xinliang David Li <davidxl@google.com>
4655
4656 * config/i386/stringop.def: New file.
4657 * config/i386/stringop.opt: New file.
4658 * config/i386/i386-opts.h: Include stringopt.def.
4659 * config/i386/i386.opt: Include stringopt.opt.
4660 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 4661 Override default size based stringop inline strategies with options.
ad83025e
XDL
4662 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
4663 New function.
4664
e59df5fd
JH
46652013-08-09 Jan Hubicka <jh@suse.cz>
4666
c97fd4b8 4667 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 4668
634ab819
JH
46692013-08-09 Jan Hubicka <jh@suse.cz>
4670
4671 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
4672 CGRAPH_FREQ_MAX.
4673 (dump_cgraph_node): Dump profile-id.
4674 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
4675 and common_target_probability.
4676 * lto-cgraph.c (lto_output_edge): Stream common targets.
4677 (lto_output_node): Stream profile ids.
4678 (input_node): Stream profile ids.
4679 (input_edge): Stream common targets.
4680 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
4681 * ipa.c: Include value-prof.h
4682 (ipa_profile_generate_summary): Turn indirect call statement histograms
4683 into common targets.
4684 (ipa_profile): Turn common targets into speculative edges.
4685
2fa3d31b
JH
46862013-08-09 Jan Hubicka <jh@suse.cz>
4687
4688 * cgraph.h (cgraph_node): Add profile_id.
4689 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 4690 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
4691 (del_node_map): Update.
4692 (find_func_by_funcdef_no): Replace by ...
4693 (find_func_by_profile_id): ... this one.
4694 (gimple_ic_transform): Do not remove useful histograms when
4695 speculation is not done; dump info when indirect call removal
4696 can happen at LTO.
4697 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
4698 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
4699 (__gcov_indirect_call_profiler_v2): .. this one.
4700 * profile.h (init_node_map): Update.
4701 * coverage.c (coverage_compute_profile_id): New function.
4702 * coverage.h (coverage_compute_profile_id): Declare.
4703 * tree-profile.c (init_ic_make_global_vars): Make
4704 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
4705 (gimple_init_edge_profiler): Update prototype of
4706 __gcov_indirect_call_profiler.
4707 (gimple_gen_ic_func_profiler): Simplify.
4708 (tree_profiling): Use init_node_map
4709
042ae7d2
JH
47102013-08-09 Jan Hubicka <jh@suse.cz>
4711
c97fd4b8
UB
4712 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
4713 non-speculative refs.
042ae7d2
JH
4714 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
4715 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
4716 (cgraph_set_call_stmt): Likewise.
4717 (cgraph_create_edge_1): Fix release checking compilatoin;
4718 clear lto_stmt_uid.
4719 (cgraph_free_edge): Free indirect info.
4720 (cgraph_turn_edge_to_speculative): New function.
4721 (cgraph_speculative_call_info): New function.
4722 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 4723 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
4724 (dump_cgraph_node): Dump speculation.
4725 (verify_edge_count_and_frequency): Accept speculative edges.
4726 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
4727 (verify_cgraph_node): Handle speculation.
4728 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
4729 (cgraph_set_call_stmt): Update prototype.
4730 (cgraph_make_edge_direct): Update prototype.
4731 (cgraph_speculative_call_info): Declare.
4732 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
4733 to change; update call of ipa_find_references.
4734 * ipa-ref.c (ipa_record_reference): Fix return value; clear
4735 lto_stmt_uid and speculative flags.
4736 (ipa_dump_references): Dump speculation.
4737 (ipa_clone_references): Clone speculative flag.
4738 (ipa_clone_referring): Likewise.
4739 (ipa_clone_ref): New function.
4740 (ipa_find_reference): Look into lto_stmt_uids
4741 (ipa_clear_stmts_in_references): Do not clear speculative calls.
4742 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
4743 (ipa_find_reference): Update declaration.
4744 (ipa_clone_ref): Declare.
4745 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
4746 stream speculative flag.
4747 (lto_output_ref): Stream statements uids and speculation.
4748 (input_ref): Likewise.
4749 (input_edge): Stream speuclation.
4750 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
4751 (cgraph_set_call_stmt_including_clones): Handle speculation.
4752 * ipa-inline.c (heap_edge_removal_hook): New function.
4753 (inline_small_functions): Register it.
4754 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
4755 also initialize refs.
4756 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
4757 edge to change.
4758 (try_make_edge_direct_simple_call): Likewise.
4759 (try_make_edge_direct_simple_call): Likewise.
4760 (update_indirect_edges_after_inlining): Likewise.
4761 (remove_described_reference): Look proper lto_stmt_uid.
4762 (propagate_controlled_uses): Likewise.
4763 (propagate_controlled_uses): Liekwise.
4764 * tree-inline.c (copy_bb): Copy speculative edges.
4765 (redirect_all_calls): New function.
c97fd4b8
UB
4766 (copy_cfg_body): Do redirection after loop info is updated.
4767 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 4768
aa1e10cc
JH
47692013-08-09 Jan Hubicka <jh@suse.cz>
4770
4771 * lto-streamer-out.c (output_function): Renumber PHIs.
4772 * lto-streamer-in.c (input_function): Likewise.
4773
66adb8eb
JG
47742013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
4775
4776 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
4777 (get_lane_unsigned): Likewise.
4778 (dup_lane_scalar): Likewise.
4779 (get_lane): enable for VALL.
4780 * config/aarch64/aarch64-simd.md
4781 (aarch64_dup_lane_scalar<mode>): Remove.
4782 (aarch64_get_lane_signed<mode>): Likewise.
4783 (aarch64_get_lane_unsigned<mode>): Likewise.
4784 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
4785 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
4786 (aarch64_get_lane<mode>): Enable for all vector modes.
4787 (aarch64_get_lanedi): Remove misleading constraints.
4788 * config/aarch64/arm_neon.h
4789 (__aarch64_vget_lane_any): Define.
4790 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
4791 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
4792 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
4793 * config/aarch64/iterators.md (VDQQH): New.
4794 (VDQQHS): Likewise.
4795 (vwcore): Likewise.
4796
1f65ae7a
EB
47972013-08-09 Eric Botcazou <ebotcazou@adacore.com>
4798
4799 * configure.ac: Add GAS check for LEON instructions on SPARC.
4800 * configure: Regenerate.
4801 * config.in: Likewise.
4802 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
4803 sparc*-*-* block.
4804 * config/sparc/sparc.opt (LEON, LEON3): New masks.
4805 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
4806 for LEON or LEON3.
4807 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
4808 (AS_LEON_FLAG): New macro.
4809 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
4810 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
4811 Deal with LEON and LEON3 for the memory model.
23a6cb78 4812 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
4813 (atomic_compare_and_swap<mode>_1): Likewise.
4814 (*atomic_compare_and_swap<mode>_1): Likewise.
4815
ff522f7f
ZC
48162013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4817
4818 * config/arm/neon.md (vcond): Fix floating-point vector
4819 comparisons against 0.
4820
cb1cca12
VM
48212013-08-08 Vladimir Makarov <vmakarov@redhat.com>
4822
4823 * lra-constraints.c (emit_spill_move): Remove assert.
4824 (process_alt_operands): Add more debugging
4825 output. Increase reject for spilling into memory. Decrease
4826 reject for reloading scratch.
4827 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
4828
a3719e31
SE
48292013-08-08 Steve Ellcey <sellcey@mips.com>
4830
4831 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
4832 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
4833 micromips incompatible. Add nan2008.
4834 (MULTILIB_DIRNAMES): Add nan2008.
4835 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4836 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
4837 and micromips incompatible. Add nan2008.
4838 (MULTILIB_DIRNAMES): Add nan2008.
4839 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4840
f40423e2
RS
48412013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4842
4843 PR rtl-optimization/58079
4844 * combine.c (combine_simplify_rtx): Avoid using SUBST if
4845 simplify_comparison has widened a comparison with an integer.
4846
869b9125
KT
48472013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4848
4849 * config/arm/neon.md (movmisalign<mode>): Disable when we
4850 don't allow unaligned accesses.
4851 (*movmisalign<mode>_neon_store): Likewise.
4852 (*movmisalign<mode>_neon_load): Likewise.
4853 (*movmisalign<mode>_neon_store): Likewise.
4854 (*movmisalign<mode>_neon_load): Likewise.
4855
71cafea9
JH
48562013-08-08 Jan Hubicka <jh@suse.cz>
4857
4858 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
4859 (make_pass_rebuild_cgraph_edges): Also clear references.
4860 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
4861 * ipa-inline-transform.c (inline_transform): Remove all references
4862 after inlining.
c97fd4b8
UB
4863 * cgraphunit.c (expand_function): Remove all references after
4864 expansion.
71cafea9
JH
4865 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
4866 (ipa_find_reference): Rewrite to iterator.
4867 (remove_stmt_references): Likewise.
4868 (ipa_clear_stmts_in_references): New function.
4869 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
4870 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
4871 clear references.
71cafea9
JH
4872 * ipa-split.c (split_function): Remove references in split function.
4873
27d2e612
RE
48742013-08-08 Richard Earnshaw <rearnsha@arm.com>
4875
4876 PR target/57431
1f65ae7a 4877 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
4878 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
4879
5efc661c
RE
48802013-08-08 Richard Earnshaw <rearnsha@arm.com>
4881
4882 PR target/56979
1f65ae7a 4883 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
4884 suggested mode for the assignment isn't compatible with the
4885 registers required.
4886
f276d31d
BE
48872013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4888
4889 PR target/58065
4890 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
4891
4b8bc035
XDL
48922013-08-07 Xinliang David Li <davidxl@google.com>
4893
4894 * config/i386/i386.opt: New option -mtune-ctrl=.
4895 * config/i386/x86-tune.def: New file.
4896 * config/i386/i386.h: include x86-tune.def.
4897 * config/i386/i386.c (ix86_option_override_internal):
4898 Parsing -mtune-ctrl= option and set tune features.
4899
12211b99 49002013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
4901
4902 PR other/12081
03b0ee0a 4903 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
4904 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
4905 to gen_2arg_fn_t.
4906
5cf6635b
EB
49072013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4908
4909 * rtl.h (update_alignments): Declare.
4910 * final.c (grow_label_align): New function extracted from...
4911 (shorten_branches): ...here. Call it.
4912 (update_alignments): New function.
4913 * reorg.c (sibling_labels): New variable.
4914 (get_label_before): Add SIBLING parameter. If it is non-zero, push
4915 the new label along with it onto the sibling_labels vector.
4916 (fill_simple_delay_slots): Adjust call to get_label_before.
4917 (fill_slots_from_thread): Likewise.
4918 (relax_delay_slots): Likewise.
4919 (make_return_insns): Likewise.
4920 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
4921
3c8ca1ab
EB
49222013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4923
4924 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
4925 document its semantics.
4926 (diagnostic_report_diagnostic): Adjust accordingly.
4927
5ee5b32c
DM
49282013-08-07 David Malcolm <dmalcolm@redhat.com>
4929
03b0ee0a 4930 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
4931 (sparc_option_override): ...and port to new C++ pass API.
4932 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
4933
abd566fa
PB
49342013-08-07 Peter Bergner <bergner@vnet.ibm.com>
4935
4936 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
4937
2077db1b
CT
49382013-08-06 Caroline Tice <cmtice@google.com>
4939
4940 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
4941 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
4942 * tree-pass.h: Add pass_vtable_verify.
4943 * varasm.c (assemble_variable): Add code to properly set the comdat
4944 section and name for the .vtable_map_vars section.
4945 (assemble_vtyv_preinit_initializer): New function.
4946 (default_sectin_type_flags): Make sure .vtable_map_vars section has
4947 LINK_ONCE flag.
4948 * output.h: Add function decl for assemble_vtv_preinit_initializer.
4949 * vtable-verify.c: New file.
4950 * vtable-verify.h: New file.
4951 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
4952 initialiation levels.
4953 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
4954 * passes.def: Insert pass_vtable_verify.
4955 * aclocal.m4: Reorder includes.
4956 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
4957 -fvtv-counts options.
4958 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
4959 as appropriate, if -fvtable-verify=... is used.
4960 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
4961 -fvtable-verify=... is used.
4962 * Makefile.in (OBJS): Add vtable-verify.o to list.
4963 (vtable-verify.o): Add new build rule.
4964 (GTFILES): Add vtable-verify.c to list.
4965 * common.opt (fvtable-verify=): New flag.
4966 (vtv_priority): Values for fvtable-verify= flag.
4967 (fvtv-counts): New flag.
4968 (fvtv-debug): New flag.
4969 * tree.h (save_vtable_map_decl): New extern function decl.
4970
03085d1c
DM
49712013-08-07 David Malcolm <dmalcolm@redhat.com>
4972
4973 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
4974 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
4975 (pass_data_rl78_devirt): ...new pass_data instance and...
4976 (make_pass_rl78_devirt): ...new function.
4977 (rl78_asm_file_start): Port pass registration to new C++ API.
4978
05555c4a
DM
49792013-08-07 David Malcolm <dmalcolm@redhat.com>
4980
4981 * coretypes.h (rtl_opt_pass): Add.
4982 (gcc::context): Add.
4983 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
4984 (epiphany_init): Port to new C++ pass API.
4985 (epiphany_optimize_mode_switching): Likewise.
4986 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
4987 (pass_manager::get_pass_mode_switching): New.
4988 (pass_manager::get_pass_peephole2): New.
4989 * mode-switching.c (pass_mode_switching): Add clone method.
4990 * recog.c (pass_peephole2): Add clone method.
4991 (pass_split_all_insns): Add clone method.
4992
c5a12e26
DM
49932013-08-06 David Malcolm <dmalcolm@redhat.com>
4994
03b0ee0a
UB
4995 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
4996 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 4997
a2e2a668
JH
49982013-08-06 Jan Hubicka <jh@suse.cz>
4999
5000 * cgraph.c (cgraph_get_body): New function based on lto.c
5001 implementation.
5002 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
5003 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
5004 LTO paths.
a2e2a668
JH
5005 * cgraphunit.c (expand_function): Get body prior expanding.
5006 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
5007 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
5008 really need.
a2e2a668
JH
5009 * passes.c (do_per_function_toporder): Get body.
5010 * tree-inline.c (expand_call_inline): Get body prior inlining it.
5011 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
5012
15682f24
MJ
50132013-08-06 Martin Jambor <mjambor@suse.cz>
5014
5015 PR fortran/57987
5016 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
5017 is not re-finalized. Rename second parameter to no_collect.
5018
78f6dd68
MJ
50192013-08-06 Martin Jambor <mjambor@suse.cz>
5020
5021 PR middle-end/58041
5022 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
5023 MEM_REF has proper alignment information.
5024
12211b99 50252013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
5026
5027 PR other/12081
5028 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
5029 class insn_gen_fn.
5030 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5031 rtx (*) (rtx, ...) with insn_gen_fn.
5032 * genoutput.c (output_insn_data): Cast gen_? function pointers to
5033 insn_gen_fn::stored_funcptr. Add initializer braces.
5034
8ac69a6c
DM
50352013-08-05 David Malcolm <dmalcolm@redhat.com>
5036
5037 Rewrite how instances of passes are cloned to remove assumptions
5038 about their sizes (thus allowing pass subclasses to have
5039 additional data fields, albeit non-GC-managed ones at this point).
5040
5041 * passes.c (make_pass_instance): Now that passes have clone
5042 methods, rewrite this function to eliminate XNEW and memcpy
5043 calls that used hardcoded sizes. Since this function no longer
5044 creates pass instances, rename it to...
03b0ee0a
UB
5045 (add_pass_instance): ...this. Document the old way that passes were
5046 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
5047 (next_pass_1): Add an initial_pass argument for use by
5048 add_pass_instance.
5049 (position_pass): When adding multiple instances of a pass, use
5050 the pass's clone method, rather than relying on the XNEW/memcpy
5051 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
5052 (pass_manager::pass_manager): When invoking next_pass_1, also supply
5053 the initial instance of the current pass within the pass manager.
8ac69a6c 5054
27a4cd48
DM
50552013-08-05 David Malcolm <dmalcolm@redhat.com>
5056
5057 This is the automated part of the conversion of passes from C
5058 structs to C++ classes.
5059
5060 Patch autogenerated by refactor_passes.py from
5061 https://github.com/davidmalcolm/gcc-refactoring-scripts
5062 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
5063
5064 * asan.c (pass_asan): Convert from a global struct to a subclass of
5065 gimple_opt_pass along with...
5066 (pass_data_asan): ...new pass_data instance and...
5067 (make_pass_asan): ...new function.
5068 (pass_asan_O0): Convert from a global struct to a subclass of
5069 gimple_opt_pass along with...
5070 (pass_data_asan_O0): ...new pass_data instance and...
5071 (make_pass_asan_O0): ...new function.
5072 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
5073 subclass of rtl_opt_pass along with...
5074 (pass_data_inc_dec): ...new pass_data instance and...
5075 (make_pass_inc_dec): ...new function.
5076 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
5077 a subclass of rtl_opt_pass along with...
5078 (pass_data_reorder_blocks): ...new pass_data instance and...
5079 (make_pass_reorder_blocks): ...new function.
5080 (pass_duplicate_computed_gotos): Convert from a global struct to a
5081 subclass of rtl_opt_pass along with...
5082 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
5083 (make_pass_duplicate_computed_gotos): ...new function.
5084 (pass_partition_blocks): Convert from a global struct to a subclass of
5085 rtl_opt_pass along with...
5086 (pass_data_partition_blocks): ...new pass_data instance and...
5087 (make_pass_partition_blocks): ...new function.
5088 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
5089 struct to a subclass of rtl_opt_pass along with...
5090 (pass_data_branch_target_load_optimize1): ...new pass_data instance
5091 and...
5092 (make_pass_branch_target_load_optimize1): ...new function.
5093 (pass_branch_target_load_optimize2): Convert from a global struct to a
5094 subclass of rtl_opt_pass along with...
5095 (pass_data_branch_target_load_optimize2): ...new pass_data instance
5096 and...
5097 (make_pass_branch_target_load_optimize2): ...new function.
5098 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
5099 of rtl_opt_pass along with...
5100 (pass_data_jump): ...new pass_data instance and...
5101 (make_pass_jump): ...new function.
5102 (pass_jump2): Convert from a global struct to a subclass of
5103 rtl_opt_pass along with...
5104 (pass_data_jump2): ...new pass_data instance and...
5105 (make_pass_jump2): ...new function.
5106 * cfgexpand.c (pass_expand): Convert from a global struct to a
5107 subclass of rtl_opt_pass along with...
5108 (pass_data_expand): ...new pass_data instance and...
5109 (make_pass_expand): ...new function.
5110 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
5111 of rtl_opt_pass along with...
5112 (pass_data_free_cfg): ...new pass_data instance and...
5113 (make_pass_free_cfg): ...new function.
5114 (pass_into_cfg_layout_mode): Convert from a global struct to a
5115 subclass of rtl_opt_pass along with...
5116 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
5117 (make_pass_into_cfg_layout_mode): ...new function.
5118 (pass_outof_cfg_layout_mode): Convert from a global struct to a
5119 subclass of rtl_opt_pass along with...
5120 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
5121 (make_pass_outof_cfg_layout_mode): ...new function.
5122 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
5123 struct to a subclass of gimple_opt_pass along with...
5124 (pass_data_build_cgraph_edges): ...new pass_data instance and...
5125 (make_pass_build_cgraph_edges): ...new function.
5126 (pass_rebuild_cgraph_edges): Convert from a global struct to a
5127 subclass of gimple_opt_pass along with...
5128 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
5129 (make_pass_rebuild_cgraph_edges): ...new function.
5130 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
5131 subclass of gimple_opt_pass along with...
5132 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
5133 and...
5134 (make_pass_remove_cgraph_callee_edges): ...new function.
5135 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
5136 struct to a subclass of rtl_opt_pass along with...
5137 (pass_data_stack_adjustments): ...new pass_data instance and...
5138 (make_pass_stack_adjustments): ...new function.
5139 * combine.c (pass_combine): Convert from a global struct to a subclass
5140 of rtl_opt_pass along with...
5141 (pass_data_combine): ...new pass_data instance and...
5142 (make_pass_combine): ...new function.
5143 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
5144 global struct to a subclass of rtl_opt_pass along with...
5145 (pass_data_compare_elim_after_reload): ...new pass_data instance
5146 and...
5147 (make_pass_compare_elim_after_reload): ...new function.
5148 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
5149 of rtl_opt_pass along with...
5150 (pass_data_rtl_cprop): ...new pass_data instance and...
5151 (make_pass_rtl_cprop): ...new function.
5152 * cse.c (pass_cse): Convert from a global struct to a subclass of
5153 rtl_opt_pass along with...
5154 (pass_data_cse): ...new pass_data instance and...
5155 (make_pass_cse): ...new function.
5156 (pass_cse2): Convert from a global struct to a subclass of
5157 rtl_opt_pass along with...
5158 (pass_data_cse2): ...new pass_data instance and...
5159 (make_pass_cse2): ...new function.
5160 (pass_cse_after_global_opts): Convert from a global struct to a
5161 subclass of rtl_opt_pass along with...
5162 (pass_data_cse_after_global_opts): ...new pass_data instance and...
5163 (make_pass_cse_after_global_opts): ...new function.
5164 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
5165 of rtl_opt_pass along with...
5166 (pass_data_ud_rtl_dce): ...new pass_data instance and...
5167 (make_pass_ud_rtl_dce): ...new function.
5168 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
5169 rtl_opt_pass along with...
5170 (pass_data_fast_rtl_dce): ...new pass_data instance and...
5171 (make_pass_fast_rtl_dce): ...new function.
5172 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
5173 a subclass of rtl_opt_pass along with...
5174 (pass_data_df_initialize_opt): ...new pass_data instance and...
5175 (make_pass_df_initialize_opt): ...new function.
5176 (pass_df_initialize_no_opt): Convert from a global struct to a
5177 subclass of rtl_opt_pass along with...
5178 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
5179 (make_pass_df_initialize_no_opt): ...new function.
5180 (pass_df_finish): Convert from a global struct to a subclass of
5181 rtl_opt_pass along with...
5182 (pass_data_df_finish): ...new pass_data instance and...
5183 (make_pass_df_finish): ...new function.
5184 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
5185 rtl_opt_pass along with...
5186 (pass_data_rtl_dse1): ...new pass_data instance and...
5187 (make_pass_rtl_dse1): ...new function.
5188 (pass_rtl_dse2): Convert from a global struct to a subclass of
5189 rtl_opt_pass along with...
5190 (pass_data_rtl_dse2): ...new pass_data instance and...
5191 (make_pass_rtl_dse2): ...new function.
5192 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
5193 subclass of rtl_opt_pass along with...
5194 (pass_data_dwarf2_frame): ...new pass_data instance and...
5195 (make_pass_dwarf2_frame): ...new function.
5196 * except.c (pass_set_nothrow_function_flags): Convert from a global
5197 struct to a subclass of rtl_opt_pass along with...
5198 (pass_data_set_nothrow_function_flags): ...new pass_data instance
5199 and...
5200 (make_pass_set_nothrow_function_flags): ...new function.
5201 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
5202 subclass of rtl_opt_pass along with...
5203 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
5204 and...
5205 (make_pass_convert_to_eh_region_ranges): ...new function.
5206 * final.c (pass_compute_alignments): Convert from a global struct to a
5207 subclass of rtl_opt_pass along with...
5208 (pass_data_compute_alignments): ...new pass_data instance and...
5209 (make_pass_compute_alignments): ...new function.
5210 (pass_final): Convert from a global struct to a subclass of
5211 rtl_opt_pass along with...
5212 (pass_data_final): ...new pass_data instance and...
5213 (make_pass_final): ...new function.
5214 (pass_shorten_branches): Convert from a global struct to a subclass of
5215 rtl_opt_pass along with...
5216 (pass_data_shorten_branches): ...new pass_data instance and...
5217 (make_pass_shorten_branches): ...new function.
5218 (pass_clean_state): Convert from a global struct to a subclass of
5219 rtl_opt_pass along with...
5220 (pass_data_clean_state): ...new pass_data instance and...
5221 (make_pass_clean_state): ...new function.
5222 * function.c (pass_instantiate_virtual_regs): Convert from a global
5223 struct to a subclass of rtl_opt_pass along with...
5224 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
5225 (make_pass_instantiate_virtual_regs): ...new function.
5226 (pass_leaf_regs): Convert from a global struct to a subclass of
5227 rtl_opt_pass along with...
5228 (pass_data_leaf_regs): ...new pass_data instance and...
5229 (make_pass_leaf_regs): ...new function.
5230 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
5231 subclass of rtl_opt_pass along with...
5232 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
5233 and...
5234 (make_pass_thread_prologue_and_epilogue): ...new function.
5235 (pass_match_asm_constraints): Convert from a global struct to a
5236 subclass of rtl_opt_pass along with...
5237 (pass_data_match_asm_constraints): ...new pass_data instance and...
5238 (make_pass_match_asm_constraints): ...new function.
5239 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
5240 subclass of rtl_opt_pass along with...
5241 (pass_data_rtl_fwprop): ...new pass_data instance and...
5242 (make_pass_rtl_fwprop): ...new function.
5243 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
5244 rtl_opt_pass along with...
5245 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
5246 (make_pass_rtl_fwprop_addr): ...new function.
5247 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
5248 rtl_opt_pass along with...
5249 (pass_data_rtl_pre): ...new pass_data instance and...
5250 (make_pass_rtl_pre): ...new function.
5251 (pass_rtl_hoist): Convert from a global struct to a subclass of
5252 rtl_opt_pass along with...
5253 (pass_data_rtl_hoist): ...new pass_data instance and...
5254 (make_pass_rtl_hoist): ...new function.
5255 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
5256 subclass of gimple_opt_pass along with...
5257 (pass_data_lower_cf): ...new pass_data instance and...
5258 (make_pass_lower_cf): ...new function.
5259 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
5260 from a global struct to a subclass of gimple_opt_pass along with...
5261 (pass_data_strength_reduction): ...new pass_data instance and...
5262 (make_pass_strength_reduction): ...new function.
5263 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
5264 of rtl_opt_pass along with...
5265 (pass_data_rtl_ifcvt): ...new pass_data instance and...
5266 (make_pass_rtl_ifcvt): ...new function.
5267 (pass_if_after_combine): Convert from a global struct to a subclass of
5268 rtl_opt_pass along with...
5269 (pass_data_if_after_combine): ...new pass_data instance and...
5270 (make_pass_if_after_combine): ...new function.
5271 (pass_if_after_reload): Convert from a global struct to a subclass of
5272 rtl_opt_pass along with...
5273 (pass_data_if_after_reload): ...new pass_data instance and...
5274 (make_pass_if_after_reload): ...new function.
5275 * init-regs.c (pass_initialize_regs): Convert from a global struct to
5276 a subclass of rtl_opt_pass along with...
5277 (pass_data_initialize_regs): ...new pass_data instance and...
5278 (make_pass_initialize_regs): ...new function.
5279 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
5280 of ipa_opt_pass_d along with...
5281 (pass_data_ipa_cp): ...new pass_data instance and...
5282 (make_pass_ipa_cp): ...new function.
5283 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
5284 global struct to a subclass of gimple_opt_pass along with...
5285 (pass_data_inline_parameters): ...new pass_data instance and...
5286 (make_pass_inline_parameters): ...new function.
5287 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
5288 subclass of gimple_opt_pass along with...
5289 (pass_data_early_inline): ...new pass_data instance and...
5290 (make_pass_early_inline): ...new function.
5291 (pass_ipa_inline): Convert from a global struct to a subclass of
5292 ipa_opt_pass_d along with...
5293 (pass_data_ipa_inline): ...new pass_data instance and...
5294 (make_pass_ipa_inline): ...new function.
5295 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
5296 struct to a subclass of gimple_opt_pass along with...
5297 (pass_data_local_pure_const): ...new pass_data instance and...
5298 (make_pass_local_pure_const): ...new function.
5299 (pass_ipa_pure_const): Convert from a global struct to a subclass of
5300 ipa_opt_pass_d along with...
5301 (pass_data_ipa_pure_const): ...new pass_data instance and...
5302 (make_pass_ipa_pure_const): ...new function.
5303 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
5304 to a subclass of ipa_opt_pass_d along with...
5305 (pass_data_ipa_reference): ...new pass_data instance and...
5306 (make_pass_ipa_reference): ...new function.
5307 * ipa-split.c (pass_split_functions): Convert from a global struct to
5308 a subclass of gimple_opt_pass along with...
5309 (pass_data_split_functions): ...new pass_data instance and...
5310 (make_pass_split_functions): ...new function.
5311 (pass_feedback_split_functions): Convert from a global struct to a
5312 subclass of gimple_opt_pass along with...
5313 (pass_data_feedback_split_functions): ...new pass_data instance and...
5314 (make_pass_feedback_split_functions): ...new function.
5315 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
5316 global struct to a subclass of simple_ipa_opt_pass along with...
5317 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
5318 instance and...
5319 (make_pass_ipa_function_and_variable_visibility): ...new function.
5320 (pass_ipa_free_inline_summary): Convert from a global struct to a
5321 subclass of simple_ipa_opt_pass along with...
5322 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
5323 (make_pass_ipa_free_inline_summary): ...new function.
5324 (pass_ipa_whole_program_visibility): Convert from a global struct to a
5325 subclass of ipa_opt_pass_d along with...
5326 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
5327 and...
5328 (make_pass_ipa_whole_program_visibility): ...new function.
5329 (pass_ipa_profile): Convert from a global struct to a subclass of
5330 ipa_opt_pass_d along with...
5331 (pass_data_ipa_profile): ...new pass_data instance and...
5332 (make_pass_ipa_profile): ...new function.
5333 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5334 ipa_opt_pass_d along with...
5335 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5336 (make_pass_ipa_cdtor_merge): ...new function.
5337 * ira.c (pass_ira): Convert from a global struct to a subclass of
5338 rtl_opt_pass along with...
5339 (pass_data_ira): ...new pass_data instance and...
5340 (make_pass_ira): ...new function.
5341 (pass_reload): Convert from a global struct to a subclass of
5342 rtl_opt_pass along with...
5343 (pass_data_reload): ...new pass_data instance and...
5344 (make_pass_reload): ...new function.
5345 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5346 subclass of rtl_opt_pass along with...
5347 (pass_data_cleanup_barriers): ...new pass_data instance and...
5348 (make_pass_cleanup_barriers): ...new function.
5349 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5350 of rtl_opt_pass along with...
5351 (pass_data_loop2): ...new pass_data instance and...
5352 (make_pass_loop2): ...new function.
5353 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5354 rtl_opt_pass along with...
5355 (pass_data_rtl_loop_init): ...new pass_data instance and...
5356 (make_pass_rtl_loop_init): ...new function.
5357 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5358 rtl_opt_pass along with...
5359 (pass_data_rtl_loop_done): ...new pass_data instance and...
5360 (make_pass_rtl_loop_done): ...new function.
5361 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5362 subclass of rtl_opt_pass along with...
5363 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5364 (make_pass_rtl_move_loop_invariants): ...new function.
5365 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5366 rtl_opt_pass along with...
5367 (pass_data_rtl_unswitch): ...new pass_data instance and...
5368 (make_pass_rtl_unswitch): ...new function.
5369 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5370 subclass of rtl_opt_pass along with...
5371 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5372 and...
5373 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5374 (pass_rtl_doloop): Convert from a global struct to a subclass of
5375 rtl_opt_pass along with...
5376 (pass_data_rtl_doloop): ...new pass_data instance and...
5377 (make_pass_rtl_doloop): ...new function.
5378 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5379 a subclass of rtl_opt_pass along with...
5380 (pass_data_lower_subreg): ...new pass_data instance and...
5381 (make_pass_lower_subreg): ...new function.
5382 (pass_lower_subreg2): Convert from a global struct to a subclass of
5383 rtl_opt_pass along with...
5384 (pass_data_lower_subreg2): ...new pass_data instance and...
5385 (make_pass_lower_subreg2): ...new function.
5386 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5387 struct to a subclass of ipa_opt_pass_d along with...
5388 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5389 (make_pass_ipa_lto_gimple_out): ...new function.
5390 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5391 of ipa_opt_pass_d along with...
5392 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5393 (make_pass_ipa_lto_finish_out): ...new function.
5394 * mode-switching.c (pass_mode_switching): Convert from a global struct
5395 to a subclass of rtl_opt_pass along with...
5396 (pass_data_mode_switching): ...new pass_data instance and...
5397 (make_pass_mode_switching): ...new function.
5398 * modulo-sched.c (pass_sms): Convert from a global struct to a
5399 subclass of rtl_opt_pass along with...
5400 (pass_data_sms): ...new pass_data instance and...
5401 (make_pass_sms): ...new function.
5402 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5403 subclass of gimple_opt_pass along with...
5404 (pass_data_expand_omp): ...new pass_data instance and...
5405 (make_pass_expand_omp): ...new function.
5406 (pass_lower_omp): Convert from a global struct to a subclass of
5407 gimple_opt_pass along with...
5408 (pass_data_lower_omp): ...new pass_data instance and...
5409 (make_pass_lower_omp): ...new function.
5410 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5411 of gimple_opt_pass along with...
5412 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5413 (make_pass_diagnose_omp_blocks): ...new function.
5414 * passes.c (pass_early_local_passes): Convert from a global struct to
5415 a subclass of simple_ipa_opt_pass along with...
5416 (pass_data_early_local_passes): ...new pass_data instance and...
5417 (make_pass_early_local_passes): ...new function.
5418 (pass_all_early_optimizations): Convert from a global struct to a
5419 subclass of gimple_opt_pass along with...
5420 (pass_data_all_early_optimizations): ...new pass_data instance and...
5421 (make_pass_all_early_optimizations): ...new function.
5422 (pass_all_optimizations): Convert from a global struct to a subclass
5423 of gimple_opt_pass along with...
5424 (pass_data_all_optimizations): ...new pass_data instance and...
5425 (make_pass_all_optimizations): ...new function.
5426 (pass_all_optimizations_g): Convert from a global struct to a subclass
5427 of gimple_opt_pass along with...
5428 (pass_data_all_optimizations_g): ...new pass_data instance and...
5429 (make_pass_all_optimizations_g): ...new function.
5430 (pass_rest_of_compilation): Convert from a global struct to a subclass
5431 of rtl_opt_pass along with...
5432 (pass_data_rest_of_compilation): ...new pass_data instance and...
5433 (make_pass_rest_of_compilation): ...new function.
5434 (pass_postreload): Convert from a global struct to a subclass of
5435 rtl_opt_pass along with...
5436 (pass_data_postreload): ...new pass_data instance and...
5437 (make_pass_postreload): ...new function.
5438 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5439 subclass of rtl_opt_pass along with...
5440 (pass_data_gcse2): ...new pass_data instance and...
5441 (make_pass_gcse2): ...new function.
5442 * postreload.c (pass_postreload_cse): Convert from a global struct to
5443 a subclass of rtl_opt_pass along with...
5444 (pass_data_postreload_cse): ...new pass_data instance and...
5445 (make_pass_postreload_cse): ...new function.
5446 * predict.c (pass_profile): Convert from a global struct to a subclass
5447 of gimple_opt_pass along with...
5448 (pass_data_profile): ...new pass_data instance and...
5449 (make_pass_profile): ...new function.
5450 (pass_strip_predict_hints): Convert from a global struct to a subclass
5451 of gimple_opt_pass along with...
5452 (pass_data_strip_predict_hints): ...new pass_data instance and...
5453 (make_pass_strip_predict_hints): ...new function.
5454 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5455 of rtl_opt_pass along with...
5456 (pass_data_peephole2): ...new pass_data instance and...
5457 (make_pass_peephole2): ...new function.
5458 (pass_split_all_insns): Convert from a global struct to a subclass of
5459 rtl_opt_pass along with...
5460 (pass_data_split_all_insns): ...new pass_data instance and...
5461 (make_pass_split_all_insns): ...new function.
5462 (pass_split_after_reload): Convert from a global struct to a subclass
5463 of rtl_opt_pass along with...
5464 (pass_data_split_after_reload): ...new pass_data instance and...
5465 (make_pass_split_after_reload): ...new function.
5466 (pass_split_before_regstack): Convert from a global struct to a
5467 subclass of rtl_opt_pass along with...
5468 (pass_data_split_before_regstack): ...new pass_data instance and...
5469 (make_pass_split_before_regstack): ...new function.
5470 (pass_split_before_sched2): Convert from a global struct to a subclass
5471 of rtl_opt_pass along with...
5472 (pass_data_split_before_sched2): ...new pass_data instance and...
5473 (make_pass_split_before_sched2): ...new function.
5474 (pass_split_for_shorten_branches): Convert from a global struct to a
5475 subclass of rtl_opt_pass along with...
5476 (pass_data_split_for_shorten_branches): ...new pass_data instance
5477 and...
5478 (make_pass_split_for_shorten_branches): ...new function.
5479 * ree.c (pass_ree): Convert from a global struct to a subclass of
5480 rtl_opt_pass along with...
5481 (pass_data_ree): ...new pass_data instance and...
5482 (make_pass_ree): ...new function.
5483 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5484 subclass of rtl_opt_pass along with...
5485 (pass_data_stack_regs): ...new pass_data instance and...
5486 (make_pass_stack_regs): ...new function.
5487 (pass_stack_regs_run): Convert from a global struct to a subclass of
5488 rtl_opt_pass along with...
5489 (pass_data_stack_regs_run): ...new pass_data instance and...
5490 (make_pass_stack_regs_run): ...new function.
5491 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5492 subclass of rtl_opt_pass along with...
5493 (pass_data_cprop_hardreg): ...new pass_data instance and...
5494 (make_pass_cprop_hardreg): ...new function.
5495 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5496 subclass of rtl_opt_pass along with...
5497 (pass_data_reginfo_init): ...new pass_data instance and...
5498 (make_pass_reginfo_init): ...new function.
5499 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5500 of rtl_opt_pass along with...
5501 (pass_data_regmove): ...new pass_data instance and...
5502 (make_pass_regmove): ...new function.
5503 * regrename.c (pass_regrename): Convert from a global struct to a
5504 subclass of rtl_opt_pass along with...
5505 (pass_data_regrename): ...new pass_data instance and...
5506 (make_pass_regrename): ...new function.
5507 * reorg.c (pass_delay_slots): Convert from a global struct to a
5508 subclass of rtl_opt_pass along with...
5509 (pass_data_delay_slots): ...new pass_data instance and...
5510 (make_pass_delay_slots): ...new function.
5511 (pass_machine_reorg): Convert from a global struct to a subclass of
5512 rtl_opt_pass along with...
5513 (pass_data_machine_reorg): ...new pass_data instance and...
5514 (make_pass_machine_reorg): ...new function.
5515 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5516 of rtl_opt_pass along with...
5517 (pass_data_sched): ...new pass_data instance and...
5518 (make_pass_sched): ...new function.
5519 (pass_sched2): Convert from a global struct to a subclass of
5520 rtl_opt_pass along with...
5521 (pass_data_sched2): ...new pass_data instance and...
5522 (make_pass_sched2): ...new function.
5523 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5524 to a subclass of rtl_opt_pass along with...
5525 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5526 (make_pass_stack_ptr_mod): ...new function.
5527 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5528 to a subclass of rtl_opt_pass along with...
5529 (pass_data_rtl_store_motion): ...new pass_data instance and...
5530 (make_pass_rtl_store_motion): ...new function.
5531 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5532 of gimple_opt_pass along with...
5533 (pass_data_tracer): ...new pass_data instance and...
5534 (make_pass_tracer): ...new function.
5535 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5536 to a subclass of gimple_opt_pass along with...
5537 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5538 (make_pass_diagnose_tm_blocks): ...new function.
5539 (pass_lower_tm): Convert from a global struct to a subclass of
5540 gimple_opt_pass along with...
5541 (pass_data_lower_tm): ...new pass_data instance and...
5542 (make_pass_lower_tm): ...new function.
5543 (pass_tm_init): Convert from a global struct to a subclass of
5544 gimple_opt_pass along with...
5545 (pass_data_tm_init): ...new pass_data instance and...
5546 (make_pass_tm_init): ...new function.
5547 (pass_tm_mark): Convert from a global struct to a subclass of
5548 gimple_opt_pass along with...
5549 (pass_data_tm_mark): ...new pass_data instance and...
5550 (make_pass_tm_mark): ...new function.
5551 (pass_tm_edges): Convert from a global struct to a subclass of
5552 gimple_opt_pass along with...
5553 (pass_data_tm_edges): ...new pass_data instance and...
5554 (make_pass_tm_edges): ...new function.
5555 (pass_tm_memopt): Convert from a global struct to a subclass of
5556 gimple_opt_pass along with...
5557 (pass_data_tm_memopt): ...new pass_data instance and...
5558 (make_pass_tm_memopt): ...new function.
5559 (pass_ipa_tm): Convert from a global struct to a subclass of
5560 simple_ipa_opt_pass along with...
5561 (pass_data_ipa_tm): ...new pass_data instance and...
5562 (make_pass_ipa_tm): ...new function.
5563 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5564 subclass of gimple_opt_pass along with...
5565 (pass_data_call_cdce): ...new pass_data instance and...
5566 (make_pass_call_cdce): ...new function.
5567 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5568 subclass of gimple_opt_pass along with...
5569 (pass_data_build_cfg): ...new pass_data instance and...
5570 (make_pass_build_cfg): ...new function.
5571 (pass_split_crit_edges): Convert from a global struct to a subclass of
5572 gimple_opt_pass along with...
5573 (pass_data_split_crit_edges): ...new pass_data instance and...
5574 (make_pass_split_crit_edges): ...new function.
5575 (pass_warn_function_return): Convert from a global struct to a
5576 subclass of gimple_opt_pass along with...
5577 (pass_data_warn_function_return): ...new pass_data instance and...
5578 (make_pass_warn_function_return): ...new function.
5579 (pass_warn_function_noreturn): Convert from a global struct to a
5580 subclass of gimple_opt_pass along with...
5581 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5582 (make_pass_warn_function_noreturn): ...new function.
5583 (pass_warn_unused_result): Convert from a global struct to a subclass
5584 of gimple_opt_pass along with...
5585 (pass_data_warn_unused_result): ...new pass_data instance and...
5586 (make_pass_warn_unused_result): ...new function.
5587 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5588 a subclass of gimple_opt_pass along with...
5589 (pass_data_merge_phi): ...new pass_data instance and...
5590 (make_pass_merge_phi): ...new function.
5591 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5592 a subclass of gimple_opt_pass along with...
5593 (pass_data_lower_complex): ...new pass_data instance and...
5594 (make_pass_lower_complex): ...new function.
5595 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5596 gimple_opt_pass along with...
5597 (pass_data_lower_complex_O0): ...new pass_data instance and...
5598 (make_pass_lower_complex_O0): ...new function.
5599 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5600 subclass of gimple_opt_pass along with...
5601 (pass_data_lower_eh): ...new pass_data instance and...
5602 (make_pass_lower_eh): ...new function.
5603 (pass_refactor_eh): Convert from a global struct to a subclass of
5604 gimple_opt_pass along with...
5605 (pass_data_refactor_eh): ...new pass_data instance and...
5606 (make_pass_refactor_eh): ...new function.
5607 (pass_lower_resx): Convert from a global struct to a subclass of
5608 gimple_opt_pass along with...
5609 (pass_data_lower_resx): ...new pass_data instance and...
5610 (make_pass_lower_resx): ...new function.
5611 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5612 of gimple_opt_pass along with...
5613 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
5614 (make_pass_lower_eh_dispatch): ...new function.
5615 (pass_cleanup_eh): Convert from a global struct to a subclass of
5616 gimple_opt_pass along with...
5617 (pass_data_cleanup_eh): ...new pass_data instance and...
5618 (make_pass_cleanup_eh): ...new function.
5619 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
5620 to a subclass of simple_ipa_opt_pass along with...
5621 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
5622 (make_pass_ipa_lower_emutls): ...new function.
5623 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
5624 a subclass of gimple_opt_pass along with...
5625 (pass_data_if_conversion): ...new pass_data instance and...
5626 (make_pass_if_conversion): ...new function.
5627 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
5628 subclass of gimple_opt_pass along with...
5629 (pass_data_build_ssa): ...new pass_data instance and...
5630 (make_pass_build_ssa): ...new function.
5631 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
5632 global struct to a subclass of gimple_opt_pass along with...
5633 (pass_data_loop_distribution): ...new pass_data instance and...
5634 (make_pass_loop_distribution): ...new function.
5635 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
5636 subclass of gimple_opt_pass along with...
5637 (pass_data_mudflap_1): ...new pass_data instance and...
5638 (make_pass_mudflap_1): ...new function.
5639 (pass_mudflap_2): Convert from a global struct to a subclass of
5640 gimple_opt_pass along with...
5641 (pass_data_mudflap_2): ...new pass_data instance and...
5642 (make_pass_mudflap_2): ...new function.
5643 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
5644 subclass of gimple_opt_pass along with...
5645 (pass_data_mudflap_1): ...new pass_data instance and...
5646 (make_pass_mudflap_1): ...new function.
5647 (pass_mudflap_2): Convert from a global struct to a subclass of
5648 gimple_opt_pass along with...
5649 (pass_data_mudflap_2): ...new pass_data instance and...
5650 (make_pass_mudflap_2): ...new function.
5651 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
5652 gimple_opt_pass along with...
5653 (pass_data_nrv): ...new pass_data instance and...
5654 (make_pass_nrv): ...new function.
5655 (pass_return_slot): Convert from a global struct to a subclass of
5656 gimple_opt_pass along with...
5657 (pass_data_return_slot): ...new pass_data instance and...
5658 (make_pass_return_slot): ...new function.
5659 * tree-object-size.c (pass_object_sizes): Convert from a global struct
5660 to a subclass of gimple_opt_pass along with...
5661 (pass_data_object_sizes): ...new pass_data instance and...
5662 (make_pass_object_sizes): ...new function.
5663 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
5664 global struct to a subclass of gimple_opt_pass along with...
5665 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
5666 and...
5667 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5668 (pass_fixup_cfg): Convert from a global struct to a subclass of
5669 gimple_opt_pass along with...
5670 (pass_data_fixup_cfg): ...new pass_data instance and...
5671 (make_pass_fixup_cfg): ...new function.
5672 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
5673 (make_pass_mudflap_1): ...new function.
5674 (pass_mudflap_2): Replace declaration with that of...
5675 (make_pass_mudflap_2): ...new function.
5676 (pass_asan): Replace declaration with that of...
5677 (make_pass_asan): ...new function.
5678 (pass_asan_O0): Replace declaration with that of...
5679 (make_pass_asan_O0): ...new function.
5680 (pass_tsan): Replace declaration with that of...
5681 (make_pass_tsan): ...new function.
5682 (pass_tsan_O0): Replace declaration with that of...
5683 (make_pass_tsan_O0): ...new function.
5684 (pass_lower_cf): Replace declaration with that of...
5685 (make_pass_lower_cf): ...new function.
5686 (pass_refactor_eh): Replace declaration with that of...
5687 (make_pass_refactor_eh): ...new function.
5688 (pass_lower_eh): Replace declaration with that of...
5689 (make_pass_lower_eh): ...new function.
5690 (pass_lower_eh_dispatch): Replace declaration with that of...
5691 (make_pass_lower_eh_dispatch): ...new function.
5692 (pass_lower_resx): Replace declaration with that of...
5693 (make_pass_lower_resx): ...new function.
5694 (pass_build_cfg): Replace declaration with that of...
5695 (make_pass_build_cfg): ...new function.
5696 (pass_early_tree_profile): Replace declaration with that of...
5697 (make_pass_early_tree_profile): ...new function.
5698 (pass_cleanup_eh): Replace declaration with that of...
5699 (make_pass_cleanup_eh): ...new function.
5700 (pass_sra): Replace declaration with that of...
5701 (make_pass_sra): ...new function.
5702 (pass_sra_early): Replace declaration with that of...
5703 (make_pass_sra_early): ...new function.
5704 (pass_early_ipa_sra): Replace declaration with that of...
5705 (make_pass_early_ipa_sra): ...new function.
5706 (pass_tail_recursion): Replace declaration with that of...
5707 (make_pass_tail_recursion): ...new function.
5708 (pass_tail_calls): Replace declaration with that of...
5709 (make_pass_tail_calls): ...new function.
5710 (pass_tree_loop): Replace declaration with that of...
5711 (make_pass_tree_loop): ...new function.
5712 (pass_tree_loop_init): Replace declaration with that of...
5713 (make_pass_tree_loop_init): ...new function.
5714 (pass_lim): Replace declaration with that of...
5715 (make_pass_lim): ...new function.
5716 (pass_tree_unswitch): Replace declaration with that of...
5717 (make_pass_tree_unswitch): ...new function.
5718 (pass_predcom): Replace declaration with that of...
5719 (make_pass_predcom): ...new function.
5720 (pass_iv_canon): Replace declaration with that of...
5721 (make_pass_iv_canon): ...new function.
5722 (pass_scev_cprop): Replace declaration with that of...
5723 (make_pass_scev_cprop): ...new function.
5724 (pass_empty_loop): Replace declaration with that of...
5725 (make_pass_empty_loop): ...new function.
5726 (pass_record_bounds): Replace declaration with that of...
5727 (make_pass_record_bounds): ...new function.
5728 (pass_graphite): Replace declaration with that of...
5729 (make_pass_graphite): ...new function.
5730 (pass_graphite_transforms): Replace declaration with that of...
5731 (make_pass_graphite_transforms): ...new function.
5732 (pass_if_conversion): Replace declaration with that of...
5733 (make_pass_if_conversion): ...new function.
5734 (pass_loop_distribution): Replace declaration with that of...
5735 (make_pass_loop_distribution): ...new function.
5736 (pass_vectorize): Replace declaration with that of...
5737 (make_pass_vectorize): ...new function.
5738 (pass_slp_vectorize): Replace declaration with that of...
5739 (make_pass_slp_vectorize): ...new function.
5740 (pass_complete_unroll): Replace declaration with that of...
5741 (make_pass_complete_unroll): ...new function.
5742 (pass_complete_unrolli): Replace declaration with that of...
5743 (make_pass_complete_unrolli): ...new function.
5744 (pass_parallelize_loops): Replace declaration with that of...
5745 (make_pass_parallelize_loops): ...new function.
5746 (pass_loop_prefetch): Replace declaration with that of...
5747 (make_pass_loop_prefetch): ...new function.
5748 (pass_iv_optimize): Replace declaration with that of...
5749 (make_pass_iv_optimize): ...new function.
5750 (pass_tree_loop_done): Replace declaration with that of...
5751 (make_pass_tree_loop_done): ...new function.
5752 (pass_ch): Replace declaration with that of...
5753 (make_pass_ch): ...new function.
5754 (pass_ccp): Replace declaration with that of...
5755 (make_pass_ccp): ...new function.
5756 (pass_phi_only_cprop): Replace declaration with that of...
5757 (make_pass_phi_only_cprop): ...new function.
5758 (pass_build_ssa): Replace declaration with that of...
5759 (make_pass_build_ssa): ...new function.
5760 (pass_build_alias): Replace declaration with that of...
5761 (make_pass_build_alias): ...new function.
5762 (pass_build_ealias): Replace declaration with that of...
5763 (make_pass_build_ealias): ...new function.
5764 (pass_dominator): Replace declaration with that of...
5765 (make_pass_dominator): ...new function.
5766 (pass_dce): Replace declaration with that of...
5767 (make_pass_dce): ...new function.
5768 (pass_dce_loop): Replace declaration with that of...
5769 (make_pass_dce_loop): ...new function.
5770 (pass_cd_dce): Replace declaration with that of...
5771 (make_pass_cd_dce): ...new function.
5772 (pass_call_cdce): Replace declaration with that of...
5773 (make_pass_call_cdce): ...new function.
5774 (pass_merge_phi): Replace declaration with that of...
5775 (make_pass_merge_phi): ...new function.
5776 (pass_split_crit_edges): Replace declaration with that of...
5777 (make_pass_split_crit_edges): ...new function.
5778 (pass_pre): Replace declaration with that of...
5779 (make_pass_pre): ...new function.
5780 (pass_profile): Replace declaration with that of...
5781 (make_pass_profile): ...new function.
5782 (pass_strip_predict_hints): Replace declaration with that of...
5783 (make_pass_strip_predict_hints): ...new function.
5784 (pass_lower_complex_O0): Replace declaration with that of...
5785 (make_pass_lower_complex_O0): ...new function.
5786 (pass_lower_complex): Replace declaration with that of...
5787 (make_pass_lower_complex): ...new function.
5788 (pass_lower_vector): Replace declaration with that of...
5789 (make_pass_lower_vector): ...new function.
5790 (pass_lower_vector_ssa): Replace declaration with that of...
5791 (make_pass_lower_vector_ssa): ...new function.
5792 (pass_lower_omp): Replace declaration with that of...
5793 (make_pass_lower_omp): ...new function.
5794 (pass_diagnose_omp_blocks): Replace declaration with that of...
5795 (make_pass_diagnose_omp_blocks): ...new function.
5796 (pass_expand_omp): Replace declaration with that of...
5797 (make_pass_expand_omp): ...new function.
5798 (pass_expand_omp_ssa): Replace declaration with that of...
5799 (make_pass_expand_omp_ssa): ...new function.
5800 (pass_object_sizes): Replace declaration with that of...
5801 (make_pass_object_sizes): ...new function.
5802 (pass_strlen): Replace declaration with that of...
5803 (make_pass_strlen): ...new function.
5804 (pass_fold_builtins): Replace declaration with that of...
5805 (make_pass_fold_builtins): ...new function.
5806 (pass_stdarg): Replace declaration with that of...
5807 (make_pass_stdarg): ...new function.
5808 (pass_early_warn_uninitialized): Replace declaration with that of...
5809 (make_pass_early_warn_uninitialized): ...new function.
5810 (pass_late_warn_uninitialized): Replace declaration with that of...
5811 (make_pass_late_warn_uninitialized): ...new function.
5812 (pass_cse_reciprocals): Replace declaration with that of...
5813 (make_pass_cse_reciprocals): ...new function.
5814 (pass_cse_sincos): Replace declaration with that of...
5815 (make_pass_cse_sincos): ...new function.
5816 (pass_optimize_bswap): Replace declaration with that of...
5817 (make_pass_optimize_bswap): ...new function.
5818 (pass_optimize_widening_mul): Replace declaration with that of...
5819 (make_pass_optimize_widening_mul): ...new function.
5820 (pass_warn_function_return): Replace declaration with that of...
5821 (make_pass_warn_function_return): ...new function.
5822 (pass_warn_function_noreturn): Replace declaration with that of...
5823 (make_pass_warn_function_noreturn): ...new function.
5824 (pass_cselim): Replace declaration with that of...
5825 (make_pass_cselim): ...new function.
5826 (pass_phiopt): Replace declaration with that of...
5827 (make_pass_phiopt): ...new function.
5828 (pass_forwprop): Replace declaration with that of...
5829 (make_pass_forwprop): ...new function.
5830 (pass_phiprop): Replace declaration with that of...
5831 (make_pass_phiprop): ...new function.
5832 (pass_tree_ifcombine): Replace declaration with that of...
5833 (make_pass_tree_ifcombine): ...new function.
5834 (pass_dse): Replace declaration with that of...
5835 (make_pass_dse): ...new function.
5836 (pass_nrv): Replace declaration with that of...
5837 (make_pass_nrv): ...new function.
5838 (pass_rename_ssa_copies): Replace declaration with that of...
5839 (make_pass_rename_ssa_copies): ...new function.
5840 (pass_sink_code): Replace declaration with that of...
5841 (make_pass_sink_code): ...new function.
5842 (pass_fre): Replace declaration with that of...
5843 (make_pass_fre): ...new function.
5844 (pass_check_data_deps): Replace declaration with that of...
5845 (make_pass_check_data_deps): ...new function.
5846 (pass_copy_prop): Replace declaration with that of...
5847 (make_pass_copy_prop): ...new function.
5848 (pass_vrp): Replace declaration with that of...
5849 (make_pass_vrp): ...new function.
5850 (pass_uncprop): Replace declaration with that of...
5851 (make_pass_uncprop): ...new function.
5852 (pass_return_slot): Replace declaration with that of...
5853 (make_pass_return_slot): ...new function.
5854 (pass_reassoc): Replace declaration with that of...
5855 (make_pass_reassoc): ...new function.
5856 (pass_rebuild_cgraph_edges): Replace declaration with that of...
5857 (make_pass_rebuild_cgraph_edges): ...new function.
5858 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
5859 (make_pass_remove_cgraph_callee_edges): ...new function.
5860 (pass_build_cgraph_edges): Replace declaration with that of...
5861 (make_pass_build_cgraph_edges): ...new function.
5862 (pass_local_pure_const): Replace declaration with that of...
5863 (make_pass_local_pure_const): ...new function.
5864 (pass_tracer): Replace declaration with that of...
5865 (make_pass_tracer): ...new function.
5866 (pass_warn_unused_result): Replace declaration with that of...
5867 (make_pass_warn_unused_result): ...new function.
5868 (pass_diagnose_tm_blocks): Replace declaration with that of...
5869 (make_pass_diagnose_tm_blocks): ...new function.
5870 (pass_lower_tm): Replace declaration with that of...
5871 (make_pass_lower_tm): ...new function.
5872 (pass_tm_init): Replace declaration with that of...
5873 (make_pass_tm_init): ...new function.
5874 (pass_tm_mark): Replace declaration with that of...
5875 (make_pass_tm_mark): ...new function.
5876 (pass_tm_memopt): Replace declaration with that of...
5877 (make_pass_tm_memopt): ...new function.
5878 (pass_tm_edges): Replace declaration with that of...
5879 (make_pass_tm_edges): ...new function.
5880 (pass_split_functions): Replace declaration with that of...
5881 (make_pass_split_functions): ...new function.
5882 (pass_feedback_split_functions): Replace declaration with that of...
5883 (make_pass_feedback_split_functions): ...new function.
5884 (pass_strength_reduction): Replace declaration with that of...
5885 (make_pass_strength_reduction): ...new function.
5886 (pass_ipa_lower_emutls): Replace declaration with that of...
5887 (make_pass_ipa_lower_emutls): ...new function.
5888 (pass_ipa_function_and_variable_visibility): Replace declaration with
5889 that of...
5890 (make_pass_ipa_function_and_variable_visibility): ...new function.
5891 (pass_ipa_tree_profile): Replace declaration with that of...
5892 (make_pass_ipa_tree_profile): ...new function.
5893 (pass_early_local_passes): Replace declaration with that of...
5894 (make_pass_early_local_passes): ...new function.
5895 (pass_ipa_whole_program_visibility): Replace declaration with that
5896 of...
5897 (make_pass_ipa_whole_program_visibility): ...new function.
5898 (pass_ipa_lto_gimple_out): Replace declaration with that of...
5899 (make_pass_ipa_lto_gimple_out): ...new function.
5900 (pass_ipa_increase_alignment): Replace declaration with that of...
5901 (make_pass_ipa_increase_alignment): ...new function.
5902 (pass_ipa_inline): Replace declaration with that of...
5903 (make_pass_ipa_inline): ...new function.
5904 (pass_ipa_free_lang_data): Replace declaration with that of...
5905 (make_pass_ipa_free_lang_data): ...new function.
5906 (pass_ipa_free_inline_summary): Replace declaration with that of...
5907 (make_pass_ipa_free_inline_summary): ...new function.
5908 (pass_ipa_cp): Replace declaration with that of...
5909 (make_pass_ipa_cp): ...new function.
5910 (pass_ipa_reference): Replace declaration with that of...
5911 (make_pass_ipa_reference): ...new function.
5912 (pass_ipa_pure_const): Replace declaration with that of...
5913 (make_pass_ipa_pure_const): ...new function.
5914 (pass_ipa_pta): Replace declaration with that of...
5915 (make_pass_ipa_pta): ...new function.
5916 (pass_ipa_lto_finish_out): Replace declaration with that of...
5917 (make_pass_ipa_lto_finish_out): ...new function.
5918 (pass_ipa_tm): Replace declaration with that of...
5919 (make_pass_ipa_tm): ...new function.
5920 (pass_ipa_profile): Replace declaration with that of...
5921 (make_pass_ipa_profile): ...new function.
5922 (pass_ipa_cdtor_merge): Replace declaration with that of...
5923 (make_pass_ipa_cdtor_merge): ...new function.
5924 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
5925 of...
5926 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5927 (pass_init_datastructures): Replace declaration with that of...
5928 (make_pass_init_datastructures): ...new function.
5929 (pass_fixup_cfg): Replace declaration with that of...
5930 (make_pass_fixup_cfg): ...new function.
5931 (pass_expand): Replace declaration with that of...
5932 (make_pass_expand): ...new function.
5933 (pass_instantiate_virtual_regs): Replace declaration with that of...
5934 (make_pass_instantiate_virtual_regs): ...new function.
5935 (pass_rtl_fwprop): Replace declaration with that of...
5936 (make_pass_rtl_fwprop): ...new function.
5937 (pass_rtl_fwprop_addr): Replace declaration with that of...
5938 (make_pass_rtl_fwprop_addr): ...new function.
5939 (pass_jump): Replace declaration with that of...
5940 (make_pass_jump): ...new function.
5941 (pass_jump2): Replace declaration with that of...
5942 (make_pass_jump2): ...new function.
5943 (pass_lower_subreg): Replace declaration with that of...
5944 (make_pass_lower_subreg): ...new function.
5945 (pass_cse): Replace declaration with that of...
5946 (make_pass_cse): ...new function.
5947 (pass_fast_rtl_dce): Replace declaration with that of...
5948 (make_pass_fast_rtl_dce): ...new function.
5949 (pass_ud_rtl_dce): Replace declaration with that of...
5950 (make_pass_ud_rtl_dce): ...new function.
5951 (pass_rtl_dce): Replace declaration with that of...
5952 (make_pass_rtl_dce): ...new function.
5953 (pass_rtl_dse1): Replace declaration with that of...
5954 (make_pass_rtl_dse1): ...new function.
5955 (pass_rtl_dse2): Replace declaration with that of...
5956 (make_pass_rtl_dse2): ...new function.
5957 (pass_rtl_dse3): Replace declaration with that of...
5958 (make_pass_rtl_dse3): ...new function.
5959 (pass_rtl_cprop): Replace declaration with that of...
5960 (make_pass_rtl_cprop): ...new function.
5961 (pass_rtl_pre): Replace declaration with that of...
5962 (make_pass_rtl_pre): ...new function.
5963 (pass_rtl_hoist): Replace declaration with that of...
5964 (make_pass_rtl_hoist): ...new function.
5965 (pass_rtl_store_motion): Replace declaration with that of...
5966 (make_pass_rtl_store_motion): ...new function.
5967 (pass_cse_after_global_opts): Replace declaration with that of...
5968 (make_pass_cse_after_global_opts): ...new function.
5969 (pass_rtl_ifcvt): Replace declaration with that of...
5970 (make_pass_rtl_ifcvt): ...new function.
5971 (pass_into_cfg_layout_mode): Replace declaration with that of...
5972 (make_pass_into_cfg_layout_mode): ...new function.
5973 (pass_outof_cfg_layout_mode): Replace declaration with that of...
5974 (make_pass_outof_cfg_layout_mode): ...new function.
5975 (pass_loop2): Replace declaration with that of...
5976 (make_pass_loop2): ...new function.
5977 (pass_rtl_loop_init): Replace declaration with that of...
5978 (make_pass_rtl_loop_init): ...new function.
5979 (pass_rtl_move_loop_invariants): Replace declaration with that of...
5980 (make_pass_rtl_move_loop_invariants): ...new function.
5981 (pass_rtl_unswitch): Replace declaration with that of...
5982 (make_pass_rtl_unswitch): ...new function.
5983 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
5984 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5985 (pass_rtl_doloop): Replace declaration with that of...
5986 (make_pass_rtl_doloop): ...new function.
5987 (pass_rtl_loop_done): Replace declaration with that of...
5988 (make_pass_rtl_loop_done): ...new function.
5989 (pass_web): Replace declaration with that of...
5990 (make_pass_web): ...new function.
5991 (pass_cse2): Replace declaration with that of...
5992 (make_pass_cse2): ...new function.
5993 (pass_df_initialize_opt): Replace declaration with that of...
5994 (make_pass_df_initialize_opt): ...new function.
5995 (pass_df_initialize_no_opt): Replace declaration with that of...
5996 (make_pass_df_initialize_no_opt): ...new function.
5997 (pass_reginfo_init): Replace declaration with that of...
5998 (make_pass_reginfo_init): ...new function.
5999 (pass_inc_dec): Replace declaration with that of...
6000 (make_pass_inc_dec): ...new function.
6001 (pass_stack_ptr_mod): Replace declaration with that of...
6002 (make_pass_stack_ptr_mod): ...new function.
6003 (pass_initialize_regs): Replace declaration with that of...
6004 (make_pass_initialize_regs): ...new function.
6005 (pass_combine): Replace declaration with that of...
6006 (make_pass_combine): ...new function.
6007 (pass_if_after_combine): Replace declaration with that of...
6008 (make_pass_if_after_combine): ...new function.
6009 (pass_ree): Replace declaration with that of...
6010 (make_pass_ree): ...new function.
6011 (pass_partition_blocks): Replace declaration with that of...
6012 (make_pass_partition_blocks): ...new function.
6013 (pass_match_asm_constraints): Replace declaration with that of...
6014 (make_pass_match_asm_constraints): ...new function.
6015 (pass_regmove): Replace declaration with that of...
6016 (make_pass_regmove): ...new function.
6017 (pass_split_all_insns): Replace declaration with that of...
6018 (make_pass_split_all_insns): ...new function.
6019 (pass_fast_rtl_byte_dce): Replace declaration with that of...
6020 (make_pass_fast_rtl_byte_dce): ...new function.
6021 (pass_lower_subreg2): Replace declaration with that of...
6022 (make_pass_lower_subreg2): ...new function.
6023 (pass_mode_switching): Replace declaration with that of...
6024 (make_pass_mode_switching): ...new function.
6025 (pass_sms): Replace declaration with that of...
6026 (make_pass_sms): ...new function.
6027 (pass_sched): Replace declaration with that of...
6028 (make_pass_sched): ...new function.
6029 (pass_ira): Replace declaration with that of...
6030 (make_pass_ira): ...new function.
6031 (pass_reload): Replace declaration with that of...
6032 (make_pass_reload): ...new function.
6033 (pass_clean_state): Replace declaration with that of...
6034 (make_pass_clean_state): ...new function.
6035 (pass_branch_prob): Replace declaration with that of...
6036 (make_pass_branch_prob): ...new function.
6037 (pass_value_profile_transformations): Replace declaration with that
6038 of...
6039 (make_pass_value_profile_transformations): ...new function.
6040 (pass_postreload_cse): Replace declaration with that of...
6041 (make_pass_postreload_cse): ...new function.
6042 (pass_gcse2): Replace declaration with that of...
6043 (make_pass_gcse2): ...new function.
6044 (pass_split_after_reload): Replace declaration with that of...
6045 (make_pass_split_after_reload): ...new function.
6046 (pass_branch_target_load_optimize1): Replace declaration with that
6047 of...
6048 (make_pass_branch_target_load_optimize1): ...new function.
6049 (pass_thread_prologue_and_epilogue): Replace declaration with that
6050 of...
6051 (make_pass_thread_prologue_and_epilogue): ...new function.
6052 (pass_stack_adjustments): Replace declaration with that of...
6053 (make_pass_stack_adjustments): ...new function.
6054 (pass_peephole2): Replace declaration with that of...
6055 (make_pass_peephole2): ...new function.
6056 (pass_if_after_reload): Replace declaration with that of...
6057 (make_pass_if_after_reload): ...new function.
6058 (pass_regrename): Replace declaration with that of...
6059 (make_pass_regrename): ...new function.
6060 (pass_cprop_hardreg): Replace declaration with that of...
6061 (make_pass_cprop_hardreg): ...new function.
6062 (pass_reorder_blocks): Replace declaration with that of...
6063 (make_pass_reorder_blocks): ...new function.
6064 (pass_branch_target_load_optimize2): Replace declaration with that
6065 of...
6066 (make_pass_branch_target_load_optimize2): ...new function.
6067 (pass_leaf_regs): Replace declaration with that of...
6068 (make_pass_leaf_regs): ...new function.
6069 (pass_split_before_sched2): Replace declaration with that of...
6070 (make_pass_split_before_sched2): ...new function.
6071 (pass_compare_elim_after_reload): Replace declaration with that of...
6072 (make_pass_compare_elim_after_reload): ...new function.
6073 (pass_sched2): Replace declaration with that of...
6074 (make_pass_sched2): ...new function.
6075 (pass_stack_regs): Replace declaration with that of...
6076 (make_pass_stack_regs): ...new function.
6077 (pass_stack_regs_run): Replace declaration with that of...
6078 (make_pass_stack_regs_run): ...new function.
6079 (pass_df_finish): Replace declaration with that of...
6080 (make_pass_df_finish): ...new function.
6081 (pass_compute_alignments): Replace declaration with that of...
6082 (make_pass_compute_alignments): ...new function.
6083 (pass_duplicate_computed_gotos): Replace declaration with that of...
6084 (make_pass_duplicate_computed_gotos): ...new function.
6085 (pass_variable_tracking): Replace declaration with that of...
6086 (make_pass_variable_tracking): ...new function.
6087 (pass_free_cfg): Replace declaration with that of...
6088 (make_pass_free_cfg): ...new function.
6089 (pass_machine_reorg): Replace declaration with that of...
6090 (make_pass_machine_reorg): ...new function.
6091 (pass_cleanup_barriers): Replace declaration with that of...
6092 (make_pass_cleanup_barriers): ...new function.
6093 (pass_delay_slots): Replace declaration with that of...
6094 (make_pass_delay_slots): ...new function.
6095 (pass_split_for_shorten_branches): Replace declaration with that of...
6096 (make_pass_split_for_shorten_branches): ...new function.
6097 (pass_split_before_regstack): Replace declaration with that of...
6098 (make_pass_split_before_regstack): ...new function.
6099 (pass_convert_to_eh_region_ranges): Replace declaration with that
6100 of...
6101 (make_pass_convert_to_eh_region_ranges): ...new function.
6102 (pass_shorten_branches): Replace declaration with that of...
6103 (make_pass_shorten_branches): ...new function.
6104 (pass_set_nothrow_function_flags): Replace declaration with that of...
6105 (make_pass_set_nothrow_function_flags): ...new function.
6106 (pass_dwarf2_frame): Replace declaration with that of...
6107 (make_pass_dwarf2_frame): ...new function.
6108 (pass_final): Replace declaration with that of...
6109 (make_pass_final): ...new function.
6110 (pass_rtl_seqabstr): Replace declaration with that of...
6111 (make_pass_rtl_seqabstr): ...new function.
6112 (pass_release_ssa_names): Replace declaration with that of...
6113 (make_pass_release_ssa_names): ...new function.
6114 (pass_early_inline): Replace declaration with that of...
6115 (make_pass_early_inline): ...new function.
6116 (pass_inline_parameters): Replace declaration with that of...
6117 (make_pass_inline_parameters): ...new function.
6118 (pass_update_address_taken): Replace declaration with that of...
6119 (make_pass_update_address_taken): ...new function.
6120 (pass_convert_switch): Replace declaration with that of...
6121 (make_pass_convert_switch): ...new function.
6122 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
6123 to a subclass of simple_ipa_opt_pass along with...
6124 (pass_data_ipa_tree_profile): ...new pass_data instance and...
6125 (make_pass_ipa_tree_profile): ...new function.
6126 * tree-sra.c (pass_sra_early): Convert from a global struct to a
6127 subclass of gimple_opt_pass along with...
6128 (pass_data_sra_early): ...new pass_data instance and...
6129 (make_pass_sra_early): ...new function.
6130 (pass_sra): Convert from a global struct to a subclass of
6131 gimple_opt_pass along with...
6132 (pass_data_sra): ...new pass_data instance and...
6133 (make_pass_sra): ...new function.
6134 (pass_early_ipa_sra): Convert from a global struct to a subclass of
6135 gimple_opt_pass along with...
6136 (pass_data_early_ipa_sra): ...new pass_data instance and...
6137 (make_pass_early_ipa_sra): ...new function.
6138 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
6139 subclass of gimple_opt_pass along with...
6140 (pass_data_ccp): ...new pass_data instance and...
6141 (make_pass_ccp): ...new function.
6142 (pass_fold_builtins): Convert from a global struct to a subclass of
6143 gimple_opt_pass along with...
6144 (pass_data_fold_builtins): ...new pass_data instance and...
6145 (make_pass_fold_builtins): ...new function.
6146 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
6147 subclass of gimple_opt_pass along with...
6148 (pass_data_copy_prop): ...new pass_data instance and...
6149 (make_pass_copy_prop): ...new function.
6150 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
6151 global struct to a subclass of gimple_opt_pass along with...
6152 (pass_data_rename_ssa_copies): ...new pass_data instance and...
6153 (make_pass_rename_ssa_copies): ...new function.
6154 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
6155 subclass of gimple_opt_pass along with...
6156 (pass_data_dce): ...new pass_data instance and...
6157 (make_pass_dce): ...new function.
6158 (pass_dce_loop): Convert from a global struct to a subclass of
6159 gimple_opt_pass along with...
6160 (pass_data_dce_loop): ...new pass_data instance and...
6161 (make_pass_dce_loop): ...new function.
6162 (pass_cd_dce): Convert from a global struct to a subclass of
6163 gimple_opt_pass along with...
6164 (pass_data_cd_dce): ...new pass_data instance and...
6165 (make_pass_cd_dce): ...new function.
6166 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
6167 subclass of gimple_opt_pass along with...
6168 (pass_data_dominator): ...new pass_data instance and...
6169 (make_pass_dominator): ...new function.
6170 (pass_phi_only_cprop): Convert from a global struct to a subclass of
6171 gimple_opt_pass along with...
6172 (pass_data_phi_only_cprop): ...new pass_data instance and...
6173 (make_pass_phi_only_cprop): ...new function.
6174 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
6175 subclass of gimple_opt_pass along with...
6176 (pass_data_dse): ...new pass_data instance and...
6177 (make_pass_dse): ...new function.
6178 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
6179 a subclass of gimple_opt_pass along with...
6180 (pass_data_forwprop): ...new pass_data instance and...
6181 (make_pass_forwprop): ...new function.
6182 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
6183 struct to a subclass of gimple_opt_pass along with...
6184 (pass_data_tree_ifcombine): ...new pass_data instance and...
6185 (make_pass_tree_ifcombine): ...new function.
6186 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
6187 subclass of gimple_opt_pass along with...
6188 (pass_data_ch): ...new pass_data instance and...
6189 (make_pass_ch): ...new function.
6190 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
6191 subclass of gimple_opt_pass along with...
6192 (pass_data_tree_loop): ...new pass_data instance and...
6193 (make_pass_tree_loop): ...new function.
6194 (pass_tree_loop_init): Convert from a global struct to a subclass of
6195 gimple_opt_pass along with...
6196 (pass_data_tree_loop_init): ...new pass_data instance and...
6197 (make_pass_tree_loop_init): ...new function.
6198 (pass_lim): Convert from a global struct to a subclass of
6199 gimple_opt_pass along with...
6200 (pass_data_lim): ...new pass_data instance and...
6201 (make_pass_lim): ...new function.
6202 (pass_tree_unswitch): Convert from a global struct to a subclass of
6203 gimple_opt_pass along with...
6204 (pass_data_tree_unswitch): ...new pass_data instance and...
6205 (make_pass_tree_unswitch): ...new function.
6206 (pass_predcom): Convert from a global struct to a subclass of
6207 gimple_opt_pass along with...
6208 (pass_data_predcom): ...new pass_data instance and...
6209 (make_pass_predcom): ...new function.
6210 (pass_vectorize): Convert from a global struct to a subclass of
6211 gimple_opt_pass along with...
6212 (pass_data_vectorize): ...new pass_data instance and...
6213 (make_pass_vectorize): ...new function.
6214 (pass_graphite): Convert from a global struct to a subclass of
6215 gimple_opt_pass along with...
6216 (pass_data_graphite): ...new pass_data instance and...
6217 (make_pass_graphite): ...new function.
6218 (pass_graphite_transforms): Convert from a global struct to a subclass
6219 of gimple_opt_pass along with...
6220 (pass_data_graphite_transforms): ...new pass_data instance and...
6221 (make_pass_graphite_transforms): ...new function.
6222 (pass_check_data_deps): Convert from a global struct to a subclass of
6223 gimple_opt_pass along with...
6224 (pass_data_check_data_deps): ...new pass_data instance and...
6225 (make_pass_check_data_deps): ...new function.
6226 (pass_iv_canon): Convert from a global struct to a subclass of
6227 gimple_opt_pass along with...
6228 (pass_data_iv_canon): ...new pass_data instance and...
6229 (make_pass_iv_canon): ...new function.
6230 (pass_scev_cprop): Convert from a global struct to a subclass of
6231 gimple_opt_pass along with...
6232 (pass_data_scev_cprop): ...new pass_data instance and...
6233 (make_pass_scev_cprop): ...new function.
6234 (pass_record_bounds): Convert from a global struct to a subclass of
6235 gimple_opt_pass along with...
6236 (pass_data_record_bounds): ...new pass_data instance and...
6237 (make_pass_record_bounds): ...new function.
6238 (pass_complete_unroll): Convert from a global struct to a subclass of
6239 gimple_opt_pass along with...
6240 (pass_data_complete_unroll): ...new pass_data instance and...
6241 (make_pass_complete_unroll): ...new function.
6242 (pass_complete_unrolli): Convert from a global struct to a subclass of
6243 gimple_opt_pass along with...
6244 (pass_data_complete_unrolli): ...new pass_data instance and...
6245 (make_pass_complete_unrolli): ...new function.
6246 (pass_parallelize_loops): Convert from a global struct to a subclass
6247 of gimple_opt_pass along with...
6248 (pass_data_parallelize_loops): ...new pass_data instance and...
6249 (make_pass_parallelize_loops): ...new function.
6250 (pass_loop_prefetch): Convert from a global struct to a subclass of
6251 gimple_opt_pass along with...
6252 (pass_data_loop_prefetch): ...new pass_data instance and...
6253 (make_pass_loop_prefetch): ...new function.
6254 (pass_iv_optimize): Convert from a global struct to a subclass of
6255 gimple_opt_pass along with...
6256 (pass_data_iv_optimize): ...new pass_data instance and...
6257 (make_pass_iv_optimize): ...new function.
6258 (pass_tree_loop_done): Convert from a global struct to a subclass of
6259 gimple_opt_pass along with...
6260 (pass_data_tree_loop_done): ...new pass_data instance and...
6261 (make_pass_tree_loop_done): ...new function.
6262 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
6263 struct to a subclass of gimple_opt_pass along with...
6264 (pass_data_cse_reciprocals): ...new pass_data instance and...
6265 (make_pass_cse_reciprocals): ...new function.
6266 (pass_cse_sincos): Convert from a global struct to a subclass of
6267 gimple_opt_pass along with...
6268 (pass_data_cse_sincos): ...new pass_data instance and...
6269 (make_pass_cse_sincos): ...new function.
6270 (pass_optimize_bswap): Convert from a global struct to a subclass of
6271 gimple_opt_pass along with...
6272 (pass_data_optimize_bswap): ...new pass_data instance and...
6273 (make_pass_optimize_bswap): ...new function.
6274 (pass_optimize_widening_mul): Convert from a global struct to a
6275 subclass of gimple_opt_pass along with...
6276 (pass_data_optimize_widening_mul): ...new pass_data instance and...
6277 (make_pass_optimize_widening_mul): ...new function.
6278 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
6279 subclass of gimple_opt_pass along with...
6280 (pass_data_phiopt): ...new pass_data instance and...
6281 (make_pass_phiopt): ...new function.
6282 (pass_cselim): Convert from a global struct to a subclass of
6283 gimple_opt_pass along with...
6284 (pass_data_cselim): ...new pass_data instance and...
6285 (make_pass_cselim): ...new function.
6286 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
6287 subclass of gimple_opt_pass along with...
6288 (pass_data_phiprop): ...new pass_data instance and...
6289 (make_pass_phiprop): ...new function.
6290 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
6291 subclass of gimple_opt_pass along with...
6292 (pass_data_pre): ...new pass_data instance and...
6293 (make_pass_pre): ...new function.
6294 (pass_fre): Convert from a global struct to a subclass of
6295 gimple_opt_pass along with...
6296 (pass_data_fre): ...new pass_data instance and...
6297 (make_pass_fre): ...new function.
6298 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
6299 subclass of gimple_opt_pass along with...
6300 (pass_data_reassoc): ...new pass_data instance and...
6301 (make_pass_reassoc): ...new function.
6302 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
6303 subclass of gimple_opt_pass along with...
6304 (pass_data_sink_code): ...new pass_data instance and...
6305 (make_pass_sink_code): ...new function.
6306 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
6307 subclass of gimple_opt_pass along with...
6308 (pass_data_strlen): ...new pass_data instance and...
6309 (make_pass_strlen): ...new function.
6310 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
6311 struct to a subclass of gimple_opt_pass along with...
6312 (pass_data_build_alias): ...new pass_data instance and...
6313 (make_pass_build_alias): ...new function.
6314 (pass_build_ealias): Convert from a global struct to a subclass of
6315 gimple_opt_pass along with...
6316 (pass_data_build_ealias): ...new pass_data instance and...
6317 (make_pass_build_ealias): ...new function.
6318 (pass_ipa_pta): Convert from a global struct to a subclass of
6319 simple_ipa_opt_pass along with...
6320 (pass_data_ipa_pta): ...new pass_data instance and...
6321 (make_pass_ipa_pta): ...new function.
6322 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
6323 subclass of gimple_opt_pass along with...
6324 (pass_data_uncprop): ...new pass_data instance and...
6325 (make_pass_uncprop): ...new function.
6326 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
6327 global struct to a subclass of gimple_opt_pass along with...
6328 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6329 (make_pass_late_warn_uninitialized): ...new function.
6330 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6331 to a subclass of gimple_opt_pass along with...
6332 (pass_data_init_datastructures): ...new pass_data instance and...
6333 (make_pass_init_datastructures): ...new function.
6334 (pass_early_warn_uninitialized): Convert from a global struct to a
6335 subclass of gimple_opt_pass along with...
6336 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6337 (make_pass_early_warn_uninitialized): ...new function.
6338 (pass_update_address_taken): Convert from a global struct to a
6339 subclass of gimple_opt_pass along with...
6340 (pass_data_update_address_taken): ...new pass_data instance and...
6341 (make_pass_update_address_taken): ...new function.
6342 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6343 struct to a subclass of gimple_opt_pass along with...
6344 (pass_data_release_ssa_names): ...new pass_data instance and...
6345 (make_pass_release_ssa_names): ...new function.
6346 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6347 subclass of gimple_opt_pass along with...
6348 (pass_data_stdarg): ...new pass_data instance and...
6349 (make_pass_stdarg): ...new function.
6350 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6351 global struct to a subclass of gimple_opt_pass along with...
6352 (pass_data_convert_switch): ...new pass_data instance and...
6353 (make_pass_convert_switch): ...new function.
6354 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6355 to a subclass of gimple_opt_pass along with...
6356 (pass_data_tail_recursion): ...new pass_data instance and...
6357 (make_pass_tail_recursion): ...new function.
6358 (pass_tail_calls): Convert from a global struct to a subclass of
6359 gimple_opt_pass along with...
6360 (pass_data_tail_calls): ...new pass_data instance and...
6361 (make_pass_tail_calls): ...new function.
6362 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6363 struct to a subclass of gimple_opt_pass along with...
6364 (pass_data_lower_vector): ...new pass_data instance and...
6365 (make_pass_lower_vector): ...new function.
6366 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6367 gimple_opt_pass along with...
6368 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6369 (make_pass_lower_vector_ssa): ...new function.
6370 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6371 to a subclass of gimple_opt_pass along with...
6372 (pass_data_slp_vectorize): ...new pass_data instance and...
6373 (make_pass_slp_vectorize): ...new function.
6374 (pass_ipa_increase_alignment): Convert from a global struct to a
6375 subclass of simple_ipa_opt_pass along with...
6376 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6377 (make_pass_ipa_increase_alignment): ...new function.
6378 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6379 gimple_opt_pass along with...
6380 (pass_data_vrp): ...new pass_data instance and...
6381 (make_pass_vrp): ...new function.
6382 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6383 subclass of simple_ipa_opt_pass along with...
6384 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6385 (make_pass_ipa_free_lang_data): ...new function.
6386 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6387 gimple_opt_pass along with...
6388 (pass_data_tsan): ...new pass_data instance and...
6389 (make_pass_tsan): ...new function.
6390 (pass_tsan_O0): Convert from a global struct to a subclass of
6391 gimple_opt_pass along with...
6392 (pass_data_tsan_O0): ...new pass_data instance and...
6393 (make_pass_tsan_O0): ...new function.
6394 * var-tracking.c (pass_variable_tracking): Convert from a global
6395 struct to a subclass of rtl_opt_pass along with...
6396 (pass_data_variable_tracking): ...new pass_data instance and...
6397 (make_pass_variable_tracking): ...new function.
6398 * web.c (pass_web): Convert from a global struct to a subclass of
6399 rtl_opt_pass along with...
6400 (pass_data_web): ...new pass_data instance and...
6401 (make_pass_web): ...new function.
6402 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6403 declaration with that of...
6404 (make_pass_mode_switch_use): ...new function.
6405 (pass_resolve_sw_modes): Replace declaration with that of...
6406 (make_pass_resolve_sw_modes): ...new function.
6407 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6408 from a global struct to a subclass of rtl_opt_pass along with...
6409 (pass_data_mode_switch_use): ...new pass_data instance and...
6410 (make_pass_mode_switch_use): ...new function.
6411 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6412 from a global struct to a subclass of rtl_opt_pass along with...
6413 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6414 (make_pass_resolve_sw_modes): ...new function.
6415 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6416 struct to a subclass of rtl_opt_pass along with...
6417 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6418 (make_pass_insert_vzeroupper): ...new function.
6419 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6420 global struct to a subclass of rtl_opt_pass along with...
6421 (pass_data_work_around_errata): ...new pass_data instance and...
6422 (make_pass_work_around_errata): ...new function.
6423 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6424 struct to a subclass of rtl_opt_pass along with...
6425 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6426 (make_pass_mips_machine_reorg2): ...new function.
6427
6a389ed5
DM
64282013-08-05 David Malcolm <dmalcolm@redhat.com>
6429
6430 * passes.c (pass_manager::operator new): New.
6431
f7695dbf
DM
64322013-08-05 David Malcolm <dmalcolm@redhat.com>
6433
6434 Handwritten part of conversion of passes to C++ classes.
6435
6436 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6437 (toplev.o): Add dep on PASS_MANAGER_H.
6438 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6439 of early local pases to reflect this moving from a global to a
6440 member of gcc::pass_manager.
6441 (cgraph_add_new_function): Likewise.
6442 * lto-cgraph.c (lto_output_node): Update for conversion of
6443 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6444 * passes.c (opt_pass::clone): New.
6445 (opt_pass::gate): New.
6446 (opt_pass::execute): New.
6447 (opt_pass::opt_pass): New.
6448 (pass_manager::execute_early_local_passes): New.
6449 (pass_manager::execute_pass_mode_switching): new.
6450 (finish_optimization_passes): Convert to...
6451 (pass_manager::finish_optimization_passes): ...this.
6452 (finish_optimization_passes): Update for conversion of passes to
6453 C++ classes.
6454 (register_dump_files_1): Use has_gate since we cannot portably
6455 check a vtable entry against NULL.
6456 (dump_one_pass): Likewise.
6457 (ipa_write_summaries_2): Likewise.
6458 (ipa_write_optimization_summaries_1): Likewise.
6459 (ipa_read_summaries_1): Likewise.
6460 (ipa_read_optimization_summaries_1): Likewise.
6461 (execute_ipa_stmt_fixups): Likewise.
6462 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6463 pass-creation functions rather than wiring up globals, and
6464 storing the results in fields of pass_manager generated using
6465 pass-instances.def.
6466 (pass_manager::dump_profile_report): Update for conversion of
6467 passes to C++ classes.
6468 (pass_manager::execute_ipa_summary_passes): Likewise.
6469 (execute_one_ipa_transform_pass): Likewise.
6470 (execute_one_pass): Use has_gate and has_execute since we cannot
6471 portably check a vtable entry against NULL.
6472 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6473 (pass_manager): Use pass-instances.def to add fields for the
6474 various pass instances.
6475 * toplev.c (finalize): Update for move of
6476 finish_optimization_passes to a method of gcc::pass_manager.
6477 * toplev.h (finish_optimization_passes): Move to method of class
6478 pass_manager.
6479 * tree-pass.h (struct pass_data): New.
03b0ee0a 6480 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6481 (opt_pass::gate): Convert to virtual function.
6482 (opt_pass::~opt_pass): New.
6483 (opt_pass::clone): New.
6484 (opt_pass::execute): Convert to virtual function.
6485 (opt_pass::opt_pass): New.
6486 (opt_pass::ctxt_): new.
6487 (gimple_opt_pass): Convert to subclass of opt_pass.
6488 (gimple_opt_pass::gimple_opt_pass): New.
6489 (rtl_opt_pass): Convert to subclass of opt_pass.
6490 (rtl_opt_pass::rtl_opt_pass): New.
6491 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6492 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6493 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6494 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6495 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6496 invocation of pass_mode_switching to reflect this moving from a
6497 global to a member of gcc::pass_manager.
6498 (ix86_option_override): Rework how pass_insert_vzeroupper is
6499 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6500 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6501
d0b2f831
RE
65022013-08-05 Richard Earnshaw <rearnsha@arm.com>
6503
6504 PR rtl-optimization/57708
6505 * recog.c (peep2_find_free_register): Validate all regs in a
6506 multi-reg mode.
6507
51a5c0c2
JH
65082013-08-05 Jan Hubicka <jh@suse.cz>
6509
6510 PR lto/57602
03b0ee0a
UB
6511 * cgraph.c (verify_cgraph_node): Accept local flags from other
6512 partitions.
51a5c0c2
JH
6513 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6514 (function_and_variable_visibility): Likewise.
6515 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6516
65f0a120
GDR
65172013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6518
6519 * graph.c (init_graph_slim_pretty_print): Remove.
6520 (print_graph_cfg): Do not call it. Use local pretty printer.
6521 (start_graph_dump): Likewise.
6522
b3f80694
GDR
65232013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6524
6525 * gimple-pretty-print.c (buffer): Remove.
6526 (initialized): Likewise.
6527 (maybe_init_pretty_print): Likewise.
6528 (print_gimple_stmt): Do not call it. Use non-static local
6529 pretty_printer variable.
6530 (print_gimple_expr): Likewise.
6531 (print_gimple_seq): Likewise.
6532 (gimple_dump_bb): Likewise.
6533
11a877b3
GDR
65342013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6535
6536 * asan.c (asan_pp): Remove.
6537 (asan_pp_initialized): Likewise.
6538 (asan_pp_initialize): Likewise.
6539 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6540 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6541 (asan_add_global): Likewise.
6542
b066401f
GDR
65432013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6544
6545 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6546 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6547 * pretty-print.c (pp_formatted_text_data): Likewise.
6548 (pp_indent): Rename from pp_base_indent.
6549 (pp_format): Rename from pp_base_format.
6550 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6551 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6552 (pp_flush): Rename from pp_base_flush.
6553 (pp_set_line_maximum_length): Rename from
6554 pp_base_set_line_maximum_length.
6555 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6556 (pp_set_prefix): Rename from pp_base_set_prefix.
6557 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6558 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6559 (pp_append_text): Rename from pp_base_append_text.
6560 (pp_formatted_text): Rename from pp_base_formatted_text.
6561 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6562 (pp_remaining_character_count_for_line): Rename from
6563 pp_base_remaining_character_count_for_line.
6564 (pp_newline): Rename from pp_base_newline.
6565 (pp_character): Rename from pp_base_character.
6566 (pp_string): Rename from pp_base_string.
6567 (pp_maybe_space): Rename from pp_base_maybe_space.
6568 * asan.c (asan_pp_string): Adjust.
6569 (asan_emit_stack_protection): Likewise.
6570 (asan_add_global): Likewise.
6571 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6572 * tree-mudflap.c (mf_varname_tree): Likewise.
6573 * tree-pretty-print.c (pp_tree_identifier): Rename from
6574 pp_base_tree_identifier.
6575 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6576 Declare as function.
6577
137a1a27
GDR
65782013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6579
6580 * pretty-print.h (pp_bar_bar): New.
6581 (pp_ampersand_ampersand): Likewise.
6582 (pp_less_equal): Likewise.
6583 (pp_greater_equal): Likewise.
6584 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6585 printer functions instead of pp_string or operators and punctuators.
6586 (dump_gimple_call): Likewise.
6587 (dump_gimple_omp_for): Likewise.
6588 (dump_gimple_transaction): Likewise.
6589 (dump_gimple_phi): Likewise.
6590 (pp_gimple_stmt_1): Likewise.
6591 * sched-vis.c (print_insn): Likewise.
6592 * tree-mudflap.c (mf_varname_tree): Likewise.
6593 * tree-pretty-print.c (dump_block_node): Likewise.
6594 (dump_generic_node): Likewise.
6595
815effe1
JH
65962013-08-02 Jan Hubicka <jh@suse.cz>
6597
6598 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6599 boundaries.
6600 * lto-streamer-out.c (tree_is_indexable): Results decls and
6601 parm decls are not indexable.
6602 (DFS_write_tree_body): Do not follow args and results.
6603 (hash_tree): Likewise.
6604 (output_functions): Rearrange so struct function is needed
6605 only when real body is output; be able to also ouptut abstract
6606 functions; output DECL_ARGUMENTS and DECL_RESULT.
6607 (lto_output): When not in WPA, ale store abstract functions.
6608 (write_symbol): Do not care about RESULT_DECL.
6609 (output_symbol_p): Handle correctly sbtract decls.
6610 * lto-streamer-in.c (input_function): Rearrange so struct
6611 function can be NULL at entry; allow streaming of
6612 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
6613 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
6614 sanity check during LTO.
6615 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
6616 RESULT_DECl and DECL_ARGUMENTS.
6617 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
6618 Likewise.
6619
07838b13
GDR
66202013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6621
6622 * pretty-print.h (pp_underscore): New.
6623 (pp_comma): Tidy.
6624 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
6625 printer functions instead of pp_character.
6626 (dump_binary_rhs): Likewise.
6627 (dump_ternary_rhs): Likewise.
6628 (dump_gimple_call_args): Likewise.
6629 (pp_points_to_solution): Likewise.
6630 (dump_gimple_call): Likewise.
6631 (dump_gimple_switch): Likewise.
6632 (dump_gimple_cond): Likewise.
6633 (dump_gimple_bind): Likewise.
6634 (dump_gimple_try): Likewise.
6635 (dump_gimple_omp_for): Likewise.
6636 (dump_gimple_omp_continue): Likewise.
6637 (dump_gimple_omp_single): Likewise.
6638 (dump_gimple_omp_sections): Likewise.
6639 (dump_gimple_omp_block): Likewise.
6640 (dump_gimple_omp_critical): Likewise.
6641 (dump_gimple_transaction): Likewise.
6642 (dump_gimple_asm): Likewise.
6643 (dump_gimple_phi): Likewise.
6644 (dump_gimple_omp_parallel): Likewise.
6645 (dump_gimple_omp_task): Likewise.
6646 (dump_gimple_omp_atomic_load): Likewise.
6647 (dump_gimple_omp_atomic_store): Likewise.
6648 (dump_gimple_mem_ops): Likewise.
6649 (pp_gimple_stmt_1): Likewise.
6650 (pp_cfg_jump): Likewise.
6651 (dump_implicit_edges): Likewise.
6652 (gimple_dump_bb_for_graph): Likewise.
6653 * graph.c (draw_cfg_node): Likewise.
6654 * langhooks.c (lhd_print_error_function): Likewise.
6655 * sched-vis.c (print_exp): Likewise.
6656 (print_value): Likewise.
6657 (print_pattern): Likewise.
6658 (print_insn): Likewise.
6659 (rtl_dump_bb_for_graph): Likewise.
6660 * tree-pretty-print.c (dump_function_declaration): Likewise.
6661 (dump_array_domain): Likewise.
6662 (dump_omp_clause): Likewise.
6663 (dump_location): Likewise.
6664 (dump_generic_node): Likewise.
6665 (print_struct_decl): Likewise.
6666 * diagnostic.c (diagnostic_show_locus): Use pp_space.
6667
bb0d2039
BS
66682013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6669
6670 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
6671 candidate table when replacing a candidate statement.
6672 (replace_rhs_if_not_dup): Likewise.
6673 (replace_one_candidate): Likewise.
6674
bc0ec027 66752013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 6676 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
6677
6678 * cgraphunit.c (add_new_function): Fix logic when adding from
6679 late IPA pass.
6680 (assemble_thunk): Rename to ...
03b0ee0a
UB
6681 (expand_thunk); .. this one; export; get it working with
6682 general functions; make produced gimple valid.
bc0ec027
JH
6683 * cgraph.h (expand_thunk): Declare.
6684
0e8853ee
JH
66852013-08-02 Jan Hubicka <jh@suse.cz>
6686
03b0ee0a
UB
6687 * ipa-cp.c (gather_context_independent_values): Use
6688 ipa_get_param_move_cost.
6689 (get_replacement_map): Remove PARAM; move parameter folding
6690 into tree-inline.c
0e8853ee
JH
6691 (create_specialized_node): Update.
6692 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
6693 assert that we have gimple body; update move_cost.
6694 (count_formal_params): Assert that we have gimple body.
6695 (ipa_dump_param): New function.
6696 (ipa_alloc_node_params): Break out from ...
6697 (ipa_initialize_node_params): ... here.
6698 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
6699 (ipa_write_node_info): Stream move costs.
6700 (ipa_read_node_info): Read move costs.
6701 (ipa_update_after_lto_read): Do not recompute node params.
6702 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
6703 (ipa_get_param): Check we are not in WPA.
6704 (ipa_get_param_move_cost): New.
6705 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
6706 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
6707 parm numbers to be present.
6708
ecee672b
VM
67092013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6710
6711 PR rtl-optimization/58048
6712 * lra-constraints.c (process_alt_operands): Don't check asm
6713 operand on register.
6714
13ec0527
EB
67152013-08-02 Eric Botcazou <ebotcazou@adacore.com>
6716
6717 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6718 the implied StoreLoad barrier for atomic operations if before.
6719
af15184a
JH
67202013-08-02 Jan Hubicka <jh@suse.cz>
6721 Martin Liska <marxin.liska@gmail.com>
6722
03b0ee0a
UB
6723 * cgraph.c (cgraph_function_body_availability): Do not check
6724 cgraph flags.
af15184a
JH
6725 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
6726 symtab_node_availability): Declare.
6727 * ipa.c (can_replace_by_local_alias): New.
6728 (function_and_variable_visibility): Use it.
03b0ee0a
UB
6729 * symtab.c (symtab_for_node_and_aliases,
6730 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 6731
01e54ef8
VM
67322013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6733
6734 PR rtl-optimization/57963
03b0ee0a 6735 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
6736 (lra_constraints): Use them.
6737
e2fd7ca7
SN
67382013-08-02 Sofiane Naci <sofiane.naci@arm.com>
6739
03b0ee0a
UB
6740 * config/arm/types.md (define_attr "type"): Add "load_acq"
6741 and "store_rel".
e2fd7ca7
SN
6742 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
6743 changes.
6744 (cortex_a53_store1): Likewise.
6745
0dcc26c3
JH
67462013-08-01 Jan Hubicka <jh@suse.cz>
6747
03b0ee0a
UB
6748 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
6749 partitions are not needed.
0dcc26c3 6750
0bd72901
UB
67512013-08-01 Uros Bizjak <ubizjak@gmail.com>
6752
6753 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
6754 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
6755 MAYBE_NON_Q_CLASS_P where appropriate.
6756
12123452
JH
67572013-08-01 Jan Hubicka <jh@suse.cz>
6758
6759 * cgraph.h (release_function_body): Declare.
6760 * tree.c (free_lang_data_in_decl): Free, parameters and return values
6761 of unused delcarations.
6762
ce852f9c
KT
67632013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6764
03b0ee0a
UB
6765 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
6766 RTL form when subtracting a constant.
ce852f9c 6767
c743b246
KT
67682013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6769
6770 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
6771 Generate canonical plus rtx with negated immediate instead of minus
6772 where appropriate.
6773 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
6774
c0c123ef
JH
67752013-08-01 Jan Hubicka <jh@suse.cz>
6776
6777 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
6778 (cgraph_release_function_body): Likewise.
6779 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
6780 * cgraph.h (cgrpah_node): Rename abstract_and_needed
6781 to used_as_abstract_origin.
6782 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
6783 symbols used as abstract origins.
6784 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
6785 * ipa.c (symtab_remove_unreachable_nodes): Recompute
6786 used_as_abstract_origin.
c0c123ef 6787 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
6788 used_as_abstract_origin; be ready for DECL_RESULT and
6789 DECL_ARGUMENTS to be NULL.
c0c123ef 6790
0bd72901
UB
6791 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
6792 for abstract functions.
6793 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
6794 real symbols.
c0c123ef 6795
1f029433
JH
67962013-08-01 Jan Hubicka <jh@suse.cz>
6797
6798 * profile.c (compute_value_histograms): Fix thinko.
6799
c451f4d6
SN
68002013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6801
6802 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
6803 aarch-common-protos.h to extra_headers.
6804 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6805 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
6806 * config/aarch64/t-aarch64 (aarch-common.o): Define.
6807
34b512f5
SN
68082013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6809
6810 * config/aarch64/aarch64.md (define_attr "type"): Delete.
6811 Include "../arm/types.md". Define "type" attribute for all patterns.
6812 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
6813 attribute changes.
6814
d86e633a
MM
68152013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6816
6817 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
6818 to support power8 load fusion.
6819 (fusion_gpr_mem_load): Likewise.
6820
6821 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
6822
6823 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
6824 declarations for power8 load fusion.
6825 (emit_fusion_gpr_load): Likewise.
6826
6827 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
6828 tuning for power8, turn on fusion mode by default. Turn on sign
6829 extending fusion mode if normal fusion mode is on, and we are at
6830 -O2 or -O3.
6831 (fusion_gpr_load_p): New function, return true if we can fuse an
6832 addis instruction with a dependent load to a GPR.
6833 (emit_fusion_gpr_load): Emit the instructions for power8 load
6834 fusion to GPRs.
6835
0bd72901 6836 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
6837 (VSX load fusion peepholes): New peepholes to fuse together an
6838 addi instruction with a VSX load instruction.
6839
6840 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
6841 peepholes to fuse an addis instruction with a load to a GPR base
6842 register. If we are supporting sign extending fusions, convert
6843 sign extending loads to zero extending loads and add an explicit
6844 sign extension.
6845
c3f35647
SN
68462013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6847
6848 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
6849 aarch-common-protos.h to extra_headers.
6850 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6851 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
6852 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6853 (arm_no_early_alu_shift_dep): Likewise.
6854 (arm_no_early_alu_shift_value_dep): Likewise.
6855 (arm_no_early_mul_dep): Likewise.
6856 (arm_no_early_store_addr_dep): Likewise.
6857 (arm_mac_accumulator_is_mul_result): Likewise.
6858 (arm_mac_accumulator_is_result): Likewise.
c3f35647 6859 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
6860 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
6861 here to ...
c3f35647 6862 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6863 (arm_no_early_alu_shift_dep): Likewise.
6864 (arm_no_early_alu_shift_value_dep): Likewise.
6865 (arm_no_early_mul_dep): Likewise.
6866 (arm_no_early_store_addr_dep): Likewise.
6867 (arm_mac_accumulator_is_mul_result): Likewise.
6868 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
6869 * config/arm/aarch-common-protos.h: ... here. New file.
6870 * config/arm/t-arm (aarch-common.o): Define.
6871
68722013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6873
6874 * config/arm/arm.md: Include new file "types.md".
6875 (define_attr "type"): Move from here to ...
6876 (define_attr "mul32"): Likewise.
6877 (define_attr "mul64"): Likewise.
6878 * config/arm/types.md: ... here. New file.
6879
228c1313
SH
68802013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6881
6882 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6883 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6884
d6e9046d 68852013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
6886
6887 * gen-pass-instances.awk: Fix offset of substr().
6888
a167b052
DM
68892013-07-31 David Malcolm <dmalcolm@redhat.com>
6890
6891 * Makefile.in (pass-instances.def): New.
6892 (passes.o): Replace dependency on passes.def with one on
6893 pass-instances.def
6894
6895 * gen-pass-instances.awk: New.
6896
6897 * passes.c (pass_manager::pass_manager): Use pass-instances.def
6898 rather than passes.def, updating local definition of NEXT_PASS
6899 macro to add an extra NUM parameter (currently unused).
6900
315f8c0e
DM
69012013-07-30 David Malcolm <dmalcolm@redhat.com>
6902
6903 * Makefile.in (PASS_MANAGER_H): New.
6904 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
6905 (passes.o): Likewise.
6906 (statistics.o): Likewise.
6907 (cgraphunit.o): Likewise.
6908 (context.o): Depend on PASS_MANAGER_H.
6909
6910 * pass_manager.h: New.
6911
6912 * cgraphunit.c (cgraph_add_new_function): Update for moves
6913 of globals to fields of pass_manager.
6914 (analyze_function): Likewise.
6915 (expand_function): Likewise.
6916 (ipa_passes): Likewise.
6917 (compile): Likewise.
6918
6919 * context.c (context::context): New.
6920 * context.h (context::context): New.
6921 (context::get_passes): New.
6922 (context::passes_): New.
6923
6924 * lto-cgraph.c (input_node): Update for moves of globals to
6925 fields of pass_manager.
6926
6927 * passes.c (all_passes): Remove, in favor of a field of the
6928 same name within the new class pass_manager.
6929 (all_small_ipa_passes): Likewise.
6930 (all_lowering_passes): Likewise.
6931 (all_regular_ipa_passes): Likewise.
6932 (all_late_ipa_passes): Likewise.
6933 (all_lto_gen_passes): Likewise.
6934 (passes_by_id): Likewise.
6935 (passes_by_id_size): Likewise.
6936 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6937 the new class pass_manager.
6938 (set_pass_for_id): Convert to...
6939 (pass_manager::set_pass_for_id): ...method.
6940 (get_pass_for_id): Convert to...
6941 (pass_manager::get_pass_for_id): ...method.
6942 (register_one_dump_file): Move body of implementation into...
6943 (pass_manager::register_one_dump_file): ...here.
6944 (register_dump_files_1): Convert to...
6945 (pass_manager::register_dump_files_1): ...method.
6946 (register_dump_files): Convert to...
6947 (pass_manager::register_dump_files): ...method.
6948 (create_pass_tab): Update for moves of globals to fields of
6949 pass_manager.
6950 (dump_passes): Move body of implementation into...
6951 (pass_manager::dump_passes): ...here.
6952 (register_pass): Move body of implementation into...
6953 (pass_manager::register_pass): ...here.
6954 (init_optimization_passes): Convert into...
6955 (pass_manager::pass_manager): ...constructor for new
6956 pass_manager class, and initialize the pass_lists array.
6957 (check_profile_consistency): Update for moves of globals to
6958 fields of pass_manager.
6959 (dump_profile_report): Move body of implementation into...
6960 (pass_manager::dump_profile_report): ...here.
6961 (ipa_write_summaries_1): Update for moves of pass lists from
6962 being globals to fields of pass_manager.
6963 (ipa_write_optimization_summaries): Likewise.
6964 (ipa_read_summaries): Likewise.
6965 (ipa_read_optimization_summaries): Likewise.
6966 (execute_all_ipa_stmt_fixups): Likewise.
6967
6968 * statistics.c (statistics_fini): Update for moves of globals to
6969 fields of pass_manager.
6970
6971 * toplev.c (general_init): Replace call to
6972 init_optimization_passes with construction of the pass_manager
6973 instance.
6974
6975 * tree-pass.h (all_passes): Remove, in favor of a field of the
6976 same name within the new class pass_manager.
6977 (all_small_ipa_passes): Likewise.
6978 (all_lowering_passes): Likewise.
6979 (all_regular_ipa_passes): Likewise.
6980 (all_lto_gen_passes): Likewise.
6981 (all_late_ipa_passes): Likewise.
6982 (passes_by_id): Likewise.
6983 (passes_by_id_size): Likewise.
6984 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6985 the new class pass_manager.
6986 (get_pass_for_id): Remove.
6987
02cab1c1
RE
69882013-07-30 Richard Earnshaw <rearnsha@arm.com>
6989
6990 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
6991 configs.
6992
b2d3f886
RE
69932013-07-30 Richard Earnshaw <rearnsha@arm.com>
6994
6995 * arm.md (mulhi3): New expand pattern.
6996
605e86fa
JH
69972013-07-30 Jan Hubicka <jh@suse.cz>
6998 Martin Liska <marxin.liska@gmail.com>
6999
7000 * profile.c (compute_value_histograms): Do not ICE when
7001 there is mismatch only on some counters.
7002
14a87636
ZC
70032013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7004
7005 PR rtl-optimization/57637
7006 * function.c (move_insn_for_shrink_wrap): Also check the
7007 GEN set of the LIVE problem for the liveness analysis
7008 if it exists, otherwise give up.
7009
0100cd3f
BS
70102013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7011
7012 PR tree-optimization/57993
7013 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
7014 replaced statement in the candidate table.
7015 (phi_add_costs): Return infinite cost when the hidden basis does
7016 not dominate all phis on which the candidate is dependent.
7017 (replace_one_candidate): Record replaced statement in the
7018 candidate table.
7019
f0d811f7
JR
70202013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
7021
7022 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
7023 (ashlv2si3): New expander.
7024 (*ashlv2si3_i): New define_insn_and_split.
7025 * predicates.md (float_operation): Allow patterns with three
7026 basic sub-patterns.
7027
bba33211
JR
7028 PR rtl-optimization/58021
7029 * mode-switching.c (create_pre_exit): Always split off preceding
7030 insns if we are not at the basic block head.
7031
ff3f3951
MR
70322013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
7033
7034 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
7035 (UCLIBC_DYNAMIC_LINKER): New macro.
7036 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
7037 `-mnan=2008'.
7038 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
7039 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
7040 `-mnan=2008'.
7041 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
7042 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
7043 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
7044 for SF and DF modes. Use ieee_quad_format for TF mode.
7045 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
7046 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
7047 (mips_option_override): Handle `-mnan=legacy'.
7048 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
7049 `-mabs=2008' and `-mnan=2008'.
7050 (OPTION_DEFAULT_SPECS): Add "nan" default.
7051 (ASM_SPEC): Handle `-mnan='.
7052 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
7053 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
7054 comment accordingly.
7055 (neg<mode>2): Likewise.
7056 * config/mips/mips.opt (mabs, mnan): New options.
7057 * doc/install.texi (Configuration): Document `--with-nan=' option.
7058 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
7059 `-mnan=' options.
7060 (MIPS Options): Document them.
7061 * config.gcc <mips*-*-*>: Handle `--with-nan='.
7062 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
7063 * configure: Regenerate.
7064 * config.in: Regenerate.
7065
576e2f37
UB
70662013-07-29 Uros Bizjak <ubizjak@gmail.com>
7067
7068 * config/i386/i386.md (float post-reload splitters): Do not check
7069 for subregs of SSE registers.
7070
70712013-07-29 Uros Bizjak <ubizjak@gmail.com>
7072 H.J. Lu <hongjiu.lu@intel.com>
7073
7074 PR target/57954
7075 PR target/57988
7076 * config/i386/i386.md (post-reload splitter
7077 to avoid partial SSE reg dependency stalls): New pattern.
7078
a71f0749
DV
70792013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7080
7081 * config/s390/s390.md ("movcc"): Swap load and store instructions.
7082
4c97f1cc
JR
70832013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
7084
7085 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
7086 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
7087
b0c733d8
CC
70882013-07-26 Cary Coutant <ccoutant@google.com>
7089
7090 * dwarf2out.c (die_checksum_ordered): Don't include template
7091 instantiations in signature.
7092 (is_template_parameter): New function.
7093 (is_template_instantiation): New function.
7094 (generate_skeleton_bottom_up): Don't include template instantiations
7095 in type unit DIE.
7096 (generate_skeleton): Likewise.
7097 (break_out_comdat_types): Move recursive call to break out nested
7098 types earlier.
7099 (prune_unused_types_mark_generic_parms_dies): Call
7100 is_template_parameter.
7101
040d8a1c
IB
71022013-07-26 Ian Bolton <ian.bolton@arm.com>
7103
7104 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
7105 uses vector registers.
89fdc743 7106 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 7107
85bd4ac6 71082013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 7109 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
7110
7111 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 7112 where appropriate.
85bd4ac6
KT
7113 * config/arm/arm.md (movcond_addsi): New splitter.
7114
b6051207
SA
71152013-07-25 Sterling Augustine <saugustine@google.com>
7116
7117 * dwarf2out.c (size_of_pubnames): Move code to...
7118 (include_pubname_in_output): ...here. New.
7119 (want_pubnames): Rearrange.
7120 (output_pubnames): Call include_pubname_in_output. Move assertion.
7121
41a7c215
CM
71222013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7123
7124 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
7125
71262013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7127
7128 PR target/38836
7129 * doc/extend.texi: Remove obsolete builtins. Fix
7130 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
7131
49bde175
JH
71322013-07-25 Jan Hubicka <jh@suse.cz>
7133
7134 * cgraph.c (release_function_body): Break out from ...
7135 (cgraph_release_function_body): ... this one; also release DECL_RESULT
7136 and DECL_ARGUMENTS.
7137 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
7138 old_tree in the map.
7139 (create_specialized_node): Update.
7140 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
7141 into index.
41a7c215
CM
7142 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
7143 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
7144 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
7145 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
7146 DECL_RESULT.
7147
4870352d
KT
71482013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7149
7150 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
7151 addsi3_carryin_alt2_<optab>): Correct output template.
7152
1d6aee1c
KT
71532013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7154
7155 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
7156 Adjust for arm_restrict_it.
7157 Remove trailing whitespace.
7158
c7cafd75
MK
71592013-07-25  Mark Kettenis  <kettenis@openbsd.org>
7160
017d38f5
MK
7161 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
7162 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
7163
c7cafd75
MK
7164 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
7165
00b7527b
VM
71662013-07-25 Vladimir Makarov <vmakarov@redhat.com>
7167
7168 PR rtl-optimization/57960
7169 * lra-constraints.c (process_alt_operands): Use the right mode
7170 when checking strict_low.
7171
4f63dfc6
JH
71722013-07-25 Jan Hubicka <jh@suse.cz>
7173
7174 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
7175 * cgraph.c (cgraph_remove_node): Do not release function body
7176 when in cgraph streaming.
7177 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
7178 in other partitions are not considered reachable; fix handling of
7179 clones.
4f63dfc6 7180
e6dcfa18
RR
71812013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7182
7183 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
7184
0b93d3b6
RR
71852013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7186
7187 PR target/19599
7188 PR target/57731
bb80c2eb 7189 PR target/57837
e6dcfa18 7190 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 7191 Ss with US. Adjust output for v5 and v4t.
41a7c215 7192 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 7193
0b93d3b6
RR
7194 * config/arm/constraints.md ("Ss"): Rename to US.
7195
690688b3
TG
71962013-07-25 Terry Guo <terry.guo@arm.com>
7197
7198 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7199 shift_add/shift_sub0/shift_sub1 RTXs.
7200
a4ad093b 72012013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 7202 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
7203
7204 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
7205 (altivec_vpks<VI_char>ss): Likewise.
7206 (altivec_vpks<VI_char>us): Likewise.
7207 (altivec_vpku<VI_char>us): Likewise.
7208 (altivec_vpku<VI_char>um): Likewise.
7209
8c5005ce
DM
72102013-07-24 David Malcolm <dmalcolm@redhat.com>
7211
7212 Introduce context class.
7213
7214 * Makefile.in (CONTEXT_H): New.
7215 (OBJS): Add context.o.
7216 (toplev.o): Add CONTEXT_H to dependencies.
7217 (context.o): New.
7218
41a7c215 7219 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
7220
7221 * context.c: New.
7222
7223 * context.h: New.
7224
ce4a9422
JR
72252013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
7226
7227 PR rtl-optimization/57968
7228 * mode-switching.c (create_pre_exit): Allow instructions that
7229 don't set a return register to need a non-exit mode.
7230
493f4c9e 72312013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7232 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 7233
b5860fd3
WS
7234 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
7235 operands to vperm for little endian.
7236 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
7237 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 7238
73792b92 72392013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7240 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
7241
7242 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7243 two operands for little-endian.
7244
14c21302
SE
72452013-07-23 Steve Ellcey <sellcey@mips.com>
7246
7247 * config/mips/mips.c (mips_case_values_threshold): New.
7248 (TARGET_CASE_VALUES_THRESHOLD): Define.
7249
a6056198 72502013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7251 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
7252
7253 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
7254 selection of field for vector splat in little endian mode.
7255
dd7a40e1
MM
72562013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7257
7258 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
7259 expanders to rs6000.md.
7260 (ior<mode>3): Likewise.
7261 (and<mode>3): Likewise.
7262 (one_cmpl<mode>2): Likewise.
7263 (nor<mode>3): Likewise.
7264 (andc<mode>3): Likewise.
7265 (eqv<mode>3): Likewise.
7266 (nand<mode>3): Likewise.
7267 (orc<mode>3): Likewise.
7268
7269 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
7270 declaration.
7271
7272 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
7273 to split multi-word logical operations.
7274 (rs6000_split_logical_di): Likewise.
7275 (rs6000_split_logical): Likewise.
7276
7277 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
7278 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
7279 and allow TImode operations in 32-bit.
7280 (vsx_and<mode>3_64bit): Likewise.
7281 (vsx_ior<mode>3_32bit): Likewise.
7282 (vsx_ior<mode>3_64bit): Likewise.
7283 (vsx_xor<mode>3_32bit): Likewise.
7284 (vsx_xor<mode>3_64bit): Likewise.
7285 (vsx_one_cmpl<mode>2_32bit): Likewise.
7286 (vsx_one_cmpl<mode>2_64bit): Likewise.
7287 (vsx_nor<mode>3_32bit): Likewise.
7288 (vsx_nor<mode>3_64bit): Likewise.
7289 (vsx_andc<mode>3_32bit): Likewise.
7290 (vsx_andc<mode>3_64bit): Likewise.
7291 (vsx_eqv<mode>3_32bit): Likewise.
7292 (vsx_eqv<mode>3_64bit): Likewise.
7293 (vsx_nand<mode>3_32bit): Likewise.
7294 (vsx_nand<mode>3_64bit): Likewise.
7295 (vsx_orc<mode>3_32bit): Likewise.
7296 (vsx_orc<mode>3_64bit): Likewise.
7297
7298 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
7299 logical types in GPRs.
7300
7301 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
7302 logical insns to rs6000.md, and allow TImode operations in
7303 32-bit.
7304 (altivec_ior<mode>3): Likewise.
7305 (altivec_xor<mode>3): Likewise.
7306 (altivec_one_cmpl<mode>2): Likewise.
7307 (altivec_nor<mode>3): Likewise.
7308 (altivec_andc<mode>3): Likewise.
7309
7310 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
7311 attributes for moving the 128-bit logical operations into
7312 rs6000.md.
7313 (BOOL_REGS_OUTPUT): Likewise.
7314 (BOOL_REGS_OP1): Likewise.
7315 (BOOL_REGS_OP2): Likewise.
7316 (BOOL_REGS_UNARY): Likewise.
7317 (BOOL_REGS_AND_CR0): Likewise.
7318 (one_cmpl<mode>2): Add support for DI logical operations on
7319 32-bit, splitting the operations to 32-bit.
7320 (anddi3): Likewise.
7321 (iordi3): Likewise.
7322 (xordi3): Likewise.
7323 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
7324 changes to combine the 32/64-bit code, allow logical operations on
7325 TI mode in 32-bit, and to use similar match_operator patterns like
7326 scalar mode uses. Combine the Altivec and VSX code for logical
7327 operations, and move it here.
7328 (ior<mode>3, 128-bit types): Likewise.
7329 (xor<mode>3, 128-bit types): Likewise.
7330 (one_cmpl<mode>3, 128-bit types): Likewise.
7331 (nor<mode>3, 128-bit types): Likewise.
7332 (andc<mode>3, 128-bit types): Likewise.
7333 (eqv<mode>3, 128-bit types): Likewise.
7334 (nand<mode>3, 128-bit types): Likewise.
7335 (orc<mode>3, 128-bit types): Likewise.
7336 (and<mode>3_internal): Likewise.
7337 (bool<mode>3_internal): Likewise.
7338 (boolc<mode>3_internal1): Likewise.
7339 (boolc<mode>3_internal2): Likewise.
7340 (boolcc<mode>3_internal1): Likewise.
7341 (boolcc<mode>3_internal2): Likewise.
7342 (eqv<mode>3_internal1): Likewise.
7343 (eqv<mode>3_internal2): Likewise.
7344 (one_cmpl1<mode>3_internal): Likewise.
7345
12211b99 73462013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7347
7348 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7349 Rename flag_stack_usage to flag_stack_usage_info.
7350
12211b99 73512013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7352
a5f257fd
ME
7353 * config/microblaze/sync.md: New file.
7354 * config/microblaze/microblaze.md: Include sync.md
7355 * config/microblaze/microblaze.c: Add print_operand 'y'.
7356 * config/microblaze/constraints.md: Add memory_contraint
7357 'Q' which is a single register.
450b0ebb 7358
49fba14f
EB
73592013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7360
7361 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7362
c7b3b99f
PCC
73632013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7364
7365 * reload.c (find_reloads): Exit loop once we find this operand
7366 cannot be reloaded somehow for this alternative.
7367
7368 * reload.c (find_reloads): Exit loop once we find a hard register.
7369
7370 * rtlanal.c (computed_jump_p): Exit loop once we find label
7371 reference is used.
7372
7373 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7374
7375 * cfgloopmanip.c (remove_path): Exit loop after setting
7376 irred_invalidated.
7377
7378 * gensupport.c (subst_dup): Avoid loop if code is not
7379 MATCH_DUP nor MATCH_OP_DUP.
7380
c8fbf1fa
NBJ
73812013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7382
7383 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7384
9259db42
YZ
73852013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7386
7387 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7388 true for SP_REGNUM if mode == ptr_mode.
7389 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7390 with value R0_REGNUM + 31.
7391
00edcfbe
YZ
73922013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7393
7394 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7395 pad pointer-typed argument downward.
7396
43be9a95
YZ
73972013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7398
7399 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7400 and __ILP32__ when the ILP32 model is in use.
7401
28514dda
YZ
74022013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7403
7404 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7405 (aarch64_load_symref_appropriately): In the case of
7406 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7407 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7408 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7409 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7410 if 'mode' doesn't equal to 'ptr_mode'.
7411 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7412 'vcall_offset'; change to call aarch64_emit_move differently depending
7413 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7414 to calculate the upper bound of 'vcall_offset'.
7415 (aarch64_cannot_force_const_mem): Change to also return true if
7416 mode != ptr_mode.
7417 (aarch64_legitimize_reload_address): In the case of large
7418 displacements, add new local variable 'xmode' and an assertion
7419 based on it; change to use 'xmode' to generate the new rtx and
7420 reload.
7421 (aarch64_asm_trampoline_template): Change to generate the template
7422 differently depending on TARGET_ILP32 or not; change to use
7423 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7424 (aarch64_trampoline_size): Removed.
7425 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7426 and replace immediate literals with it. Change to use 'ptr_mode'
7427 instead of 'DImode' and call convert_memory_address if the mode
7428 of 'fnaddr' doesn't equal to 'ptr_mode'.
7429 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7430 to output symbol.
7431 (aarch64_elf_asm_destructor): Likewise.
7432 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7433 on TARGET_ILP32 instead of aarch64_trampoline_size.
7434 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7435 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7436 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7437 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7438 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7439 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7440 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7441 depending on the value of 'mode'.
7442 (add_losym_<mode>): New.
7443 (ldr_got_small_<mode>): New, based on ldr_got_small.
7444 (ldr_got_small): Remove.
7445 (ldr_got_small_sidi): New.
7446 * config/aarch64/iterators.md (P): New.
7447 (PTR): Change to 'ptr_mode' in the condition.
7448
17a819cb
YZ
74492013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7450
7451 * config.gcc (aarch64*-*-*): Support --with-abi.
7452 (aarch64*-*-elf): Support --with-multilib-list.
7453 (aarch64*-*-linux*): Likewise.
7454 (supported_defaults): Add abi to aarch64*-*-*.
7455 * configure.ac: Mention AArch64 for --with-multilib-list.
7456 * configure: Re-generated.
7457 * config/aarch64/biarchilp32.h: New file.
7458 * config/aarch64/biarchlp64.h: New file.
7459 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7460 (ABI_SPEC): Ditto.
7461 (MULTILIB_DEFAULTS): Ditto.
7462 (DRIVER_SELF_SPECS): Ditto.
7463 (ASM_SPEC): Update to also substitute -mabi.
7464 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7465 file whose name depends on -mabi= and -mbig-endian.
7466 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7467 TARGET_ILP32.
7468 (POINTER_SIZE): New define.
7469 (POINTERS_EXTEND_UNSIGNED): Ditto.
7470 (enum aarch64_abi_type): New enumeration tag.
7471 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7472 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7473 (TARGET_ILP32): New define.
7474 * config/aarch64/aarch64.opt (mabi): New.
7475 (aarch64_abi): New.
7476 (ilp32, lp64): New values for -mabi.
7477 * config/aarch64/t-aarch64 (comma): New define.
7478 (MULTILIB_OPTIONS): Ditto.
7479 (MULTILIB_DIRNAMES): Ditto.
7480 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7481 * doc/invoke.texi: Document -mabi for AArch64.
7482
9f9cbdce
GJL
74832013-07-23 Georg-Johann Lay <avr@gjlay.de>
7484
7485 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7486
7061977b 74872013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7488 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7489
7490 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7491 endianness when selecting field to splat.
7492
75a41878
EC
74932013-07-22 Eric Christopher <echristo@gmail.com>
7494
7495 * dwarf2out.c (die_odr_checksum): New function to use
7496 CHECKSUM_ macros and ULEB128 for DIE tag.
7497 (generate_type_signature): Use.
41a7c215 7498
38ae58ca
EB
74992013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7500
7501 * config.gcc (sparc*-*-*): Accept leon3 processor.
7502 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7503 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7504 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7505 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7506 (mfix-ut699): Adjust comment.
7507 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7508 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7509 (CPP_CPU_SPEC): Likewise.
7510 (ASM_CPU_SPEC): Likewise.
7511 * config/sparc/sparc.c (leon3_cost): New constant.
7512 (sparc_option_override): Add leon3 support.
7513 (mem_ref): New function.
7514 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7515 (sparc_do_work_around_errata): Look into the instruction in the delay
7516 slot and adjust accordingly. Add fix for the data cache nullify issues
7517 of the UT699. Change insertion position for the NOP.
7518 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7519 (leon3_load): New reservation.
7520 (leon_store): Bump latency to 2.
7521 (grfpu): New automaton.
7522 (grfpu_alu): New unit.
7523 (grfpu_ds): Likewise.
7524 (leon_fp_alu): Adjust.
7525 (leon_fp_mult): Delete.
7526 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7527 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7528 * config/sparc/sparc.md (cpu): Add leon3.
7529 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7530 (swapsi): Likewise.
7531 (atomic_test_and_set): Likewise.
7532 (ldstub): Likewise.
7533
04dfc6df
JU
75342013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7535
7536 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7537 default for R5900 targets.
7538 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7539 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7540 * config/mips/mips.c (mips_option_override): Report an error for
7541 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7542 for -march=r5900 -mhard-float.
7543
c7b3b99f 75442013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7545
7546 * df-problems.c (can_move_insns_across): Exit loop once we
7547 find a non-fixed, non-global register.
7548
7549 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7550 setting can_throw.
7551
7552 * omega.c (omega_eliminate_red): Break after setting red_found.
7553 (omega_problem_has_red_equations): Similarly after setting found.
7554 (omega_query_variable): Similarly after setting coupled.
7555
9b6e6981
MP
75562013-07-22 Marek Polacek <polacek@redhat.com>
7557
7558 * gimplify.c: Don't include gimple.h twice.
7559
5e5f7673
KT
75602013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7561
7562 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7563 instead of TARGET_THUMB1.
7564 (Pz): New constraint.
7565 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7566 encodings.
7567 (compare_negsi_si): Likewise.
7568 (compare_addsi2_op0): Likewise.
7569 (compare_addsi2_op1): Likewise.
7570 (addsi3_carryin_<optab>): Likewise.
7571 (addsi3_carryin_alt2_<optab>): Likewise.
7572 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7573 for arm_restrict_it.
7574 (subsi3_carryin): Likewise.
7575 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7576 (minmax_arithsi): Disable for arm_restrict_it.
7577 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7578 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7579 (satsi_<SAT:code>_shift): Likewise.
7580 (arm_shiftsi3): Add alternative for 16-bit encoding.
7581 (arm32_movhf): Disable for arm_restrict_it.
7582 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7583 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7584
859abddd
SN
75852013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7586
7587 * config/arm/arm.md (attribute "insn"): Delete.
7588 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7589 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7590 (not_shiftsi): Update for attribute change.
7591 (not_shiftsi_compare0): Likewise.
7592 (not_shiftsi_compare0_scratch): Likewise.
7593 (arm_one_cmplsi2): Likewise.
7594 (thumb1_one_cmplsi2): Likewise.
7595 (notsi_compare0): Likewise.
7596 (notsi_compare0_scratch): Likewise.
7597 (thumb1_movdi_insn): Likewise.
7598 (arm_movsi_insn): Likewise.
7599 (movhi_insn_arch4): Likewise.
7600 (movhi_bytes): Likewise.
7601 (arm_movqi_insn): Likewise.
7602 (thumb1_movqi_insn): Likewise.
7603 (arm32_movhf): Likewise.
7604 (thumb1_movhf): Likewise.
7605 (arm_movsf_soft_insn): Likewise.
7606 (thumb1_movsf_insn): Likewise.
7607 (thumb_movdf_insn): Likewise.
7608 (movsicc_insn): Likewise.
7609 (movsfcc_soft_insn): Likewise.
7610 (and_scc): Likewise.
7611 (cond_move): Likewise.
7612 (if_move_not): Likewise.
7613 (if_not_move): Likewise.
7614 (if_shift_move): Likewise.
7615 (if_move_shift): Likewise.
7616 (if_shift_shift): Likewise.
7617 (if_not_arith): Likewise.
7618 (if_arith_not): Likewise.
7619 (cond_move_not): Likewise.
7620 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
7621 (neon_mov<mode>): Likewise.
7622 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
7623 (thumb2_movsi_vfp): Likewise.
7624 (movsf_vfp): Likewise.
7625 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
7626 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7627 change.
859abddd
SN
7628 (cortexa7_older_only): Likewise.
7629 (cortexa7_younger): Likewise.
7630 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
7631 (1020alu_shift_op): Likewise.
7632 (1020alu_shift_reg_op): Likewise.
7633 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
7634 (alu_shift_op): Likewise.
7635 (alu_shift_reg_op): Likewise.
7636 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
7637 (11_alu_shift_op): Likewise.
7638 (11_alu_shift_reg_op): Likewise.
7639 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
7640 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7641 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7642 change.
859abddd
SN
7643 (cortex_a15_alu_shift): Likewise.
7644 (cortex_a15_alu_shift_reg): Likewise.
7645 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
7646 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
7647 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
7648 change.
859abddd 7649 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
7650 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7651 change.
859abddd
SN
7652 (cortex_a7_alu_reg): Likewise.
7653 (cortex_a7_alu_shift): Likewise.
7654 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7655 (cortex_a8_alu_shift): Likewise.
7656 (cortex_a8_alu_shift_reg): Likewise.
7657 (cortex_a8_mov): Likewise.
7658 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7659 (cortex_a9_dp_shift): Likewise.
7660 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
7661 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
7662 (cortex_r4_mov): Likewise.
7663 (cortex_r4_alu_shift): Likewise.
7664 (cortex_r4_alu_shift_reg): Likewise.
7665 * config/arm/fa526.md (526_alu_op): Update for attribute change.
7666 (526_alu_shift_op): Likewise.
7667 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
7668 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
7669 (626te_alu_shift_op): Likewise.
7670 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
7671 (726te_alu_op): Likewise.
7672 (726te_alu_shift_op): Likewise.
7673 (726te_alu_shift_reg_op): Likewise.
7674 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
7675 (mp626_alu_shift_op): Likewise.
7676 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
7677 (pj4_alu_e1_conds): Likewise.
7678 (pj4_alu): Likewise.
7679 (pj4_alu_conds): Likewise.
7680 (pj4_shift): Likewise.
7681 (pj4_shift_conds): Likewise.
7682 (pj4_alu_shift): Likewise.
7683 (pj4_alu_shift_conds): Likewise.
7684
95b97fac
KT
76852013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7686
7687 * config/arm/predicates.md (shiftable_operator_strict_it):
7688 New predicate.
7689 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
7690 Disable cond_exec version for arm_restrict_it.
7691 (thumb2_smaxsi3): Convert to generate cond_exec.
7692 (thumb2_sminsi3): Likewise.
7693 (thumb32_umaxsi3): Likewise.
7694 (thumb2_uminsi3): Likewise.
7695 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
7696 (thumb2_neg_abssi2): Likewise.
7697 (thumb2_mov_scc): Add alternative for 16-bit encoding.
7698 (thumb2_movsicc_insn): Adjust alternatives.
7699 (thumb2_mov_negscc): Disable for arm_restrict_it.
7700 (thumb2_mov_negscc_strict_it): New pattern.
7701 (thumb2_mov_notscc_strict_it): New pattern.
7702 (thumb2_mov_notscc): Disable for arm_restrict_it.
7703 (thumb2_ior_scc): Likewise.
7704 (thumb2_ior_scc_strict_it): New pattern.
7705 (thumb2_cond_move): Adjust for arm_restrict_it.
7706 (thumb2_cond_arith): Disable for arm_restrict_it.
7707 (thumb2_cond_arith_strict_it): New pattern.
7708 (thumb2_cond_sub): Adjust for arm_restrict_it.
7709 (thumb2_movcond): Likewise.
7710 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
7711 (thumb2_zero_extendhisi2_v6): Likewise.
7712 (thumb2_zero_extendqisi2_v6): Likewise.
7713 (orsi_notsi_si): Likewise.
7714 (orsi_not_shiftsi_si): Likewise.
7715
d5a6ef82
GJL
77162013-07-22 Georg-Johann Lay <avr@gjlay.de>
7717
7718 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
7719 instruction sequence is 1 byte shorter.
7720
d9e71154
UB
77212013-07-22 Uros Bizjak <ubizjak@gmail.com>
7722
7723 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7724 it is not needed after split.
7725
8c6381ec
IS
77262013-07-20 Iain Sandoe <iain@codesourcery.com>
7727
7728 PR target/51784
7729 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7730 second label for nonlocal goto receivers. Don't output pic base labels
7731 unless we're producing PIC; mark that action unreachable().
7732 (ix86_save_reg): If the function contains a nonlocal label, save the
7733 PIC base reg.
7734 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 7735 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
7736 (update_pic_label_number_if_needed): New.
7737 (machopic_output_function_base_name): Adjust for nonlocal receiver
7738 case.
7739 (machopic_should_output_picbase_label): New.
7740 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7741 (nonlocal_goto_receiver): New insn and split.
7742
d05d0709
JG
77432013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
7744
7745 * config/aarch64/aarch64-builtins.c
7746 (aarch64_fold_builtin): Fold abs in all modes.
7747 * config/aarch64/aarch64-simd-builtins.def
7748 (abs): Enable for all modes.
7749 * config/aarch64/arm_neon.h
7750 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
7751 (vabs_f64): Add missing intrinsic.
7752
ba590e63
IB
77532013-07-19 Ian Bolton <ian.bolton@arm.com>
7754
7755 * config/aarch64/arm_neon.h (vabs_s64): New function
7756
02371798
GJL
77572013-07-19 Georg-Johann Lay <avr@gjlay.de>
7758
7759 PR target/57516
7760 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7761 * config/avr/avr.md (adjust_len): Add `round'.
7762 * config/avr/avr-protos.h (avr_out_round): New prototype.
7763 (avr_out_plus): Add `out_label' argument.
7764 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7765 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7766 Handle the case where `insn' is just a pattern.
7767 (avr_out_bitop): Handle the case where `insn' is just a pattern.
7768 (avr_out_round): New function.
7769 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7770
12211b99 77712013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
7772
7773 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7774 Add check for flag_stack_usage to handle -fstack-usage support
7775
12211b99 77762013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
7777
7778 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
7779 interaction for new Power8 flags and VSX.
7780
df9dda2d
ST
77812013-07-18 Sriraman Tallam <tmsriram@google.com>
7782
7783 PR middle-end/57698
7784 * tree-inline.c (expand_call_inline): Emit errors during
7785 early_inlining only if optimization is not turned on.
7786
0f9cdef4
DM
77872013-07-18 David Malcolm <dmalcolm@redhat.com>
7788
7789 * passes.def: New.
7790
7791 * passes.c (init_optimization_passes): Move the construction of
7792 the pass hierarchy into a new passes.def file.
7793
7794 * Makefile.in (passes.o): Add dependency on passes.def.
7795
2efa4087
DM
77962013-07-18 David Malcolm <dmalcolm@redhat.com>
7797
7798 * passes.c (init_optimization_passes): Introduce macros for
7799 constructing the tree of passes (INSERT_PASSES_AFTER,
7800 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
7801 TERMINATE_PASS_LIST).
7802
bc404e1b
VM
78032013-07-18 Vladimir Makarov <vmakarov@redhat.com>
7804 Wei Mi <wmi@google.com>
7805
7806 PR rtl-optimization/57878
7807 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7808 top.
7809 (reload_pseudo_compare_func): Check nregs first for reload
7810 pseudos.
7811
d675843f
DM
78122013-07-18 David Malcolm <dmalcolm@redhat.com>
7813
7814 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
7815
c7b3b99f 78162013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
7817
7818 * read-rtl.c (validate_const_int): Once an invalid character is
7819 seen, quit the loop.
7820
7821 * gengtype.c (write_roots): Similarly once we find the "deletable"
7822 or "if_marked" option.
7823
52fceb44
SN
78242013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7825
7826 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
7827 "xtab" and "sat". Move value "clz" from here to ...
7828 (attriubte "type"): ... here.
7829 (satsi_<SAT:code>): Delete "insn" attribute.
7830 (satsi_<SAT:code>_shift): Likewise.
7831 (arm_zero_extendqisi2addsi): Likewise.
7832 (arm_extendqisi2addsi): Likewise.
7833 (clzsi2): Update for attribute changes.
7834 (rbitsi2): Likewise.
371e77e3
UB
7835 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
7836 attribute.
52fceb44
SN
7837 (arm_usatsihi): Likewise.
7838 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7839
006bd006
SN
78402013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7841
7842 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
7843 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
7844 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
7845 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
7846 in alphabetical order.
7847 (attribute "core_cycles"): Update for attribute changes.
7848 (arm_addsi3): Likewise.
7849 (addsi3_compare0): Likewise.
7850 (addsi3_compare0_scratch): Likewise.
7851 (addsi3_compare_op1): Likewise.
7852 (addsi3_compare_op2): Likewise.
7853 (compare_addsi2_op0): Likewise.
7854 (compare_addsi2_op1): Likewise.
7855 (addsi3_carryin_shift_<optab>): Likewise.
7856 (subsi3_carryin_shift): Likewise.
7857 (rsbsi3_carryin_shift): Likewise.
7858 (arm_subsi3_insn): Likewise.
7859 (subsi3_compare0): Likewise.
7860 (subsi3_compare): Likewise.
7861 (arm_andsi3_insn): Likewise.
7862 (thumb1_andsi3_insn): Likewise.
7863 (andsi3_compare0): Likewise.
7864 (andsi3_compare0_scratch): Likewise.
7865 (zeroextractsi_compare0_scratch
7866 (andsi_not_shiftsi_si): Likewise.
7867 (iorsi3_insn): Likewise.
7868 (iorsi3_compare0): Likewise.
7869 (iorsi3_compare0_scratch): Likewise.
7870 (arm_xorsi3): Likewise.
7871 (thumb1_xorsi3_insn): Likewise.
7872 (xorsi3_compare0): Likewise.
7873 (xorsi3_compare0_scratch): Likewise.
7874 (satsi_<SAT:code>_shift): Likewise.
7875 (rrx): Likewise.
7876 (arm_shiftsi3): Likewise.
7877 (shiftsi3_compare0): Likewise.
7878 (not_shiftsi): Likewise.
7879 (not_shiftsi_compare0): Likewise.
7880 (not_shiftsi_compare0_scratch): Likewise.
7881 (arm_one_cmplsi2): Likewise.
7882 (thumb_one_complsi2): Likewise.
7883 (notsi_compare0): Likewise.
7884 (notsi_compare0_scratch): Likewise.
7885 (thumb1_zero_extendhisi2): Likewise.
7886 (arm_zero_extendhisi2): Likewise.
7887 (arm_zero_extendhisi2_v6): Likewise.
7888 (arm_zero_extendhisi2addsi): Likewise.
7889 (thumb1_zero_extendqisi2): Likewise.
7890 (thumb1_zero_extendqisi2_v6): Likewise.
7891 (arm_zero_extendqisi2): Likewise.
7892 (arm_zero_extendqisi2_v6): Likewise.
7893 (arm_zero_extendqisi2addsi): Likewise.
7894 (thumb1_extendhisi2): Likewise.
7895 (arm_extendhisi2): Likewise.
7896 (arm_extendhisi2_v6): Likewise.
7897 (arm_extendqisi): Likewise.
7898 (arm_extendqisi_v6): Likewise.
7899 (arm_extendqisi2addsi): Likewise.
7900 (thumb1_extendqisi2): Likewise.
7901 (thumb1_movdi_insn): Likewise.
7902 (arm_movsi_insn): Likewise.
7903 (movsi_compare0): Likewise.
7904 (movhi_insn_arch4): Likewise.
7905 (movhi_bytes): Likewise.
7906 (arm_movqi_insn): Likewise.
7907 (thumb1_movqi_insn): Likewise.
7908 (arm32_movhf): Likewise.
7909 (thumb1_movhf): Likewise.
7910 (arm_movsf_soft_insn): Likewise.
7911 (thumb1_movsf_insn): Likewise.
7912 (movdf_soft_insn): Likewise.
7913 (thumb_movdf_insn): Likewise.
7914 (arm_cmpsi_insn): Likewise.
7915 (cmpsi_shiftsi): Likewise.
7916 (cmpsi_shiftsi_swp): Likewise.
7917 (arm_cmpsi_negshiftsi_si): Likewise.
7918 (movsicc_insn): Likewise.
7919 (movsfcc_soft_insn): Likewise.
7920 (arith_shiftsi): Likewise.
7921 (arith_shiftsi_compare0
7922 (arith_shiftsi_compare0_scratch
7923 (sub_shiftsi): Likewise.
7924 (sub_shiftsi_compare0
7925 (sub_shiftsi_compare0_scratch
7926 (and_scc): Likewise.
7927 (cond_move): Likewise.
7928 (if_plus_move): Likewise.
7929 (if_move_plus): Likewise.
7930 (if_move_not): Likewise.
7931 (if_not_move): Likewise.
7932 (if_shift_move): Likewise.
7933 (if_move_shift): Likewise.
7934 (if_shift_shift): Likewise.
7935 (if_not_arith): Likewise.
7936 (if_arith_not): Likewise.
7937 (cond_move_not): Likewise.
7938 (thumb1_ashlsi3): Set type attribute.
7939 (thumb1_ashrsi3): Likewise.
7940 (thumb1_lshrsi3): Likewise.
7941 (thumb1_rotrsi3): Likewise.
7942 (shiftsi3_compare0_scratch): Likewise.
7943 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
7944 (neon_mov<mode>): Likewise.
371e77e3
UB
7945 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
7946 attribute changes.
006bd006
SN
7947 (thumb2_movsi_insn): Likewise.
7948 (thumb2_cmpsi_neg_shiftsi): Likewise.
7949 (thumb2_extendqisi_v6): Likewise.
7950 (thumb2_zero_extendhisi2_v6): Likewise.
7951 (thumb2_zero_extendqisi2_v6): Likewise.
7952 (thumb2_shiftsi3_short): Likewise.
7953 (thumb2_addsi3_compare0_scratch): Likewise.
7954 (orsi_not_shiftsi_si): Likewise.
7955 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7956 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
7957 changes.
7958 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
7959 (1020alu_shift_op): Likewise.
7960 (1020alu_shift_reg_op): Likewise.
7961 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
7962 (alu_shift_op): Likewise.
7963 (alu_shift_reg_op): Likewise.
7964 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
7965 (11_alu_shift_op): Likewise.
7966 (11_alu_shift_reg_op): Likewise.
7967 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
7968 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7969 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7970 changes.
006bd006
SN
7971 (cortex_a15_alu_shift): Likewise.
7972 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
7973 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
7974 changes.
006bd006
SN
7975 (cortex_a5_alu_shift): Likewise.
7976 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
7977 changes.
7978 (cortex_a53_alu_shift): Likewise.
7979 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7980 changes.
7981 (cortex_a7_alu_reg): Likewise.
7982 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
7983 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
7984 changes.
006bd006
SN
7985 (cortex_a8_alu_shift): Likewise.
7986 (cortex_a8_alu_shift_reg): Likewise.
7987 (cortex_a8_mov): Likewise.
7988 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
7989 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
7990 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
7991 changes.
7992 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
7993 changes.
006bd006
SN
7994 (cortex_r4_mov): Likewise.
7995 (cortex_r4_alu_shift): Likewise.
7996 (cortex_r4_alu_shift_reg): Likewise.
7997 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
7998 (526_alu_shift_op): Likewise.
7999 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
8000 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
8001 (626te_alu_shift_op): Likewise.
8002 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
8003 (726te_alu_op): Likewise.
8004 (726te_alu_shift_op): Likewise.
8005 (726te_alu_shift_reg_op): Likewise.
8006 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
8007 (mp626_alu_shift_op): Likewise.
8008 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
8009 (pj4_alu_e1_conds): Likewise.
8010 (pj4_alu): Likewise.
8011 (pj4_alu_conds): Likewise.
8012 (pj4_shift): Likewise.
8013 (pj4_shift_conds): Likewise.
8014 (pj4_alu_shift): Likewise.
8015 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
8016 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
8017 changes.
006bd006
SN
8018 (cortexa7_older_only): Likewise.
8019 (cortexa7_younger): Likewise.
8020
651df1b2
DM
80212013-07-18 David Malcolm <dmalcolm@redhat.com>
8022
8023 * ipa-pure-const.c (generate_summary): Rename to...
8024 (pure_const_generate_summary): ... this.
8025
ea717bd7
IS
80262013-07-17 Iain Sandoe <iain@codesourcery.com>
8027
8028 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
8029
a1259a13
YR
80302013-07-17 Yvan Roux <yvan.roux@linaro.org>
8031
8032 PR target/57909
8033 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
8034 usage in HI mode.
8035
167f68ed
AK
80362013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8037
8038 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
8039 enabled without -march=zEC12.
8040 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
8041 flags to be set.
8042
f900a982
MR
80432013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8044
8045 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
8046 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
8047 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
8048 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
8049 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
8050 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
8051 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
8052 ISA_HAS_FP4.
8053 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
8054 and ISA_HAS_NMADD3_NMSUB3.
8055 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
8056 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
8057 (nmsub4<mode>, nmsub3<mode>): Likewise.
8058 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
8059
d4ed27eb
MR
80602013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8061
8062 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
8063 TARGET_MIPS5400 checking.
8064
7a5add18
PB
80652013-07-16 Jakub Jelinek <jakub@redhat.com>
8066 Peter Bergner <bergner@vnet.ibm.com>
8067
8068 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
8069 registers in the comment.
8070 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
8071 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
8072 rather than FIRST_PSEUDO_REGISTERS.
8073
80742013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
8075
8076 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8077 enable extra ISA flags with TARGET_HTM.
8078
d2ab0929
MR
80792013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8080
8081 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
8082 Fix comment typos.
8083
839c74bc
CH
80842013-07-15 Cong Hou <congh@google.com>
8085
8086 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
8087 in compare function for sorting.
8088
7a5add18 80892013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
8090
8091 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
8092 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
8093 * config/rs6000/rs6000.opt: Add -mhtm option.
8094 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
8095 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
8096 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8097 __HTM__ if the HTM instructions are available.
8098 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
8099 htm_spr_reg_operand): New define_predicates.
8100 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
8101 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
8102 Include htm.md.
8103 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
8104 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
8105 HTM builtin functions.
8106 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
8107 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
8108 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
8109 (rs6000_builtin_mask_calculate): Likewise.
8110 (rs6000_option_override_internal): Likewise.
8111 (bdesc_htm): Add new HTM builtin support.
8112 (htm_spr_num): New function.
8113 (htm_spr_regno): Likewise.
8114 (rs6000_htm_spr_icode): Likewise.
8115 (htm_expand_builtin): Likewise.
8116 (htm_init_builtins): Likewise.
8117 (rs6000_expand_builtin): Add support for HTM builtin functions.
8118 (rs6000_init_builtins): Likewise.
371e77e3
UB
8119 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
8120 option.
0258b6e4
PB
8121 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
8122 (TARGET_HTM, MASK_HTM): Define macros.
8123 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
8124 (FIXED_REGISTERS): Likewise.
8125 (CALL_USED_REGISTERS): Likewise.
8126 (CALL_REALLY_USED_REGISTERS): Likewise.
8127 (REG_ALLOC_ORDER): Likewise.
8128 (enum reg_class): Likewise.
8129 (REG_CLASS_NAMES): Likewise.
8130 (REG_CLASS_CONTENTS): Likewise.
8131 (REGISTER_NAMES): Likewise.
8132 (ADDITIONAL_REGISTER_NAMES): Likewise.
8133 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
8134 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
8135 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
8136 * config/rs6000/htm.md: New file.
8137 * config/rs6000/htmintrin.h: New file.
8138 * config/rs6000/htmxlintrin.h: New file.
8139
87dd8ab0
MS
81402013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
8141
8142 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8143 Define SYMBOL_TINY_GOT, update comment.
8144 * config/aarch64/aarch64.c
8145 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
8146 (aarch64_expand_mov_immediate): Likewise.
8147 (aarch64_print_operand): Likewise.
8148 (aarch64_classify_symbol): Likewise.
8149 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
8150 (ldr_got_tiny): Define.
8151
52d676b6
TG
81522013-07-13 Tobias Grosser <tobias@grosser.es>
8153
8154 PR tree-optimization/54094
8155 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
8156 scheduling dimension for the parallelism check from the polyhedral
8157 information in the AST.
8158 * graphite-dependences.c (carries_deps): Do not assume the schedule is
8159 in 2D + 1 form.
8160
286e8fc1
JM
81612013-07-13 Jason Merrill <jason@redhat.com>
8162
8163 * print-tree.c (debug_vec_tree): Use debug_raw.
8164 (debug_raw (vec<tree, va_gc> &)): New.
8165 (debug_raw (vec<tree, va_gc> *)): New.
8166 * tree.h: Declare them.
8167
e43257e8
BC
81682013-07-13 Bin Cheng <bin.cheng@arm.com>
8169
8170 * ifcvt.c (ifcvt_after_combine): New static variable.
8171 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
8172 for size.
8173 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
8174 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
8175 rest_of_handle_if_after_reload): Pass new argument for if_convert.
8176
da582d46
MR
81772013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
8178
8179 * config/mips/mips.c (mips_expand_call): Remove empty statement.
8180
18b0ea8f
MM
81812013-07-12 Michael Matz <matz@suse.de>
8182
8183 PR middle-end/55771
8184 * convert.c (convert_to_real): Reject non-float inner types.
8185
e4f0f84d
TB
81862013-07-12 Tejas Belagod <tejas.belagod@arm.com>
8187
8188 * config/aarch64/aarch64-protos.h
8189 (aarch64_simd_immediate_valid_for_move): Remove.
8190 * config/aarch64/aarch64.c (simd_immediate_info): New member.
8191 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
8192 cases.
8193 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
8194
76500022
SE
81952013-07-11 Steve Ellcey <sellcey@mips.com>
8196
8197 * config/mips/mips.c (mips_conditional_register_usage): Do not
8198 use t[0-7] registers in MIPS16 mode when optimizing for size.
8199
78039734
ST
82002013-07-11 Sriraman Tallam <tmsriram@google.com>
8201
8202 * config/i386/i386.c (dispatch_function_versions): Fix array
8203 indexing of function_version_info to match actual_versions.
8204
7b24b675
TJ
82052013-07-11 Teresa Johnson <tejohnson@google.com>
8206
8207 * vec.h (struct va_gc): Move release out-of-line.
8208 (va_gc::release): Call ggc_free on released vec.
8209
85d4cbb8
UW
82102013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8211
8212 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
8213 Require GOT register as additional operand in UNSPEC.
8214 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
8215 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8216 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8217 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
8218 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
8219 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
8220 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
8221
52b3f9e2
GJL
82222013-07-11 Georg-Johann Lay <avr@gjlay.de>
8223
8224 PR target/57631
8225 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
8226 name seen by assembler/linker rather if available.
8227
3f3e266e
AS
82282013-07-11 Andreas Schwab <schwab@suse.de>
8229
8230 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
8231
21231ca6
VM
82322013-07-10 Vladimir Makarov <vmakarov@redhat.com>
8233
371e77e3 8234 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 8235
d331d374
JM
82362013-07-10 Joseph Myers <joseph@codesourcery.com>
8237
673c2f63
JM
8238 * doc/tm.texi.in: Move hook documentation to ....
8239 * target.def: ... here.
8240
d331d374
JM
8241 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
8242 text on @hook line.
8243 * doc/tm.texi: Regenerate.
8244
dfeadaa0
PC
82452013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
8246
8247 PR c++/57869
8248 * doc/invoke.texi: Document -Wconditionally-supported.
8249
bb6f2bac
GJL
82502013-07-10 Georg-Johann Lay <avr@gjlay.de>
8251
8252 PR target/57844
8253 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
8254 of my_fp.
8255
5219b232
GJL
82562013-07-10 Georg-Johann Lay <avr@gjlay.de>
8257
8258 PR target/57506
8259 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
8260 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
8261 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
8262 Remove duplicate devices.
8263 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
8264 * config/avr/t-multilib: Regenerate.
8265 * config/avr/avr-tables.opt: Regenerate.
8266 * doc/avr-mmcu.texi: Regenerate.
8267
283045c0
GJL
82682013-07-10 Georg-Johann Lay <avr@gjlay.de>
8269
8270 PR target/56987
8271 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
8272
ceb2d59f 82732013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 8274
ceb2d59f
GS
8275 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
8276 the cost of MULT when optimizing for size.
8277
055e0a99
JBG
82782013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8279
8280 * config/cr16/cr16-protos.h: Don't include target.h.
8281
ef43e868
JM
82822013-07-09 Joseph Myers <joseph@codesourcery.com>
8283
8284 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
8285 adjust register size for TDmode and TFmode for VSX registers.
8286
4a283fdf
KT
82872013-07-08 Kai Tietz <ktietz@redhat.com>
8288
8289 PR target/56892
8290 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
8291 hook_bool_const_tree_true.
8292
2cf4c39e
AK
82932013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8294
8295 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
8296 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
8297 * config/s390/s390.md: Define FPR*_REGNUM constants.
8298 Fix FPR2_REGNUM constant (18 -> 17).
8299 ("*trunc<BFP:mode><DFP_ALL:mode>2")
8300 ("*trunc<DFP_ALL:mode><BFP:mode>2")
8301 ("trunc<BFP:mode><DFP_ALL:mode>2")
8302 ("trunc<DFP_ALL:mode><BFP:mode>2")
8303 ("*extend<BFP:mode><DFP_ALL:mode>2")
8304 ("*extend<DFP_ALL:mode><BFP:mode>2")
8305 ("extend<BFP:mode><DFP_ALL:mode>2")
8306 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
8307 FPR4_REGNUM.
8308
e6ac0270 83092013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 8310
6a2fa4b2 8311 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 8312
b89b22fc
AK
83132013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8314
8315 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
8316 and cfun_fpr_bit_p to cfun_fpr_save_p.
8317 (s390_frame_area, s390_register_info, s390_frame_info)
8318 (s390_emit_prologue, s390_emit_epilogue)
8319 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
8320 register numbers.
8321 * config/s390/s390.h: Define *_REGNUM macros for floating point
8322 register numbers.
8323
07f398aa
EB
83242013-07-08 Eric Botcazou <ebotcazou@adacore.com>
8325
8326 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
8327
75fefa91
PCC
83282013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8329
8330 PR rtl-optimization/57786
8331 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8332 and break out of the loop when it is set to false.
8333
046f1eee
JJ
83342013-07-08 Jakub Jelinek <jakub@redhat.com>
8335
8140c065
JJ
8336 PR target/57819
8337 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8338 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8339 (const_int 63)) 0)).
8340 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8341 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8342 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8343
046f1eee
JJ
8344 PR rtl-optimization/57829
8345 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8346 mask bits outside of mode are just sign-extension from mode to HWI.
8347
930b700b
MZ
83482013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8349
8350 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8351 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8352 adjust_address instead of change_address to keep info about alignment.
8353 (emit_strmov): Remove.
8354 (emit_memmov): New function.
8355 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8356 (expand_movmem_epilogue): Likewise and return updated rtx for
8357 destination.
8358 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8359 destination and source.
8360 (decide_alignment): Refactor, handle vector_loop.
8361 (ix86_expand_movmem): Likewise.
8362 (ix86_expand_setmem): Likewise.
8363 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8364
7b9d1bd8
UB
83652013-07-07 Uros Bizjak <ubizjak@gmail.com>
8366
8367 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8368 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8369
eabb5f48
UB
83702013-07-06 Uros Bizjak <ubizjak@gmail.com>
8371
8372 * config/i386/sse.md (sse_movlhps): Change alternative 3
8373 of operand 2 to "m".
8374
83752013-07-06 Uros Bizjak <ubizjak@gmail.com>
8376
8377 PR target/57807
8378 * config/i386/sse.md (iptr): New mode attribute.
8379 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8380 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8381 (<sse>_vmmul<mode>3): Ditto.
8382 (<sse>_vmdiv<mode>3): Ditto.
8383 (sse_vmrcpv4sf2): Ditto.
8384 (<sse>_vmsqrt<mode>2): Ditto.
8385 (sse_vmrsqrtv4sf2): Ditto.
8386 (<sse>_vm<code><mode>3): Ditto.
8387 (avx_vmcmp<mode>3): Ditto.
8388 (<sse>_vmmaskcmp<mode>3): Ditto.
8389 (<sse>_comi): Ditto.
8390 (<sse>_ucomi): Ditto.
8391 (*xop_vmfrcz_<mode>): Ditto.
8392 (*fmai_fmadd_<mode>): Ditto.
8393 (*fmai_fmsub_<mode>): Ditto.
8394 (*fmai_fnmadd_<mode>): Ditto.
8395 (*fmai_fnmsub_<mode>): Ditto.
8396 (*fma4i_vmfmadd_<mode>): Ditto.
8397 (*fma4i_vmfmsub_<mode>): Ditto.
8398 (*fma4i_vmfnmadd_<mode>): Ditto.
8399 (*fma4i_vmfnmsub_<mode>): Ditto.
8400 (*xop_vmfrcz_<mode>): Ditto.
8401 (sse_cvtps2pi): Ditto.
8402 (sse_cvttps2pi): Ditto.
8403 (sse_cvtss2si): Ditto.
8404 (sse_cvtss2si_2): Ditto.
8405 (sse_cvtss2siq_2): Ditto.
8406 (sse_cvttss2si): Ditto.
8407 (sse_cvttss2siq): Ditto.
8408 (sse_cvtsd2si): Ditto.
8409 (sse_cvtsd2si_2): Ditto.
8410 (sse_cvtsd2siq_2): Ditto.
8411 (sse_cvttsd2si): Ditto.
8412 (sse_cvttsd2siq): Ditto.
8413 (sse_cvtsd2ss): Ditto.
8414 (sse_cvtss2sd): Ditto.
8415 (avx2_pbroadcast<mode>): Ditto.
8416 (avx2_pbroadcast<mode>_1): Ditto.
8417 (*avx_vperm_broadcast_v4sf): Ditto.
8418
8419 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8420 (sse_movlhps): Ditto.
8421 (sse_storehps): Ditto.
8422 (sse_loadhps): Ditto.
8423 (sse_storelps): Ditto.
8424 (sse_loadlps): Ditto.
8425 (*vec_concatv4sf): Ditto.
8426 (*vec_interleave_highv2df): Ditto.
8427 (*vec_interleave_lowv2df): Ditto.
8428 (*vec_extractv2df_1_sse): Ditto.
8429 (*vec_extractv2df_0_sse): Ditto.
8430 (sse2_storelpd): Ditto.
8431 (sse2_loadlpd): Ditto.
8432 (sse2_movsd): Ditto.
8433 (*vec_concatv4si): Ditto.
8434 (vec_concatv2di): Ditto.
8435
8436 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8437 for Intel asm dialect.
8438 (mmx_punpcklwd): Ditto.
8439 (mmx_punpckldq): Ditto.
8440
8441 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8442 for intel assembler dialect.
8443
1f6eac90
JJ
84442013-07-06 Jakub Jelinek <jakub@redhat.com>
8445
8446 PR target/29776
8447 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8448 for BUILT_IN_C{LZ,LRSB}*.
8449 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8450 * tree-vrp.c (extract_range_basic): Handle
8451 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8452 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8453 fall thru to code calling set_value*.
8454 * builtins.c (expand_builtin): Remove *IMAX cases.
8455 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8456 if width is bigger than 2*HWI.
8457
2b778c9d
VM
84582013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8459
8460 PR rtl-optimization/55342
8461 * lra-int.h (lra_subreg_reload_pseudos): New.
8462 * lra.c: Add undoing optional reloads to the block diagram.
8463 (lra_subreg_reload_pseudos): New.
8464 (lra_optional_reload_pseudos): Change comments.
8465 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8466 lra_optional_reload_pseudos after undo transformations.
8467 * lra-assigns.c (pseudo_prefix_title): New.
8468 (lra_setup_reg_renumber): Use it.
8469 (spill_for): Ditto. Check subreg reload pseudos too.
8470 (assign_by_spills): Consider subreg reload pseudos too.
8471 * lra-constraints.c (simplify_operand_subreg): Use
8472 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8473 (curr_insn_transform): Recognize and do optional reloads.
8474 (undo_optional_reloads): New.
8475 (lra_undo_inheritance): Call undo_optional_reloads.
8476
207156e4
TQ
84772013-07-05 Thomas Quinot <quinot@adacore.com>
8478
8479 * tree-complex.c (expand_complex_operations_1): Fix typo.
8480
8990e73a
TB
84812013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8482
8483 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8484 (tune_params): New member 'const vec_costs'.
8485 * config/aarch64/aarch64.c (generic_vector_cost): New.
8486 (generic_tunings): New member 'generic_vector_cost'.
8487 (aarch64_builtin_vectorization_cost): New.
8488 (aarch64_add_stmt_cost): New.
8489 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8490 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8491
f7bc421d
JJ
84922013-07-03 Jakub Jelinek <jakub@redhat.com>
8493
8494 PR target/57777
8495 * config/i386/predicates.md (vsib_address_operand): Disallow
8496 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8497
e90d1568
HPN
84982013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8499
8500 PR middle-end/55030
8501 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8502 expand_builtin_setjmp_receiver.
8503 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8504 with NULL for the label parameter.
8505 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8506 the frame-pointer. Adjust comments.
8507 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8508 only if LABEL is non-NULL.
8509
cbd7413b
YZ
85102013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8511
8512 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8513 (ARM_ABI_AAPCS64): Ditto.
8514 (arm_abi): Ditto.
8515 (ARM_DEFAULT_ABI): Ditto.
8516
dec11868
JG
85172013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8518
8519 * config/aarch64/aarch64-builtins.c
8520 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8521 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8522 (st1): Likewise.
8523 * config/aarch64/aarch64-simd.md
8524 (aarch64_ld1<VALL:mode>): New.
8525 (aarch64_st1<VALL:mode>): Likewise.
8526 * config/aarch64/arm_neon.h
8527 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8528
786fb9b6
ST
85292013-07-02 Sriraman Tallam <tmsriram@google.com>
8530
0ba6aff3
UB
8531 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8532 target ISA is AVX.
786fb9b6
ST
8533 (ix86_option_override_internal):Turn on all -mavx target flags by
8534 default as they are dependent on AVX anyway.
8535
4b043553
CC
85362013-07-02 Cary Coutant <ccoutant@google.com>
8537
8538 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8539 deterministic hash.
8540 (loc_checksum_ordered): Likewise.
8541 (hash_loc_operands): Remove inline keyword.
8542
c4e87a13
JJ
85432013-07-02 Jakub Jelinek <jakub@redhat.com>
8544
8545 PR tree-optimization/57741
8546 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8547 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8548 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8549 Allow REAL_CST step_exprs if flag_associative_math.
8550 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8551
26366d28
IB
85522013-07-02 Ian Bolton <ian.bolton@arm.com>
8553
0ba6aff3 8554 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8555
2879bb2b
IB
85562013-07-02 Ian Bolton <ian.bolton@arm.com>
8557
8558 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8559
afc5e8a6
KT
85602013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8561
8562 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8563 encoding.
8564 (iorsi3_insn): Likewise.
8565 (arm_xorsi3): Likewise.
8566
31f8442b
SN
85672013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8568
8569 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8570 to ...
8571 (attribute "type"): ... here, and prefix with "wmmx_".
8572 (attribute "core_cycles"): Update for attribute changes.
8573 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8574 (tbcstv4hi): Likewise.
8575 (tbcstv2si): Likewise.
8576 (iwmmxt_iordi3): Likewise.
8577 (iwmmxt_xordi3): Likewise.
8578 (iwmmxt_anddi3): Likewise.
8579 (iwmmxt_nanddi3): Likewise.
8580 (iwmmxt_arm_movdi): Likewise.
8581 (iwmmxt_movsi_insn): Likewise.
8582 (mov<mode>_internal): Likewise.
8583 (and<mode>3_iwmmxt): Likewise.
8584 (ior<mode>3_iwmmxt): Likewise.
8585 (xor<mode>3_iwmmxt): Likewise.
8586 (add<mode>3_iwmmxt): Likewise.
8587 (ssaddv8qi3): Likewise.
8588 (ssaddv4hi3): Likewise.
8589 (ssaddv2si3): Likewise.
8590 (usaddv8qi3): Likewise.
8591 (usaddv4hi3): Likewise.
8592 (usaddv2si3): Likewise.
8593 (sub<mode>3_iwmmxt): Likewise.
8594 (sssubv8qi3): Likewise.
8595 (sssubv4hi3): Likewise.
8596 (sssubv2si3): Likewise.
8597 (ussubv8qi3): Likewise.
8598 (ussubv4hi3): Likewise.
8599 (ussubv2si3): Likewise.
8600 (mulv4hi3_iwmmxt): Likewise.
8601 (smulv4hi3_highpart): Likewise.
8602 (umulv4hi3_highpart): Likewise.
8603 (iwmmxt_wmacs): Likewise.
8604 (iwmmxt_wmacsz): Likewise.
8605 (iwmmxt_wmacu): Likewise.
8606 (iwmmxt_wmacuz): Likewise.
8607 (iwmmxt_clrdi): Likewise.
8608 (iwmmxt_clrv8qi): Likewise.
8609 (iwmmxt_clr4hi): Likewise.
8610 (iwmmxt_clr2si): Likewise.
8611 (iwmmxt_uavgrndv8qi3): Likewise.
8612 (iwmmxt_uavgrndv4hi3): Likewise.
8613 (iwmmxt_uavgv8qi3): Likewise.
8614 (iwmmxt_uavgv4hi3): Likewise.
8615 (iwmmxt_tinsrb): Likewise.
8616 (iwmmxt_tinsrh): Likewise.
8617 (iwmmxt_tinsrw): Likewise.
8618 (iwmmxt_textrmub): Likewise.
8619 (iwmmxt_textrmsb): Likewise.
8620 (iwmmxt_textrmuh): Likewise.
8621 (iwmmxt_textrmsh): Likewise.
8622 (iwmmxt_textrmw): Likewise.
8623 (iwmxxt_wshufh): Likewise.
8624 (eqv8qi3): Likewise.
8625 (eqv4hi3): Likewise.
8626 (eqv2si3): Likewise.
8627 (gtuv8qi3): Likewise.
8628 (gtuv4hi3): Likewise.
8629 (gtuv2si3): Likewise.
8630 (gtv8qi3): Likewise.
8631 (gtv4hi3): Likewise.
8632 (gtv2si3): Likewise.
8633 (smax<mode>3_iwmmxt): Likewise.
8634 (umax<mode>3_iwmmxt): Likewise.
8635 (smin<mode>3_iwmmxt): Likewise.
8636 (umin<mode>3_iwmmxt): Likewise.
8637 (iwmmxt_wpackhss): Likewise.
8638 (iwmmxt_wpackwss): Likewise.
8639 (iwmmxt_wpackdss): Likewise.
8640 (iwmmxt_wpackhus): Likewise.
8641 (iwmmxt_wpackwus): Likewise.
8642 (iwmmxt_wpackdus): Likewise.
8643 (iwmmxt_wunpckihb): Likewise.
8644 (iwmmxt_wunpckihh): Likewise.
8645 (iwmmxt_wunpckihw): Likewise.
8646 (iwmmxt_wunpckilb): Likewise.
8647 (iwmmxt_wunpckilh): Likewise.
8648 (iwmmxt_wunpckilw): Likewise.
8649 (iwmmxt_wunpckehub): Likewise.
8650 (iwmmxt_wunpckehuh): Likewise.
8651 (iwmmxt_wunpckehuw): Likewise.
8652 (iwmmxt_wunpckehsb): Likewise.
8653 (iwmmxt_wunpckehsh): Likewise.
8654 (iwmmxt_wunpckehsw): Likewise.
8655 (iwmmxt_wunpckelub): Likewise.
8656 (iwmmxt_wunpckeluh): Likewise.
8657 (iwmmxt_wunpckeluw): Likewise.
8658 (iwmmxt_wunpckelsb): Likewise.
8659 (iwmmxt_wunpckelsh): Likewise.
8660 (iwmmxt_wunpckelsw): Likewise.
8661 (ror<mode>3): Likewise.
8662 (ashr<mode>3_iwmmxt): Likewise.
8663 (lshr<mode>3_iwmmxt): Likewise.
8664 (ashl<mode>3_iwmmxt): Likewise.
8665 (ror<mode>3_di): Likewise.
8666 (ashr<mode>3_di): Likewise.
8667 (lshr<mode>3_di): Likewise.
8668 (ashl<mode>3_di): Likewise.
8669 (iwmmxt_wmadds): Likewise.
8670 (iwmmxt_wmaddu): Likewise.
8671 (iwmmxt_tmia): Likewise.
8672 (iwmmxt_tmiaph): Likewise.
8673 (iwmmxt_tmiabb): Likewise.
8674 (iwmmxt_tmiatb): Likewise.
8675 (iwmmxt_tmiabt): Likewise.
8676 (iwmmxt_tmiatt): Likewise.
8677 (iwmmxt_tmovmskb): Likewise.
8678 (iwmmxt_tmovmskh): Likewise.
8679 (iwmmxt_tmovmskw): Likewise.
8680 (iwmmxt_waccb): Likewise.
8681 (iwmmxt_wacch): Likewise.
8682 (iwmmxt_waccw): Likewise.
8683 (iwmmxt_waligni): Likewise.
8684 (iwmmxt_walignr): Likewise.
8685 (iwmmxt_walignr0): Likewise.
8686 (iwmmxt_walignr1): Likewise.
8687 (iwmmxt_walignr2): Likewise.
8688 (iwmmxt_walignr3): Likewise.
8689 (iwmmxt_wsadb): Likewise.
8690 (iwmmxt_wsadh): Likewise.
8691 (iwmmxt_wsadbz): Likewise.
8692 (iwmmxt_wsadhz): Likewise.
8693 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
8694 (iwmmxt_wabsdiffb): Likewise.
8695 (iwmmxt_wabsdiffh): Likewise.
8696 (iwmmxt_wabsdiffw): Likewise.
8697 (iwmmxt_waddsubhx): Likewise
8698 (iwmmxt_wsubaddhx): Likewise.
8699 (addc<mode>3): Likewise.
8700 (iwmmxt_avg4): Likewise.
8701 (iwmmxt_avg4r): Likewise.
8702 (iwmmxt_wmaddsx): Likewise.
8703 (iwmmxt_wmaddux): Likewise.
8704 (iwmmxt_wmaddsn): Likewise.
8705 (iwmmxt_wmaddun): Likewise.
8706 (iwmmxt_wmulwsm): Likewise.
8707 (iwmmxt_wmulwum): Likewise.
8708 (iwmmxt_wmulsmr): Likewise.
8709 (iwmmxt_wmulumr): Likewise.
8710 (iwmmxt_wmulwsmr): Likewise.
8711 (iwmmxt_wmulwumr): Likewise.
8712 (iwmmxt_wmulwl): Likewise.
8713 (iwmmxt_wqmulm): Likewise.
8714 (iwmmxt_wqmulwm): Likewise.
8715 (iwmmxt_wqmulmr): Likewise.
8716 (iwmmxt_wqmulwmr): Likewise.
8717 (iwmmxt_waddbhusm): Likewise.
8718 (iwmmxt_waddbhusl): Likewise.
8719 (iwmmxt_wqmiabb): Likewise.
8720 (iwmmxt_wqmiabt): Likewise.
8721 (iwmmxt_wqmiatb): Likewise.
8722 (iwmmxt_wqmiatt): Likewise.
8723 (iwmmxt_wqmiabbn): Likewise.
8724 (iwmmxt_wqmiabtn): Likewise.
8725 (iwmmxt_wqmiatbn): Likewise.
8726 (iwmmxt_wqmiattn): Likewise.
8727 (iwmmxt_wmiabb): Likewise.
8728 (iwmmxt_wmiabt): Likewise.
8729 (iwmmxt_wmiatb): Likewise.
8730 (iwmmxt_wmiatt): Likewise.
8731 (iwmmxt_wmiabbn): Likewise.
8732 (iwmmxt_wmiabtn): Likewise.
8733 (iwmmxt_wmiatbn): Likewise.
8734 (iwmmxt_wmiattn): Likewise.
8735 (iwmmxt_wmiawbb): Likewise.
8736 (iwmmxt_wmiawbt): Likewise.
8737 (iwmmxt_wmiawtb): Likewise.
8738 (iwmmxt_wmiawtt): Likewise.
8739 (iwmmxt_wmiawbbn): Likewise.
8740 (iwmmxt_wmiawbtn): Likewise.
8741 (iwmmxt_wmiawtbn): Likewise.
8742 (iwmmxt_wmiawttn): Likewise.
8743 (iwmmxt_wmerge): Likewise.
8744 (iwmmxt_tandc<mode>3): Likewise.
8745 (iwmmxt_torc<mode>3): Likewise.
8746 (iwmmxt_torvsc<mode>3): Likewise.
8747 (iwmmxt_textrc<mode>3): Likewise.
8748 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
8749 (wmmxt_pack): Likewise.
8750 (wmmxt_mult_c1): Likewise.
8751 (wmmxt_mult_c2): Likewise.
8752 (wmmxt_alu_c1): Likewise.
8753 (wmmxt_alu_c2): Likewise.
8754 (wmmxt_alu_c3): Likewise.
8755 (wmmxt_transfer_c1): Likewise.
8756 (wmmxt_transfer_c2): Likewise.
8757 (wmmxt_transfer_c3): Likewise.
8758 (marvell_f_iwmmxt_wstr): Likewise.
8759 (marvell_f_iwmmxt_wldr): Likewise.
8760
bdb7bf8a
YZ
87612013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
8762
0ba6aff3 8763 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 8764
e6631d38
VM
87652013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8766
8767 Revert:
8768 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8769 * lra-constraints.c (need_for_split_p): Check call used hard regs
8770 living through calls.
8771
8772 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
8773 call used regs for call insn.
8774
53c1275b
JJ
87752013-06-28 Jakub Jelinek <jakub@redhat.com>
8776
8777 PR target/57736
0ba6aff3
UB
8778 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
8779 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 8780
1141ed3f
BI
87812013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
8782
8783 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 8784
e32e4c4a
VM
87852013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8786
8787 * lra-constraints.c (need_for_split_p): Check call used hard regs
8788 living through calls.
8789
f161bfd3
MM
87902013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
8791
8792 PR target/57744
8793 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
8794 to tie with any other modes. Eliminate Altivec vector mode tests,
8795 since these are a subset of ALTIVEC or VSX vector modes. Simplify
8796 code, to return 0 if testing MODE2 for a condition, if we've
8797 already tested MODE1 for the same condition.
8798
7eda14e1
MS
87992013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8800
8801 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
8802 layout.
8803
c822f852
MS
88042013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8805
8806 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8807 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
8808
da4f13a4
MS
88092013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8810
0ba6aff3
UB
8811 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
8812 Define.
da4f13a4
MS
8813 (aarch64_symbolic_constant_p): Remove.
8814 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
8815 static. Fix line length and white space.
8816 (aarch64_symbolic_constant_p): Remove.
8817 * config/aarch64/predicates.md (aarch64_valid_symref):
8818 Use aarch64_classify_symbol_expression.
8819
956a95a5
KT
88202013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8821
8822 * config/arm/constraints.md (Ts): New constraint.
8823 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
8824 16-bit encodings.
8825 (compare_scc): Use "Ts" constraint for operand 0.
8826 (ior_scc_scc): Likewise.
8827 (and_scc_scc): Likewise.
8828 (and_scc_scc_nodom): Likewise.
8829 (ior_scc_scc_cmp): Likewise for operand 7.
8830 (and_scc_scc_cmp): Likewise.
8831 * config/arm/thumb2.md (thumb2_movsi_insn):
8832 Add alternatives for 16-bit encodings.
8833 (thumb2_movhi_insn): Likewise.
8834 (thumb2_movsicc_insn): Likewise.
8835 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
8836 (thumb2_negscc): Use "Ts" constraint.
8837 Move mvn instruction outside cond_exec block.
8838 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
8839 for 16-bit encodings.
8840
31dfce10
KT
88412013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8842
8843 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
8844 encoding.
8845 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
8846 (mulsi3subsi): Likewise.
8847 (mulsidi3adddi): Likewise.
8848 (mulsidi3_v6): Likewise.
8849 (umulsidi3_v6): Likewise.
8850 (umulsidi3adddi_v6): Likewise.
8851 (smulsi3_highpart_v6): Likewise.
8852 (umulsi3_highpart_v6): Likewise.
8853 (mulhisi3tb): Likewise.
8854 (mulhisi3bt): Likewise.
8855 (mulhisi3tt): Likewise.
8856 (maddhisi4): Likewise.
8857 (maddhisi4tb): Likewise.
8858 (maddhisi4tt): Likewise.
8859 (maddhidi4): Likewise.
8860 (maddhidi4tb): Likewise.
8861 (maddhidi4tt): Likewise.
8862 (zeroextractsi_compare0_scratch): Likewise.
8863 (insv_zero): Likewise.
8864 (insv_t2): Likewise.
8865 (anddi_notzesidi_di): Likewise.
8866 (anddi_notsesidi_di): Likewise.
8867 (andsi_notsi_si): Likewise.
8868 (iordi_zesidi_di): Likewise.
8869 (xordi_zesidi_di): Likewise.
8870 (andsi_iorsi3_notsi): Likewise.
8871 (smax_0): Likewise.
8872 (smax_m1): Likewise.
8873 (smin_0): Likewise.
8874 (not_shiftsi): Likewise.
8875 (unaligned_loadsi): Likewise.
8876 (unaligned_loadhis): Likewise.
8877 (unaligned_loadhiu): Likewise.
8878 (unaligned_storesi): Likewise.
8879 (unaligned_storehi): Likewise.
8880 (extv_reg): Likewise.
8881 (extzv_t2): Likewise.
8882 (divsi3): Likewise.
8883 (udivsi3): Likewise.
8884 (arm_zero_extendhisi2addsi): Likewise.
8885 (arm_zero_extendqisi2addsi): Likewise.
8886 (compareqi_eq0): Likewise.
8887 (arm_extendhisi2_v6): Likewise.
8888 (arm_extendqisi2addsi): Likewise.
8889 (arm_movt): Likewise.
8890 (thumb2_ldrd): Likewise.
8891 (thumb2_ldrd_base): Likewise.
8892 (thumb2_ldrd_base_neg): Likewise.
8893 (thumb2_strd): Likewise.
8894 (thumb2_strd_base): Likewise.
8895 (thumb2_strd_base_neg): Likewise.
8896 (arm_negsi2): Add alternative for 16-bit encoding.
8897 (arm_one_cmplsi2): Likewise.
8898
1572e697
KT
88992013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8900
8901 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
8902 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
8903 (movdfcc): Likewise.
8904 * config/arm/vfp.md (*thumb2_movsf_vfp):
8905 Disable predication for arm_restrict_it.
8906 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
8907 (*thumb2_movdfcc_vfp): Likewise.
8908 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
8909 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
8910 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
8911 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
8912 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
8913 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
8914 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
8915 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
8916 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
8917 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
8918 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
8919 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
8920 Disable predication for arm_restrict_it.
8921
ebf8f0ea
KY
89222013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
8923
8924 * config/i386/bmiintrin.h (_bextr_u32): New.
8925 (_bextr_u64): Ditto.
8926
a290fcda
RS
89272013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
8928
8929 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
8930 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
8931 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
8932 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
8933 * config/mips/n32-elf.h: ...this new file.
8934
ea169996
MG
89352013-06-27 Marc Glisse <marc.glisse@inria.fr>
8936
8937 PR target/57224
8938 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
8939 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
8940
12211b99 89412013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
8942
8943 * config/mips/mips-tables.opt: Regenerate.
8944 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 8945 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 8946 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 8947
2444244e
JJ
89482013-06-27 Jakub Jelinek <jakub@redhat.com>
8949
cd06d2a2
JJ
8950 PR target/57623
8951 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
8952 constraints of operand 1 and 2.
8953
2444244e
JJ
8954 PR target/57623
8955 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
8956 to match RTL canonicalization. Swap predicates and
8957 constraints of operand 1 and 2.
8958
2f259720
VM
89592013-06-27 Vladimir Makarov <vmakarov@redhat.com>
8960
0ba6aff3
UB
8961 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
8962 Process OP_INOUT regs for splitting too.
2f259720 8963
fef4d2b3
JJ
89642013-06-27 Jakub Jelinek <jakub@redhat.com>
8965
8966 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
8967 decl before the loop, initialize to NULL.
8968 (vectorizable_load): Initialize ptr_incr to NULL.
8969
79ee9826
MJ
89702013-06-27 Martin Jambor <mjambor@suse.cz>
8971
8972 PR lto/57208
8973 * ipa-ref.h (ipa_maybe_record_reference): Declare.
8974 * ipa-ref.c (ipa_maybe_record_reference): New function.
8975 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
8976 * ipa-cp.c (create_specialized_node): Record potential references from
8977 aggvals.
8978 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
8979
e18b4a81
YZ
89802013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8981
8982 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
8983 parameter 'mode' of type 'enum machine_mode mode'; change to pass
8984 'mode' to force_reg.
8985 (aarch64_add_offset): Update calls to aarch64_force_temporary.
8986 (aarch64_expand_mov_immediate): Likewise.
8987
9c023bf0
YZ
89882013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8989
8990 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
8991 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
8992
5a3fe9b6
AK
89932013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8994
8995 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
8996 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8997 (struct machine_function): Add tbegin_p.
8998 (s390_canonicalize_comparison): Fold CC mode compares to
8999 conditional jump if possible.
9000 (s390_emit_jump): Return the emitted jump.
9001 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
9002 Handle CCRAWmode compares.
9003 (s390_option_override): Default to -mhtm if available.
9004 (s390_reg_clobbered_rtx): Handle floating point regs as well.
9005 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
9006 FPRs instead of df_regs_ever_live_p.
9007 (s390_optimize_nonescaping_tx): New function.
9008 (s390_init_frame_layout): Extend clobbered_regs array to cover
9009 FPRs as well.
9010 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
9011 (s390_expand_tbegin): New function.
9012 (enum s390_builtin): New enum definition.
9013 (code_for_builtin): New array definition.
9014 (s390_init_builtins): New function.
9015 (s390_expand_builtin): New function.
9016 (TARGET_INIT_BUILTINS): Define.
9017 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 9018 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
9019 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
9020 (s390_alc_comparison): Likewise.
9021 * config/s390/s390-modes.def: Add CCRAWmode.
9022 * config/s390/s390.h (processor_flags): Add PF_TX.
9023 (TARGET_CPU_HTM): Define macro.
9024 (TARGET_HTM): Define macro.
9025 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
9026 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
9027 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9028 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 9029 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
9030 (TBEGIN_MASK, TBEGINC_MASK): New constants.
9031 ("*cc_to_int"): Move up.
9032 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
9033 constants other than 0.
9034 ("*ccraw_to_int"): New insn and splitter definition.
9035 ("tbegin", "tbegin_nofloat", "tbegin_retry")
9036 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
9037 ("tx_assist"): New expander.
9038 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
9039 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
9040 * config/s390/s390.opt: Add -mhtm option.
9041 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
9042 * config/s390/htmxlintrin.h: New file.
9043 * config/s390/htmintrin.h: New file.
9044 * config/s390/s390intrin.h: New file.
9045 * doc/extend.texi: Document htm builtins.
9046 * config.gcc: Add the new header files to extra_headers.
9047
9e216629
TS
90482013-06-26 Thomas Schwinge <thomas@codesourcery.com>
9049
9050 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 9051 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 9052
fd8c65e7 90532013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9054 Pat Haugen <pthaugen@us.ibm.com>
9055 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
9056
9057 * config/rs6000/power8.md: New.
9058 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
9059 setting for power8 entry.
9060 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
9061 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
9062 test for Power4/Power5 only.
9063 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
9064 support.
9065 (force_new_group): Adjust comment.
9066 * config/rs6000/rs6000.md: Include power8.md.
9067
b24a2ce5
GY
90682013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
9069
9070 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
9071 * config/arm/arm-protos.h (arm_max_conditional_execute): New
9072 declaration.
9073 (tune_params): Update comment.
9074 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
9075 (arm_max_conditional_execute): New function.
9076 (thumb2_final_prescan_insn): Use max_insn_skipped and
9077 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
9078
f6fdeb62
JJ
90792013-06-25 Jakub Jelinek <jakub@redhat.com>
9080
9081 PR tree-optimization/57705
9082 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
9083 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 9084 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
9085 (get_initial_def_for_induction): Handle SSA_NAME IV step.
9086
c13bc3d9
MJ
90872013-06-25 Martin Jambor <mjambor@suse.cz>
9088
9089 PR middle-end/57670
9090 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
9091 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
9092 calls in the dump.
9093 (ipa_note_param_call): Initialize member_ptr flag.
9094 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
9095 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
9096 (ipa_write_indirect_edge_info): Stream member_ptr flag.
9097 (ipa_read_indirect_edge_info): Likewise.
9098
8a845901
RB
90992013-06-25 Richard Biener <rguenther@suse.de>
9100
9101 PR middle-end/56977
9102 * passes.c (init_optimization_passes): Move pass_fold_builtins
9103 and pass_dce earlier with -Og.
9104
33be0bec
EB
91052013-06-25 Eric Botcazou <ebotcazou@adacore.com>
9106
9107 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
9108 <BIT_FIELD_REF>: Remove trailing TAB.
9109 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
9110 remove blank line.
9111
5fe8e757
MJ
91122013-06-24 Martin Jambor <mjambor@suse.cz>
9113
9114 PR tree-optimization/57358
9115 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
9116 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
9117 (ipa_analyze_params_uses): Generate pessimistic info when true.
9118
44a60244
MJ
91192013-06-24 Martin Jambor <mjambor@suse.cz>
9120
9121 PR tree-optimization/57539
9122 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
9123 global.inlined_to of the new node to it. All callers changed.
9124 * ipa-inline-transform.c (clone_inlined_nodes): New variable
9125 inlining_into, pass it to cgraph_clone_node.
9126 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9127 ipa_free_edge_args_substructures.
9128 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
9129 rdesc linked list. Do not assert rdesc edges have inlined caller.
9130 Assert we have found an rdesc in the rdesc list.
9131
7c5848b8
RB
91322013-06-24 Richard Biener <rguenther@suse.de>
9133
0ba6aff3 9134 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
9135 (pointer_set_lookup): Declare.
9136 (class pointer_map): New template class implementing a
9137 generic pointer to T map.
9138 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
9139 pointer_map<T>::contains, pointer_map<T>::insert,
9140 pointer_map<T>::traverse): New functions.
9141 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
9142 (pointer_set_lookup): New function.
9143 (pointer_set_contains): Use pointer_set_lookup.
9144 (pointer_set_insert): Likewise.
9145 (insert_aux): Remove.
9146 (struct pointer_map_t): Embed a pointer_set_t.
9147 (pointer_map_create): Adjust.
9148 (pointer_map_destroy): Likewise.
9149 (pointer_map_contains): Likewise.
9150 (pointer_map_insert): Likewise.
9151 (pointer_map_traverse): Likewise.
9152 * tree-streamer.h (struct streamer_tree_cache_d): Use a
9153 pointer_map<unsigned> instead of a pointer_map_t.
9154 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
9155 (streamer_tree_cache_lookup): Likewise.
9156 (streamer_tree_cache_create): Likewise.
9157 (streamer_tree_cache_delete): Likewise.
9158 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
9159 pointer_map<unsigned> instead of a pointer_map_t.
9160 (lto_init_tree_ref_encoder): Adjust.
9161 (lto_destroy_tree_ref_encoder): Likewise.
9162 * lto-section-out.c (lto_output_decl_index): Likewise.
9163 (lto_record_function_out_decl_state): Likewise.
9164 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
9165
3dbc97a9
RB
91662013-06-24 Richard Biener <rguenther@suse.de>
9167
9168 PR tree-optimization/57488
9169 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
9170
8345965a
AM
91712013-06-24 Alan Modra <amodra@gmail.com>
9172
9173 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
9174 (gen_easy_altivec_constant): Likewise.
9175 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9176 easy_vector_constant_msb): Likewise.
9177
b7df379f
JJ
91782013-06-23 Jakub Jelinek <jakub@redhat.com>
9179
9180 PR target/57688
9181 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
9182 add missing return true.
9183
12211b99 91842013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
9185
9186 PR target/52483
9187 * config/sh/predicates.md (general_extend_operand): Invoke
9188 general_movsrc_operand for memory operands.
9189 (general_movsrc_operand): Allow reg+reg addressing, do not use
9190 general_operand for memory operands.
9191
97db2bf7
ST
91922013-06-23 Sriraman Tallam <tmsriram@google.com>
9193
9194 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
9195 when current target options does not apply.
9196 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
9197 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
9198 * config/i386/bmiintrin.h: Pass appropriate target
9199 attributes to header.
97db2bf7
ST
9200 * config/i386/mmintrin.h: Ditto.
9201 * config/i386/nmmintrin.h: Ditto.
9202 * config/i386/avx2intrin.h: Ditto.
9203 * config/i386/fxsrintrin.h: Ditto.
9204 * config/i386/tbmintrin.h: Ditto.
9205 * config/i386/xsaveintrin.h: Ditto.
9206 * config/i386/f16cintrin.h: Ditto.
9207 * config/i386/xtestintrin.h: Ditto.
9208 * config/i386/xsaveoptintrin.h: Ditto.
9209 * config/i386/bmi2intrin.h: Ditto.
9210 * config/i386/lzcntintrin.h: Ditto.
9211 * config/i386/smmintrin.h: Ditto.
9212 * config/i386/wmmintrin.h: Ditto.
9213 * config/i386/x86intrin.h: Remove all header include guards.
9214 * config/i386/prfchwintrin.h: Ditto.
9215 * config/i386/pmmintrin.h: Ditto.
9216 * config/i386/tmmintrin.h: Ditto.
9217 * config/i386/xmmintrin.h: Ditto.
9218 * config/i386/popcntintrin.h: Ditto.
9219 * config/i386/rdseedintrin.h: Ditto.
9220 * config/i386/ammintrin.h: Ditto.
9221 * config/i386/emmintrin.h: Ditto.
9222 * config/i386/immintrin.h: Remove all header include guards.
9223 * config/i386/fma4intrin.h: Ditto.
9224 * config/i386/lwpintrin.h: Ditto.
9225 * config/i386/xopintrin.h: Ditto.
9226 * config/i386/ia32intrin.h: Ditto.
9227 * config/i386/avxintrin.h: Ditto.
9228 * config/i386/rtmintrin.h: Ditto.
9229 * config/i386/fmaintrin.h: Ditto.
9230 * config/i386/mm3dnow.h: Ditto.
9231
495e6879
ST
92322013-06-22 Sriraman Tallam <tmsriram@google.com>
9233
9234 * common/config/i386/i386-common.c: Handle LZCNT.
9235
11e8f687
AK
92362013-06-22 Andi Kleen <ak@linux.intel.com>
9237
9238 * doc/extend.texi: Use __atomic_store_n instead of
9239 __atomic_store in HLE example.
9240
12211b99 92412013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
9242
9243 * config/sh/sh.c: Remove <cstdlib> workaround.
9244
927f908b
AK
92452013-06-21 Andi Kleen <ak@linux.intel.com>
9246
0ba6aff3 9247 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 9248
cca410b6
AK
92492013-06-21 Andi Kleen <ak@linux.intel.com>
9250
9251 * doc/extend.texi: Document that __atomic_clear and
9252 __atomic_test_and_set should only be used with bool.
9253
d84db1ed
JH
92542013-06-20 Jan Hubicka <jh@suse.cz>
9255
9256 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
9257 types_same_for_odr.
9258 * tree.c (decls_same_for_odr): New function.
9259 (same_for_edr): New function.
9260 (types_same_for_odr): New function.
9261 (get_binfo_at_offset): Use it.
9262 * tree.h (types_same_for_odr): Declare.
9263
12211b99 92642013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
9265 Jason Merrill <jason@redhat.com>
9266
9267 * system.h: Include <cstdlib> as well as <stdlib.h>.
9268
49b4ff63
UB
92692013-06-20 Uros Bizjak <ubizjak@gmail.com>
9270
9271 PR target/57655
9272 * config/i386/i386.c (construct_container): Report error if
9273 long double is used with disabled x87 float returns.
9274
7a89ad00
JH
92752013-06-20 Jan Hubicka <jh@suse.cz>
9276
9277 * lto-cgraph.c (input_symtab): Do not set cgraph state.
9278
12211b99 92792013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
9280
9281 PR rtl-optimization/57425
9282 PR rtl-optimization/57569
9283 * alias.c (write_dependence_p): Remove parameters mem_mode and
9284 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
9285 Changed all callers.
9286 (canon_anti_dependence): Get comments and semantics in sync.
9287 Add parameter mem_canonicalized. Changed all callers.
9288 * rtl.h (canon_anti_dependence): Update prototype.
9289
d16e9a99
RB
92902013-06-20 Richard Biener <rguenther@suse.de>
9291
9292 * data-streamer-in.c (streamer_read_uhwi): Optimize single
9293 byte case, inline streamer_read_uchar and defer section
9294 overrun check.
9295
c3a9b91b
RB
92962013-06-20 Richard Biener <rguenther@suse.de>
9297
9298 PR tree-optimization/57584
9299 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
9300 SSA names into the expanded expression that take part in
9301 abnormal coalescing.
9302
371e77e3 93032013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
9304
9305 * gcov.c (print_usage): Handle new option.
9306 (process_args): Ditto.
9307 (get_gcov_intermediate_filename): New function.
9308 (output_intermediate_file): New function.
9309 (output_gcov_file): New function
9310 (generate_results): Handle new option.
9311 (release_function): Relase demangled name.
9312 (read_graph_file): Handle demangled name.
9313 (output_lines): Ditto.
9314 * doc/gcov.texi: Document gcov intermediate format.
9315
11f5b71a
VM
93162013-06-19 Vladimir Makarov <vmakarov@redhat.com>
9317
9318 PR bootstrap/57604
9319 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
9320 (lra_emit_add): Use the functions. Add comment about Y as an
9321 address segment.
9322
e1f9340b
DE
93232013-06-19 David Edelsohn <dje.gcc@gmail.com>
9324
9325 PR driver/57652
9326 * collect2.c (collect_atexit): New.
9327 (collect_exit): Delete.
9328 (main): Register collect_atexit with atexit.
9329 (collect_wait): Change collect_exit to exit.
9330 (do_wait): Same.
9331 * collect2.h (collect_exit): Delete.
9332 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9333
e3f9e0ac
WM
93342013-06-19 Wei Mi <wmi@google.com>
9335
9336 PR rtl-optimization/57518
9337 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9338 if regno is used in paradoxical subreg.
9339 (update_equiv_regs): Check pdx_subregs[regno] before
9340 set a reg to be equivalent with a mem.
9341
a09f1a76
MK
93422013-06-19 Matthias Klose <doko@ubuntu.com>
9343
9344 PR driver/57651
9345 * file-find.h (find_a_file): Add a mode parameter.
9346 * file-find.c (find_a_file): Likewise.
9347 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9348 with X_OK for the executables.
9349 * collect2.c (main): Call find_a_file with X_OK.
9350
7d18b0ad
SE
93512013-06-19 Steve Ellcey <sellcey@mips.com>
9352
9353 PR target/56942
9354 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9355 Use NEXT_INSN instead of next_real_insn.
9356
6a6dac52
JH
93572013-06-19 Jan Hubicka <jh@suse.cz>
9358
9359 * cgraph.h (const_value_known_p): Replace by ...
9360 (ctor_for_folding): .. this one.
9361 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9362 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9363 * expr.c (expand_expr_real_1): Likewise.
9364 (string_constant): Likewise.
9365 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9366 * ipa.c (process_references): Likewise.
9367 (symtab_remove_unreachable_nodes): Likewise.
9368 * ipa-inline-analysis.c (param_change_prob): Likewise.
9369 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9370 (get_base_constructor): Likwise.
9371 * varpool.c (varpool_remove_node): Likewise.
9372 (varpool_remove_initializer): LIkewise.
9373 (dump_varpool_node): LIkwise.
9374 (const_value_known_p): Rewrite to ...
9375 (ctor_for_folding): ... this one.
9376
216c12ab
JJ
93772013-06-19 Jakub Jelinek <jakub@redhat.com>
9378
9379 PR driver/57651
9380 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9381 PERSONALITY in $PATH derived prefixes.
9382
d53e2f99
JL
93832013-06-19 Jeff Law <law@redhat.com>
9384
ecdbf306
JL
9385 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9386 in comment.
9387
d53e2f99
JL
9388 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9389 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9390 booleans.
9391
89e7fc04
SN
93922013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9393
9394 * config/arm/vfp.md: Move VFP instruction classification documentation
9395 to ...
9396 * config/arm/arm.md: ... here. Update instruction classification
9397 documentation.
9398
5e7f6aaa
RE
93992013-06-19 Richard Earnshaw <rearnsha@arm.com>
9400
9401 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9402 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9403 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9404
5fdc1e5d
SB
94052013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9406
9407 PR target/57609
9408 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9409 with NEXT_INSN. Use tablejump_p to check for jump table data
9410 insns.
9411
e952afba
PC
94122013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9413
9414 PR c++/56544
9415 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9416 that now in C++ the value is correct per the C++ standards.
9417
3fd0303a
RB
94182013-06-19 Richard Biener <rguenther@suse.de>
9419
9420 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9421 for global context.
9422
b04e4b08
AK
94232013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9424
9425 Revert:
9426 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9427
9428 PR target/57609
9429 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9430 with next_active_insn.
9431
bef8491a
ST
94322013-06-18 Sriraman Tallam <tmsriram@google.com>
9433
9434 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9435 functions are inlined during failures to flag an error.
9436 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9437 in early inline pass.
22fc7d3d 9438
c21b257d
L
94392013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9440
9441 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9442 in comments.
9443
33255ae3
JB
94442013-06-18 Julian Brown <julian@codesourcery.com>
9445
9446 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9447 Permit virtual register pre-reload if !strict.
9448 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9449 change.
9450 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9451 prototype.
9452 * config/arm/neon.md (movmisalign<mode>): Use
9453 neon_perm_struct_or_reg_operand instead of
9454 neon_struct_or_register_operand.
9455 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9456 neon_permissive_struct_operand instead of neon_struct_operand.
9457 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9458 neon_vector_mem_operand.
9459 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9460 neon_vector_mem_operand.
9461 (neon_permissive_struct_operand): New.
9462 (neon_struct_or_register_operand): Rename to...
9463 (neon_perm_struct_or_reg_operand): This. Adjust call to
9464 neon_vector_mem_operand.
9465
d579fcda
RB
94662013-06-18 Richard Biener <rguenther@suse.de>
9467
9468 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9469 * lto-streamer.h: Include pointer-set.h.
9470 (struct lto_decl_slot): Remove.
9471 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9472 Remove next_index entry.
9473 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9474 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9475 (lto_init_tree_ref_encoder): Adjust.
9476 (lto_destroy_tree_ref_encoder): Likewise.
9477 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9478 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9479 (lto_output_decl_index): Adjust.
9480 (lto_new_out_decl_state): Likewise.
9481 (lto_record_function_out_decl_state): Likewise.
9482 * lto-streamer-out.c (copy_function): Likewise.
9483
31ee20ba
RB
94842013-06-18 Richard Biener <rguenther@suse.de>
9485
9486 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9487 * cgraphunit.c: Include cfgloop.h.
9488 (init_lowered_empty_function): Initialize the loop tree.
9489 (assemble_thunk): Insert new BBs into loops.
9490
ac0511f2
RB
94912013-06-18 Richard Biener <rguenther@suse.de>
9492
9493 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9494 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9495 the map from cache entry to cache index optional.
9496 (streamer_tree_cache_replace_tree): Adjust accordingly.
9497 (streamer_tree_cache_append): Likewise.
9498 (streamer_tree_cache_delete): Likewise.
9499 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9500 streamer cache map from cache entry to cache index.
9501 * lto-streamer-out.c (create_output_block): Adjust.
9502
09485a08
SN
95032013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9504
22fc7d3d
UB
9505 * config/arm/arm.md (attribute "insn"): Move multiplication and
9506 division attributes to...
09485a08
SN
9507 (attribute "type"): ... here. Remove mult.
9508 (attribute "mul32"): New attribute.
9509 (attribute "mul64"): Add umaal.
9510 (*arm_mulsi3): Update attributes.
9511 (*arm_mulsi3_v6): Likewise.
9512 (*thumb_mulsi3): Likewise.
9513 (*thumb_mulsi3_v6): Likewise.
9514 (*mulsi3_compare0): Likewise.
9515 (*mulsi3_compare0_v6): Likewise.
9516 (*mulsi_compare0_scratch): Likewise.
9517 (*mulsi_compare0_scratch_v6): Likewise.
9518 (*mulsi3addsi): Likewise.
9519 (*mulsi3addsi_v6): Likewise.
9520 (*mulsi3addsi_compare0): Likewise.
9521 (*mulsi3addsi_compare0_v6): Likewise.
9522 (*mulsi3addsi_compare0_scratch): Likewise.
9523 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9524 (*mulsi3subsi): Likewise.
9525 (*mulsidi3adddi): Likewise.
9526 (*mulsi3addsi_v6): Likewise.
9527 (*mulsidi3adddi_v6): Likewise.
9528 (*mulsidi3_nov6): Likewise.
9529 (*mulsidi3_v6): Likewise.
9530 (*umulsidi3_nov6): Likewise.
9531 (*umulsidi3_v6): Likewise.
9532 (*umulsidi3adddi): Likewise.
9533 (*umulsidi3adddi_v6): Likewise.
9534 (*smulsi3_highpart_nov6): Likewise.
9535 (*smulsi3_highpart_v6): Likewise.
9536 (*umulsi3_highpart_nov6): Likewise.
9537 (*umulsi3_highpart_v6): Likewise.
9538 (mulhisi3): Likewise.
9539 (*mulhisi3tb): Likewise.
9540 (*mulhisi3bt): Likewise.
9541 (*mulhisi3tt): Likewise.
9542 (maddhisi4): Likewise.
9543 (*maddhisi4tb): Likewise.
9544 (*maddhisi4tt): Likewise.
9545 (maddhidi4): Likewise.
9546 (*maddhidi4tb): Likewise.
9547 (*maddhidi4tt): Likewise.
9548 (divsi3): Likewise.
9549 (udivsi3): Likewise.
9550 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9551 (thumb2_mulsi_short_compare0): Likewise.
9552 (thumb2_mulsi_short_compare0_scratch): Likewise.
9553 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9554 (1020mult2): Likewise.
9555 (1020mult3): Likewise.
9556 (1020mult4): Likewise.
9557 (1020mult5): Likewise.
9558 (1020mult6): Likewise.
22fc7d3d
UB
9559 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9560 change.
09485a08
SN
9561 (cortex_a15_mult64): Likewise.
9562 (cortex_a15_sdiv): Likewise.
9563 (cortex_a15_udiv): Likewise.
9564 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9565 (mult2): Likewise.
9566 (mult3): Likewise.
9567 (mult4): Likewise.
9568 (mult5): Likewise.
9569 (mult6): Likewise.
9570 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9571 (pj4_ir_div): Likewise.
9572 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9573 (11_mult2): Likewise.
9574 (11_mult3): Likewise.
9575 (11_mult4): Likewise.
9576 (11_mult5): Likewise.
9577 (11_mult6): Likewise.
9578 (11_mult7): Likewise.
9579 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9580 (cortex_a8_mla): Likewise.
9581 (cortex_a8_mull): Likewise.
9582 (cortex_a8_smulwy): Likewise.
9583 (cortex_a8_smlald): Likewise.
9584 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9585 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9586 (cortex_r4_mul_3): Likewise.
9587 (cortex_r4_mla_4): Likewise.
9588 (cortex_r4_mla_3): Likewise.
9589 (cortex_r4_smlald): Likewise.
9590 (cortex_r4_mull): Likewise.
9591 (cortex_r4_sdiv): Likewise.
9592 (cortex_r4_udiv): Likewise.
9593 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9594 (cortex_a7_idiv): Likewise.
9595 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9596 (9_mult2): Likewise.
9597 (9_mult3): Likewise.
9598 (9_mult4): Likewise.
9599 (9_mult5): Likewise.
9600 (9_mult6): Likewise.
9601 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9602 (cortex_a53_sdiv): Likewise.
9603 (cortex_a53_udiv): Likewise.
9604 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9605 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9606 (mp626_mult2): Likewise.
9607 (mp626_mult3): Likewise.
9608 (mp626_mult4): Likewise.
9609 * config/arm/fa526.md (526_mult1): Update attribute change.
9610 (526_mult2): Likewise.
9611 * config/arm/arm-generic.md (mult): Update attribute change.
9612 (mult_ldsched_strongarm): Likewise.
9613 (mult_ldsched): Likewise.
9614 (multi_cycle): Likewise.
9615 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
9616 * config/arm/fa606te.md (606te_mult1): Update attribute change.
9617 (606te_mult2): Likewise.
9618 (606te_mult3): Likewise.
9619 (606te_mult4): Likewise.
9620 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
9621 (cortex_a9_mac16): Likewise.
9622 (cortex_a9_multiply): Likewise.
9623 (cortex_a9_mac): Likewise.
9624 (cortex_a9_multiply_long): Likewise.
9625 * config/arm/fa626te.md (626te_mult1): Update attribute change.
9626 (626te_mult2): Likewise.
9627 (626te_mult3): Likewise.
9628 (626te_mult4): Likewise.
9629
8951f345
RB
96302013-06-18 Richard Biener <rguenther@suse.de>
9631
9632 PR lto/57334
9633 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
9634
d8101d05
AK
96352013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9636
9637 PR target/57609
9638 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9639 with next_active_insn.
9640
69eff9da
AM
96412013-06-18 Alan Modra <amodra@gmail.com>
9642
9643 * config/rs6000/rs6000.h (enum data_align): New.
9644 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
9645 (DATA_ABI_ALIGNMENT): Define.
9646 (CONSTANT_ALIGNMENT): Correct comment.
9647 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
9648 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
9649
8ed00d76
DM
96502013-06-17 David Malcolm <dmalcolm@redhat.com>
9651
9652 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
9653 ATTRIBUTE_UNUSED marking.
9654
3d33d06b
SN
96552013-06-17 Sofiane Naci <sofiane.naci@arm.com>
9656
9657 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
9658 alternative and update.
9659 (aarch64_dup_lanedi): Delete.
9660 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
9661 * config/aarch64/aarch64-simd-builtins.def: Update.
9662
ee03e71d
RB
96632013-06-17 Richard Biener <rguenther@suse.de>
9664
9665 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
9666 (lto_input_scc): Declare.
9667 (lto_input_tree_1): Likewise.
9668 (struct lto_stats_d): Add num_tree_bodies_output and
9669 num_pickle_refs_output.
9670 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
9671 (lto_read_tree_1): Split out from ...
9672 (lto_read_tree): ... this.
9673 (lto_input_scc): New function.
9674 (lto_input_tree_1): Split out from ...
9675 (lto_input_tree): ... this. Handle LTO_tree_scc.
9676 (lto_data_in_create): Create the streamer cache without hashes.
9677 * lto-streamer-out.c (create_output_block): Create the streamer
9678 cache with hashes when not doing WPA.
9679 (lto_write_tree_1): Split out from ...
9680 (lto_write_tree): ... this.
9681 (get_symbol_initial_value): New function.
9682 (lto_output_tree_1): Split out from ...
9683 (lto_output_tree): ... this. Write trees as series of SCCs
9684 using a DFS walk via DFS_write_tree.
9685 (struct sccs, struct scc_entry): New types.
9686 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
9687 (DFS_write_tree_body): New function.
9688 (DFS_write_tree): Likewise.
9689 (hash_tree): Likewise.
9690 (scc_entry_compare): Likewise.
9691 (hash_scc): Likewise.
9692 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
9693 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
9694 TREE_CHAIN as regular reference.
9695 (streamer_read_integer_cst): Remove.
9696 (streamer_get_pickled_tree): Adjust.
9697 * tree-streamer-out.c (streamer_write_chain): Disable streaming
9698 of DECL_EXTERNALs in BLOCK_VARS for now.
9699 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
9700 reference.
9701 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
9702 Add hash value argument and record that if hashes are recorded
9703 in the cache.
9704 (streamer_tree_cache_insert_1): Adjust.
9705 (streamer_tree_cache_insert): Likewise.
9706 (streamer_tree_cache_insert_at): Rename to ...
9707 (streamer_tree_cache_replace_tree): ... this and adjust.
9708 (streamer_tree_cache_append): Adjust.
9709 (record_common_node): Likewise.
9710 (streamer_tree_cache_create): Add argument whether to
9711 record hash values together with trees.
9712 (streamer_tree_cache_delete): Adjust.
9713 * tree-streamer.h (struct streamer_tree_cache_d): Add
9714 vector of hashes.
9715 (streamer_read_integer_cst): Remove.
9716 (streamer_tree_cache_insert): Adjust.
9717 (streamer_tree_cache_append): Likewise.
9718 (streamer_tree_cache_insert_at): Rename to ...
9719 (streamer_tree_cache_replace_tree): ... this and adjust.
9720 (streamer_tree_cache_create): Add argument whether to record hashes.
9721 (streamer_tree_cache_get): Rename to ...
9722 (streamer_tree_cache_get_tree): ... this.
9723 (streamer_tree_cache_get_hash): New function.
9724 * tree.c (cache_integer_cst): New function.
9725 * tree.h (cache_integer_cst): Declare.
9726 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
9727 * lto-symtab.c (lto_varpool_replace_node): Only release
9728 DECL_INITIAL of non-prevailing decls.
9729 * varpool.c (varpool_remove_initializer): Do not release
9730 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
9731
0de86a92
JU
97322013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9733
9734 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
9735 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
9736 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
9737 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
9738 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
9739 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
9740 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
9741 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
9742 instead of TARGET_64BIT.
9743 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
9744 Require ISA_HAS_<D>DIV.
9745
74240413
RS
97462013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
9747
9748 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
9749 (mips*-*-linux*): Move default with_llsc setting to where other
9750 defaults are set.
9751 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
9752 with_arch block.
9753 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
9754 Likewise. Remove default with_tune setting. Move default float
9755 setting to its own block. Handle with_llsc in the same block as above.
9756
12211b99 97572013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
9758
9759 PR rtl-optimization/57425
9760 PR rtl-optimization/57569
299a5f6a 9761 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
9762 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
9763 Changed all callers.
9764 (canon_anti_dependence): New function.
9765 * cse.c (check_dependence): Use canon_anti_dependence.
9766 * cselib.c (cselib_invalidate_mem): Likewise.
9767 * rtl.h (canon_anti_dependence): Declare.
9768
b259d352
JU
97692013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9770
9771 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
9772 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
9773 ".set mips3" for 64-bit targets.
9774
4de09b85
DC
97752013-06-15 Dehao Chen <dehao@google.com>
9776
9777 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
9778 * gimple-low.c (gimple_check_call_matching_types): Likewise.
9779 (gimple_check_call_args): Likewise.
9780 * value-prof.c (check_ic_target): Likewise.
9781 * ipa-inline.c (early_inliner): Likewise.
9782 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
9783 * cgraph.c (cgraph_create_edge_1): Likewise.
9784 (cgraph_make_edge_direct): Likewise.
9785
d1aa4a76
MM
97862013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9787
9788 PR target/57615
9789 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
9790 rs6000_output_move_128bit to handle emitting quad memory
9791 operations. Set attribute length to 8 bytes.
9792
12211b99 97932013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
9794
9795 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
9796 New pattern.
9797 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
9798 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
9799 (aarch64_<su>mlsl<mode>): Likewise.
9800
f5273574
MS
98012013-06-14 Mike Stump <mikestump@comcast.net>
9802
9803 * Makefile.in (TARGET_H): Add insn-codes.h.
9804
ef7e7ab2
AM
98052013-06-14 Alan Modra <amodra@gmail.com>
9806
9807 PR middle-end/57134
9808 PR middle-end/57586
9809 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
9810 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
9811 bitfield expansion when EXPAND_MEMORY.
9812 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
9813
135faab6
MM
98142013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9815
9816 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9817 test for clearing quad memory on 32-bit later.
9818
948a1fd9
MG
98192013-06-13 Marc Glisse <marc.glisse@inria.fr>
9820
9821 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
9822 (fold_negate_expr): Likewise.
9823 (fold_real_zero_addition_p): Handle vectors.
9824 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
9825
0597fb9c
AM
98262013-06-14 Alan Modra <amodra@gmail.com>
9827
9828 * varasm.c (force_const_mem): Revert 2013-06-07 change.
9829
e5b962d0
JH
98302013-06-13 Jan Hubicka <jh@suse.cz>
9831
9832 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
9833 Local comdats are not externally visible.
9834 * symtab.c (dump_symtab_base): Dump externally visible.
9835 (verify_symtab_base): Verify back links in the symtab hash.
9836
a8355e51
BC
98372013-06-13 Bin Cheng <bin.cheng@arm.com>
9838
9839 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
9840 CONVERT_EXPR as equal nodes.
9841
8f7e6e33
BC
98422013-06-13 Bin Cheng <bin.cheng@arm.com>
9843
22fc7d3d 9844 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 9845
5d418483
MG
98462013-06-13 Marc Glisse <marc.glisse@inria.fr>
9847
9848 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
9849 Generalize to complex and vector.
9850 * tree.c (build_all_ones_cst): New function.
9851 * tree.h (build_all_ones_cst): Declare it.
9852
50751417
AM
98532013-06-13 Alan Modra <amodra@gmail.com>
9854
9855 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
9856 * config/rs6000/rs6000.md (signbittf2): New insn.
9857 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
9858 (abstf2_internal, cmptf_internal2): Likewise.
9859 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
9860
4b02c962 98612013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9862 Pat Haugen <pthaugen@us.ibm.com>
9863 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
9864
9865 * config/rs6000/rs6000.c (emit_load_locked): Add support for
9866 power8 byte, half-word, and quad-word atomic instructions.
9867 (emit_store_conditional): Likewise.
9868 (rs6000_expand_atomic_compare_and_swap): Likewise.
9869 (rs6000_expand_atomic_op): Likewise.
9870
9871 * config/rs6000/sync.md (larx): Add new modes for power8.
9872 (stcx): Likewise.
9873 (AINT): New mode iterator to include TImode as well as normal
9874 integer modes on power8.
9875 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
9876 that VSX registers are not considered. Use AINT mode iterator
9877 instead of INT1 to allow inclusion of quad word atomic operations
9878 on power8.
9879 (load_locked<mode>): Likewise.
9880 (store_conditional<mode>): Likewise.
9881 (atomic_compare_and_swap<mode>): Likewise.
9882 (atomic_exchange<mode>): Likewise.
9883 (atomic_nand<mode>): Likewise.
9884 (atomic_fetch_<fetchop_name><mode>): Likewise.
9885 (atomic_nand_fetch<mode>): Likewise.
9886 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
9887 each type.
9888 (ATOMIC): On power8, add QImode, HImode modes.
9889 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
9890 modes that promote to SImode.
9891 (load_lockedti): Convert TImode arguments to PTImode, so that we
9892 get a guaranteed even/odd register pair.
9893 (load_lockedpti): Likewise.
9894 (store_conditionalti): Likewise.
9895 (store_conditionalpti): Likewise.
9896
9897 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
9898 atomic load/store instructions.
9899 (HSI): Likewise.
9900
710b6cc1
RS
99012013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
9902
9903 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
9904 loads.
9905 (insn_count): New attribute, with most cases extracted from...
9906 (length): ...here. Redefine most cases in terms of insn_count.
9907 (single_insn): Delete.
9908 (can_delay): Use insn_count to check for single instructions.
9909 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
9910 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
9911 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
9912 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
9913 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
9914 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
9915 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
9916 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
9917 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
9918 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
9919 rather than "length".
9920 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
9921 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
9922 Use "insn_count" rather than "length".
9923 * config/mips/mips-dsp.md
9924 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
9925 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
9926 length attributes.
9927
1951f101
MG
99282013-06-12 Marc Glisse <marc.glisse@inria.fr>
9929
9930 PR tree-optimization/57361
9931 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
9932
8b033a8a
SN
99332013-06-12 Sofiane Naci <sofiane.naci@arm.com>
9934
22fc7d3d
UB
9935 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
9936 to split.
8b033a8a
SN
9937 (aarch64_simd_combine<mode>): New instruction expansion.
9938 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
9939 function prototype.
9940 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
9941 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
9942
ca0f62a8
JH
99432013-06-12 Jan Hubicka <jh@suse.cz>
9944
9945 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
9946 decl has when in streaming stage.
9947 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
9948 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
9949
12211b99 99502013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
9951
9952 PR target/57578
9953 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
9954
bfdeda2c
JJ
99552013-06-12 Jakub Jelinek <jakub@redhat.com>
9956
9957 PR tree-optimization/57537
9958 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
9959 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
9960
a4fa02d1
RB
99612013-06-12 Richard Biener <rguenther@suse.de>
9962
9963 * data-streamer.h (streamer_write_char_stream): CSE
9964 obs->current_pointer.
9965 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
9966 streamer_write_char_stream manually and optimize the resulting loop.
9967 (streamer_write_hwi_stream): Likewise.
9968
bbf9ad07
JH
99692013-06-12 Jan Hubicka <jh@suse.cz>
9970
9971 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
9972 * cgraph.h (varpool_create_empty_node): Declare.
9973 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
9974 duplicated nodes.
9975 * symtab.c (symtab_unregister_node): Be lax about missin entries
9976 in node hash.
9977 (symtab_get_node): Update comment.
9978 * varpool.c (varpool_create_empty_node): Break out from ...
9979 (varpool_node_for_decl): ... here.
9980 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
9981
a53f90ad
EB
99822013-06-12 Eric Botcazou <ebotcazou@adacore.com>
9983
9984 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
9985 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
9986 part. Use straight-line flow at the end.
9987 <COMPONENT_REF>: Remove superfluous else.
9988 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
9989
946f9306
JJ
99902013-06-12 Jakub Jelinek <jakub@redhat.com>
9991
9992 PR target/56564
9993 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
9994 target hook even for !TREE_PUBLIC decls. If no resolution info
9995 is available, return false for common and external decls.
9996
a7fca6f0
KP
99972013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9998
9999 * config/rl78/constraints.md (U): New constraint.
10000 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
10001 valloc attribute.
10002
c7d8f446
MM
100032013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10004
10005 PR target/57589
10006 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
10007 to allow returning address to AT_PLATFORM name.
10008
08346abd
JH
100092013-06-11 Jan Hubicka <jh@suse.cz>
10010
10011 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
10012 * cgraph.h (symtab_node_base): Add weakref flag.
10013 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
10014 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
10015 (output_weakrefs): Use weakref flag.
10016 * fold-const.c (simple_operand_p): Handle WEAK.
10017 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
10018 * ipa.c (varpool_externally_visible_p): Drop weakref.
10019 (function_and_variable_visibility): Update comment; fix weakref
10020 sanity checks; do not clear DECL_WEAK on them.
10021 * lto-cgraph.c (lto_output_node): update.
10022 (lto_output_varpool_node): Update.
10023 (input_overwrite_node): Update.
10024 (input_node): Update.
10025 (input_varpool_node): Update.
10026 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
10027 (lto_symtab_merge_symbols): Add sanity check.
10028 (lto_symtab_prevailing_decl): Do not special case weakrefs.
10029 * passes.c (rest_of_decl_compilation): Set static flag, too.
10030 * symtab.c (dump_symtab_base): Dump weakref.
10031 (verify_symtab_base): Sanity check weakrefs.
10032 (symtab_make_decl_local): Remove duplicated code.
10033 (symtab_alias_ultimate_target): Simplify.
10034 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 10035
2e6a2f88
TV
100362013-06-11 Tom de Vries <tom@codesourcery.com>
10037
10038 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
10039 sequence_vect == NULL.
10040
d9af3652
DD
100412013-06-11 DJ Delorie <dj@redhat.com>
10042
10043 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
10044 (rl78_unwind_word_mode): New.
10045
ffa66012
DM
100462013-06-11 David Malcolm <dmalcolm@redhat.com>
10047
10048 * final.c (debug_prefix_maps): Make static.
10049
783f2d35
DM
100502013-06-11 David Malcolm <dmalcolm@redhat.com>
10051
10052 * function.c (initial_trampoline): Remove stray copy.
10053
7af26def
SN
100542013-06-11 Sofiane Naci <sofiane.naci@arm.com>
10055
10056 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
10057
97756c0e
MJ
100582013-06-11 Martin Jambor <mjambor@suse.cz>
10059
10060 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
10061 within bounds at the beginning of the function.
10062
2c7b8bf6
AM
100632013-06-11 Alan Modra <amodra@gmail.com>
10064
10065 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
10066 reporting.
10067 (get_named_section): Don't NULL !DECL_P decl.
10068
77cea46e
IZ
100692013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
10070
10071 * doc/invoke.texi (core-avx2): Document.
10072 (slm): Likewise.
10073 (atom): Updated with MOVBE.
10074
888f0920
RB
100752013-06-11 Richard Biener <rguenther@suse.de>
10076
22fc7d3d 10077 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 10078
6b438d58
AB
100792013-06-11 Anton Blanchard <anton@samba.org>
10080
10081 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
10082 correct shift value in little-endian mode.
10083
3bc66938
JJ
100842013-06-11 Jakub Jelinek <jakub@redhat.com>
10085
10086 PR target/56564
10087 * varasm.c (get_variable_align): Move #endif to the right place.
10088
a5dc7f88
CC
100892013-06-10 Cary Coutant <ccoutant@google.com>
10090
10091 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
10092 for hash so that hash table traversal order is deterministic.
10093
19be72ab 100942013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10095 Pat Haugen <pthaugen@us.ibm.com>
10096 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
10097
10098 * config/rs6000/vector.md (GPR move splitter): Do not split moves
10099 of vectors in GPRS if they are direct moves or quad word load or
10100 store moves.
10101
10102 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
10103 declaration.
10104 (direct_move_p): Likewise.
10105 (quad_load_store_p): Likewise.
10106
10107 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
10108 classes into bins based on the physical register type.
10109 (reg_class_to_reg_type): Likewise.
10110 (IS_STD_REG_TYPE): Likewise.
10111 (IS_FP_VECT_REG_TYPE): Likewise.
10112 (reload_fpr_gpr): Arrays to determine what insn to use if we can
10113 use direct move instructions.
10114 (reload_gpr_vsx): Likewise.
10115 (reload_vsx_gpr): Likewise.
10116 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
10117 information that is a simplification of register classes. Also
10118 precalculate direct move reload helpers.
10119 (direct_move_p): New function to return true if the operation can
10120 be done as a direct move instruciton.
10121 (quad_load_store_p): New function to return true if the operation
10122 is a quad memory operation.
10123 (rs6000_legitimize_address): If quad memory, only allow register
10124 indirect for TImode addresses.
10125 (rs6000_legitimate_address_p): Likewise.
10126 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
10127 (rs6000_reload_register_type): Likewise.
10128 (register_to_reg_type): Return register type.
10129 (rs6000_secondary_reload_simple_move): New helper function for
10130 secondary reload and secondary memory needed to identify anything
10131 that is a simple move, and does not need reloading.
10132 (rs6000_secondary_reload_direct_move): New helper function for
10133 secondary reload to identify cases that can be done with several
10134 instructions via the direct move instructions.
10135 (rs6000_secondary_reload_move): New helper function for secondary
10136 reload to identify moves between register types that can be done.
10137 (rs6000_secondary_reload): Add support for quad memory operations
10138 and for direct move.
10139 (rs6000_secondary_memory_needed): Likewise.
10140 (rs6000_debug_secondary_memory_needed): Change argument names.
10141 (rs6000_output_move_128bit): New function to return the move to
10142 use for 128-bit moves, including knowing about the various
10143 limitations of quad memory operations.
10144
10145 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
10146 memory operations. call rs6000_output_move_128bit for the actual
10147 instruciton(s) to generate.
10148 (vsx_movti_64bit): Likewise.
10149
10150 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
10151 (UNSPEC_P8V_MTVSRWZ): Likewise.
10152 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
10153 (UNSPEC_P8V_MTVSRD): Likewise.
10154 (UNSPEC_P8V_XXPERMDI): Likewise.
10155 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
10156 (UNSPEC_FUSION_GPR): Likewise.
10157 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 10158 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
10159 (f32_sv): Likewise.
10160 (f32_dm): Likewise.
10161 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
10162 loads and direct move instructions.
10163 (zero_extendsidi2_lfiwzx): Likewise.
10164 (extendsidi2_lfiwax): Likewise.
10165 (extendsidi2_nocell): Likewise.
10166 (floatsi<mode>2_lfiwax): Likewise.
10167 (lfiwax): Likewise.
10168 (floatunssi<mode>2_lfiwzx): Likewise.
10169 (lfiwzx): Likewise.
10170 (fix_trunc<mode>_stfiwx): Likewise.
10171 (fixuns_trunc<mode>_stfiwx): Likewise.
10172 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
10173 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
10174 (parity<mode>2_cmpb): Set length/type attr.
10175 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
10176 for 'mr.' to fast_compare.
10177 (bpermd_<mode>): Change type attr to popcnt.
10178 (p8_fmrgow_<mode>): New insns for power8 direct move support.
10179 (p8_mtvsrwz_1): Likewise.
10180 (p8_mtvsrwz_2): Likewise.
10181 (reload_fpr_from_gpr<mode>): Likewise.
10182 (p8_mtvsrd_1): Likewise.
10183 (p8_mtvsrd_2): Likewise.
10184 (p8_xxpermdi_<mode>): Likewise.
10185 (reload_vsx_from_gpr<mode>): Likewise.
10186 (reload_vsx_from_gprsf): Likewise.
10187 (p8_mfvsrd_3_<mode>): LIkewise.
10188 (reload_gpr_from_vsx<mode>): Likewise.
10189 (reload_gpr_from_vsxsf): Likewise.
10190 (p8_mfvsrd_4_disf): Likewise.
10191 (multi-word GPR splits): Do not split direct moves or quad memory
10192 operations.
10193
16876bdc
DM
101942013-06-10 David Malcolm <dmalcolm@redhat.com>
10195
10196 * tree-into-ssa.c (interesting_blocks): Make static.
10197
df8a1d28
JJ
101982013-06-10 Jakub Jelinek <jakub@redhat.com>
10199
10200 PR target/56564
10201 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
10202 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
10203 Use DATA_ABI_ALIGNMENT for that case instead if defined.
10204 (get_variable_align): New function.
10205 (get_variable_section, emit_bss, emit_common,
10206 assemble_variable_contents, place_block_symbol): Use
10207 get_variable_align instead of DECL_ALIGN.
10208 (assemble_noswitch_variable): Add align argument, use it
10209 instead of DECL_ALIGN.
10210 (assemble_variable): Adjust caller. Use get_variable_align
10211 instead of DECL_ALIGN.
10212 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
10213 caller.
10214 (DATA_ABI_ALIGNMENT): Define.
10215 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
10216 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
10217 opt is false, only return the psABI mandated alignment increase.
10218 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
10219 (DATA_ABI_ALIGNMENT): ... this.
10220 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
10221 (DATA_ABI_ALIGNMENT): ... this.
10222 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
10223 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
10224 (DATA_ABI_ALIGNMENT): ... this.
10225 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
10226 * doc/tm.texi: Regenerated.
10227
57b29ca6
UB
102282013-06-10 Uros Bizjak <ubizjak@gmail.com>
10229
10230 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
10231 cmp_code to construct REG_EQUAL note.
10232
3e56ed50
JJ
102332013-06-09 Jakub Jelinek <jakub@redhat.com>
10234
10235 PR target/57568
10236 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
10237 that operands[2] doesn't overlap with operands[0].
10238
74fe2a1d
DE
102392013-06-09 David Edelsohn <dje.gcc@gmail.com>
10240 Jan Hubicka <jh@suse.cz>
10241
10242 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
10243 hack to mark symbols as used.
10244
ed52a84e
VM
102452013-06-08 Vladimir Makarov <vmakarov@redhat.com>
10246
10247 PR rtl-optimization/57559
10248 * lra-constraints.c (process_alt_operands): Don't discourage
10249 memory with known offset for offsetable memory constraint.
10250 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
10251
299316ed
EB
102522013-06-08 Eric Botcazou <ebotcazou@adacore.com>
10253
10254 * varasm.c (struct oc_local_state): Reorder fields.
10255 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
10256 and adjust accordingly.
10257 (output_constructor): Reorder initialization code and adjust call to
10258 output_constructor_bitfield.
10259
88ac60d3
JH
102602013-06-07 Jan Hubicka <jh@suse.cz>
10261
10262 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
10263
4cdce1a8
DM
102642013-06-07 David Malcolm <dmalcolm@redhat.com>
10265
10266 * tree-object-size.c (unknown): Make const.
10267
b5e0425c
AK
102682013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10269
10270 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
10271 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
10272 for last alternative in the cpu_facility attribute.
10273
79678d04
KT
102742013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10275
10276 PR target/56315
10277 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
10278 (xordi3): Change operand 2 constraint to arm_xordi_operand.
10279 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
10280 * config/arm/constraints.md (Dg): New constraint.
10281 * config/arm/neon.md (xordi3_neon): Remove.
10282 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
10283 * config/arm/predicates.md (arm_xordi_operand): New predicate.
10284
b31ddbdb
KT
102852013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10286
10287 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
10288 Clean up alternatives.
10289
8f90b7d4
AM
102902013-06-07 Alan Modra <amodra@gmail.com>
10291
10292 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
10293 va_list_gpr_size.
10294
961ce119
AM
102952013-06-07 Alan Modra <amodra@gmail.com>
10296
10297 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
10298
33e49835
KT
102992013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10300
10301 * config/arm/constraints.md (Df): New constraint.
10302 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
10303 Correct length attribute for last two alternatives.
10304
acd17ae6
AM
103052013-06-07 Alan Modra <amodra@gmail.com>
10306
10307 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10308 override user -mfp-in-toc.
10309 (offsettable_ok_by_alignment): Consider just the current access
10310 rather than the whole object, unless BLKmode. Handle
10311 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
10312 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
10313 for -mcmodel=medium.
10314 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
10315 override user -mfp-in-toc or -msum-in-toc. Default to
10316 -mno-fp-in-toc for -mcmodel=medium.
10317
73310b0e
DD
103182013-06-06 DJ Delorie <dj@redhat.com>
10319
10320 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
10321 TARGET_VALID_POINTER_MODE.
10322
0bd62dca 103232013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10324 Pat Haugen <pthaugen@us.ibm.com>
10325 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
10326
10327 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10328 Document new power8 builtins.
10329
10330 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10331 condition code register, to allow 128-bit logical operations to be
10332 done in the VSX or GPR registers.
10333 (nor<mode>3): Use the canonical form for nor.
10334 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10335 vclz*, and vpopcnt* vector instructions.
10336 (nand<mode>3): Likewise.
10337 (orc<mode>3): Likewise.
10338 (clz<mode>2): LIkewise.
10339 (popcount<mode>2): Likewise.
10340
10341 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10342 that only the GPRs are recognized.
10343
10344 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10345 support for new power8 builtins.
10346
10347 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10348 builtin functions.
10349 (xscvdpspn): Likewise.
10350 (vclz): Likewise.
10351 (vclzb): Likewise.
10352 (vclzh): Likewise.
10353 (vclzw): Likewise.
10354 (vclzd): Likewise.
10355 (vpopcnt): Likewise.
10356 (vpopcntb): Likewise.
10357 (vpopcnth): Likewise.
10358 (vpopcntw): Likewise.
10359 (vpopcntd): Likewise.
10360 (vgbbd): Likewise.
10361 (vmrgew): Likewise.
10362 (vmrgow): Likewise.
10363 (eqv): Likewise.
10364 (eqv_v16qi3): Likewise.
10365 (eqv_v8hi3): Likewise.
10366 (eqv_v4si3): Likewise.
10367 (eqv_v2di3): Likewise.
10368 (eqv_v4sf3): Likewise.
10369 (eqv_v2df3): Likewise.
10370 (nand): Likewise.
10371 (nand_v16qi3): Likewise.
10372 (nand_v8hi3): Likewise.
10373 (nand_v4si3): Likewise.
10374 (nand_v2di3): Likewise.
10375 (nand_v4sf3): Likewise.
10376 (nand_v2df3): Likewise.
10377 (orc): Likewise.
10378 (orc_v16qi3): Likewise.
10379 (orc_v8hi3): Likewise.
10380 (orc_v4si3): Likewise.
10381 (orc_v2di3): Likewise.
10382 (orc_v4sf3): Likewise.
10383 (orc_v2df3): Likewise.
10384
10385 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10386 allow power8 quad mode in 64-bit.
10387 (rs6000_builtin_vectorized_function): Add support to vectorize
10388 ISA 2.07 count leading zeros, population count builtins.
10389 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10390 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10391 (builtin_function_type): Add vgbbd builtin function which takes an
10392 unsigned argument.
10393 (altivec_expand_vec_perm_const): Add support for new power8 merge
10394 instructions.
10395
10396 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10397 that does not include TImdoe for use with 32-bit.
10398 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10399 instructions.
10400 (UNSPEC_VSX_CVDPSPN): Likewise.
10401 (vsx_xscvdpspn): Likewise.
10402 (vsx_xscvspdpn): Likewise.
10403 (vsx_xscvdpspn_scalar): Likewise.
10404 (vsx_xscvspdpn_directmove): Likewise.
10405 (vsx_and<mode>3): Split logical operations into 32-bit and
10406 64-bit. Add support to do logical operations on TImode as well as
10407 VSX vector types. Allow logical operations to be done in either
10408 VSX registers or in general purpose registers in 64-bit mode. Add
10409 splitters if GPRs were used. For AND, add clobber of CCmode to
10410 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10411 encoding.
10412 (vsx_and<mode>3_32bit): Likewise.
10413 (vsx_and<mode>3_64bit): Likewise.
10414 (vsx_ior<mode>3): Likewise.
10415 (vsx_ior<mode>3_32bit): Likewise.
10416 (vsx_ior<mode>3_64bit): Likewise.
10417 (vsx_xor<mode>3): Likewise.
10418 (vsx_xor<mode>3_32bit): Likewise.
10419 (vsx_xor<mode>3_64bit): Likewise.
10420 (vsx_one_cmpl<mode>2): Likewise.
10421 (vsx_one_cmpl<mode>2_32bit): Likewise.
10422 (vsx_one_cmpl<mode>2_64bit): Likewise.
10423 (vsx_nor<mode>3): Likewise.
10424 (vsx_nor<mode>3_32bit): Likewise.
10425 (vsx_nor<mode>3_64bit): Likewise.
10426 (vsx_andc<mode>3): Likewise.
10427 (vsx_andc<mode>3_32bit): Likewise.
10428 (vsx_andc<mode>3_64bit): Likewise.
10429 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10430 and xxlorc instructions.
10431 (vsx_eqv<mode>3_64bit): Likewise.
10432 (vsx_nand<mode>3_32bit): Likewise.
10433 (vsx_nand<mode>3_64bit): Likewise.
10434 (vsx_orc<mode>3_32bit): Likewise.
10435 (vsx_orc<mode>3_64bit): Likewise.
10436
10437 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10438
10439 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10440 instruction.
10441 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10442 (p8_vmrgow): Likewise.
10443 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10444 GPRs to be split under VSX.
10445 (p8v_clz<mode>2): Add power8 count leading zero support.
10446 (p8v_popcount<mode>2): Add power8 population count support.
10447 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10448 support.
10449
10450 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10451 instruction.
10452
10453 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10454 builtin functions.
10455 (vec_nand): Likewise.
10456 (vec_vclz): Likewise.
10457 (vec_vclzb): Likewise.
10458 (vec_vclzd): Likewise.
10459 (vec_vclzh): Likewise.
10460 (vec_vclzw): Likewise.
10461 (vec_vgbbd): Likewise.
10462 (vec_vmrgew): Likewise.
10463 (vec_vmrgow): Likewise.
10464 (vec_vpopcnt): Likewise.
10465 (vec_vpopcntb): Likewise.
10466 (vec_vpopcntd): Likewise.
10467 (vec_vpopcnth): Likewise.
10468 (vec_vpopcntw): Likewise.
10469
37684c46
VM
104702013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10471
10472 PR rtl-optimization/57468
10473 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10474 spilled pseudos.
10475
d89ae27c
VM
104762013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10477
10478 PR rtl-optimization/57459
10479 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10480 type when setting live regs.
10481
3597e113
VM
104822013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10483
10484 * config/s390/s390.opt (mlra): New option.
10485 * config/s390/s390.c (s390_decompose_address): Check displacement
10486 for all registers for LRA.
10487 (s390_secondary_reload): Don't used secondary reloads for LRA.
10488 (s390_lra_p): New function.
10489 (TARGET_LRA_P): Define.
10490 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10491 of attribute cpu_facility to zarch for the last alternative.
10492 (*cmpmem_short): Ditto.
10493
01037aeb
EB
104942013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10495
10496 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10497 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10498 (arm_expand_prologue): Likewise.
10499
3371a64f
TJ
105002013-06-06 Teresa Johnson <tejohnson@google.com>
10501
10502 PR c++/53743
10503 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10504 as this is now done by redirect_edge_and_branch_force.
10505 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10506 barriers, and fix interaction with splitting.
10507 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10508 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10509 reflect changes made in the routine.
10510 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10511 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10512 since this is called in cfglayout mode, and replace partition fixup
10513 with assert as that is now done by force_nonfallthru_and_redirect.
10514 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10515 already be marked with region crossing note.
10516 (insert_section_boundary_note): Make non-static, gate on flag
10517 has_bb_partition, rewrite to also check for multiple partitions.
10518 (rest_of_handle_reorder_blocks): Remove call to
10519 insert_section_boundary_note, now done later during free_cfg.
10520 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10521 * bb-reorder.h (insert_section_boundary_note): Declare.
10522 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10523 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10524 invoke insert_section_boundary_note.
10525 (try_redirect_by_replacing_jump): Remove unnecessary
10526 check for region crossing note.
10527 (fixup_partition_crossing): New function.
10528 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10529 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10530 in non-cfglayout mode.
10531 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10532 remove old code that tried to do this. Emit barrier correctly
10533 when we are in cfglayout mode.
10534 (last_bb_in_partition): New function.
10535 (rtl_split_edge): Correctly fixup partition boundaries.
10536 (commit_one_edge_insertion): Remove old code that tried to
10537 fixup region crossing edge since this is now handled in
10538 split_block, and set up insertion point correctly since
10539 block may now end in a jump.
10540 (verify_hot_cold_block_grouping): Guard against checking when not in
10541 linearized RTL mode.
10542 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10543 notes.
10544 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10545 rtl_verify_flow_info, so not called in cfglayout mode.
10546 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10547 (fixup_reorder_chain): Remove old code that attempted to fixup region
10548 crossing note as this is now handled in force_nonfallthru_and_redirect.
10549 (duplicate_insn_chain): Don't duplicate switch section notes.
10550 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10551 note.
10552 * basic-block.h (emit_barrier_after_bb): Declare.
10553
66071e10
KT
105542013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10555
10556 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10557 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10558 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10559
0e26bf3d
KT
105602013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10561
10562 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10563 where appropriate.
10564 * config/arm/ldmstm.md: Regenerate.
10565
12b4e7ef
KT
105662013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10567
10568 * config/arm/sync.md (atomic_loaddi_1):
10569 Disable predication for arm_restrict_it.
10570 (arm_load_exclusive<mode>): Likewise.
10571 (arm_load_exclusivesi): Likewise.
10572 (arm_load_exclusivedi): Likewise.
10573 (arm_load_acquire_exclusive<mode>): Likewise.
10574 (arm_load_acquire_exclusivesi): Likewise.
10575 (arm_load_acquire_exclusivedi): Likewise.
10576 (arm_store_exclusive<mode>): Likewise.
10577 (arm_store_exclusive<mode>): Likewise.
10578 (arm_store_release_exclusivedi): Likewise.
10579 (arm_store_release_exclusive<mode>): Likewise.
10580
15d16c8a
RB
105812013-06-06 Richard Biener <rguenther@suse.de>
10582
10583 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10584 after LTO_null.
10585 (lto_tag_is_tree_code_p): Adjust.
10586 (lto_tag_is_gimple_code_p): Likewise.
10587 (lto_gimple_code_to_tag): Likewise.
10588 (lto_tag_to_gimple_code): Likewise.
10589 (lto_tree_code_to_tag): Likewise.
10590 (lto_tag_to_tree_code): Likewise.
10591 * data-streamer.h (streamer_write_hwi_in_range): Use
10592 uhwi streaming to stream the normalized range.
10593 (streamer_read_hwi_in_range): Likewise.
10594
17a7fc37
KT
105952013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10596
10597 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10598 (predicable_short_it): Likewise.
10599 (predicated): Likewise.
10600 (enabled): Handle above.
10601 (define_cond_exec): Set predicated attribute to yes.
10602
b57ca59b
MS
106032013-06-05 Mike Stump <mikestump@comcast.net>
10604
10605 * gdbinit.in (__FUNCTION__): Add.
10606
c1e183a9
UB
106072013-06-05 Uros Bizjak <ubizjak@gmail.com>
10608
10609 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10610 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10611
0378bddb
JH
106122013-06-05 Jan Hubicka <jh@suse.cz>
10613
10614 * varasm.c (mark_decl_referenced): Revert the removal until targets
10615 are fixed.
10616
8f8a2057
DE
106172013-06-05 David Edelsohn <dje.gcc@gmail.com>
10618
10619 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
10620 instead of mark_decl_referenced.
10621
edb983b2
JH
106222013-06-05 Jan Hubicka <jh@suse.cz>
10623
10624 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
10625 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
10626 and symtab_used_from_object_file_p.
10627 (cgraph_make_node_local_1): Clear forced_by_abi.
10628 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
10629 * cgraph.h (symtab_node_base): Add forced_by_abi.
10630 (decide_is_variable_needed): Remove.
10631 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
10632 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
10633 (decide_is_symbol_needed): ... this one; handle symbols in general;
10634 always analyze virtuals; honnor forced_by_abi.
10635 (cgraph_finalize_function): Update.
10636 (varpool_finalize_decl): Update.
10637 (symbol_defined_and_needed): Remove.
10638 (analyze_functions): Update.
10639 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10640 output_refs, input_overwrite_node): Handle forced_by_abi.
10641 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
10642 (address_taken_from_non_vtable_p): ... this one.
10643 (comdat_can_be_unshared_p_1): New function.
10644 (cgraph_comdat_can_be_unshared_p): Rename to ...
10645 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
10646 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
10647 (function_and_variable_visibility): Clear forced_by_abi as needed.
10648 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
10649 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
10650 * symtab.c (dump_symtab_base): Dump forced_by_abi.
10651 * varpool.c (decide_is_variable_needed): Remove.
10652
9912dbe5
KT
106532013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10654
10655 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
10656 (arm_option_override): Override arm_restrict_it where appropriate.
10657 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
10658 * config/arm/arm.opt (mrestrict-it): New command-line option.
10659 * doc/invoke.texi: Document -mrestrict-it.
10660
34c136b6
DM
106612013-06-05 David Malcolm <dmalcolm@redhat.com>
10662
10663 * tsan.c (tsan_atomic_table): Make const.
10664
a367df53
RB
106652013-06-05 Richard Biener <rguenther@suse.de>
10666
10667 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
10668 index associated with the tree we are supposed to replace.
10669 * tree-streamer-out.c (pack_ts_base_value_fields): Output
10670 TREE_ASM_WRITTEN as zero for everything but SSA names.
10671
70d51a19
DM
106722013-06-05 David Malcolm <dmalcolm@redhat.com>
10673
10674 * tree-ssa-structalias.c (call_stmt_vars): Make static.
10675
b9bd2075
JH
106762013-06-04 Jan Hubicka <jh@suse.cz>
10677
10678 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
10679 (input_node, input_varpool_node): Handle correctly external same
10680 body aliases.
10681 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
10682 nodes at ltrans stage.
10683
aaae719d
JH
106842013-06-04 Jan Hubicka <jh@suse.cz>
10685
10686 * ipa-inline.c (update_caller_keys): Fix availability test.
10687 (update_callee_keys): Likewise.
10688 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
10689 to follow ELF standard.
10690
107eea2c
JU
106912013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
10692
10693 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
10694 (mips64r5900el-*-elf*): New configurations.
10695 * config/mips/mips-cpus.def (r5900): New processor.
10696 * config/mips/mips-tables.opt: Regenerate.
10697 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
10698 (mips_issue_rate): Handle PROCESSOR_R5900.
10699 (mips_reorg_process_insns): Force reorder mode for the R5900.
10700 * config/mips/mips.h (TARGET_MIPS5900): Define.
10701 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
10702 TARGET_MIPS5900.
10703 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
10704 TARGET_MIPS5900.
10705 * config/mips/mips.md (processor): Add r5900.
10706 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
10707
b7342d25
IB
107082013-06-04 Ian Bolton <ian.bolton@arm.com>
10709
10710 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
10711 into function to generate MOVI instruction.
c1e183a9 10712 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
10713 (aarch64_preferred_simd_mode): Turn into wrapper.
10714 (aarch64_output_scalar_simd_mov_immediate): New function.
10715 * config/aarch64/aarch64-protos.h: Add prototype for above.
10716
81c2dfb9
IB
107172013-06-04 Ian Bolton <ian.bolton@arm.com>
10718
10719 * config/aarch64/aarch64.c (simd_immediate_info): Remove
10720 element_char member.
10721 (sizetochar): Return signed char.
10722 (aarch64_simd_valid_immediate): Remove elchar and other
10723 unnecessary variables.
10724 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
10725 Calculate element_char as required.
10726 * config/aarch64/aarch64-protos.h: Update and move prototype
10727 for aarch64_output_simd_mov_immediate.
10728 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
10729 Update arguments.
10730
48063b9d
IB
107312013-06-04 Ian Bolton <ian.bolton@arm.com>
10732
10733 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
10734 information completed by aarch64_simd_valid_immediate.
10735 (aarch64_legitimate_constant_p): Update arguments.
10736 (aarch64_simd_valid_immediate): Work with struct rather than many
10737 pointers.
10738 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
10739 (aarch64_simd_make_constant): Update arguments.
10740 (aarch64_output_simd_mov_immediate): Work with struct rather than
10741 many pointers. Output immediate directly rather than as operand.
10742 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10743 Update prototype.
10744 * config/aarch64/constraints.md (Dn): Update arguments.
10745
3ea63f60
IB
107462013-06-04 Ian Bolton <ian.bolton@arm.com>
10747
10748 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
10749 longer static.
10750 (aarch64_simd_immediate_valid_for_move): Remove.
10751 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
10752 (aarch64_simd_make_constant): Update call.
10753 (aarch64_output_simd_mov_immediate): Update call.
10754 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10755 Add prototype.
10756 * config/aarch64/constraints.md (Dn): Update call.
10757
d8edd899
IB
107582013-06-04 Ian Bolton <ian.bolton@arm.com>
10759
10760 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
10761 return type to bool for prototype.
10762 (aarch64_legitimate_constant_p): Check for true instead of not -1.
10763 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
10764 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
10765
44b20bb8
CM
107662013-06-04 Catherine Moore <clm@codesourcery.com>
10767
10768 * config/mips/mips.opt (meva): New.
c1e183a9 10769 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
10770 (ASM_SPEC): Handle -meva.
10771 * doc/invoke.texi (meva): Document.
10772
52befbd8
AM
107732013-06-04 Alan Modra <amodra@gmail.com>
10774
10775 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
10776 constant output.
10777
aadaf24e
KT
107782013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10779
10780 * rtl.def: Add extra fourth optional field to define_cond_exec.
10781 * gensupport.c (process_one_cond_exec): Process attributes from
10782 define_cond_exec.
10783 * doc/md.texi: Document fourth field in define_cond_exec.
10784
0cd9e9ee
EB
107852013-06-04 Eric Botcazou <ebotcazou@adacore.com>
10786
10787 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
10788 out the processing order as in store_bit_field_1.
10789
cb0f665d
JH
107902013-06-04 Jan Hubicka <jh@suse.cz>
10791
10792 PR middle-end/57500
10793 * cgraphunit.c (cgraph_process_same_body_aliases): Create
10794 non-VAR_DECL node if it does not exist yet.
10795
53984b9b
RS
107962013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
10797
10798 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
10799 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
10800 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
10801 target_cpu_default setting.
10802
5d318fd4
TJ
108032013-06-03 Teresa Johnson <tejohnson@google.com>
10804
10805 * dumpfile.c (opt_info_switch_p): Change -fopt-info
10806 default to -fopt-info=optimized instead of all.
10807 * doc/invoke.texi: Ditto.
10808 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
10809 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
10810 (execute_vect_slp): Emit BB vectorization success under
10811 MSG_OPTIMIZED_LOCATIONS.
10812 * tree-vect-slp.c (vect_slp_transform_bb): Change
10813 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
10814 * tree-vect-loop.c (vect_transform_loop): Ditto.
10815
ec3af349
JM
108162013-06-03 Jason Merrill <jason@redhat.com>
10817
10818 PR c++/57415
10819 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10820 Use TARGET_EXPR for C++.
10821
1baf9159
JJ
108222013-06-03 Jakub Jelinek <jakub@redhat.com>
10823
10824 PR rtl-optimization/57268
0cd9e9ee 10825 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
10826 if DEBUG_INSN_P (insn).
10827
10828 Reapply
10829 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10830
10831 PR rtl-optimization/57268
10832 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10833 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10834
0f1d3965
YR
108352013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10836
10837 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
10838 (ix86_avoid_lea_for_addr): Likewise.
10839 (exact_dependency_1): Likewise.
10840 (ix86_adjust_cost): Likewise.
10841 (swap_top_of_ready_list): Fix formatting and !reload_completed check
10842 removed.
10843 (do_reorder_for_imul): Fix typo, formatting and
10844 !reload_completed check removed.
10845 (ix86_sched_reorder): Fix typo and formatting.
10846 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
10847 list.
10848
3bc30db4
SN
108492013-06-03 Sofiane Naci <sofiane.naci@arm.com>
10850
10851 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
10852
19cc6fac
EB
108532013-06-03 Eric Botcazou <ebotcazou@adacore.com>
10854
10855 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
10856 <STRING_CST>: Likewise.
10857 <VECTOR_CST>: Likewise.
10858
c68a6e08
JW
108592013-06-01 Janus Weil <janus@gcc.gnu.org>
10860 Mikael Morin <mikael@gcc.gnu.org>
10861
10862 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
10863 * config.in: Regenerated.
10864 * configure: Regenerated.
10865
38e55e5c
JH
108662013-06-01 Jan Hubicka <jh@suse.cz>
10867
10868 PR middle-end/57366
10869 * cgraphunit.c (compile): When weakref is not supported,
10870 set up transparent aliases before final output pass.
10871 * varasm.c (assemble_alias): Do not try to do it here.
10872
eb51d2ff
JH
108732013-06-01 Jan Hubicka <jh@suse.cz>
10874
10875 PR middle-end/57467
10876 * passes.c (for_per_function): Skip unanalyzed functions.
10877
40a7fe1e
JH
108782013-06-01 Jan Hubicka <jh@suse.cz>
10879
10880 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
10881 (lto_symtab_merge_symbols_1): ... this one.
10882 (lto_symtab_merge_cgraph_nodes): Rename to ...
10883 (lto_symtab_merge_symbols): ... this one; simplify.
10884 * cgraph.c (same_body_aliases_done): Rename to ...
10885 (cpp_implicit_aliases_done): ... this one.
10886 (cgraph_create_function_alias): Update.
10887 (cgraph_same_body_alias): Update.
c1e183a9 10888 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 10889 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 10890 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
10891 (cgraph_node): Remove same_body_alias.
10892 (varpool_node): Remove alias_of and extra_name_alias.
10893 (same_body_aliases_done): Rename to ..
10894 (cpp_implicit_aliases_done): ... this one.
10895 (symtab_alias_ultimate_target): Add default parameter.
10896 (symtab_resolve_alias): New function.
10897 (fixup_same_cpp_alias_visibility): Declare.
10898 (cgraph_function_node): Add default parameter.
10899 (cgraph_node_asm_name): Likewise.
10900 (cgraph_function_or_thunk_node): Add default parameter; do
10901 not ICE when it is NULL.
10902 (varpool_variable_node): Likewise.
10903 * tree-emutls.c (create_emultls_var): Update.
10904 (ipa_lower_emutls): Update.
10905 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
10906 (cgraph_reset_node): Reset alias info.
10907 (cgraph_finalize_function): Update.
10908 (fixup_same_cpp_alias_visibility): Move to symtab.c.
10909 (analyze_function): Simplify.
10910 (cgraph_process_same_body_aliases): Simplify.
10911 (analyze_functions): Fixup same body aliases.
10912 (handle_alias_pairs): Simplify.
10913 (assemble_thunk): Update.
10914 (assemble_thunks_and_aliases): Update.
10915 (output_weakrefs): Rewrite.
10916 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
10917 (lto_output_varpool_node): Likewise.
10918 (compute_ltrans_boundary): Remve assert.
10919 (get_alias_symbol): New functoin.
10920 (input_node): Rewrite alias handling.
10921 (input_varpool_node): Likewise.
10922 * ipa-pure-const.c (propagate_pure_const): Fix formating.
10923 * ipa.c (process_references): Handle weakrefs correctly.
10924 (symtab_remove_unreachable_nodes): Likewise.
10925 * trans-mem.c (get_cg_data): Update.
10926 (ipa_tm_create_version_alias): Update.
10927 (ipa_tm_execute): Update.
10928 * symtab.c (dump_symtab_base): Dump aliases.
10929 (verify_symtab_base): Verify aliases.
10930 (symtab_node_availability): New function.
10931 (symtab_alias_ultimate_target): Simplify.
10932 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
10933 handle all the fixup cases.
10934 (symtab_resolve_alias): New function.
10935 * passes.c (ipa_write_summaries): Handle weakrefs.
10936 * varpool.c (varpool_analyze_node): Simplify.
10937 (assemble_aliases): Update.
10938 (varpool_create_variable_alias): Simplify.
10939 (varpool_extra_name_alias): Simplify.
10940 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
10941 (lto_symtab_merge_symbols): ... this one.
10942
21759881
DT
109432013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
10944
10945 Revert
10946 PR rtl-optimization/57268
10947 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10948 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10949
daf4e940
TB
109502013-06-01 Tobias Burnus <burnus@net-b.de>
10951
10952 Partially reverted:
10953 2013-05-31 Tobias Burnus <burnus@net-b.de>
10954
10955 PR middle-end/57073
10956 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
10957 further up.
10958
c359d8d0
DT
109592013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10960
10961 PR rtl-optimization/57268
10962 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10963 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10964
4172215d
EB
109652013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10966
10967 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
10968 unordered comparison operators when -fno-trapping-math is in effect
10969 on the e500.
10970 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
10971 and implement unordered comparison operators properly on the e500.
10972
a8c50132
EB
109732013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10974
10975 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
10976 for constant scalar integers.
10977 (simplify_relational_operation_1): Likewise.
10978
44626634
SB
109792013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
10980
10981 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
10982 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
10983 Fix comment.
10984
55805e54
YR
109852013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10986 Igor Zamyatin <igor.zamyatin@intel.com>
10987
10988 Silvermont (SLM) architecture performance tuning.
10989 * config/i386/i386.h (enum ix86_tune_indices): Add
10990 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
10991 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
10992
10993 * config/i386/i386.c (initial_ix86_tune_features)
10994 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
10995 (ix86_lea_outperforms): Handle Silvermont tuning.
10996 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
10997 call.
10998 (ix86_use_lea_for_mov): Likewise.
10999 (ix86_avoid_lea_for_addr): Likewise.
11000 (ix86_lea_for_add_ok): Likewise.
11001 (exact_dependency_1): New function.
11002 (exact_store_load_dependency): Likewise.
11003 (ix86_adjust_cost): Handle Silvermont tuning.
11004 (do_reoder_for_imul): Likewise.
11005 (swap_top_of_ready_list): New function.
11006 (ix86_sched_reorder): Changed to handle Silvermont tuning.
11007
11008 * config/i386/i386.md (peepholes that split memory operand in fp
11009 converts): New.
11010
e19c9de2
MS
110112013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11012
11013 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11014 Remove un-necessary braces.
11015
38e6c9a6
MS
110162013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11017
11018 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11019 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
11020
e3530904
TB
110212013-05-31 Tobias Burnus <burnus@net-b.de>
11022
11023 PR middle-end/57073
c1e183a9 11024 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 11025
b6af05a9
KT
110262013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11027
11028 PR target/56315
11029 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
11030 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
11031 * config/arm/neon.md (iordi3_neon): Remove.
11032 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
11033 * config/arm/predicates.md (imm_for_neon_logic_operand):
11034 Move to earlier in the file.
11035 (neon_logic_op2): Likewise.
11036 (arm_iordi_operand_neon): New predicate.
11037
f800c166
RB
110382013-05-31 Richard Biener <rguenther@suse.de>
11039
11040 PR tree-optimization/57478
11041 PR tree-optimization/57453
11042 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
11043 are life as well.
11044
e571fa59
KP
110452013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11046
11047 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
11048 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
11049
0fa6e0ef
TB
110502013-05-30 Tobias Burnus <burnus@net-b.de>
11051 Thomas Koenig <tkoenig@gcc.gnu.org>
11052
11053 PR middle-end/57073
11054 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
11055 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
11056
4688ddf5
SB
110572013-05-30 Steven Bosscher <steven@gcc.gnu.org>
11058
0fa6e0ef 11059 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 11060
3b9ceb4b
VM
110612013-05-30 Vladimir Makarov <vmakarov@redhat.com>
11062
11063 * target.def (register_usage_leveling_p): New hook.
11064 * targhooks.c (default_register_usage_leveling_p): New.
11065 * targhooks.h (default_register_usage_leveling_p): New prototype.
11066 * lra-assigns.c (register_usage_leveling_p): Use the hook.
11067 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
11068 * doc/tm.texi: Update.
11069 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
11070
65f9e789
IB
110712013-05-30 Ian Bolton <ian.bolton@arm.com>
11072
11073 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
11074 (*insv_reg<mode>): New define_insn.
11075
12211b99 110762013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
11077
11078 PR rtl-optimization/57439
11079 * postreload.c (move2add_valid_value_p): Check that we have
11080 a zero subreg_regno_offset when accessing the register in
11081 the requested mode.
11082
0b871ccf
YR
110832013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11084 Igor Zamyatin <igor.zamyatin@intel.com>
11085
11086 Silvermont (SLM) architecture pipeline model, tuning and
11087 insn selection.
11088 * config.gcc: Add slm config options and target.
11089
11090 * config/i386/slm.md: New.
11091
11092 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
11093
f43245d1 11094 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
11095 PROCESSOR_SLM.
11096 (ix86_target_macros_internal): Likewise.
11097
f43245d1 11098 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
11099 (m_SLM): New macro flag.
11100 (initial_ix86_tune_features): Set m_SLM.
11101 (x86_accumulate_outgoing_args): Likewise.
11102 (x86_arch_always_fancy_math_387): Likewise.
11103 (processor_target_table): Add slm cost.
11104 (cpu_names): Add slm cpu name.
11105 (x86_option_override_internal): Set SLM ISA.
11106 (ix86_issue_rate): New case PROCESSOR_SLM.
11107 (ia32_multipass_dfa_lookahead): Likewise.
11108 (fold_builtin_cpu): Add slm.
11109
11110 * config/i386/i386.h (TARGET_SLM): New target macro.
11111 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
11112 (processor_type): Add PROCESSOR_SLM.
11113
11114 * config/i386/i386.md (cpu): Add new value "slm".
11115 (slm.md): Include slm.md.
11116
24d5b097
XG
111172013-05-30 Bernd Schmidt <bernds@codesourcery.com>
11118 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11119
11120 * config/arm/arm-protos.h: Add and update function protos.
11121 * config/arm/arm.c (use_simple_return_p): New added.
11122 (thumb2_expand_return): Check simple_return flag.
11123 * config/arm/arm.md: Add simple_return and conditional simple_return.
11124 * config/arm/iterators.md: Add iterator for return and simple_return.
11125
c1cccc15
ZC
111262013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11127
11128 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
11129 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
11130 (arm_emit_vfp_multi_reg_pop): Likewise.
11131 (thumb2_emit_ldrd_pop): Likewise.
11132 (arm_expand_epilogue): Add misc REG_CFA notes.
11133 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
11134
3a4f280b
LC
111352013-05-29 Lawrence Crowl <crowl@google.com>
11136
11137 * config/arm/t-arm: Update for below.
11138
11139 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
11140 Change type to hash_table. Update dependent calls and types.
11141
11142 * config/i386/t-cygming: Update for below.
11143
11144 * config/i386/t-interix: Update for below.
11145
11146 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
11147 Change type to hash_table. Update dependent calls and types.
11148 (i386_find_on_wrapper_list::wrappers): Likewise.
11149
11150 * config/ia64/t-ia64: Update for below.
11151
11152 * config/ia64/ia64.c (bundle_state_table):
11153 Change type to hash_table. Update dependent calls and types.
11154
11155 * config/mips/mips.c (mips_reorg_process_insns::htab):
11156 Change type to hash_table. Update dependent calls and types.
11157
11158 * config/sol2.c (solaris_comdat_htab):
11159 Change type to hash_table. Update dependent calls and types.
11160
11161 * config/t-sol2: Update for above.
11162
1388a0e3
TJ
111632013-05-29 Teresa Johnson <tejohnson@google.com>
11164
11165 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
11166 functions are not yet marked as defined.
11167
a5965b52 111682013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11169 Pat Haugen <pthaugen@us.ibm.com>
11170 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
11171
11172 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
11173 instructions.
11174 (VEC_A): Likewise.
11175 (VEC_C): Likewise.
11176 (vrotl<mode>3): Likewise.
11177 (vashl<mode>3): Likewise.
11178 (vlshr<mode>3): Likewise.
11179 (vashr<mode>3): Likewise.
11180
11181 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11182 support for power8 V2DI builtins.
11183
11184 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
11185 power8 V2DI builtins.
11186 (vupkhsw): Likewise.
11187 (vupklsw): Likewise.
11188 (vaddudm): Likewise.
11189 (vminsd): Likewise.
11190 (vmaxsd): Likewise.
11191 (vminud): Likewise.
11192 (vmaxud): Likewise.
11193 (vpkudum): Likewise.
11194 (vpksdss): Likewise.
11195 (vpkudus): Likewise.
11196 (vpksdus): Likewise.
11197 (vrld): Likewise.
11198 (vsld): Likewise.
11199 (vsrd): Likewise.
11200 (vsrad): Likewise.
11201 (vsubudm): Likewise.
11202 (vcmpequd): Likewise.
11203 (vcmpgtsd): Likewise.
11204 (vcmpgtud): Likewise.
11205 (vcmpequd_p): Likewise.
11206 (vcmpgtsd_p): Likewise.
11207 (vcmpgtud_p): Likewise.
11208 (vupkhsw): Likewise.
11209 (vupklsw): Likewise.
11210 (vaddudm): Likewise.
11211 (vmaxsd): Likewise.
11212 (vmaxud): Likewise.
11213 (vminsd): Likewise.
11214 (vminud): Likewise.
11215 (vpksdss): Likewise.
11216 (vpksdus): Likewise.
11217 (vpkudum): Likewise.
11218 (vpkudus): Likewise.
11219 (vrld): Likewise.
11220 (vsld): Likewise.
11221 (vsrad): Likewise.
11222 (vsrd): Likewise.
11223 (vsubudm): Likewise.
11224
11225 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11226 support for power8 V2DI instructions.
11227
11228 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
11229 power8 V2DI instructions. Combine pack and unpack insns to use an
11230 iterator for each mode. Check whether a particular mode supports
11231 Altivec instructions instead of just checking TARGET_ALTIVEC.
11232 (UNSPEC_VPKUWUM): Likewise.
11233 (UNSPEC_VPKSHSS): Likewise.
11234 (UNSPEC_VPKSWSS): Likewise.
11235 (UNSPEC_VPKUHUS): Likewise.
11236 (UNSPEC_VPKSHUS): Likewise.
11237 (UNSPEC_VPKUWUS): Likewise.
11238 (UNSPEC_VPKSWUS): Likewise.
11239 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
11240 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
11241 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
11242 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
11243 (UNSPEC_VUPKHSB): Likewise.
11244 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
11245 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
11246 (UNSPEC_VUPKHSH): Likewise.
11247 (UNSPEC_VUPKLSB): Likewise.
11248 (UNSPEC_VUPKLSH): Likewise.
11249 (VI2): Likewise.
11250 (VI_char): Likewise.
11251 (VI_scalar): Likewise.
11252 (VI_unit): Likewise.
11253 (VP): Likewise.
11254 (VP_small): Likewise.
11255 (VP_small_lc): Likewise.
11256 (VU_char): Likewise.
11257 (add<mode>3): Likewise.
11258 (altivec_vaddcuw): Likewise.
11259 (altivec_vaddu<VI_char>s): Likewise.
11260 (altivec_vadds<VI_char>s): Likewise.
11261 (sub<mode>3): Likewise.
11262 (altivec_vsubcuw): Likewise.
11263 (altivec_vsubu<VI_char>s): Likewise.
11264 (altivec_vsubs<VI_char>s): Likewise.
11265 (altivec_vavgs<VI_char>): Likewise.
11266 (altivec_vcmpbfp): Likewise.
11267 (altivec_eq<mode>): Likewise.
11268 (altivec_gt<mode>): Likewise.
11269 (altivec_gtu<mode>): Likewise.
11270 (umax<mode>3): Likewise.
11271 (smax<mode>3): Likewise.
11272 (umin<mode>3): Likewise.
11273 (smin<mode>3): Likewise.
11274 (altivec_vpkuhum): Likewise.
11275 (altivec_vpkuwum): Likewise.
11276 (altivec_vpkshss): Likewise.
11277 (altivec_vpkswss): Likewise.
11278 (altivec_vpkuhus): Likewise.
11279 (altivec_vpkshus): Likewise.
11280 (altivec_vpkuwus): Likewise.
11281 (altivec_vpkswus): Likewise.
11282 (altivec_vpks<VI_char>ss): Likewise.
11283 (altivec_vpks<VI_char>us): Likewise.
11284 (altivec_vpku<VI_char>us): Likewise.
11285 (altivec_vpku<VI_char>um): Likewise.
11286 (altivec_vrl<VI_char>): Likewise.
11287 (altivec_vsl<VI_char>): Likewise.
11288 (altivec_vsr<VI_char>): Likewise.
11289 (altivec_vsra<VI_char>): Likewise.
11290 (altivec_vsldoi_<mode>): Likewise.
11291 (altivec_vupkhsb): Likewise.
11292 (altivec_vupkhs<VU_char>): Likewise.
11293 (altivec_vupkls<VU_char>): Likewise.
11294 (altivec_vupkhsh): Likewise.
11295 (altivec_vupklsb): Likewise.
11296 (altivec_vupklsh): Likewise.
11297 (altivec_vcmpequ<VI_char>_p): Likewise.
11298 (altivec_vcmpgts<VI_char>_p): Likewise.
11299 (altivec_vcmpgtu<VI_char>_p): Likewise.
11300 (abs<mode>2): Likewise.
11301 (vec_unpacks_hi_v16qi): Likewise.
11302 (vec_unpacks_hi_v8hi): Likewise.
11303 (vec_unpacks_lo_v16qi): Likewise.
11304 (vec_unpacks_hi_<VP_small_lc>): Likewise.
11305 (vec_unpacks_lo_v8hi): Likewise.
11306 (vec_unpacks_lo_<VP_small_lc>): Likewise.
11307 (vec_pack_trunc_v8h): Likewise.
11308 (vec_pack_trunc_v4si): Likewise.
11309 (vec_pack_trunc_<mode>): Likewise.
11310
11311 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
11312 V2DI builtins.
11313 (vec_vmaxsd): Likewise.
11314 (vec_vmaxud): Likewise.
11315 (vec_vminsd): Likewise.
11316 (vec_vminud): Likewise.
11317 (vec_vpksdss): Likewise.
11318 (vec_vpksdus): Likewise.
11319 (vec_vpkudum): Likewise.
11320 (vec_vpkudus): Likewise.
11321 (vec_vrld): Likewise.
11322 (vec_vsld): Likewise.
11323 (vec_vsrad): Likewise.
11324 (vec_vsrd): Likewise.
11325 (vec_vsubudm): Likewise.
11326 (vec_vupkhsw): Likewise.
11327 (vec_vupklsw): Likewise.
11328
e70670cf
JH
113292013-05-29 Jan Hubicka <jh@suse.cz>
11330
11331 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11332 flags; reorder rest of fields in more consistent way.
11333 (varpool_node): Remove analyzed, finalized and alias.
11334 (cgraph_ndoe): Likewise.
11335 (symtab_alias_ultimate_target): New function.
11336 (cgraph_function_node): Move offline.
11337 (cgraph_reset_node): Declare.
11338 (cgraph_comdat_can_be_unshared_p): Remove.
11339 (varpool_remove_initializer): Declare.
11340 (varpool_first_defined_variable, varpool_next_defined_variable
11341 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11342 (cgraph_function_with_gimple_body_p): Update.
11343 (varpool_all_refs_explicit_p): Update.
11344 (symtab_alias_target): New function.
11345 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11346 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11347 (cgraph_function_or_thunk_node): Simplify using
11348 symtab_alias_ultimate_target.
e70670cf
JH
11349 (varpool_variable_node): Likewise.
11350 * cgraph.c (cgraph_create_function_alias): Update.
11351 (cgraph_add_thunk): Update.
11352 (cgraph_remove_node): Update.
11353 (dump_cgraph_node): Do not dump removed flags.
11354 (cgraph_function_body_availability): Update.
11355 (cgraph_propagate_frequency): Update.
11356 (verify_cgraph_node): Check sanity of local flag.
11357 (cgraph_function_node): Move here from cgraph.h; revamp for
11358 cgraph_function_or_thunk_node.
11359 * lto-symtab.c (lto_varpool_replace_node): Update.
11360 (lto_symtab_resolve_can_prevail_p): Update.
11361 (lto_symtab_merge_cgraph_nodes): Update.
11362 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11363 propagate_constants_accross_call, devirtualization_time_bonus,
11364 ipcp_propagate_stage): Update.
11365 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11366 * ipa-inline-transform.c (clone_inlined_nodes,
11367 preserve_function_body_p): Update.
e70670cf
JH
11368 * ipa-reference.c (propagate): Update.
11369 (write_node_summary_p): Update.
11370 * toplev.c (wrapup_global_declaration_2): Update.
11371 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11372 (analyze_function) ... this one.
11373 (cgraph_process_new_functions): Update.
11374 (cgraph_reset_node): Export.
11375 (cgraph_finalize_function): Update.
11376 (cgraph_add_new_function): Update.
11377 (process_function_and_variable_attributes): Update.
11378 (varpool_finalize_decl): Update.
11379 (symbol_finalized): Remove.
11380 (symbol_finalized_and_needed): Rename to ...
11381 (symbol_defined_and_needed): ... update.
11382 (cgraph_analyze_functions): Update.
11383 (handle_alias_pairs): Update.
11384 (mark_functions_to_output): Update.
11385 (assemble_thunk): Update.
11386 (output_in_order): Update.
11387 (output_weakrefs): Update.
11388 (finalize_compilation_unit): Update.
11389 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11390 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11391 input_node, input_varpool_node): Update.
11392 * dbxout.c (dbxout_expand_expr): Update.
11393 * cgraphclones.c (cgraph_clone_node): Update.
11394 (cgraph_copy_node_for_versioning): Update.
11395 (cgraph_materialize_clone): Update.
11396 (cgraph_materialize_all_clones): Update.
11397 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11398 propagate_pure_const, propagate_nothrow): Update.
11399 * lto-streamer-out.c (lto_output, write_symbol): Update.
11400 * ipa-utils.c (ipa_reverse_postorder): Update.
11401 * ipa-inline.c (can_inline_edge_p): Update.
11402 (update_caller_keys, ipa_inline): Update.
11403 * dwarf2out.c (reference_to_unused,
11404 premark_types_used_by_global_vars_helper): Update.
11405 * tree-eh.c (tree_could_trap_p): Update.
11406 * ipa-split.c (consider_split, execute_split_functions): Update.
11407 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11408 has_addr_references_p): Update; move ahead in file for better
11409 readability.
e70670cf
JH
11410 (process_references): Simplify.
11411 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11412 bodies are removed.
11413 (cgraph_comdat_can_be_unshared_p): Make static.
11414 (cgraph_externally_visible_p): Update.
11415 (varpool_externally_visible_p): Update.
11416 (function_and_variable_visibility): Update.
11417 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11418 ipa_tm_mark_force_output_node): Update.
11419 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11420 estimate_edge_devirt_benefit, inline_generate_summary,
11421 inline_write_summary): Update.
11422 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11423 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11424 (ipa_print_node_params, ipa_prop_read_section,
11425 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11426 * varasm.c (mark_decl_referenced): Update.
11427 (assemble_alias, dump_tm_clone_pairs): Update.
11428 * tree-inline.c (copy_bb): Update.
11429 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11430 Update.
11431 * symtab.c (dump_symtab_base): Print new flags.
11432 (verify_symtab_base): Verify new flags.
11433 (symtab_alias_ultimate_target): New function.
11434 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11435 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11436 Update.
c1e183a9
UB
11437 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11438 Update.
e70670cf
JH
11439 * i386.c (ix86_get_function_versions_dispatcher,
11440 ix86_generate_version_dispatcher_body): Update.
11441 (fold_builtin_cpu): Use varpool_add_new_variable.
11442 * varpool.c (varpool_remove_initializer): Break out from ...
11443 (varpool_remove_node): ... this one.
11444 (dump_varpool_node, varpool_node_for_asm,
11445 cgraph_variable_initializer_availability, varpool_analyze_node,
11446 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11447 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11448 Update.
e70670cf 11449
182802ad
JH
114502013-05-29 Jan Hubicka <jh@suse.cz>
11451
11452 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11453
8190b609
ER
114542013-05-29 Easwaran Raman <eraman@google.com>
11455
11456 PR tree-optimization/57442
11457 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11458 when control exits the main loop.
11459
69f5aa9b
SKS
114602013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11461
11462 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11463 and RX600.
c1e183a9 11464 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11465 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11466 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11467 option.
11468
4b847da9
BS
114692013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11470
11471 PR tree-optimization/57441
11472 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11473 Don't limit size of incr_vec to number of candidates.
11474
4fc43c39
SE
114752013-05-29 Steve Ellcey <sellcey@imgtec.com>
11476
11477 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11478 and mips16 directories.
c1e183a9 11479 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11480 (MULTILIB_DIRNAMES): Ditto.
11481 (MULTILIB_EXCEPTIONS): Add new exceptions.
11482 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11483 (MULTILIB_DIRNAMES): Ditto.
11484 (MULTILIB_EXCEPTIONS): Add new exceptions.
11485
12211b99 114862012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11487 Marcus Shawcroft <marcus.shawcroft@arm.com>
11488
11489 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11490 SYMBOL_TINY_ABSOLUTE.
11491 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11492 SYMBOL_TINY_ABSOLUTE.
11493 (aarch64_expand_mov_immediate): Likewise.
11494 (aarch64_classify_symbol): Likewise.
11495 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11496 Permit SYMBOL_TINY_ABSOLUTE.
11497 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11498
12211b99 114992013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11500 Marcus Shawcroft <marcus.shawcroft@arm.com>
11501
11502 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11503 Refactor if/switch. Replace gcc_assert with if.
11504
c0186656
GG
115052013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11506
11507 * config/i386/i386.c (initial_ix86_tune_features): Enable
11508 FP Reassociation for AMD bdver1 and bdver2.
11509
d20188f3
MJ
115102013-05-29 Martin Jambor <mjambor@suse.cz>
11511
11512 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11513 and IMAGPART_EXPR do not occur within other handled_components.
11514
292cba13
RB
115152013-05-29 Richard Biener <rguenther@suse.de>
11516
11517 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11518 access on whether the use is in the BB we currently try to
11519 vectorize.
11520 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11521 vectorize to vect_bb_slp_scalar_cost.
11522
6eddf228
RB
115232013-05-29 Richard Biener <rguenther@suse.de>
11524
11525 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11526 computing scalar cost offsetted by stmts that are kept live
11527 by scalar uses.
11528 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11529 for computation of scalar cost.
11530
7df36117
SE
115312013-05-28 Steve Ellcey <sellcey@mips.com>
11532
11533 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11534
36536d79
BI
115352013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11536
11537 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11538 array notation built-in reduction functions.
11539 * doc/passes.texi (Passes): Added documentation about changes done
11540 for Cilk Plus.
11541 * doc/invoke.texi (C Dialect Options): Added documentation about
11542 the -fcilkplus flag.
11543 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11544 (BUILTINS_DEF): Depend on cilkplus.def.
11545 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11546 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11547 * cilkplus.def: New file.
11548
12211b99 115492013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11550
11551 PR rtl-optimization/57439
11552 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11553
9daf6dbb
ER
115542013-05-28 Easwaran Raman <eraman@google.com>
11555
11556 PR tree-optimization/57337
11557 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11558 (find_insert_point): Correctly identify the insertion point
11559 when two statements with the same UID is compared.
11560
fbd7e877
RB
115612013-05-28 Richard Biener <rguenther@suse.de>
11562
11563 PR tree-optimization/56787
11564 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11565 from the list of data references.
11566 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11567 clobbers.
11568 (vect_analyze_loop_operations): Likewise.
11569 (vect_transform_loop): Remove clobbers.
11570
bbba1117
MJ
115712013-05-28 Martin Jambor <mjambor@suse.cz>
11572
11573 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11574 and REALPART_EXPRs have scalar type.
11575
bd388c2a
RB
115762013-05-28 Richard Biener <rguenther@suse.de>
11577
11578 PR tree-optimization/57411
11579 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11580 virtual operands.
11581 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11582 virtual operand propagation.
11583
2f56a311
EB
115842013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11585
11586 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11587 destination register for bmasksi_vis.
11588 (vector_init_bshuffle): Likewise.
11589 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11590
5c3eacbb
EB
115912013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11592
11593 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11594 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11595 mode if the instruction isn't available in the original mode.
11596 * config/sparc/sparc.opt (mfix-ut699): New option.
11597 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11598 (divdf3): Turn into expander.
11599 (divdf3_nofix): New insn.
11600 (divdf3_fix): Likewise.
11601 (divsf3): Disable if -mfix-ut699.
11602 (sqrtdf2): Turn into expander.
11603 (sqrtdf2_nofix): New insn.
11604 (sqrtdf2_fix): Likewise.
11605 (sqrtsf2): Disable if -mfix-ut699.
11606
a1756c0a
RB
116072013-05-27 Richard Biener <rguenther@suse.de>
11608
11609 PR middle-end/57412
11610 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11611 block for the new loop.
11612
5a892248
RB
116132013-05-27 Richard Biener <rguenther@suse.de>
11614
11615 PR tree-optimization/57343
11616 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
11617 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
11618 (number_of_iterations_cond): Do not build the folded tree.
11619
d1de852b
RB
116202013-05-27 Richard Biener <rguenther@suse.de>
11621
11622 Revert
11623 PR middle-end/57381
11624 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11625 OEP_CONSTANT_ADDRESS_OF retained.
11626
11627 PR tree-optimization/57417
11628 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
11629 for unchanged base.
11630 (set_ssa_val_to): Compare addresses using
11631 get_addr_base_and_unit_offset.
11632
12211b99 116332013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
11634
11635 PR rtl-optimization/56833
11636 * postreload.c (move2add_record_mode): New function.
11637 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
11638 (move2add_use_add2_insn): Use move2add_record_sym_value.
11639 (move2add_use_add3_insn): Likewise.
11640 (reload_cse_move2add): Use move2add_valid_value_p and
11641 move2add_record_mode. Invalidate call-clobbered and REG_INC
11642 affected regs by setting reg_mode to VOIDmode.
11643 (move2add_note_store): Don't pretend the inside of a SUBREG is
11644 the actual destination. Invalidate single/leading registers by
11645 setting reg_mode to VOIDmode.
11646 Use move2add_record_sym_value, move2add_valid_value_p and
11647 move2add_record_mode.
11648
b03be25f
RB
116492013-05-27 Richard Biener <rguenther@suse.de>
11650
11651 PR tree-optimization/57396
11652 * tree-affine.c (double_int_constant_multiple_p): Properly
11653 return false for val == 0 and div != 0.
11654
44e88db2
RS
116552013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11656
11657 * config/mips/mips.h: Use #elif in preprocessor conditions.
11658
3b859704
RS
116592013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11660
11661 PR target/53916
11662 * config/mips/constraints.md (kl): New constraint.
11663 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
11664 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
11665 constraint for operand 0. Split after CSE for MIPS16. Emit a move
11666 from LO for MIPS16.
11667 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
11668
c979d5f5
RS
116692013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11670
11671 PR target/55777
11672 * config/mips/mips.c (mips_can_inline_p): New function.
11673 (TARGET_CAN_INLINE_P): Define.
11674
8e90de43
SB
116752013-05-25 Steven Bosscher <steven@gcc.gnu.org>
11676
11677 * sched-int.h (ds_t, dw_t): Make unsigned int.
11678 Fix documentation that describes how all the ds_t bits are used.
11679 Reserve the last bit for delayed-branch scheduling.
11680 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
11681 (BITS_PER_DEP_WEAK): Fix definition and documentation.
11682 (gen_dep_weak_1): Remove prototype.
11683 * sched-deps.c (get_dep_weak_1): Make static.
11684 * target.def (speculate_insn, needs_block_p, gen_spec_check,
11685 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
11686 * doc/tm.texi: Regenerate.
11687 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
11688
cb5cb194
SB
116892013-05-24 Steven Bosscher <steven@gcc.gnu.org>
11690
11691 PR debug/56950
11692 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
11693
5bd93ff6
NS
116942013-05-24 Nathan Sidwell <nathan@codesourcery.com>
11695 Sandra Loosemore <sandra@codesourcery.com>
11696
11697 * config.gcc (powerpc-*): Allow native for with-cpu.
11698
2343af65
JL
116992013-05-24 Jeff Law <law@redhat.com>
11700
11701 PR tree-optimization/57124
11702 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
11703 conversion feeding a condition if the range has an overflow
11704 if -fstrict-overflow. Add warnings for when we do make the
11705 transformation.
11706
3ad695b9
DC
117072013-05-24 Dehao Chen <dehao@google.com>
11708
04960246 11709 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
11710 (locus_discrim_hasher): Likewise.
11711 (locus_discrim_hasher::hash): Likewise.
11712 (locus_discrim_hasher::equal): Likewise.
11713
82338059
MJ
117142013-05-24 Martin Jambor <mjambor@suse.cz>
11715
11716 PR tree-optimization/57294
11717 * cgraph.h (ipa_record_stmt_references): Declare.
11718 * cgraphbuild.c (ipa_record_stmt_references): New function.
11719 (build_cgraph_edges): Use ipa_record_stmt_references.
11720 (rebuild_cgraph_edges): Likewise.
11721 (cgraph_rebuild_references): Likewise.
11722 * ipa-prop.c (ipa_modify_call_arguments): Discard references
11723 associated with the old statement and build references from the
11724 newly built statements.
11725 * ipa-ref.c (ipa_remove_stmt_references): New function.
11726 * ipa-ref.h (ipa_remove_stmt_references): Declare.
11727
1ccd4874
VM
117282013-05-24 Vladimir Makarov <vmakarov@redhat.com>
11729
55805e54 11730 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 11731 mem-mem moves.
55805e54 11732 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 11733 too.
55805e54 11734 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
11735 secondary memory moves.
11736 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
11737 reg set up in the current insn.
11738
25e25c73
DC
117392013-05-24 Dehao Chen <dehao@google.com>
11740
04960246 11741 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
11742 hash function.
11743 (locus_descrim_hasher::equal): Likewise.
04960246 11744 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
11745 (make_edges): Likewise.
11746 (next_discriminator_for_locus): Likewise.
11747 (same_line_p): Likewise.
11748 (assign_discriminators): Likewise.
11749 (make_cond_expr_edges): Likewise.
11750 (make_gimple_switch_edges): Likewise.
11751 (make_goto_expr_edges): Likewise.
11752 (make_gimple_asm_edges): Likewise.
11753
50d38551
IB
117542013-05-24 Ian Bolton <ian.bolton@arm.com>
11755
11756 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
11757 X format specifier to only display bottom 16 bits.
11758 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
11759 immediate to match for operand 2, since it will be masked.
11760
aea0101d
RB
117612013-05-24 Richard Biener <rguenther@suse.de>
11762
11763 PR tree-optimization/57287
11764 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
11765 all SSA names that occur in abnormal PHIs.
11766
634e03d3
AI
117672013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
11768
11769 PR tree-ssa/57385
11770 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
11771 that index is not negative.
11772
b17c024f
EB
117732013-05-24 Eric Botcazou <ebotcazou@adacore.com>
11774
11775 PR rtl-optimization/55177
11776 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
11777 (simplify_byte_swapping_operation): New.
11778 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
11779 (simplify_relational_operation_1): Deal with BSWAP.
11780
46aeac1b
RH
117812013-05-23 Richard Henderson <rth@redhat.com>
11782
11783 PR target/56742
11784 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
11785 (ix86_reorg): Call it.
11786
70cc1536
UB
117872013-05-23 Uros Bizjak <ubizjak@gmail.com>
11788
11789 PR target/57379
11790 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
11791 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
11792 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
11793
b3851501
CB
117942013-05-23 Christian Bruel <christian.bruel@st.com>
11795
11796 PR debug/57351
11797 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
11798
12211b99 117992013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
11800 Marcus Shawcroft <marcus.shawcroft@arm.com>
11801
11802 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
11803 * config/aarch64/constraints.md (Usa): Remove.
11804 * doc/md.texi (AArch64 Usa): Remove.
11805
12211b99 118062013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
11807 Marcus Shawcroft <marcus.shawcroft@arm.com>
11808
11809 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
11810 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
11811 * config/aarch64/predicates.md (aarch64_const_address): Remove.
11812 (aarch64_mov_operand): Use aarch64_mov_operand_p.
11813
12211b99 118142013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
11815
11816 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
11817 instruction (AdvSIMD).
11818 * config/aarch64/aarch64-builtins.c
11819 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
11820 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
11821
76c36cb1 118222013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
11823
11824 PR middle-end/57347
11825 * tree.h (contains_bitfld_component_ref_p): Declare.
11826 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
11827 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
11828 caller.
7d2fb524
MJ
11829 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
11830 not access a bit-field. Assert all final offsets are byte-aligned.
11831
ce521ae6
RB
118322013-05-23 Richard Biener <rguenther@suse.de>
11833
11834 PR tree-optimization/57380
11835 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
11836 least one invariant or re-used load.
11837 * passes.c (init_optimization_passes): Move pass_phiprop before
11838 pass_forwprop.
11839
75c7257f
JG
118402013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
11841
11842 * config/aarch64/aarch64-simd.md
11843 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
11844
af6d44b5
RB
118452013-05-23 Richard Biener <rguenther@suse.de>
11846
11847 PR middle-end/57381
11848 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11849 OEP_CONSTANT_ADDRESS_OF retained.
11850
bd3647bf
JJ
118512013-05-23 Jakub Jelinek <jakub@redhat.com>
11852
11853 PR middle-end/57344
70cc1536
UB
11854 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
11855 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 11856
a55757ea
RB
118572013-05-23 Richard Biener <rguenther@suse.de>
11858
11859 PR rtl-optimization/57341
11860 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
11861 instead of true_dependence.
11862
cfb00b41
DM
118632013-05-22 David Malcolm <dmalcolm@redhat.com>
11864
dd1c676f
DM
11865 * bb-reorder.c (branch_threshold): Make const.
11866 (exec_threshold): Ditto.
cfb00b41 11867
f62511da 118682013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11869 Pat Haugen <pthaugen@us.ibm.com>
11870 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11871
11872 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
11873 documentation for the power8 crypto builtins.
11874
11875 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
11876
11877 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
11878 macros for defining power8 builtin functions.
11879 (BU_P8V_AV_2): Likewise.
11880 (BU_P8V_AV_P): Likewise.
11881 (BU_P8V_VSX_1): Likewise.
11882 (BU_P8V_OVERLOAD_1): Likewise.
11883 (BU_P8V_OVERLOAD_2): Likewise.
11884 (BU_CRYPTO_1): Likewise.
11885 (BU_CRYPTO_2): Likewise.
11886 (BU_CRYPTO_3): Likewise.
11887 (BU_CRYPTO_OVERLOAD_1): Likewise.
11888 (BU_CRYPTO_OVERLOAD_2): Likewise.
11889 (XSCVSPDP): Fix typo, point to the correct instruction.
11890 (VCIPHER): Add power8 crypto builtins.
11891 (VCIPHERLAST): Likewise.
11892 (VNCIPHER): Likewise.
11893 (VNCIPHERLAST): Likewise.
11894 (VPMSUMB): Likewise.
11895 (VPMSUMH): Likewise.
11896 (VPMSUMW): Likewise.
11897 (VPERMXOR_V2DI): Likewise.
11898 (VPERMXOR_V4SI: Likewise.
11899 (VPERMXOR_V8HI: Likewise.
11900 (VPERMXOR_V16QI: Likewise.
11901 (VSHASIGMAW): Likewise.
11902 (VSHASIGMAD): Likewise.
11903 (VPMSUM): Likewise.
11904 (VPERMXOR): Likewise.
11905 (VSHASIGMA): Likewise.
11906
11907 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11908 __CRYPTO__ if the crypto instructions are available.
11909 (altivec_overloaded_builtins): Add support for overloaded power8
11910 builtins.
11911
11912 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
11913 support for power8 crypto builtins.
11914 (builtin_function_type): Likewise.
11915 (altivec_init_builtins): Add support for builtins that take vector
11916 long long (V2DI) arguments.
11917
11918 * config/rs6000/crypto.md: New file, define power8 crypto
11919 instructions.
11920
119212013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11922 Pat Haugen <pthaugen@us.ibm.com>
11923 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11924
11925 * doc/invoke.texi (Option Summary): Add power8 options.
11926 (RS/6000 and PowerPC Options): Likewise.
11927
11928 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
11929 constraints.md instead of rs6000.h. Reorder w* constraints. Add
11930 wm, wn, wr documentation.
11931
f43245d1 11932 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
11933 registers if direct move instructions are enabled.
11934 (wn): New constraint for no registers.
11935 (wq): New constraint for quad word even GPR registers.
11936 (wr): New constraint if 64-bit instructions are enabled.
11937 (wv): New constraint if power8 vector instructions are enabled.
11938 (wQ): New constraint for quad word memory locations.
11939
f43245d1 11940 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
11941 constraint for 0..15 for crypto instructions.
11942 (gpc_reg_operand): If VSX allow registers in VSX registers as well
11943 as GPR and floating point registers.
11944 (int_reg_operand): New predicate to match only GPR registers.
11945 (base_reg_operand): New predicate to match base registers.
11946 (quad_int_reg_operand): New predicate to match even GPR registers
11947 for quad memory operations.
11948 (vsx_reg_or_cint_operand): New predicate to allow vector logical
11949 operations in both GPR and VSX registers.
11950 (quad_memory_operand): New predicate for quad memory operations.
11951 (reg_or_indexed_operand): New predicate for direct move support.
11952
f43245d1 11953 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
11954 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
11955 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
11956 (POWERPC_MASKS): Add power8 options.
11957 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
11958 various options.
11959
f43245d1 11960 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
11961 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
11962
f43245d1 11963 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
11964 (-mpower8-fusion): New power8 options.
11965 (-mpower8-fusion-sign): Likewise.
11966 (-mpower8-vector): Likewise.
11967 (-mcrypto): Likewise.
11968 (-mdirect-move): Likewise.
11969 (-mquad-memory): Likewise.
11970
f43245d1 11971 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
11972 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
11973 registers.
70cc1536 11974 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
11975 (rs6000_debug_vector_unit): Add p8_vector.
11976 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
11977 definitions. Also print fusion state.
11978 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
11979 (rs6000_builtin_mask_calculate): Add power8 builtin support.
11980 (rs6000_option_override_internal): Add support for power8.
11981 (rs6000_common_init_builtins): Add debugging for skipped builtins
11982 if -mdebug=builtin.
11983 (rs6000_adjust_cost): Add power8 support.
11984 (rs6000_issue_rate): Likewise.
11985 (insn_must_be_first_in_group): Likewise.
11986 (insn_must_be_last_in_group): Likewise.
11987 (force_new_group): Likewise.
11988 (rs6000_register_move_cost): Likewise.
11989 (rs6000_opt_masks): Likewise.
11990
11991 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
11992 power8 capable assembler, default to power7 options.
11993 (TARGET_DIRECT_MOVE): Likewise.
11994 (TARGET_CRYPTO): Likewise.
11995 (TARGET_P8_VECTOR): Likewise.
11996 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
11997 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
11998 (VECTOR_MEM_P8_VECTOR_P): Likewise.
11999 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
12000 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
12001 (TARGET_XSCVDPSPN): Likewise.
12002 (TARGET_XSCVSPDPN): Likewsie.
12003 (TARGET_SYNC_HI_QI): Likewise.
12004 (TARGET_SYNC_TI): Likewise.
12005 (MASK_CRYPTO): Likewise.
12006 (MASK_DIRECT_MOVE): Likewise.
12007 (MASK_P8_FUSION): Likewise.
12008 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
12009 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
12010 temporary used by some of the direct move instructions to get two FP
12011 temporary registers does not force creation of a stack frame.
f62511da
MM
12012 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
12013 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
12014 that any VSX registers are tieable, even if they are also an
12015 Altivec vector mode.
12016 (r6000_reg_class_enum): Add wm, wr, wv constraints.
12017 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
12018 (RS6000_BTM_CRYPTO): Likewise.
12019 (RS6000_BTM_COMMON): Likewise.
12020
12021 * config/rs6000/rs6000.md (cpu attribute): Add power8.
12022 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
12023 (enum rs6000_vector): Add power8 vector support.
12024
73a1a707
RR
120252013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12026
12027 PR target/19599
12028 PR target/57340
12029 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
12030 (any_sibcall_could_use_r3): this and handle indirect calls.
12031 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
12032
d28073d4
BS
120332013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12034
12035 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
12036
bee0b10c
RB
120372013-05-22 Richard Biener <rguenther@suse.de>
12038
12039 PR middle-end/57349
12040 * profile.c (branch_prob): Do not split blocks that are
12041 abnormally receiving from ECF_RETURNS_TWICE functions.
12042
98409b51
RS
120432013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12044
12045 * recog.c (offsettable_address_addr_space_p): Fix calculation of
12046 address mode. Move pointer mode initialization to the same place.
12047
c0602ab8
MZ
120482013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12049
12050 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
12051 while it has any effect.
12052
4f7a634e
ER
120532013-05-21 Easwaran Raman <eraman@google.com>
12054
12055 PR tree-optimization/57322
9daf6dbb
ER
12056 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
12057 UID of the statement added to the BB to be 1.
4f7a634e 12058
a4ce1258
JJ
120592013-05-21 Jakub Jelinek <jakub@redhat.com>
12060
12061 PR tree-optimization/57331
70cc1536
UB
12062 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
12063 of conversion from pointer type to integral type with integer.
a4ce1258 12064
1b14621a
MJ
120652013-05-21 Martin Jambor <mjambor@suse.cz>
12066
12067 PR lto/57289
12068 * ipa-prop.c (ipa_read_node_info): Process param_used and
12069 controlled_uses in the same order as when writing.
12070
e60661f0
MG
120712013-05-21 Magnus Granberg <baldrick@free.fr>
12072
12073 PR plugins/56754
ee49aa34 12074 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 12075
4a61be9a
RB
120762013-05-21 Richard Biener <rguenther@suse.de>
12077
12078 PR tree-optimization/57318
12079 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
12080 estimate stmts with side-effects as likely eliminated.
12081
c52da5f7
RB
120822013-05-21 Richard Biener <rguenther@suse.de>
12083
12084 PR tree-optimization/57330
12085 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
12086 preserve the call stmts fntype.
12087
7ec67e2a
RB
120882013-05-21 Richard Biener <rguenther@suse.de>
12089
12090 PR tree-optimization/57303
12091 * tree-ssa-sink.c (statement_sink_location): Improve killing
12092 stmt detection and properly handle self-assignments.
12093
b112d513
CB
120942013-05-21 Christian Bruel <christian.bruel@st.com>
12095
55805e54
YR
12096 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
12097 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
12098 registers. Set register size out of the PARALLEL loop.
12099
14c2ec26
OE
121002013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
12101
12102 PR target/56547
12103 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
12104 (*fmasf4, *fmasf4_media): New insns.
12105
da734fa1
RS
121062013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12107
12108 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
12109 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
12110 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
12111 (mips_idiv_insns): Update the comments to say that the returned
12112 instruction counts are in units of BASE_INSN_LENGTH.
12113 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
12114 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
12115 using 2 rather than 4 as the length of indirect MIPS16 and
12116 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
12117 length of a NOP. Don't divide MIPS16 lengths by 2.
12118 (mips16_split_long_branches): Assume a branch is long if the
12119 length is greater than 4 rather than 8.
12120 * config/mips/mips.md (length): Give MIPS16 lengths directly,
12121 rather than multiplying them by 2. Multiply instruction counts
12122 by BASE_INSN_LENGTH rather than 4.
12123 (*jump_mips16, tls_get_tp_mips16_<mode>)
12124 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
12125
13719e8b
RS
121262013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12127
12128 * config/mips/mips.md (extended_mips16): Remove branch case.
12129 (length): Remove duplicated extended_mips16 test.
12130
c3850d14
RS
121312013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12132
12133 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
12134
8da2e059
RS
121352013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
12136
12137 * recog.h (Recog_data): Rename to...
12138 (recog_data_d): ...this.
12139 (recog_data): Update accordingly.
12140 * recog.c (recog_data): Likewise.
12141 * reload.c (save_recog_data): Likewise.
12142 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
12143 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
12144
2df013f3
JB
121452013-05-17 Julian Brown <julian@codesourcery.com>
12146
12147 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
12148 found in a REG_EQUAL note, invalidate it.
12149
371e77e3 121502013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
12151
12152 * tree-ssa-reassoc.c (find_insert_point): New function.
12153 (insert_stmt_after): Likewise.
12154 (get_def_stmt): Likewise.
12155 (ensure_ops_are_available): Likewise.
12156 (not_dominated_by): Likewise.
12157 (rewrite_expr_tree): Do not move statements beyond what is
12158 necessary. Remove call to swap_ops_for_binary_stmt...
12159 (reassociate_bb): ... and move it here.
12160 (build_and_add_sum): Assign UIDs for new statements.
12161 (linearize_expr): Likewise.
12162 (do_reassoc): Renumber gimple statement UIDs.
12163
e01c7cca
JH
121642013-05-17 Jan Hubicka <jh@suse.cz>
12165
12166 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
12167 weakrefs.
12168 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
12169 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
12170 weakrefs.
e01c7cca
JH
12171 (output_weakrefs): Update.
12172
c3272a92
PCC
121732013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
12174 Martin Jambor <mjambor@suse.cz>
12175
12176 PR middle-end/57276
12177 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
12178 value that corresponds to the given aggval is found in values vector.
12179
11c2aa39
UB
121802013-05-17 Uros Bizjak <ubizjak@gmail.com>
12181
12182 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
12183 sse, sse2, sse3, ssse3 and sse4a flags to options.
12184
abecc8c6
DM
121852013-05-17 David Malcolm <dmalcolm@redhat.com>
12186
12187 * gengtype-state.c: (s_expr_writer): New class, to handle
12188 prettifying of output layout of s-expressions.
12189 (state_writer): New class, to write out gtype.state.
12190 (state_written_type_count): Move this variable into member data of
12191 state_writer.
12192 (s_expr_writer::s_expr_writer): New code: constructor for new class
12193 (state_writer::state_writer(): ditto
12194 (s_expr_writer::write_new_line): New function
12195 (s_expr_writer::write_any_indent): ditto
12196 (s_expr_writer::begin_s_expr): ditto
12197 (s_expr_writer::end_s_expr): ditto
12198 (write_state_fileloc): convert to method of state_writer...
12199 (state_writer:: write_state_fileloc): ...and use methods of
12200 s_expr_writer to write indentation into the gtype.state output file
12201 to visually represent the hierarchical structure of the list
12202 structures
12203 (write_state_fields): ditto, renaming to...
12204 (state_writer::write_state_fields)
12205 (write_state_a_string): ditto, renaming to...
12206 (state_writer::write_state_a_string)
12207 (write_state_string_option): ditto, renaming to...
12208 (state_writer::write_state_string_option)
12209 (write_state_type_option): ditto, renaming to...
12210 (state_writer::write_state_type_option)
12211 (write_state_nested_option): ditto, renaming to...
12212 (state_writer::write_state_nested_option)
12213 (write_state_option): ditto, renaming to...
12214 (state_writer::write_state_option)
12215 (write_state_options): ditto, renaming to...
12216 (state_writer::write_state_options)
12217 (write_state_lang_bitmap): ditto, renaming to...
12218 (state_writer::write_state_lang_bitmap)
12219 (write_state_version): ditto, renaming to...
12220 (state_writer::write_state_version)
12221 (write_state_scalar_type): ditto, renaming to...
12222 (state_writer::write_state_scalar_type)
12223 (write_state_string_type): ditto, renaming to...
12224 (state_writer::write_state_string_type)
12225 (write_state_undefined_type): ditto, renaming to...
12226 (state_writer::write_state_undefined_type)
12227 (write_state_struct_union_type): ditto, renaming to...
12228 (state_writer::write_state_struct_union_type)
12229 (write_state_struct_type): ditto, renaming to...
12230 (state_writer::write_state_struct_type)
12231 (write_state_user_struct_type): ditto, renaming to...
12232 (state_writer::write_state_user_struct_type)
12233 (write_state_lang_struct_type): ditto, renaming to...
12234 (state_writer::write_state_lang_struct_type)
12235 (write_state_param_struct_type): ditto, renaming to...
12236 (state_writer::write_state_param_struct_type)
12237 (write_state_pointer_type): ditto, renaming to...
12238 (state_writer::write_state_pointer_type)
12239 (write_state_array_type): ditto, renaming to...
12240 (state_writer::write_state_array_type)
12241 (write_state_gc_used): ditto, renaming to...
12242 (state_writer::write_state_gc_used)
12243 (write_state_common_type_content): ditto, renaming to...
12244 (state_writer::write_state_common_type_content)
12245 (write_state_type): ditto, renaming to...
12246 (state_writer::write_state_type)
12247 (write_state_pair_list): ditto, renaming to...
12248 (state_writer::write_state_pair_list)
12249 (write_state_pair): ditto, renaming to...
12250 (state_writer::write_state_pair)
12251 (write_state_typedefs): ditto, renaming to...
12252 (state_writer::write_state_typedefs)
12253 (write_state_structures): ditto, renaming to...
12254 (state_writer::write_state_structures)
12255 (write_state_param_structs): ditto, renaming to...
12256 (state_writer::write_state_param_structs)
12257 (write_state_variables): ditto, renaming to...
12258 (state_writer::write_state_variables)
12259 (write_state_srcdir): ditto, renaming to...
12260 (state_writer::write_state_srcdir)
12261 (write_state_files_list): ditto, renaming to...
12262 (state_writer::write_state_files_list)
12263 (write_state_languages): ditto, renaming to...
12264 (state_writer::write_state_languages)
12265 (write_state): create a state_writer instance and use it when
12266 writing out the state file
12267
d6545f29
MS
122682013-05-17 Mike Stump <mikestump@comcast.net>
12269
816a3f73 12270 PR rtl-optimization/57304
d6545f29
MS
12271 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
12272 accessing DF_REF_REAL_LOC.
12273
38c821cf
JJ
122742013-05-17 Jakub Jelinek <jakub@redhat.com>
12275
12276 PR rtl-optimization/57281
12277 PR rtl-optimization/57300
12278 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
12279 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
12280 what the other splitter did if the registers are dead.
12281
2a293391
RB
122822013-05-17 Richard Biener <rguenther@suse.de>
12283
12284 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
12285 MEM_REF offsets.
12286
17042d2b
JJ
122872013-05-17 Jakub Jelinek <jakub@redhat.com>
12288
12289 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
12290 linking.
12291
5b115c1f
MP
122922013-05-17 Marek Polacek <polacek@redhat.com>
12293
11c2aa39
UB
12294 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
12295 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 12296
52d84413
JJ
122972013-05-17 Jakub Jelinek <jakub@redhat.com>
12298
68119618
JJ
12299 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
12300 vect_external_def oprnd1 with loop_vinfo, try to emit
12301 optional cast, negation and and stmts on the loop preheader
12302 edge instead of into the pattern def seq.
12303
52d84413
JJ
12304 PR tree-optimization/57051
12305 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
12306 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
12307
17b962bd
NC
123082013-05-16 Nick Clifton <nickc@redhat.com>
12309
12310 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
12311 (rl78_is_naked_func): New function.
56aefbf7
UB
12312 (rl78_expand_prologue): Skip prologue generation for naked functions.
12313 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
12314 * doc/extend.texi (naked): Add RL78 to the list of processors
12315 that supports this attribute.
12316
b1a0f84e
JL
123172013-05-16 Jeff Law <law@redhat.com>
12318
12319 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
12320
af0e415b
UB
123212013-05-16 Uros Bizjak <ubizjak@gmail.com>
12322
12323 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
12324 cache parameters using detect_caches_amd also for CYRIX,
12325 NSC and TM2 signatures.
12326
19db293a
UB
123272013-05-16 Uros Bizjak <ubizjak@gmail.com>
12328 Dzianis Kahanovich <mahatma@eu.by>
12329
12330 PR target/45359
12331 PR target/46396
12332 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12333 VIA/Centaur processors and determine their cache parameters
12334 using detect_caches_amd.
12335
251a41b9
TJ
123362013-05-16 Teresa Johnson <tejohnson@google.com>
12337
12338 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12339 (rtl_verify_edges): New function.
12340 (rtl_verify_bb_insns): Ditto.
12341 (rtl_verify_bb_pointers): Ditto.
12342 (rtl_verify_bb_insn_chain): Ditto.
12343 (rtl_verify_fallthru): Ditto.
12344 (rtl_verify_bb_layout): Ditto.
12345 (rtl_verify_flow_info_1): Outline checks into new functions.
12346 (rtl_verify_flow_info): Ditto.
12347
f14540b6
SE
123482013-05-16 Steve Ellcey <sellcey@imgtec.com>
12349
12350 * cfghooks.c (copy_bbs): Add update_dominance argument.
12351 * cfghooks.h (copy_bbs): Update prototype.
12352 * tree-cfg.c (gimple_duplicate_sese_region):
12353 Add update_dominance argument.
12354 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12355 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12356 gimple_duplicate_sese_region call.
12357 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12358 Update copy_bbs call.
12359 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12360 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12361
7e9a3abb
JJ
123622013-05-16 Jakub Jelinek <jakub@redhat.com>
12363
12364 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12365 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12366 vect_recog_rotate_pattern.
12367 (vect_recog_rotate_pattern): New function.
12368
427b248d
JM
123692013-05-16 Jason Merrill <jason@redhat.com>
12370
12371 * Makefile.in (LLINKER): New variable.
12372 (mostlyclean): Remove link mutex.
12373 * configure.ac: Handle --enable-link-mutex.
12374 * lock-and-run.sh: New script.
12375
b871e3d2
RR
123762013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12377
12378 PR target/19599
12379 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12380 for NULL decl.
12381
ce858126
RO
123822013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12383
12384 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12385
798d3d04
GY
123862013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12387
12388 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12389 * config/arm/arm.c (next_consecutive_mem): New function.
12390 (gen_movmem_ldrd_strd): Likewise.
12391 * config/arm/arm.md (movmemqi): Update condition and code.
12392 (unaligned_loaddi, unaligned_storedi): New patterns.
12393
0baddc45
RO
123942013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12395
12396 * config.gcc: Obsolete *-*-solaris2.9*.
12397 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12398
aa9d5bcf
RB
123992013-05-16 Richard Biener <rguenther@suse.de>
12400
12401 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12402 earlier, after GRAPHITE transforms and IV canonicalization.
12403
5a0f4dd3
JJ
124042013-05-16 Jakub Jelinek <jakub@redhat.com>
12405
12406 * omp-low.c (extract_omp_for_data): For collapsed loops,
12407 if at least one of the loops is known at compile time to
12408 iterate zero times, set count to 0.
12409 (expand_omp_regimplify_p): New function.
12410 (expand_omp_for_generic): For collapsed loops, if at least
12411 one of the loops isn't known to iterate at least once,
12412 add runtime check with setting count to 0.
12413 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12414 For unsigned types if it isn't known at compile time that
12415 the loop will iterate at least once, add runtime check to bypass
12416 the whole loop if initial condition isn't true.
12417
e3753785
NS
124182013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12419
12420 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12421
43bb4dd1
MG
124222013-05-16 Marc Glisse <marc.glisse@inria.fr>
12423
12424 PR middle-end/57286
12425 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12426 transformations to avoid an infinite loop.
12427
3571dde6
MP
124282013-05-16 Marek Polacek <polacek@redhat.com>
12429
12430 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12431
b8b3f0ca
LE
124322013-05-15 Leif Ekblad <leif@rdos.net>
12433
12434 * config/i386/i386.c (ix86_decompose_address): Use
12435 DEFAULT_TLS_SEG_REG to access TLS segment register.
12436 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12437 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12438 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12439
e299a383
RS
124402013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12441
12442 PR target/57260
12443 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12444 sibling calls to functions that would normally be lazily bound,
12445 unless $gp is call-clobbered.
12446
e7208ea3
UB
124472013-05-15 Uros Bizjak <ubizjak@gmail.com>
12448
19db293a 12449 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12450 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12451 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12452 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12453 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12454 of TARGET_3DNOW.
12455 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12456
e7413f3d
AS
124572013-05-15 Andreas Schwab <schwab@suse.de>
12458
12459 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12460 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12461 third operand.
12462
ad4db775
TJ
124632013-05-15 Teresa Johnson <tejohnson@google.com>
12464
12465 * loop-unroll.c (report_unroll_peel): Check decision before
12466 emitting unroll/peel message.
12467
af205f67
TJ
124682013-05-15 Teresa Johnson <tejohnson@google.com>
12469
12470 * function.h (has_bb_partition): New rtl_data flag.
12471 (bb_reorder_complete): Ditto.
12472 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12473 instead of flag_reorder_blocks_and_partition.
12474 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12475 with some enhancements.
12476 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12477 * bb-reorder.c (connect_traces): Check for has_bb_partition
12478 instead of flag_reorder_blocks_and_partition.
12479 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12480 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12481 verify_hot_cold_block_grouping.
12482 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12483
9adcfa3c
RR
124842013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12485
12486 PR target/19599
12487 * config/arm/predicates.md (call_insn_operand): New predicate.
12488 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12489 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12490 if insn is not a tail call.
12491 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12492 registers.
12493 * config/arm/arm.h (enum reg_class): New caller save register class.
12494 (REG_CLASS_NAMES): Likewise.
12495 (REG_CLASS_CONTENTS): Likewise.
12496 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12497 without decls.
12498
ccb3ad87
RB
124992013-05-15 Richard Biener <rguenther@suse.de>
12500
12501 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12502 of MSG_OPTIMIZED_LOCATIONS.
12503 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12504 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12505 message.
12506 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12507 of MSG_OPTIMIZED_LOCATIONS.
12508 (execute_vect_slp): Likewise.
12509 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12510 (vect_create_cond_for_alias_checks): Likewise.
12511 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12512 (vect_recog_widen_mult_pattern): Likewise.
12513 (vect_recog_widen_sum_pattern): Likewise.
12514 (vect_recog_over_widening_pattern): Likewise.
12515 (vect_recog_widen_shift_pattern): Likewise.
12516 (vect_recog_vector_vector_shift_pattern): Likewise.
12517 (vect_recog_divmod_pattern): Likewise.
12518 (vect_recog_mixed_size_cond_pattern): Likewise.
12519 (vect_recog_bool_pattern): Likewise.
12520 (vect_pattern_recog_1): Likewise.
12521
48b1474e
MJ
125222013-05-15 Martin Jambor <mjambor@suse.cz>
12523
12524 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12525 non-functions to builtin_unreachable.
12526 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12527 correct when new direct edges were discovered.
12528
9de04252
MJ
125292013-05-15 Martin Jambor <mjambor@suse.cz>
12530
12531 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12532 header, print symbol order instead of node uid, print more information
12533 about indirect edge targets.
12534 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12535 uids.
12536 (ipa_make_edge_direct_to_target): Likewise.
12537 (remove_described_reference): Likewise.
12538 (propagate_controlled_uses): Likewise.
12539 (ipa_print_node_params): Also print symbol order.
12540 (ipcp_transform_function): Print symbol order instead of node uids.
12541 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12542 (cgraph_get_create_real_symbol_node): Likewise.
12543 * ipa-cp.c (print_lattice): Likewise.
12544 (print_all_lattices): Likewise.
12545 (determine_versionability): Likewise.
12546 (initialize_node_lattices): Likewise.
12547 (estimate_local_effects): Likewise.
12548 (update_profiling_info): Likewise.
12549 (create_specialized_node): Likewise.
12550 (perhaps_add_new_callers): Likewise.
12551 (decide_about_value): Likewise.
12552 (decide_whether_version_node): Likewise.
12553 (identify_dead_nodes): Likewise.
12554 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12555 (dump_inline_summary): Likewise.
12556 (estimate_node_size_and_time): Likewise.
12557 (inline_analyze_function): Likewise.
12558 * ipa-inline.c (report_inline_failed_reason): Likewise.
12559 (want_early_inline_function_p): Likewise.
12560 (edge_badness): Likewise.
12561 (update_edge_key): Likewise.
12562 (inline_small_functions): Likewise. Add dumping of order to two other
12563 dumps.
12564 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12565 instead of node uids.
12566 (propagate_pure_const): Likewise.
12567 (propagate_pure_const): Likewise.
12568 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12569 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12570 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12571 of node uids.
12572 * tree-pretty-print.c (dump_function_header): Likewise.
12573 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12574 Print symbol order instead of node uids.
12575
1dd03b91
AK
125762013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12577
12578 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12579 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12580
fdf6a7b9
RB
125812013-05-15 Richard Biener <rguenther@suse.de>
12582
12583 PR tree-optimization/57275
12584 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12585 return value for fail to do runtime alias checks for gather loads.
12586
2d6e4603
JH
125872013-05-15 Jan Hubicka <jh@suse.cz>
12588
12589 PR lto/57038
12590 PR lto/47375
e7208ea3
UB
12591 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12592 weakrefs are not external.
12593 (lto_symtab_merge_decls): Fix thinko when dealing with
12594 non-lto_symtab decls.
2d6e4603
JH
12595 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12596 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12597 * varpool.c (dump_varpool_node): Dump more flags.
12598
83f44b39
GG
125992013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12600
12601 * config/i386/i386.c (processor_alias_table): Add instruction
12602 FSGSBASE for AMD bdver3 architecture.
12603
2e55d062
JJ
126042013-05-14 Jakub Jelinek <jakub@redhat.com>
12605
12606 * tree.c (warn_deprecated_use): Print file:line using locus color.
12607 * diagnostic.c (diagnostic_report_current_module): Print file:line
12608 and file:line:column using locus color.
12609
0bfdb81e
MS
126102013-05-14 Mike Stump <mikestump@comcast.net>
12611
12612 * gdbinit.in: Add __null.
12613
a508ef22
MS
126142013-05-14 Mike Stump <mikestump@comcast.net>
12615
12616 * recog.h: Rename struct recog_data to Recog_data.
12617 * recog.c: Likewise.
12618 * reload.c (can_reload_into): Likewise.
12619 * config/picochip/picochip.c: Likewise.
12620
e7180acb
MS
126212013-05-14 Mike Stump <mikestump@comcast.net>
12622
12623 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
12624
61216c26
SB
126252013-05-14 Steven Bosscher <steven@gcc.gnu.org>
12626
fd6beed4
SB
12627 * resource.h (struct resources): Remove unch_memory member.
12628 (CLEAR_RESOURCE): Don't clear unch_memory.
12629 * resource.c (mark_referenced_resources): Don't set it.
12630 (mark_set_resources): Likewise.
12631 (mark_target_live_regs): Don't clear it.
12632 (init_resource_info): Likewise.
12633 * reorg.c (resource_conflicts_p): Don't compare it.
12634 (redundant_insn): Don't set it.
12635
61216c26
SB
12636 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
12637 Remove prototypes.
12638 * emit-rtl.c (next_label): Remove unused function.
12639 (skip_consecutive_labels, link_cc0_insns): Move to ...
12640 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
12641 only place where these functions are used, and make them static.
12642
418d1b87
MG
126432013-05-14 Marc Glisse <marc.glisse@inria.fr>
12644
12645 * fold-const.c (fold_negate_expr): Handle vectors.
12646 (fold_truth_not_expr): Make it static.
12647 (fold_invert_truthvalue): New static function.
12648 (invert_truthvalue_loc): Handle vectors. Do not call
12649 fold_truth_not_expr directly.
12650 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
12651 <TRUTH_NOT_EXPR>: Do not cast to boolean.
12652 (fold_comparison): Handle vector constants.
12653 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
12654 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
12655 * tree.h (fold_truth_not_expr): Remove declaration.
12656
fc21784d
JG
126572013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
12658
12659 * config/aarch64/aarch64-simd.md
12660 (aarch64_vcond_internal<mode>): Rename to...
12661 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
12662 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
12663 float modes. Clarify all iterator modes.
12664 (vcond<mode><mode>): Use new name for vcond expanders.
12665 (vcond<v_cmp_result><mode>): Likewise.
12666 (vcondu<mode><mode>: Likewise.
12667 * config/aarch64/iterators.md (VDQF_COND): New.
12668
d4c52634
MG
126692013-05-14 Marc Glisse <marc.glisse@inria.fr>
12670
12671 PR bootstrap/57266
12672 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
12673 variable for the shift amount. Check that we shift by non-negative
12674 amounts.
12675
2b261262
CLT
126762013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
12677
12678 PR target/42017
12679 * config/arm/arm.h (EPILOGUE_USES): Only return true
12680 for LR_REGNUM after epilogue_completed.
12681
12211b99 126822013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
12683
12684 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 12685 is error_mark_node.
6e022d7b 12686
56cf7859
RO
126872013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12688
12689 PR target/57261
12690 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
12691 and Solaris 11+/x86 with gld.
12692 * configure: Regenerate.
12693
75776c6d
JJ
126942013-05-14 Jakub Jelinek <jakub@redhat.com>
12695
12696 * expmed.c (expand_shift_1): Canonicalize rotates by
12697 constant bitsize / 2 to bitsize - 1.
7f998021 12698 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
12699 case ROTATERT>: Likewise.
12700
12701 Revert:
12702 2013-05-10 Jakub Jelinek <jakub@redhat.com>
12703
12704 * config/i386/i386.md (rotateinv): New code attr.
12705 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12706 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12707 roll $31, %eax, etc.
12708
df35498a
RB
127092013-05-14 Richard Biener <rguenther@suse.de>
12710
12711 PR middle-end/57235
12712 * tree-eh.c (sink_clobbers): Give up for successors with
12713 multiple predecessors and no virtual uses.
12714
cc6e7ece
EB
127152013-05-14 Eric Botcazou <ebotcazou@adacore.com>
12716
12717 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
12718 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
12719
f778dd4d
JJ
127202013-05-14 Jakub Jelinek <jakub@redhat.com>
12721
12722 PR middle-end/57251
12723 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
12724 the case when both op0 and op1 have VOIDmode.
12725
bad4df9b
KP
127262013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12727
12728 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
12729 in multiply-accumulate mode.
12730
56f3e9ac
GW
127312013-05-13 Guozhi Wei <carrot@google.com>
12732
12733 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
12734
a3d7ab92
KT
127352013-05-13 Kai Tietz <ktietz@redhat.com>
12736
12737 PR target/56975
12738 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 12739 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 12740 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 12741 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
12742 (ix86_expand_prologue): Likewise.
12743 (ix86_expand_split_stack_prologue): Likewise.
12744 (legitimate_pic_address_disp_p): Likewise.
12745 (legitimize_pic_address): Likewise.
12746 (legitimize_tls_address): Likewise.
12747 (legitimize_pe_coff_symbol): Likewise.
12748 (output_pic_addr_const): Likewise.
12749 (construct_plt_address): Likewise.
12750 (ix86_expand_call): Likewise.
12751 (x86_output_mi_thunk): Likewise.
12752 (x86_function_profiler): Likewise.
12753
c59b7e28
SN
127542013-05-13 Sofiane Naci <sofiane.naci@arm.com>
12755
12756 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
12757 similar switch cases.
12758 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
12759 (aarch64_simd_mov_to_<mode>low): Delete.
12760 (aarch64_simd_mov_to_<mode>high): Delete.
12761 (move_lo_quad_<mode>): Add w<-r alternative.
12762 (aarch64_simd_move_hi_quad_<mode>): Likewise.
12763 (aarch64_simd_mov_from_*): Update type attribute.
12764 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
12765 statement.
12766
5f28524a
JH
127672013-05-13 Jan Hubicka <jh@suse.cz>
12768
12769 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
12770 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
12771 ix86_expand_epilogue, emit_i387_cw_initialization,
12772 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
12773 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 12774
ae6fa899
JJ
127752013-05-13 Jakub Jelinek <jakub@redhat.com>
12776
12777 PR tree-optimization/45216
12778 PR tree-optimization/57157
12779 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
12780 the (-Y) & (B - 1) variant if OP is |.
12781 * expmed.c (expand_shift_1): For rotations by const0_rtx just
12782 return shifted. Use (-op1) & (prec - 1) as other_amount
12783 instead of prec - op1.
12784
4502fe8d
MJ
127852013-05-13 Martin Jambor <mjambor@suse.cz>
12786
12787 PR middle-end/42371
12788 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
12789 (ipa_constant_data): New type.
12790 (ipa_jump_func): Use ipa_constant_data to hold information about
12791 constant jump functions.
12792 (ipa_get_jf_constant): Adjust to jump function type changes.
12793 (ipa_get_jf_constant_rdesc): New function.
12794 (ipa_param_descriptor): New field controlled_uses.
12795 (ipa_get_controlled_uses): New function.
12796 (ipa_set_controlled_uses): Likewise.
12797 * ipa-ref.h (ipa_find_reference): Declare.
12798 * ipa-prop.c (ipa_cst_ref_desc): New type.
12799 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
12800 changes.
12801 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
12802 New parameter cs. Adjust all callers.
12803 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
12804 (remove_described_reference): New function.
12805 (jfunc_rdesc_usable): Likewise.
12806 (try_make_edge_direct_simple_call): Decrement controlled use count,
12807 attempt to remove reference if it hits zero.
12808 (combine_controlled_uses_counters): New function.
12809 (propagate_controlled_uses): Likewise.
12810 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
12811 (ipa_edge_duplication_hook): Duplicate reference descriptions.
12812 (ipa_print_node_params): Print described use counter.
12813 (ipa_write_jump_function): Adjust to jump function type changes.
12814 (ipa_read_jump_function): New parameter CS, pass it to
12815 ipa_set_jf_constant. Adjust caller.
12816 (ipa_write_node_info): Stream controlled use count
12817 (ipa_read_node_info): Likewise.
12818 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
12819 asserting.
12820 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
12821 count. Remove cloning-added reference if it reaches zero.
12822 * ipa-ref.c (ipa_find_reference): New function.
12823
0864bfc2
GG
128242013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12825
e7208ea3 12826 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
12827 alignment values for AMD BD and BT architectures.
12828
640bfeb2
MG
128292013-05-13 Marc Glisse <marc.glisse@inria.fr>
12830
12831 * tree-vect-generic.c (uniform_vector_p): Move ...
12832 * tree.c (uniform_vector_p): ... here.
12833 * tree.h (uniform_vector_p): Declare it.
12834 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
12835 into a scalar.
12836
3a60f32b
JJ
128372013-05-13 Jakub Jelinek <jakub@redhat.com>
12838
198fe1bf
JJ
12839 PR tree-optimization/57230
12840 * tree-ssa-strlen.c (handle_char_store): Record length for
12841 array store from STRING_CST.
12842
3a60f32b
JJ
12843 PR tree-optimization/57230
12844 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
12845 check.
12846
566be57c
JR
128472013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
12848
12849 * config/epiphany/epiphany.c (epiphany_init): Check size of
12850 NUM_MODES_FOR_MODE_SWITCHING.
12851 (epiphany_expand_prologue):
12852 Remove CONFIG_REGNUM initial value handling code.
12853 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
12854 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 12855 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
12856 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
12857 Don't return 1 for FP_MODE_NONE.
12858 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
12859 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
12860 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
12861 * config/epiphany/epiphany.md (save_config): New pattern.
12862
0f2c2331
UB
128632013-05-12 Uros Bizjak <ubizjak@gmail.com>
12864
12865 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
12866
5b3f93c7
UB
128672013-05-10 Uros Bizjak <ubizjak@gmail.com>
12868
12869 * config/i386/i386.md (memory): Handle sseishft1.
12870 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
12871 (*vec_extractv2di_1): Ditto.
12872
1f873f0e
VM
128732013-05-10 Vladimir Makarov <vmakarov@redhat.com>
12874
12875 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
12876 saved registers.
12877
341427fa 128782013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
12879
12880 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
12881 Add mthumb/march=armv7-a multilib.
12882 Add mthumb/march=armv7-r multilib.
12883 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
12884
9e69bdde
RC
128852013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
12886
12887 * config/v850/t-rtems: Add more multilibs.
12888
9ff09a22
RB
128892013-05-10 Richard Biener <rguenther@suse.de>
12890
12891 PR tree-optimization/57214
12892 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
12893 not propagate from SSA names that occur in abnormal PHI nodes.
12894
a5e0cd1d
MG
128952013-05-10 Marc Glisse <marc.glisse@inria.fr>
12896
12897 * stor-layout.c (element_precision): New function.
12898 * machmode.h (element_precision): Declare it.
12899 * tree.c (build_minus_one_cst): New function.
12900 (element_precision): Likewise.
12901 * tree.h (build_minus_one_cst): Declare new function.
12902 (element_precision): Likewise.
12903 * fold-const.c (operand_equal_p): Use element_precision.
12904 (fold_binary_loc): Handle vector types.
12905 * convert.c (convert_to_integer): Use element_precision.
12906 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
12907 separately.
12908
cb2558bc
RS
129092013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
12910
12911 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
12912 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
12913 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
12914 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12915 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
12916 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
12917 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
12918 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12919 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
12920 (Uuw8): New constraints.
12921 (Usb4): Move into alphabetical order.
12922 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
12923 (sd8_operand, ub8_operand, uw8_operand): New predicates.
12924 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
12925 previously unnamed patterns.
12926 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
12927 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
12928 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
12929 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
12930 of set_attr_alternative/if_then_else. Use extended_mips16 instead
12931 of specific lengths.
12932
cb3b8d33
JJ
129332013-05-10 Jakub Jelinek <jakub@redhat.com>
12934
6f93c008
JJ
12935 * config/i386/i386.md (rotateinv): New code attr.
12936 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12937 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12938 roll $31, %eax, etc.
12939
cb3b8d33
JJ
12940 PR tree-optimization/45216
12941 PR tree-optimization/57157
12942 * tree-ssa-forwprop.c (simplify_rotate): New function.
12943 (ssa_forward_propagate_and_combine): Call it.
12944
afb119be
RB
129452013-05-10 Richard Biener <rguenther@suse.de>
12946
12947 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
12948 disable peeling when we version for aliasing.
12949 (vector_alignment_reachable_p): Honor explicit user alignment.
12950 (vect_supportable_dr_alignment): Likewise.
12951 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
12952 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
12953 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
12954 then peeling to arrange for the cost-model check to come first.
12955
01ae4861
AM
129562013-05-10 Alan Modra <amodra@gmail.com>
12957
12958 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
12959 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
12960 * configure: Regenerate.
12961
ebc9a431
AM
129622013-05-10 Alan Modra <amodra@gmail.com>
12963
12964 PR target/55033
12965 * varasm.c (default_elf_select_section): Move !DECL_P check..
12966 (get_named_section): ..to here before calling get_section_name.
12967 Adjust assertion.
12968 (default_section_type_flags): Add DECL_P check.
12969 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
12970 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
12971
d4bca93c
JR
129722013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
12973
12974 * config/epiphany/epiphany.c (epiphany_expand_prologue):
12975 When using gen_stack_adjust_str with a register offset, add a
12976 REG_FRAME_RELATED_EXPR note.
12977
60ca9a65
UB
129782013-05-09 Uros Bizjak <ubizjak@gmail.com>
12979
12980 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
12981 (*vec_extractv4si_zext_mem): Ditto.
12982 (*vec_extractv2di): Add 0->x and x->x alternatives.
12983 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
12984 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
12985
a3409c02
JM
129862013-05-09 Jason Merrill <jason@redhat.com>
12987
0138d6b2
JM
12988 N3639 C++1y VLA support
12989 * gimplify.c (gimplify_vla_decl): Don't touch an existing
12990 DECL_VALUE_EXPR.
12991
a3409c02
JM
12992 * tree.c (build_constructor_va): New.
12993 * tree.h: Declare it.
12994
66e6b990
MJ
129952013-05-09 Martin Jambor <mjambor@suse.cz>
12996
12997 PR lto/57084
12998 * gimple-fold.c (canonicalize_constructor_val): Call
12999 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
13000
64cfa6c0
JH
130012013-05-09 Jan Hubicka <jh@suse.cz>
13002 Richard Biener <rguenther@suse.de>
13003
13004 PR lto/54095
13005 * symtab.c (symtab_make_decl_local): Do not add private names.
13006
c3167b00
JH
130072013-05-09 Jan Hubicka <jh@suse.cz>
13008
13009 PR lto/54095
13010 * symtab.c (insert_to_assembler_name_hash): Handle clones.
13011 (unlink_from_assembler_name_hash): Likewise.
13012 (symtab_prevail_in_asm_name_hash, symtab_register_node,
13013 symtab_unregister_node, symtab_initialize_asm_name_hash,
13014 change_decl_assembler_name): Update.
13015
12dc6974
SN
130162013-05-09 Sofiane Naci <sofiane.naci@arm.com>
13017
13018 * config/aarch64/aarch64.md: New movtf split.
13019 (*movtf_aarch64): Update.
13020 (aarch64_movdi_tilow): Handle TF modes and rename to
13021 aarch64_movdi_<mode>low.
13022 (aarch64_movdi_tihigh): Handle TF modes and rename to
13023 aarch64_movdi_<mode>high
13024 (aarch64_movtihigh_di): Handle TF modes and rename to
13025 aarch64_mov<mode>high_di
13026 (aarch64_movtilow_di): Handle TF modes and rename to
13027 aarch64_mov<mode>low_di
13028 (aarch64_movtilow_tilow): Remove spurious whitespace.
13029 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
13030 splits.
13031 (aarch64_print_operand): Update.
13032
227eb343
AM
130332013-05-09 Alan Modra <amodra@gmail.com>
13034
13035 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
13036 powerpc64le.
13037 * configure: Regenerate.
13038
0b013847
UB
130392013-05-08 Uros Bizjak <ubizjak@gmail.com>
13040
13041 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
13042 splitter preparation statements.
13043 * config/i386/sse.md (*vec_extract* splitters): Ditto.
13044 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
13045 adjust_address_nv.
13046
1dc3d6e9
BS
130472013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13048
13049 * gimple-ssa-strength-reduction.c (count_candidates): Change
13050 return value to int.
13051 (analyze_candidates_and_replace): Change type of length to int.
13052
e61e7d28
UB
130532013-05-08 Uros Bizjak <ubizjak@gmail.com>
13054
13055 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
13056 (*vec_extract<mode>): Use VI12_128 mode iterator.
13057 (*vec_extract<mode>_mem): Ditto.
13058 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
13059 attribute.
13060
4fbfcf44
DN
130612013-05-08 Diego Novillo <dnovillo@google.com>
13062
13063 PR bootstrap/54659
13064
13065 Revert:
4fbfcf44
DN
13066 2012-08-17 Diego Novillo <dnovillo@google.com>
13067
e61e7d28
UB
13068 PR bootstrap/54281
13069 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
13070 * config.in: Regenerate.
13071 * configure: Regenerate.
13072 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 13073
702d8703
JH
130742013-05-08 Jan Hubicka <jh@suse.cz>
13075
13076 PR lto/54095
13077 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
13078 * cgraph.h (symtab_node_base): Add unique_name.
13079 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13080 input_overwrite_node, input_varpool_node): Stream unique_name.
13081 * cgraphclones.c (cgraph_create_virtual_clone,
13082 cgraph_function_versioning): Set unique_name.
13083 * ipa.c (function_and_variable_visibility): Set unique_name.
13084
8b28cf47
BS
130852013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13086
13087 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
13088 (alloc_cand_and_find_basis): Restrict conditional candidate
13089 processing to CAND_MULTs.
13090
e86074fd
JH
130912013-05-08 Jan Hubicka <jh@suse.cz>
13092
13093 PR lto/54095
13094 lto-symtab.c (lto_symtab_symbol_p): New function.
13095 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
13096 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
13097 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
13098 Skip static symbols.
13099
44398cbe
PC
131002013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
13101
13102 PR tree-optimization/57200
13103 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
13104 Only call inform if the preceding warning_at returns true.
13105
f6bc1c4a
HS
131062013-05-07 Han Shen <shenhan@google.com>
13107
13108 * cfgexpand.c (record_or_union_type_has_array_p): New function.
13109 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
13110 * common.opt (fstack-protector-strong): New option.
13111 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
13112 * doc/invoke.texi (Optimization Options): Document
13113 "-fstack-protector-strong".
13114 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
13115
4ffecb1f
SB
131162013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13117
13118 * config/mips/mips.c (mips_machine_reorg2): Return 0.
13119
5a107a0f
VM
131202013-05-07 Vladimir Makarov <vmakarov@redhat.com>
13121
13122 * ira.c (update_equiv_regs): Add insn having equiv memory even if
13123 it is not lhs of the insn.
13124 (setup_reg_equiv): Remove insn having equiv memory which it is not
13125 lhs of the insn.
13126 * lra-constraints.c (process_address): Try to improve generation
13127 code for address base + disp.
13128 (lra_constraints): Make correct the code for checking insn setting
13129 up backward equivalence. Remove insn only if it is in the init
13130 insn list.
13131 * lra-eliminations.c (update_reg_eliminate): Change return value.
13132 (lra_eliminate): Use the result.
13133
3f5783ea
UB
131342013-05-07 Uros Bizjak <ubizjak@gmail.com>
13135
13136 * config/i386/sse.md (ssescalarnummask): New mode attribute.
13137 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
13138 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
13139 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
13140 register target operands.
13141 (*vec_extractv8hi_sse2): New pattern.
13142 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
13143 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
13144 (*vec_extract<mode>_mem): New insn and split pattern.
13145
8a5800b8
CL
131462013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
13147
13148 * config/arm/arm.c (arm_asan_shadow_offset): New function.
13149 (TARGET_ASAN_SHADOW_OFFSET): Define.
13150 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
13151 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
13152
7bf55a70
BS
131532013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13154
13155 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
13156 (incr_vec_index): Return -1 if increment not found.
13157 (create_add_on_incoming_edge): Assert if increment not found.
13158 (record_increment): Limit number of increments recorded.
13159 (all_phi_incrs_profitable): Return false if an increment not found.
13160 (replace_profitable_candidates): Don't process increments that were
13161 not recorded.
13162 (analyze_candidates_and_replace): Limit size of incr_vec.
13163
3f8825c0
RB
131642013-05-07 Richard Biener <rguenther@suse.de>
13165
13166 * calls.c (special_function_p): setjmp-like functions are leaf.
13167 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
13168 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
13169
fd4842cd
SN
131702013-05-07 Sofiane Naci <sofiane.naci@arm.com>
13171
13172 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
13173 (aarch64_simd_mov<mode>): New expander.
13174 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
13175 (aarch64_simd_mov_to_<mode>high): Likewise.
13176 (aarch64_simd_mov_from_<mode>low): Likewise.
13177 (aarch64_simd_mov_from_<mode>high): Likewise.
13178 (aarch64_dup_lane<mode>): Update.
13179 (aarch64_dup_lanedi): New instruction pattern.
13180 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
13181 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
13182
a7a7d10e
BS
131832013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13184
13185 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
13186 (replace_mult_candidate): Remove unnecessary argument; remove
13187 unnecessary parameter from call to introduce_cast_before_cand.
13188 (replace_unconditional_candidate): Remove unnecessary parameter
13189 from call to replace_mult_candidate.
13190 (replace_conditional_candidate): Likewise.
13191 (insert_initializers): Use make_temp_ssa_name.
13192 (introduce_cast_before_cand): Remove unnecessary argument; use
13193 make_temp_ssa_name.
13194 (replace_one_candidate): Remove unnecessary argument; remove
13195 unnecessary parameter from calls to introduce_cast_before_cand.
13196 (replace_profitable_candidates): Remove unnecessary parameters
13197 from calls to replace_one_candidate.
13198
29105868
BS
131992013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13200
13201 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13202 phi def as possibly hiding a basis for a CAND_ADD whose operands
13203 have been commuted in the analysis.
13204 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
13205
4095f9fa
N
132062013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13207
13208 * config/aarch64/aarch64.md
13209 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
13210 shift value between 0-4.
13211
39e843e8
RB
132122013-05-07 Richard Biener <rguenther@suse.de>
13213
13214 * double-int.h (rshift): New overload.
13215 * double-int.c (rshift): New function.
13216 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
13217 (create_reference_ops_from_ref): Remove.
13218 (vn_reference_insert): Use shared ops for constructing the
13219 reference and copy it.
13220
0a1a83cb
RB
132212013-05-07 Richard Biener <rguenther@suse.de>
13222
13223 PR middle-end/57190
13224 * tree-eh.c (sink_clobbers): Properly propagate
13225 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13226
43303d6f
JJ
132272013-05-07 Jakub Jelinek <jakub@redhat.com>
13228
ba7e83f8
JJ
13229 PR tree-optimization/57149
13230 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
13231 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
13232 collect_phi_def_edges, execute_late_warn_uninitialized): Use
13233 uninit_undefined_value_p instead of ssa_undefined_value_p.
13234
43303d6f
JJ
13235 PR debug/57184
13236 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
13237 for modifier == EXPAND_INITIALIZER.
13238
14523c25
AB
132392013-05-07 Anton Blanchard <anton@samba.org>
13240
13241 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
13242 for powerpc64 little endian.
13243 * configure: Regenerate.
13244
cb7c8be9
GS
132452013-05-06 Graham Stott <grahams@btinternet.com>
13246
13247 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
13248 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
13249 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
13250 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
13251
132522013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
13253
13254 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
13255 codes which allow non-lvalues.
13256
9a0ee7b0
MG
132572013-05-06 Marc Glisse <marc.glisse@inria.fr>
13258
13259 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
13260 components are all 1s.
13261 (integer_minus_onep): New function.
13262 * tree.h (integer_minus_onep): Declare it.
13263 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
13264 integer_minus_onep instead of integer_all_onesp.
13265
f2c17ea9
OE
132662013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13267
13268 PR target/52933
13269 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
13270 variations of these patterns.
13271
f75e6a51
UB
132722013-05-06 Uros Bizjak <ubizjak@gmail.com>
13273
13274 * config/i386/i386.md (isa): Add x64_sse4 member.
13275 (enabled): Handle x64_sse4.
13276 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
13277 instruction for 64bit SSE4_1 targets. Update insn attributes.
13278 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
13279 instruction for SSE4_1 targets. Update insn attributes.
13280 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13281 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
13282 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
13283 const_1 selector.
13284 (*vec_extractv4si): Rename from *sse4_1_pextrd.
13285 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
13286 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
13287
a986d468
OE
132882013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13289
13290 PR target/57108
13291 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
13292
382522cb
MK
132932013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
13294
13295 * final.c (do_assembler_dialects): Don't handle curly braces and
13296 vertical bar escaped by % as dialect delimiters.
13297 (output_asm_insn): Print curly braces and vertical bar if escaped
13298 by % and ASSEMBLER_DIALECT defined.
13299 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
13300 * doc/tm.texi: Regenerated.
13301
fb0d5c60
SB
133022013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13303
fb0d5c60
SB
13304 * config/mips/mips.c: Include tree-pass.h.
13305 (mips_reorg): Split in pre- and post-dbr_schedule parts.
13306 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
13307 (pass_mips_machine_reorg2): New machine specific pass.
13308 (insert_pass_mips_machine_reorg2): New pass plugin definition.
13309 (mips_option_override): Register the new pass.
13310 * rtl.h (cleanup_barriers): Remove prototype.
13311 (dbr_schedule): Likewise.
13312 * jump.c (cleanup_barriers): Make static.
13313 * reorg.c (dbr_schedule): Likewise.
13314
aa06a978
RB
133152013-05-06 Richard Biener <rguenther@suse.de>
13316
13317 PR tree-optimization/57185
13318 * tree-parloops.c (add_field_for_reduction): Handle anonymous
13319 SSA names properly.
13320
0b953bec
UB
133212013-05-06 Uros Bizjak <ubizjak@gmail.com>
13322
13323 PR target/57106
13324 * config/i386/i386.c (add_parameter_dependencies): Add dependence
13325 between "first_arg" and "insn", not "last" and "insn".
13326
28708525
WS
133272013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13328
13329 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13330 (find_candidates_in_block): Re-enable slsr_process_phi.
13331 (create_phi_basis): Fix double counting of candidate adjustment.
13332
0107dca2
RB
133332013-05-06 Richard Biener <rguenther@suse.de>
13334
13335 PR middle-end/57147
13336 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13337 the edge is also fallthru, preserve it and just clear the
13338 abnormal flag.
13339 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13340 also complex, preserve that and just clear the fallthru flag.
13341 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13342 update virtual operands.
13343
470d4d13
AM
133442013-05-06 Alan Modra <amodra@gmail.com>
13345
13346 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13347 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13348 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13349 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13350 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13351 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13352
8f1dbf8d
AM
133532013-05-06 Alan Modra <amodra@gmail.com>
13354
13355 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13356 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13357 (DEFAULT_ASM_ENDIAN): Define.
13358 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13359 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13360 Update -K PIC clause from sysv4.h.
13361 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13362 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13363
54890767
AM
133642013-05-06 Alan Modra <amodra@gmail.com>
13365
13366 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13367 twice for little-endian.
13368 (ashrdi3_no_power, ashrdi3): Support little-endian.
13369
2353515d
OE
133702013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13371
13372 PR target/55303
13373 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13374 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13375 related expanders.
13376 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13377 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13378 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13379 New predicates.
13380
33e67557
SB
133812013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13382 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13383
13384 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13385 * config/pa/pa.opt: Make mbig-switch a no-op.
13386 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13387 (CASE_VECTOR_MODE): Always return SImode.
13388 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13389 for the !TARGET_BIG_SWITCH case.
13390 * config/pa/pa-linux.h: Likewise.
13391 * config/pa/pa-openbsd.h: Likewise.
13392 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13393 * config/pa/pa.md (short_jump): Remove define_insn.
13394 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13395 (casesi0): Remove define_insn.
13396 (type): Remove btable_branch.
13397 (pa_combine_type): Likewise.
13398 (in_nullified_branch_delay): Likewise.
13399 (in_call_delay): Likewise.
13400 (define_delay): Likewise.
13401 (define_insn_reservation "Z3"): Likewise.
13402 (define_insn_reservation "Z4"): Likewise.
13403 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13404 (pa_adjust_insn_length): Remove adjustment for btable branches.
13405 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13406 and mno-big-switch
13407
3095685e
UB
134082013-05-05 Uros Bizjak <ubizjak@gmail.com>
13409
13410 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13411 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13412 Add m->r,x alternatives.
13413 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13414 splitters using SWI48x mode iterator.
13415 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13416 TARGET_64BIT. Add m->x alternative.
13417 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13418 Add o->x alternative. Enable for TARGET_SSE.
13419 (sse_storeq): Remove expander.
13420 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13421 with memory input operand.
13422 (*vec_extractv2di_1 splitter): New.
13423 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13424 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13425
4b36ae28
SB
134262013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13427
13428 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13429 (INT_LOWPART): Delete.
13430 (extract_MB): Adjust.
13431 (extract_ME): Adjust.
13432 (print_operand): Adjust.
13433
da226db2
SB
134342013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13435
13436 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13437 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13438 (reg_or_logical_cint_operand, easy_fp_constant,
13439 logical_const_operand): Delete "CONST_DOUBLE" case.
13440 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13441 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13442 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13443 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13444 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13445 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13446 test.
13447 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13448 CONST_DOUBLE DImode/VOIDmode case.
13449 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13450 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13451 CONST_DOUBLE VOIDmode case.
13452 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13453 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13454 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13455 Delete CONST_DOUBLE case.
13456 (splitters for mov FMOVE64 const_double): Delete
13457 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13458 "HOST_BITS_PER_WIDE_INT >= 64" test.
13459 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13460 case.
13461 (mov DI const_double): Delete.
13462
40de22d6
JJ
134632013-05-04 Jakub Jelinek <jakub@redhat.com>
13464
13465 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13466 on op shows all bits zero in mode of a lowpart subreg, return zero.
13467
5ec6aff2
MM
134682013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13469
13470 PR target/57150
13471 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13472 to save TFmode registers and DImode to save TImode registers for
13473 caller save operations.
13474 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13475 mark being partially clobbered since they only use the first
13476 double word.
13477
13478 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13479 and TDmode only use the upper 64-bits of each VSX register.
13480
2cefad90
BS
134812013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13482
13483 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13484 (find_candidates_in_block): Disable slsr_process_phi.
13485
d6d7eee1
GW
134862013-05-03 Guozhi Wei <carrot@google.com>
13487
13488 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13489 constructor to ...
13490 (build_init_ctor): ... here.
d6d7eee1 13491
9b92d12b
BS
134922013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13493
13494 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13495 (slsr_cand_d): Redefine def_phi.
13496 (stride_status, phi_adjust_status, count_phis_status): New enums.
13497 (find_phi_def): New.
13498 (find_basis_for_base_expr): New.
13499 (find_basis_for_candidate): Handle hidden bases.
13500 (alloc_cand_and_find_basis): Handle phi candidates.
13501 (slsr_process_phi): New.
13502 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13503 (create_mul_imm_cand): Likewise.
13504 (create_add_ssa_cand): Exclude phi base candidates.
13505 (create_add_imm_cand): Likewise.
13506 (slsr_process_cast): Likewise.
13507 (slsr_process_copy): Likewise.
13508 (find_candidates_in_block): Handle phi candidates.
13509 (dump_candidate): Likewise.
13510 (unconditional_cands): Delete.
13511 (unconditional_cands_with_known_stride_p): Delete.
13512 (phi_dependent_cand_p): New.
13513 (cand_increment): Handle phi-dependent candidates.
13514 (replace_dependent): Delete.
13515 (replace_mult_candidate): New.
13516 (replace_unconditional_candidate): New.
13517 (incr_vec_index): Move to avoid forward reference.
13518 (create_add_on_incoming_edge): New.
13519 (create_phi_basis): New.
13520 (replace_dependents): Delete.
13521 (replace_conditional_candidate): New.
13522 (phi_add_costs): New.
13523 (replace_uncond_cands_and_profitable_phis): New.
13524 (record_increment): Handle phi adjustments.
13525 (record_phi_increments): New.
13526 (record_increments): Handle phi adjustments.
13527 (phi_incr_cost): New.
13528 (lowest_cost_path): Handle phis.
13529 (total_savings): Likewise.
13530 (analyze_increments): Likewise.
13531 (ncd_with_phi): New.
13532 (ncd_of_cand_and_phis): New.
13533 (nearest_common_dominator_for_cands): Handle phi increments.
13534 (all_phi_incrs_profitable): New.
13535 (replace_profitable_candidates): Handle phi-dependent candidates.
13536 (analyze_candidates_and_replace): Likewise.
13537
68f073d4
TJ
135382013-05-03 Teresa Johnson <tejohnson@google.com>
13539
13540 PR bootstrap/57154
13541 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13542 do not exceed REG_BR_PROB_BASE.
13543
a4ee7cb9
JL
135442013-05-03 Jeff Law <law@redhat.com>
13545
ade67f70 13546 PR tree-optimization/57144
a4ee7cb9
JL
13547 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13548 operand of the condition will bit into the new type when eliminating
13549 a cast feeding a condition.
13550
47954c4e
JJ
135512013-05-03 Jakub Jelinek <jakub@redhat.com>
13552
13553 PR rtl-optimization/57130
3095685e
UB
13554 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13555 of COMPARE as in_code to the recursive call if needed.
47954c4e 13556
3c21604f
UB
135572013-05-03 Uros Bizjak <ubizjak@gmail.com>
13558
13559 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13560 (enabled): Handle new members.
13561 * config/i386/sse.md (*vec_concatv2si): Merge from
13562 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13563 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13564
12211b99 135652013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13566
13567 PR tree-optimization/57027
13568 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13569 for fnms opportunity, check we got the prerequisite kind
13570 of tree / gimple before using accessor functions.
13571
07bfc9ec
RB
135722013-05-03 Richard Biener <rguenther@suse.de>
13573
13574 * double-int.h (lshift): New overload without precision
13575 and arith argument.
13576 (operator *=, operator +=, operator -=): Move ...
13577 * double-int.c (operator *=, operator +=, operator -=): ... here
13578 and implement more efficiently.
13579 (mul_double_with_sign): Remove.
13580 (lshift_double): Adjust to take unsinged shift argument, push
13581 dispatching code to callers.
13582 (mul_double_wide_with_sign): Add early out for callers that
13583 are not interested in high parts or overflow.
13584 (lshift): New function.
13585 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13586 dispatch code here.
13587 (lrotate, rrotate): Use logical shifts.
13588 * expr.c (get_inner_reference): Use lshift.
13589 * fixed-value.c (do_fixed_divide): Likewise.
13590 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13591 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13592 (indirect_refs_may_alias_p): Likewise.
13593 (stmt_kills_ref_p_1): Likewise.
13594
7769bb64
VP
135952013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13596
13597 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13598
1d0c8e5c
VP
135992013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13600
13601 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13602 scalar form of FABD instruction.
13603
f15feaf9
VM
136042013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13605
13606 * lra-constraints.c (process_alt_operands): Add checking alt
13607 number to choose the best alternative.
13608
d90e76d4
RB
136092013-05-02 Richard Biener <rguenther@suse.de>
13610
13611 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13612 bitmap and its handling.
13613 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
13614
9f8e7a96
RB
136152013-05-02 Richard Biener <rguenther@suse.de>
13616
13617 PR middle-end/57140
13618 * tree-inline.c (copy_loops): Properly handle removed loops.
13619 (copy_cfg_body): Mark destination loops for fixup if source
13620 loops needed fixup.
13621
f3a81b39
GY
136222013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
13623
13624 PR target/56732
13625 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
13626 generating simple_return for naked functions.
13627
7b920a9a
MJ
136282013-05-02 Martin Jambor <mjambor@suse.cz>
13629
13630 PR middle-end/56988
13631 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
13632 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
13633 flags match.
13634 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
13635 ipa_agg_replacement_value structures.
13636 (known_aggs_to_agg_replacement_list): Likewise.
13637 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
13638 (read_agg_replacement_chain): Likewise.
13639 (ipcp_transform_function): Also check that by_ref flags match.
13640
2c41c19d
RB
136412013-05-02 Richard Biener <rguenther@suse.de>
13642
13643 * graphds.h (struct graph): Add obstack member.
13644 * graphds.c (new_graph): Initialize obstack and allocate
13645 vertices from it.
13646 (add_edge): Allocate edge from the obstack.
3c21604f 13647 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 13648
8b47039c
TJ
136492013-05-02 Teresa Johnson <tejohnson@google.com>
13650
13651 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
13652 divides.
13653 * cfg.c (update_bb_profile_for_threading): Ditto.
13654 * tree-inline.c (copy_bb): Ditto.
13655 (copy_edges_for_bb): Ditto.
13656 (initialize_cfun): Ditto.
13657 (copy_cfg_body): Ditto.
13658 (expand_call_inline): Ditto.
13659 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
13660 (estimate_node_size_and_time): Ditto.
13661 (inline_merge_summary): Ditto.
13662 * cgraphclones.c (cgraph_clone_edge): Ditto.
13663 (cgraph_clone_node): Ditto.
13664 * sched-rgn.c (compute_dom_prob_ps): Ditto.
13665 (compute_trg_info): Ditto.
13666
da65928c
IB
136672013-05-02 Ian Bolton <ian.bolton@arm.com>
13668
13669 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
13670 S reg when fp attribute set.
13671 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
13672
add3c965
IB
136732013-05-02 Ian Bolton <ian.bolton@arm.com>
13674
13675 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
13676 New pattern.
13677 (*and_one_cmplsi3_compare0_uxtw): Likewise.
13678 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
13679 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13680
fdd43ac4
RB
136812013-05-02 Richard Biener <rguenther@suse.de>
13682
13683 * tree-scalar-evolution.c (scev_info_hasher): Remove.
13684 (struct instantiate_cache_entry): New type.
13685 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
13686 (struct instantiate_cache_type): New type.
13687 (set_instantiated_value, get_instantiated_value): Remove.
13688 (get_instantiated_value_entry): New function.
13689 (instantiate_scev_name): Use the new cache and adjust.
13690 (instantiate_scev_poly): Adjust.
13691 (instantiate_scev_binary): Likewise.
13692 (instantiate_array_ref): Likewise.
13693 (instantiate_scev_convert): Likewise.
13694 (instantiate_scev_not): Likewise.
13695 (instantiate_scev_3): Likewise.
13696 (instantiate_scev_2): Likewise.
13697 (instantiate_scev_r): Likewise.
13698 (instantiate_scev): Likewise.
13699 (resolve_mixers): Likewise.
13700
36ff9dfb
VM
137012013-05-01 Vladimir Makarov <vmakarov@redhat.com>
13702
13703 PR target/57091
13704 * lra-constraints.c (best_small_class_operands_num): Remove.
13705 (process_alt_operands): Remove small_class_operands_num. Take
13706 small classes operands into losers and only if the operand is not
13707 matched. Modify debugging output.
13708 (curr_insn_transform): Remove best_small_class_operands_num.
13709 Print insn name.
13710
36054fab
JG
137112013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13712
13713 * config/aarch64/aarch64-builtins.c
13714 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
13715 * config/aarch64/aarch64-simd-builtins.def
13716 (reduc_splus_): Add new modes.
13717 (reduc_uplus_): New.
13718 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
13719 (reduc_uplus_v4sf): Likewise.
13720 (reduc_splus_v4sf): Likewise.
13721 (aarch64_addv<mode>): Likewise.
13722 (reduc_uplus_<mode>): Likewise.
13723 (reduc_splus_<mode>): Likewise.
13724 (aarch64_addvv2di): Likewise.
13725 (reduc_uplus_v2di): Likewise.
13726 (reduc_splus_v2di): Likewise.
13727 (aarch64_addvv2si): Likewise.
13728 (reduc_uplus_v2si): Likewise.
13729 (reduc_splus_v2si): Likewise.
13730 (reduc_<sur>plus_<mode>): New.
13731 (reduc_<sur>plus_v2di): Likewise.
13732 (reduc_<sur>plus_v2si): Likewise.
13733 (reduc_<sur>plus_v4sf): Likewise.
13734 (aarch64_addpv4sf): Likewise.
13735 * config/aarch64/arm_neon.h
13736 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
13737 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
13738 add UNSPEC_SADDV, UNSPEC_UADDV.
13739 (SUADDV): New.
13740 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
13741
6dce23a8
JG
137422013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13743
13744 * config/aarch64/arm_neon.h
13745 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
13746
1598945b
JG
137472013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13748
13749 * config/aarch64/aarch64-builtins
13750 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
13751
998eaf97
JG
137522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13753
13754 * config/aarch64/aarch64-simd-builtins.def
13755 (reduc_smax_): New.
13756 (reduc_smin_): Likewise.
13757 (reduc_umax_): Likewise.
13758 (reduc_umin_): Likewise.
13759 (reduc_smax_nan_): Likewise.
13760 (reduc_smin_nan_): Likewise.
13761 (fmax): Remove.
13762 (fmin): Likewise.
13763 (smax): Update for V2SF, V4SF and V2DF modes.
13764 (smin): Likewise.
13765 (smax_nan): New.
13766 (smin_nan): Likewise.
13767 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
13768 (<su><maxmin><mode>3): ...This, refactor.
13769 (s<maxmin><mode>3): New.
13770 (<maxmin_uns><mode>3): Likewise.
13771 (reduc_<maxmin_uns>_<mode>): Refactor.
13772 (reduc_<maxmin_uns>_v4sf): Likewise.
13773 (reduc_<maxmin_uns>_v2si): Likewise.
13774 (aarch64_<fmaxmin><mode>: Remove.
13775 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
13776 new builtin names.
13777 (vmin<q>_f<32,64>): Likewise.
13778 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13779 (FMAXMIN): New.
13780 (su): Add mappings for smax, smin, umax, umin.
13781 (maxmin): New.
13782 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13783 (FMAXMIN): Rename as...
13784 (FMAXMIN_UNS): ...This.
13785 (maxminv): Remove.
13786 (fmaxminv): Likewise.
13787 (fmaxmin): Likewise.
13788 (maxmin_uns): New.
13789 (maxmin_uns_op): Likewise.
13790
bd11644e
JG
137912013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13792
13793 * config/aarch64/arm_neon.h
13794 (vac<ge, gt><sd>_f<32, 64>): Rename to...
13795 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
13796 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
13797
75dd5ace
JG
137982013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13799
13800 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
13801 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
13802
7c19979f
JG
138032013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13804
13805 * config/aarch64/aarch64-simd.md
13806 (vcond<mode>_internal): Handle special cases for constant masks.
13807 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
13808 (vcondu<mode><mode>): Likewise.
13809 (vcond<v_cmp_result><mode>): New.
13810
bb60efd9
JG
138112013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13812
13813 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
13814 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
13815 * config/aarch64/aarch64-simd-builtins.def
13816 (cmeq): Update to BUILTIN_VALLDI.
13817 (cmgt): Likewise.
13818 (cmge): Likewise.
13819 (cmle): Likewise.
13820 (cmlt): Likewise.
13821 * config/aarch64/arm_neon.h
13822 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
13823 to builtins or C as appropriate.
13824
889b9412
JG
138252013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13826
13827 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
13828 (cmgeu): ...This.
13829 (cmhi): Rename to...
13830 (cmgtu): ...This.
13831 * config/aarch64/aarch64-simd.md
13832 (simd_mode): Add SF.
13833 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
13834 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
13835 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
13836 (cstore<mode>_neg): ...This.
13837 * config/aarch64/iterators.md
13838 (VALLF): new.
13839 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
13840 (COMPARISONS): New.
13841 (UCOMPARISONS): Likewise.
13842 (optab): Add missing comparisons.
13843 (n_optab): New.
13844 (cmp_1): Likewise.
13845 (cmp_2): Likewise.
13846 (CMP): Likewise.
13847 (cmp): Remove.
13848 (VCMP_S): Likewise.
13849 (VCMP_U): Likewise.
13850 (V_cmp_result): Add DF, SF modes.
13851 (v_cmp_result): Likewise.
13852 (v): Likewise.
13853 (vmtype): Likewise.
13854 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
13855
0a7dbb76
GY
138562013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
13857
13858 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
13859 define_insn to define_insn_and_split.
13860 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
13861 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
13862 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
13863 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
13864 (thumb2_negscc): Likewise.
13865
fb614ca6
GY
138662013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13867
13868 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
13869
9e64a0bf
GY
138702013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13871
13872 * config/arm/thumb2.md: Remove trailing whitespaces.
13873
d6b28156
RS
138742013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13875
13876 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
13877 Use gen_int_mode rather than GEN_INT.
13878
f91674c3
L
138792013-04-30 H.J. Lu <hongjiu.lu@intel.com>
13880
b0dec607 13881 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
13882 debug_gimple_stmt.
13883
3551257c
RB
138842013-04-30 Richard Biener <rguenther@suse.de>
13885
13886 PR middle-end/57122
3c21604f 13887 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 13888
4c1aff1c
RB
138892013-04-30 Richard Biener <rguenther@suse.de>
13890
13891 PR middle-end/57107
13892 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
13893
54b8379a
AB
138942013-04-30 Andrey Belevantsev <abel@ispras.ru>
13895
13896 PR rtl-optimization/56957
13897 PR rtl-optimization/57105
54b8379a
AB
13898 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
13899 variable. Use just INSN_UID for determining whether an insn
13900 should be only disconnected from the insn stream.
13901 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
13902
abc27962
JJ
139032013-04-30 Jakub Jelinek <jakub@redhat.com>
13904
13905 PR tree-optimization/57104
13906 * tsan.c (instrument_expr): Don't instrument accesses to
13907 DECL_HARD_REGISTER VAR_DECLs.
13908
0fc822d0
RB
139092013-04-30 Richard Biener <rguenther@suse.de>
13910
13911 * function.h (loops_for_fn): New inline function.
13912 (set_loops_for_fn): Likewise.
13913 * cfgloop.h (place_new_loop): Add struct function parameter.
13914 (get_loop): Likewise.
13915 (get_loops): Likewise.
13916 (number_of_loops): Likewise.
13917 (fel_next): Adjust.
13918 (fel_init): Likewise.
13919 * cfg.c (get_loop_copy): Adjust.
13920 * cfgloop.c (flow_loops_dump): Likewise.
13921 (record_loop_exits): Likewise.
13922 (verify_loop_structure): Likewise.
13923 * cfgloopanal.c (mark_irreducible_loops): Likewise.
13924 (estimate_reg_pressure_cost): Likewise.
13925 (mark_loop_exit_edges): Likewise.
13926 * cfgloopmanip.c (place_new_loop): Likewise.
13927 (add_loop): Likewise.
13928 (duplicate_loop): Likewise.
13929 * graph.c (draw_cfg_nodes): Likewise.
13930 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
13931 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
13932 (extract_affine_chrec): Likewise.
13933 (build_scop_iteration_domain): Likewise.
13934 * graphite.c (graphite_initialize): Likewise.
13935 * ira-build.c (create_loop_tree_nodes): Likewise.
13936 (more_one_region_p): Likewise.
13937 (rebuild_regno_allocno_maps): Likewise.
13938 (mark_loops_for_removal): Likewise.
13939 (mark_all_loops_for_removal): Likewise.
13940 (remove_unnecessary_regions): Likewise.
13941 (ira_build): Likewise.
13942 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
13943 * loop-init.c (fix_loop_structure): Likewise.
13944 (gate_rtl_move_loop_invariants): Likewise.
13945 (gate_rtl_unswitch): Likewise.
13946 (gate_rtl_unroll_and_peel_loops): Likewise.
13947 (rtl_doloop): Likewise.
13948 * lto-streamer-in.c (input_cfg): Likewise.
13949 * lto-streamer-out.c (output_cfg): Likewise.
13950 * modulo-sched.c (sms_schedule): Likewise.
13951 * predict.c (tree_estimate_probability): Likewise.
13952 (tree_estimate_probability_driver): Likewise.
13953 (estimate_loops): Likewise.
13954 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
13955 (move_sese_region_to_fn): Likewise.
13956 (debug_loop_num): Likewise.
13957 * tree-chrec.c (chrec_evaluate): Likewise.
13958 (hide_evolution_in_other_loops_than_loop): Likewise.
13959 (chrec_component_in_loop_num): Likewise.
13960 (reset_evolution_in_loop): Likewise.
13961 (evolution_function_is_invariant_rec_p): Likewise.
13962 * tree-if-conv.c (main_tree_if_conversion): Likewise.
13963 * tree-inline.c (copy_loops): Likewise.
13964 (copy_cfg_body): Likewise.
13965 (tree_function_versioning): Likewise.
13966 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
13967 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13968 Likewise.
13969 (add_to_evolution_1): Likewise.
13970 (scev_const_prop): Likewise.
13971 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
13972 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
13973 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
13974 (tree_ssa_lim_initialize): Likewise.
13975 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
13976 (verify_loop_closed_ssa): Likewise.
13977 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
13978 (tree_ssa_loop_im): Likewise.
13979 (tree_ssa_loop_unswitch): Likewise.
13980 (tree_vectorize): Likewise.
13981 (check_data_deps): Likewise.
13982 (tree_ssa_loop_ivcanon): Likewise.
13983 (tree_ssa_loop_bounds): Likewise.
13984 (tree_complete_unroll): Likewise.
13985 (tree_complete_unroll_inner): Likewise.
13986 (tree_parallelize_loops): Likewise.
13987 (tree_ssa_loop_prefetch): Likewise.
13988 (tree_ssa_loop_ivopts): Likewise.
13989 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
13990 * tree-vectorizer.c (vectorize_loops): Likewise.
13991
37953bd3
MF
139922013-04-29 Mike Frysinger <vapier@gentoo.org>
13993
13994 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
13995 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
13996 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
13997 with EABI_LINK_SPEC.
13998
f9ed28db
UB
139992013-04-29 Uros Bizjak <ubizjak@gmail.com>
14000
14001 PR target/44578
14002 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
14003 alternative.
14004
deca73f5
VM
140052013-04-29 Vladimir Makarov <vmakarov@redhat.com>
14006
14007 PR target/57097
37953bd3 14008 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
14009 using memory for pseudos. Print cost dump for alternatives.
14010 Modify cost values for conflicts with early clobbers.
14011 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
14012
fdca7d03
UB
140132013-04-29 Uros Bizjak <ubizjak@gmail.com>
14014
14015 PR target/57098
14016 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
14017
0b064172
IB
140182013-04-29 Ian Bolton <ian.bolton@arm.com>
14019
14020 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
14021 from/to S register.
14022 (movdi_aarch64): Support LDR/STR from/to D register.
14023
473cec55
IB
140242013-04-29 Ian Bolton <ian.bolton@arm.com>
14025
14026 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
14027 or higher by default.
14028
a6f30e66
RB
140292013-04-29 Richard Biener <rguenther@suse.de>
14030
14031 PR middle-end/57075
14032 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
14033 even if not adding abnormal edges for calls that can make
14034 abnormal gotos.
14035
0c2b2040
RB
140362013-04-29 Richard Biener <rguenther@suse.de>
14037
14038 PR middle-end/57103
14039 * tree-cfg.c (move_stmt_op): Fix condition under which to update
14040 TREE_BLOCK.
14041 (move_stmt_r): Remove redundant checking.
14042
f41f80f9
TJ
140432013-04-29 Teresa Johnson <tejohnson@google.com>
14044
14045 PR bootstrap/57077
14046 * basic-block.h (apply_scale): New function.
14047 (apply_probability): Use apply_scale.
14048 * gimple-streamer-in.c (input_bb): Ditto.
14049 * lto-streamer-in.c (input_cfg): Ditto.
14050 * lto-cgraph.c (merge_profile_summaries): Ditto.
14051 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 14052 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
14053 (copy_edges_for_bb): Ditto.
14054 (copy_cfg_body): Ditto.
14055
315bbd2e
TV
140562013-04-29 Tom de Vries <tom@codesourcery.com>
14057
14058 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
14059 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
14060 (tail_merge_optimize): Handle current_loops == NULL.
14061
ebbd90d8
JL
140622013-04-26 Jeff Law <law@redhat.com>
14063
14064 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
14065 (simplify_cond_using_ranges): Generalize code to simplify
14066 COND_EXPRs where one argument is a constant and the other
14067 is an SSA_NAME created by an integral type conversion.
14068
8b9b57eb
KT
140692013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14070
14071 * config/arm/arm.md (store_minmaxsi): Use only when
14072 optimize_insn_for_size_p.
14073
9498e5dc
CB
140742013-04-29 Christian Bruel <christian.bruel@st.com>
14075
14076 PR target/57108
14077 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
14078
6093bc06
RB
140792013-04-29 Richard Biener <rguenther@suse.de>
14080
14081 PR middle-end/57089
fdca7d03
UB
14082 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
14083 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
14084 (expand_omp_for_generic): Properly add loops.
14085 (expand_omp_for_static_nochunk): Likewise.
14086 (expand_omp_for_static_chunk): Likewise.
14087 (expand_omp_for): For the degenerate case fixup loops.
14088 (expand_omp_sections): Fix default bb placement in loops.
14089 (expand_omp_atomic_pipeline): Properly add loops.
14090
84aacbfd
KT
140912013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14092
14093 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
14094
8dee4479
TV
140952013-04-29 Tom de Vries <tom@codesourcery.com>
14096
14097 * tree-ssa-tail-merge.c: Update header comment.
14098
47934dc4
JG
140992013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14100
14101 * config/aarch64/arm_neon.h
14102 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
14103 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
14104 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
14105 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
14106 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
14107 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
14108 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
14109 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
14110
384be29f
JG
141112013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14112
14113 * config/aarch64/aarch64-simd.md
14114 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
14115 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
14116 fix_trunc, fixuns_trunc.
14117 (ftrunc<VDQF:mode>2): New.
14118 * config/aarch64/iterators.md (optab): Add fix, fixuns.
14119 (fix_trunc_optab): New.
14120
0386b123
JG
141212013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14122
14123 * config/aarch64/aarch64-builtins.c
14124 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
14125 iceilf, lround, iroundf.
14126
00fcb892
UB
141272013-04-29 Uros Bizjak <ubizjak@gmail.com>
14128
14129 PR target/54349
14130 * config/i386/i386.h (enum ix86_tune_indices)
14131 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
14132 New, split from X86_TUNE_INTER_UNIT_MOVES.
14133 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
14134 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
14135 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
14136 (TARGET_INTER_UNIT_MOVES): Remove.
14137 * config/i386/i386.c (initial_ix86_tune_features): Update.
14138 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
14139 (ix86_expand_convert_uns_didf_sse): Use
14140 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14141 (ix86_expand_vector_init_one_nonzero): Ditto.
14142 (ix86_expand_vector_init_interleave): Ditto.
14143 (inline_secondary_memory_needed): Return true for moves from SSE class
14144 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
14145 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14146 * config/i386/constraints.md (Yi, Ym): Depend on
14147 TARGET_INTER_UNIT_MOVES_TO_VEC.
14148 (Yj, Yn): New constraints.
14149 * config/i386/i386.md (*movdi_internal): Change constraints of
14150 operand 1 from Yi to Yj and from Ym to Yn.
14151 (*movsi_internal): Ditto.
14152 (*movdf_internal): Ditto.
14153 (*movsf_internal): Ditto.
14154 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
14155 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14156 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
14157 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
14158 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
14159 * config/i386/sse.md (movdi_to_sse): Ditto.
14160 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
14161 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
14162 TARGET_INTER_UNIT_MOVES.
14163 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
14164 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
14165 instead of TARGET_INTER_UNIT_MOVES.
14166 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
14167 operand 1 from Yi to Yj and from Ym to Yn.
14168
4c871069
JG
141692013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14170
14171 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
14172 (float_truncate_hi_): Likewise.
14173 (float_extend_lo_): Likewise.
14174 (float_truncate_lo_): Likewise.
14175 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
14176 (aarch64_float_extend_lo_v2df): Likewise.
14177 (vec_unpacks_hi_v4sf): Likewise.
14178 (aarch64_float_truncate_lo_v2sf): Likewise.
14179 (aarch64_float_truncate_hi_v4sf): Likewise.
14180 (vec_pack_trunc_v2df): Likewise.
14181 (vec_pack_trunc_df): Likewise.
14182
1709ff9b
JG
141832013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14184
14185 * config/aarch64/aarch64-builtins.c
14186 (aarch64_fold_builtin): Fold float conversions.
14187 * config/aarch64/aarch64-simd-builtins.def
14188 (floatv2si, floatv4si, floatv2di): New.
14189 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
14190 * config/aarch64/aarch64-simd.md
14191 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
14192 * config/aarch64/iterators.md (FLOATUORS): New.
14193 (optab): Add float, floatuns.
14194 (su_optab): Likewise.
14195
ce966824
JG
141962013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14197
14198 * config/aarch64/aarch64-builtins.c
14199 (aarch64_builtin_vectorized_function): Use new names for
14200 fcvt builtins.
14201 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
14202 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
14203 (fcvtzu): Split as...
14204 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
14205 (fcvtas): Split as...
14206 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
14207 (fcvtau): Split as...
14208 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
14209 (fcvtps): Split as...
14210 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
14211 (fcvtpu): Split as...
14212 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
14213 (fcvtms): Split as...
14214 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
14215 (fcvtmu): Split as...
14216 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
14217 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
14218 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
14219 (lfrintnusf, lfrintnudf): Likewise.
14220 * config/aarch64/aarch64-simd.md
14221 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
14222 define_insn.
14223 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
14224 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
14225 (fcvt_pattern): Likewise.
14226
b9de24fe
JG
142272013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14228
14229 * config/aarch64/aarch64-simd.md
14230 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
14231 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
14232
77a205be
JG
142332013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14234
14235 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
14236 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
14237 (vrnd<a,m,n,p>_f32): Implement using builtins.
14238 (vrnd<i,x><q>_f<32, 64>): New.
14239
0659ce6f
JG
142402013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14241
14242 * config/aarch64/aarch64-builtins.c
14243 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
14244 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
14245 (frintz): Rename to...
14246 (btrunc): ...this.
14247 (frintp): Rename to...
14248 (ceil): ...this.
14249 (frintm): Rename to...
14250 (floor): ...this.
14251 (frinti): Rename to...
14252 (nearbyint): ...this.
14253 (frintx): Rename to...
14254 (rint): ...this.
14255 (frinta): Rename to...
14256 (round): ...this.
14257 * config/aarch64/aarch64-simd.md
14258 (aarch64_frint<frint_suffix><mode>): Delete.
14259 (<frint_pattern><mode>2): Convert to insn.
14260 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
14261 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
14262 (frint_pattern): Likewise.
14263 (frint_suffix): Likewise.
14264
ea78906a
RB
142652013-04-29 Richard Biener <rguenther@suse.de>
14266
14267 PR tree-optimization/57081
14268 * loop-init.c: Include tree-flow.h.
14269 (loop_optimizer_finalize): Free number of iteration estimates.
14270 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
14271
baee1763
JJ
142722013-04-29 Jakub Jelinek <jakub@redhat.com>
14273
94dc5332
JJ
14274 PR tree-optimization/57083
14275 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
14276 non-singleton shift count range, zero extend low_bound for uns case.
14277
baee1763
JJ
14278 * config/i386/predicates.md (general_vector_operand): New predicate.
14279 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
14280 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
14281 if they aren't nonimmediate operands. If their original values
14282 satisfy const_vector_equal_evenodd_p, don't shift them.
14283 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
14284 predicates. For the SSE4.1 case force operands[{1,2}] into registers
14285 if not nonimmediate_operand.
14286 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
14287 instead of register_operand.
14288 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
14289
a9073727 142902013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
14291
14292 * stor-layout.c (finalize_size_functions): Allocate a structure and
14293 reset cfun before dumping the functions.
14294
ba8011e6
JJ
142952013-04-27 Jakub Jelinek <jakub@redhat.com>
14296
d6fde69e
JJ
14297 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
14298
ba8011e6
JJ
14299 PR target/56866
14300 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
14301 use xop_pmacsdqh if uns_p.
14302 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
14303 the immediate rotate count.
14304
2c62cbaa
VM
143052013-04-26 Vladimir Makarov <vmakarov@redhat.com>
14306
14307 * rtl.h (struct rtx_def): Add comment for field jump.
14308 (LRA_SUBREG_P): New macro.
14309 * recog.c (register_operand): Check LRA_SUBREG_P.
14310 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14311 stack frame.
14312 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14313 (lra_final_code_change): Skip subreg change for operators.
14314 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14315 if there are no operand changes.
14316 * lra-constraints.c (curr_insn_set): New.
14317 (match_reload): Set LRA_SUBREG_P.
14318 (emit_spill_move): Ditto.
14319 (check_and_process_move): Use curr_insn_set. Process only single
14320 set insns. Don't initialize sec_mem_p and change_p.
14321 (simplify_operand_subreg): Use LRA_SUBREG_P.
14322 (reg_in_class_p): New function.
14323 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14324 of #ifdef. Add code to remove cycling.
14325 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14326 non-null disp. Reload inner instead of disp when base and index
14327 are null. Try to put lo_sum into register.
14328 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14329 (check_and_process_move): Move code for move cost check to
14330 simple_move_p. Remove equiv_substitution.
14331 (simple_move_p): New function.
14332 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14333 curr_insn_set. Call check_and_process_move only for single set
14334 insns. Use the new function. Move call of check_and_process_move
14335 after operand equiv substitution and address process.
14336
e7d764f3
JJ
143372013-04-26 Jakub Jelinek <jakub@redhat.com>
14338
14339 PR go/57045
14340 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14341 with nonlocal goto receivers or returns twice calls, ignore
14342 unininitialized values from abnormal edges to nl goto receiver
14343 or returns twice call.
14344
41e10689
JJ
143452013-04-26 Jakub Jelinek <jakub@redhat.com>
14346
14347 PR tree-optimization/57051
14348 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14349 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14350 bitsize.
14351
d7ed20db
RB
143522013-04-26 Richard Biener <rguenther@suse.de>
14353
14354 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14355 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14356 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14357 (fixup_loop_arrays_after_move): New function.
14358 (move_sese_region_to_fn): Properly outline the loop tree parts
14359 of the SESE region.
14360
df93505e
UB
143612013-04-26 Uros Bizjak <ubizjak@gmail.com>
14362
14363 * config/i386/i386.md (type, unit): Fix long lines.
14364
dd366ec3
RB
143652013-04-26 Richard Biener <rguenther@suse.de>
14366
14367 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14368 (lto-streamer-out.o): Likewise.
14369 * cfgloop.c (init_loops_structure): Export, add struct function
14370 argument and adjust.
14371 (flow_loops_find): Adjust.
14372 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14373 (init_loops_structure): Declare.
14374 * lto-streamer-in.c: Include cfgloop.h.
14375 (input_cfg): Input the loop tree.
14376 * lto-streamer-out.c: Include cfgloop.h.
14377 (output_cfg): Output the loop tree.
14378 (output_struct_function_base): Do not drop PROP_loops.
14379
a9e0d843
RB
143802013-03-26 Richard Biener <rguenther@suse.de>
14381
14382 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14383 (pass_build_cfg): Provide PROP_loops.
14384 (move_sese_region_to_fn): Remove loops that are outlined into fn
14385 for now.
14386 * tree-inline.c: Include cfgloop.h.
14387 (initialize_cfun): Do not drop PROP_loops.
14388 (copy_loops): New function.
14389 (copy_cfg_body): Copy loop structure.
14390 (tree_function_versioning): Initialize destination loop tree.
14391 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14392 (pass_parallelize_loops): Do IL verification.
14393 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14394 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14395 the CFG make sure we fixup loops as well.
14396 * tree-ssa-tail-merge.c: Include cfgloop.h.
14397 (replace_block_by): When merging loop latches mark loops for fixup.
14398 * lto-streamer-out.c (output_struct_function_base): Drop
14399 PROP_loops for now.
14400 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14401 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14402 * ipa-split.c: Include cfgloop.h.
14403 (split_function): Add the new return block to the loop tree root.
14404 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14405 whether we have removed the forwarder block.
14406 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14407 * cfgloop.h (place_new_loop): Declare.
14408 * cfgloopmanip.c (place_new_loop): Export.
14409 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14410 (tree-switch-conversion.o): Likewise.
14411 (tree-complex.o): Likewise.
14412 (tree-inline.o): Likewise.
14413 (tree-ssa-tailmerge.o): Likewise.
14414 (ipa-split.o): Likewise.
14415 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14416 (tree-ssa-copy.o): Likewise.
14417 * tree-switch-conversion.c: Include cfgloop.h
14418 (process_switch): If we emit a bit-test cascade, schedule loops
14419 for fixup.
14420 * tree-complex.c: Include cfgloop.h.
14421 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14422 * asan.c: Include cfgloop.h.
14423 (create_cond_insert_point): Properly add new basic-blocks to
14424 loops, schedule loop fixup.
14425 * cfgloop.c (verify_loop_structure): Check that looks are not
14426 marked for fixup.
14427 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14428 to loops.
14429 (expand_omp_for_generic): Likewise.
14430 (expand_omp_sections): Likewise.
14431 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14432 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14433 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14434 is initialized, not when loops are present.
14435 * tree-parloops.c (parallelize_loops): Remove checking here.
14436 * passes.c (init_optimization_passes): Schedule a copy-propagation
14437 pass before complete unrolling of inner loops.
14438
e78e8a0b
JJ
144392013-04-26 Jakub Jelinek <jakub@redhat.com>
14440
a2e836b2
JJ
14441 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14442 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14443 (colorize_init): Add argument to _WIN32 version.
14444 * toplev.c: Include diagnostic-color.h.
14445 (process_options): Default to -fdiagnostics-color=auto if
14446 GCC_COLORS env var is in the environment.
14447 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14448 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14449 env var is in the environment, the default is auto rather than never.
a2e836b2 14450
e78e8a0b
JJ
14451 * diagnostic.h (file_name_as_prefix): Add context argument.
14452 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14453 the string as locus.
14454 * langhooks.c (lhd_print_error_function): Adjust caller.
14455
013e5ef9
LC
144562013-04-25 Lawrence Crowl <crowl@google.com>
14457
14458 * var-tracking.c (shared_hash_def::htab):
14459 Change type to hash_table. Update dependent calls and types.
14460
4a8fb1a1
LC
144612013-04-25 Lawrence Crowl <crowl@google.com>
14462
14463 * Makefile.in: Update as needed below.
14464
14465 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14466 Move declaration to after the type's method definitons.
14467
14468 * attribs.c (htab_t scoped_attributes::attribute_hash):
14469 Change type to hash_table. Update dependent calls and types.
14470
14471 * bitmap.c (htab_t bitmap_desc_hash):
14472 Change type to hash_table. Update dependent calls and types.
14473
14474 * cselib.c (htab_t cselib_hash_table):
14475 Change type to hash_table. Update dependent calls and types.
14476
14477 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14478 (hash_string_slot_node): Move implementation into lto-streamer.h
14479 struct string_slot_hasher.
14480 (eq_string_slot_node): Likewise.
14481
14482 * data-streamer-out.c: Update output_block::string_hash_table
14483 dependent calls and types.
14484
14485 * dwarf2cfi.c (htab_t trace_index):
14486 Change type to hash_table. Update dependent calls and types.
14487
14488 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14489 Change type to hash_table. Update dependent calls and types.
14490 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14491 (htab_t optimize_external_refs::map): Likewise.
14492 (htab_t output_comp_unit::extern_map): Likewise.
14493 (htab_t output_comdat_type_unit::extern_map): Likewise.
14494 (htab_t output_macinfo::macinfo_htab): Likewise.
14495 (htab_t optimize_location_lists::htab): Likewise.
14496 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14497
14498 * except.c (htab_t ehspec_hash_type):
14499 Change type to hash_table. Update dependent calls and types.
14500 (assign_filter_values::ttypes): Likewise.
14501 (assign_filter_values::ehspec): Likewise.
14502 (sjlj_assign_call_site_values::ar_hash): Likewise.
14503 (convert_to_eh_region_ranges::ar_hash): Likewise.
14504
14505 * gcse.c (htab_t pre_ldst_table):
14506 Change type to hash_table. Update dependent calls and types.
14507
14508 * ggc-common.c (htab_t saving_htab):
14509 Change type to hash_table. Update dependent calls and types.
14510 (htab_t loc_hash): Likewise.
14511 (htab_t ptr_hash): Likewise.
14512 (call_count): Rename ggc_call_count.
14513 (call_alloc): Rename ggc_call_alloc.
14514 (loc_descriptor): Rename make_loc_descriptor.
14515 (add_statistics): Rename ggc_add_statistics.
14516
14517 * ggc-common.c (saving_htab):
14518 Change type to hash_table. Update dependent calls and types.
14519
14520 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14521 (push_gimplify_context): Likewise.
14522 (pop_gimplify_context): Likewise.
14523 (struct gimple_temp_hash_elt): Added.
14524 (struct gimplify_hasher): Likewise.
14525 (struct gimplify_ctx.temp_htab):
14526 Change type to hash_table. Update dependent calls and types.
14527
14528 * gimple-fold.c: Include gimplify-ctx.h.
14529
14530 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14531 Change type to hash_table. Update dependent calls and types.
14532 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14533 avoid potential global name collision.
14534
14535 * gimplify.c: Include gimplify-ctx.h.
14536 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14537 (htab_t gimplify_ctx::temp_htab):
14538 Update dependent calls and types for new type hash_table.
14539 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14540 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14541
14542 * gimplify-ctx.h: New.
14543 (struct gimple_temp_hash_elt): Move from gimplify.c.
14544 (class gimplify_hasher): New.
14545 (struct gimplify_ctx): Move from gimple.h.
14546 (htab_t gimplify_ctx::temp_htab):
14547 Change type to hash_table. Update dependent calls and types.
14548
14549 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14550 (htab_t ivs_params::newivs_index):
14551 Change type to hash_table. Update dependent calls and types.
14552 (htab_t ivs_params::params_index): Likewise.
14553 (htab_t print_generated_program::params_index): Likewise.
14554 (htab_t gloog::newivs_index): Likewise.
14555 (htab_t gloog::params_index): Likewise.
14556
14557 * graphite.c: Include graphite-htab.h.
14558 4htab_t graphite_transform_loops::bb_pbb_mapping):
14559 Change type to hash_table. Update dependent calls and types.
14560
14561 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14562 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14563 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14564
14565 * graphite-dependences.c: Include graphite-htab.h.
14566 (loop_is_parallel_p): Change hash table type of parameter.
14567
14568 * graphite-htab.h: New.
14569 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14570 (extern find_pbb_via_hash): Move from graphite-poly.h.
14571 (extern loop_is_parallel_p): Move from graphite-poly.h.
14572 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14573
14574 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14575 (extern loop_is_parallel_p): Move to graphite-htab.h.
14576 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14577
14578 * haifa-sched.c (htab_t delay_htab):
14579 Change type to hash_table. Update dependent calls and types.
14580 (htab_t delay_htab_i2): Likewise.
14581
14582 * ira-color.c (htab_t allocno_hard_regs_htab):
14583 Change type to hash_table. Update dependent calls and types.
14584
14585 * ira-costs.c (htab_t cost_classes_htab):
14586 Change type to hash_table. Update dependent calls and types.
14587
14588 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14589 Change type to hash_table. Update dependent calls and types.
14590
14591 * loop-iv.c (htab_t bivs):
14592 Change type to hash_table. Update dependent calls and types.
14593
14594 * loop-unroll.c (htab_t opt_info::insns_to_split):
14595 Change type to hash_table. Update dependent calls and types.
14596 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14597
14598 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14599 (struct string_slot_hasher): New.
14600 (htab_t output_block::string_hash_table):
14601 Change type to hash_table. Update dependent calls and types.
14602
14603 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14604 (htab_t file_name_hash_table):
14605 Change type to hash_table. Update dependent calls and types.
14606
14607 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14608 calls and types.
14609
14610 * lto-streamer.c (htab_t tree_htab):
14611 Change type to hash_table. Update dependent calls and types.
14612
14613 * omp-low.c: Include gimplify-ctx.h.
14614
14615 * passes.c (htab_t name_to_pass_map):
14616 Change type to hash_table. Update dependent calls and types.
14617 (pass_traverse): Rename to passes_pass_traverse.
14618
14619 * plugin.c (htab_t event_tab):
14620 Change type to hash_table. Update dependent calls and types.
14621
14622 * postreload-gcse.c (htab_t expr_table):
14623 Change type to hash_table. Update dependent calls and types.
14624 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
14625
14626 * sese.c (debug_rename_map_1): Make extern.
14627 (htab_t copy_bb_and_scalar_dependences::rename_map):
14628 Change type to hash_table. Update dependent calls and types.
14629
14630 * sese.h (extern debug_rename_map): Move to .c file.
14631
14632 * store-motion.c (htab_t store_motion_mems_table):
14633 Change type to hash_table. Update dependent calls and types.
14634
14635 * trans-mem.c (htab_t tm_new_mem_hash):
14636 Change type to hash_table. Update dependent calls and types.
14637
14638 * tree-browser.c (htab_t TB_up_ht):
14639 Change type to hash_table. Update dependent calls and types.
14640
14641 * tree-cfg.c (htab_t discriminator_per_locus):
14642 Change type to hash_table. Update dependent calls and types.
14643
14644 * tree-complex.c: Include tree-hasher.h
14645 (htab_t complex_variable_components):
14646 Change type to hash_table. Update dependent calls and types.
14647
14648 * tree-eh.c (htab_t finally_tree):
14649 Change type to hash_table. Update dependent calls and types.
14650
14651 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
14652 struct int_tree_hasher.
14653 (extern int_tree_map_eq): Likewise.
14654 (uid_decl_map_hash): Removed.
14655 (extern decl_tree_map_eq): Likewise.
14656
14657 * tree-hasher.h: New.
14658 (struct int_tree_hasher): New.
14659 (typedef int_tree_htab_type): New.
14660
14661 * tree-inline.c: Include gimplify-ctx.h.
14662
14663 * tree-mudflap.c: Include gimplify-ctx.h.
14664
14665 * tree-parloops.c: Include tree-hasher.h.
14666 (htab_t eliminate_local_variables_stmt::decl_address):
14667 Change type to hash_table. Update dependent calls and types.
14668 (htab_t separate_decls_in_region::decl_copies): Likewise.
14669
14670 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
14671 Change type to hash_table. Update dependent calls and types.
14672
14673 * tree-sra.c (candidates):
14674 Change type to hash_table. Update dependent calls and types.
14675
14676 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
14677 in tree-flow.h.
14678 (int_tree_map_hash): Likewise.
14679
14680 * tree-ssa-dom.c (htab_t avail_exprs):
14681 Change type to hash_table. Update dependent calls and types.
14682
14683 * tree-ssa-live.c (var_map_base_init::tree_to_index):
14684 Change type to hash_table. Update dependent calls and types.
14685
14686 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
14687 Change type to hash_table. Update dependent calls and types.
14688
14689 * tree-ssa-phiopt.c (seen_ssa_names):
14690 Change type to hash_table. Update dependent calls and types.
14691
14692 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
14693 Change type to hash_table. Update dependent calls and types.
14694
14695 * tree-ssa-uncprop.c (equiv):
14696 Change type to hash_table. Update dependent calls and types.
14697
c5a44004
JJ
146982013-04-25 Jakub Jelinek <jakub@redhat.com>
14699
14700 PR rtl-optimization/57003
14701 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14702 call note_stores with kill_clobbered_value callback again after
14703 killing regs_invalidated_by_call.
14704
09962a4a
JG
147052013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14706
14707 * config/aarch64/aarch64-simd.md
14708 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
14709 (aarch64_simd_bsl<mode>): Likewise.
14710 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
14711
ea28bb0b
MP
147122013-04-25 Marek Polacek <polacek@redhat.com>
14713
14714 PR tree-optimization/57066
3c21604f 14715 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 14716
96659611
JG
147172013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
14718
14719 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
14720
9697e620
JG
147212013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14722
14723 * config/aarch64/aarch64-builtins.c
14724 (aarch64_fold_builtin): New.
14725 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
14726 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
14727 * config/aarch64/aarch64-simd-builtins.def (abs): New.
14728 * config/aarch64/arm_neon.h
14729 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
14730
0ac198d3
JG
147312013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14732 Tejas Belagod <tejas.belagod@arm.com>
14733
14734 * config/aarch64/aarch64-builtins.c
14735 (aarch64_gimple_fold_builtin): New.
14736 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
14737 * config/aarch64/aarch64-simd-builtins.def (addv): New.
14738 * config/aarch64/aarch64-simd.md (addpv4sf): New.
14739 (addvv4sf): Update.
14740 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
14741
58cff58c
N
147422013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14743
df93505e 14744 * config/aarch64/aarch64.md
58cff58c
N
14745 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
14746
7e0228bf
N
147472013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14748
14749 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
14750 (*ngcsi_uxtw): New pattern.
14751
5819f96f 147522013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 14753 Julian Brown <julian@codesourcery.com>
5819f96f
KT
14754
14755 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
14756 (TB_DREG): Add T_V4HF.
14757 (v4hf_UP): New macro.
14758 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 14759 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14760 Handle initialisation of V4HF. Adjust initialisation of reinterpret
14761 built-ins.
df93505e 14762 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14763 (arm_vector_mode_supported_p): Handle V4HF.
14764 (arm_mangle_map): Handle V4HFmode.
14765 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
14766 * config/arm/arm_neon_builtins.def: Add entries for
14767 vcvtv4hfv4sf, vcvtv4sfv4hf.
14768 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
14769 (neon_vcvtv4hfv4sf): Likewise.
14770 * config/arm/neon-gen.ml: Handle half-precision floating point
14771 features.
14772 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
14773 * config/arm/arm_neon.h: Regenerate.
14774 * config/arm/neon.ml (type elts): Add F16.
14775 (type vectype): Add T_float16x4, T_floatHF.
14776 (type vecmode): Add V4HF.
14777 (type features): Add Requires_FP_bit feature.
14778 (elt_width): Handle F16.
14779 (elt_class): Likewise.
14780 (elt_of_class_width): Likewise.
14781 (mode_of_elt): Refactor.
14782 (type_for_elt): Handle F16, fix error messages.
14783 (vectype_size): Handle T_float16x4.
14784 (vcvt_sh): New function.
14785 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
14786 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
14787 (string_of_mode): Handle V4HF.
14788 * doc/arm-neon-intrinsics.texi: Regenerate.
14789
1ef395e4
JG
147902013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14791
14792 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
14793 format specifier in 'X' case.
14794
41c34e94
AM
147952013-04-25 Alan Modra <amodra@gmail.com>
14796
14797 PR target/57052
14798 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
14799 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
14800 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
14801 Repeat for many other rotate/shift and mask patterns using subregs.
14802 Name lshiftrt insns.
14803 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
14804 on WORDS_BIG_ENDIAN.
14805
b9a7eb5d
AM
148062013-04-25 Alan Modra <amodra@gmail.com>
14807
14808 * config.gcc: Support little-endian powerpc-linux targets.
14809 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
14810 (LINK_OS_LINUX_SPEC): Define.
14811 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
14812 Preserve MASK_LITTLE_ENDIAN.
14813 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
14814 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
14815 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
14816 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
14817 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
14818 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
14819 Correct fp word order for little-endian. Don't shift toc entries
14820 smaller than a word for little-endian.
14821 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
14822 (bswapdi2 splits): Correct low-part subreg for little-endian.
14823 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
14824 low/high where such is correct only for be.
14825 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
14826 little-endian for -mcall-aixdesc.
14827
87f73374
AM
148282013-04-25 Alan Modra <amodra@gmail.com>
14829
14830 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14831 replace_equiv_address_nv.
14832
cabf91cd
AM
148332013-04-25 Alan Modra <amodra@gmail.com>
14834
14835 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
14836
0ae24cc8
VM
148372013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14838
14839 Revert:
14840 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14841 * rtl.h (struct rtx_def): ...
cabf91cd 14842
77bce07c
VM
148432013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14844
14845 PR rtl-optimizations/57046
14846 * lra-constraints (split_reg): Set up lra_risky_transformations_p
14847 for multi-reg splits.
14848
0db63e7f
L
148492013-04-24 H.J. Lu <hongjiu.lu@intel.com>
14850
14851 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
14852
3362b6b6
SA
148532013-04-24 Sterling Augustine <saugustine@google.com>
14854
14855 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
14856 (comp_dir_string, debug_str_dwo_section): New.
14857 (DEBUG_STR_DWO_SECTION): Rename to ...
14858 (DEBUG_DWO_STR_SECTION): ... this.
14859 (DEBUG_NORM_STR_SECTION): Delete.
14860 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
14861 (DEBUG_STR_DWO_SECTION_FLAGS): New.
14862 (find_AT_string): Move most logic to ...
14863 (find_AT_string_in_table): ... here. New.
14864 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
14865 add_skeleton_AT_string. Delete logic.
14866 (output_skeleton_debug_sections): Remove call to
14867 add_top_level_skeleton_die_attrs.
14868 (add_comp_dir_attribute): Move logic to comp_dir_string.
14869 (dwarf2out_init): Initialize debug_str_dwo_section.
14870 (output_indirect_string): Call find_string_form.
14871 (output_indirect_strings): Rewrite.
14872 (prune_unused_types): Empty skeleton_debug_str_hash.
14873 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
14874 (dwarf2out_finish): Call output_indirect_strings.
14875
e93e18e9
PC
148762013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14877
14878 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
14879
f6ce35ac
VM
148802013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14881
cabf91cd 14882 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
14883 (LRA_SUBREG_P): New macro.
14884 * recog.c (register_operand): Check LRA_SUBREG_P.
14885 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14886 stack frame.
14887 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14888 (lra_final_code_change): Skip subreg change for operators.
14889 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14890 if there are no operand changes.
14891 * lra-constraints.c (curr_insn_set): New.
14892 (match_reload): Set LRA_SUBREG_P.
14893 (emit_spill_move): Ditto.
14894 (check_and_process_move): Use curr_insn_set. Process only single
14895 set insns. Don't initialize sec_mem_p and change_p.
14896 (simplify_operand_subreg): Use LRA_SUBREG_P.
14897 (reg_in_class_p): New function.
14898 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14899 of #ifdef. Add code to remove cycling.
14900 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14901 non-null disp. Reload inner instead of disp when base and index
14902 are null. Try to put lo_sum into register.
14903 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 14904 (check_and_process_move): Move code for move cost check to
f6ce35ac 14905 simple_move_p. Remove equiv_substitution.
cabf91cd 14906 (simple_move_p): New function.
f6ce35ac
VM
14907 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14908 curr_insn_set. Call check_and_process_move only for single set
14909 insns. Use the new function. Move call of check_and_process_move
14910 after operand equiv substitution and address process.
14911
38047d90
JG
149122013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
14913
14914 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
14915 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
14916 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
14917
13f39b2e
PC
149182013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14919
14920 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
14921
97c116dc
MP
149222013-04-24 Marek Polacek <polacek@redhat.com>
14923
14924 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
14925 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
14926 (select_loops_exit_conditions): Likewise.
14927 (number_of_iterations_for_all_loops): Likewise.
14928 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
14929 (scev_analysis): Likewise.
14930
83082391 149312013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 14932 Chao-ying Fu <fu@mips.com>
83082391 14933
cabf91cd
AM
14934 * config/mips/micromips.md (jraddiusp): New pattern.
14935 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
14936 instruction if possible.
83082391 14937
19e34aa2
AM
149382013-04-24 Alan Modra <amodra@gmail.com>
14939
14940 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
14941
fdb6603c
JB
149422013-04-24 Julian Brown <julian@codesourcery.com>
14943 Chung-Lin Tang <cltang@codesourcery.com>
14944
14945 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
14946 dependency behavior in enumeration type DIE generation. Add TODO note
14947 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 14948
bf190e8d
LC
149492013-04-23 Lawrence Crowl <crowl@google.com>
14950
14951 * Makefile.in: Update as needed below.
14952
14953 * hash-table.h (class hash_table):
14954 Correct many methods with parameter types compare_type to the correct
14955 value_type. (Correct code was unlikely to notice the change.)
14956 (hash_table::elements_with_deleted) New.
14957 (class hashtable::iterator): New.
14958 (hashtable::begin()): New.
14959 (hashtable::end()): New.
14960 (FOR_EACH_HASH_TABLE_ELEMENT): New.
14961
14962 * statistics.c (statistics_hashes):
14963 Change type to hash_table. Update dependent calls and types.
14964
14965 * tree-into-ssa.c (var_infos):
14966 Change type to hash_table. Update dependent calls and types.
14967
14968 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
14969 Change type to hash_table. Update dependent calls and types.
14970
14971 * tree-ssa-loop-im.c (struct mem_ref.refs):
14972 Change type to hash_table. Update dependent calls and types.
14973
14974 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
14975 Change type to hash_table. Update dependent calls and types.
14976
14977 * tree-ssa-sccvn.c (vn_tables_s::nary):
14978 Change type to hash_table. Update dependent calls and types.
14979 (vn_tables_s::phis): Likewise.
14980 (vn_tables_s::references): Likewise.
14981
14982 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
14983 (vn_reference_eq): Update parameter and return types.
14984
14985 * tree-ssa-structalias.c (pointer_equiv_class_table):
14986 Change type to hash_table. Update dependent calls and types.
14987 (location_equiv_class_table): Likewise.
14988
14989 * tree-vect-data-refs.c: Consequential changes for making
14990 peeling a hash_table.
14991
14992 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
14993 (destroy_loop_vec_info): Dependent hash_table update.
14994
14995 * tree-vectorizer.h (peeling_htab):
14996 Change type to hash_table. Update dependent calls and types.
14997
d70a81dd
SC
149982013-04-23 Shiva Chen <shiva0217@gmail.com>
14999
cabf91cd
AM
15000 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
15001 to check the register content is equal or not.
15002 * lra-constraints.c (match_reload): Use lra_assign_reg_val
15003 to assign register content record.
15004 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 15005 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
15006 * lra-int.h (struct lra_reg): Add offset member.
15007 (lra_reg_val_equal_p): New static inline function.
15008 (lra_update_reg_val_offset): New static inline function.
15009 (lra_assign_reg_val): New static inline function.
15010 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
15011 to assign register content record.
15012 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 15013
b894a1f3
CM
150142013-04-23 Catherine Moore <clm@codesourcery.com>
15015
15016 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
15017 operands. Record compression.
15018
ecd14de9
XDL
150192013-04-23 Xinliang David Li <davidxl@google.com>
15020
15021 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
15022
92e776e9
RB
150232013-04-23 Richard Biener <rguenther@suse.de>
15024
15025 PR middle-end/57036
15026 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
15027 parameter, only add abnormal goto edges from the copied body
15028 if the call could perform abnormal gotos.
15029 (copy_cfg_body): Adjust.
15030
a15ee567
SN
150312013-04-23 Sofiane Naci <sofiane.naci@arm.com>
15032
15033 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
15034
08c52234
AS
150352013-04-23 Andreas Schwab <schwab@linux-m68k.org>
15036
15037 * coretypes.h (gimple_stmt_iterator): Add struct to make
15038 compatible with C.
15039
999c1171
RB
150402013-04-23 Richard Biener <rguenther@suse.de>
15041
15042 PR tree-optimization/57026
15043 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
15044 from SSA names occuring in abnormal PHI nodes.
15045
53669259
AK
150462013-04-22 Andi Kleen <ak@linux.intel.com>
15047
15048 * lto/lto.c (print_lto_report_1): Fix LTO report names.
15049
1a0ad150
AK
150502013-04-22 Andi Kleen <ak@linux.intel.com>
15051
15052 * lto/lto.c (print_lto_report_1): Declare early.
15053 (read_cgraph_and_symbols): Call print_lto_report_1 early.
15054
057f8f20
AK
150552013-04-22 Andi Kleen <ak@linux.intel.com>
15056
15057 * common.opt (-flto-report-wpa): Add.
15058 * doc/invoke.texi (-flto-report-wpa): Add.
15059 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
15060 (lto_main): dito.
15061
473b1e05
XDL
150622013-04-22 Xinliang David Li <davidxl@google.com>
15063
15064 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
15065 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
15066 * Makefile.in: New dependency
15067
cabf91cd 15068 David Daney <ddaney.cavm@gmail.com>
b1485a33 15069
cabf91cd
AM
15070 * configure.ac (gcc_cv_as_micromips_support): Use the
15071 --fatal-warnings option.
15072 * configure: Regenerate.
b1485a33 15073
829d0168
MP
150742013-04-22 Marek Polacek <polacek@redhat.com>
15075
15076 PR sanitizer/56990
15077 * tsan.c (instrument_expr): Don't instrument expression
15078 in case its size is zero.
15079
6d9b7208
UB
150802013-04-22 Uros Bizjak <ubizjak@gmail.com>
15081
15082 PR target/57032
15083 Revert:
15084 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
15085
15086 * config/alpha/alpha.c (TARGET_LRA_P): New define.
15087
ea679d55
JG
150882013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15089
15090 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
15091 (gimple_stmt_iterator): New typedef.
15092 * gimple.h (gimple_stmt_iterator): Rename to...
15093 (gimple_stmt_iterator_d): ... This.
15094 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
15095 trees be valid for GIMPLE and GENERIC.
15096 (TARGET_GIMPLE_FOLD_BUILTIN): New.
15097 * gimple-fold.c (gimple_fold_call): Call target hook
15098 gimple_fold_builtin.
15099 * hooks.c (hook_bool_gsiptr_false): New.
15100 * hooks.h (hook_bool_gsiptr_false): New.
15101 * target.def (fold_stmt): New.
15102 * doc/tm.texi: Regenerate.
15103
88a581da
VM
151042013-04-22 Vladimir Makarov <vmakarov@redhat.com>
15105
15106 PR target/57018
15107 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
15108 a set sp if no stack realignment.
15109
92be22dc
NC
151102013-04-22 Nick Clifton <nickc@redhat.com>
15111
15112 * config.gcc (tilegx-linux): Extend extra_objs rather than
15113 overwriting it.
15114 (tilepro-linux): Likewise.
15115
0ddec79f
JG
151162013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15117
15118 * config/aarch64/aarch64-builtins.c
15119 (CF): Remove.
15120 (CF0, CF1, CF2, CF3, CF4, CF10): New.
15121 (VAR<1-12>): Add MAP parameter.
15122 (BUILTIN_*): Likewise.
15123 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
15124 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
15125 (aarch64_ushl_n<mode>): Likewise.
15126 (aarch64_sshr_n<mode>): Likewise.
15127 (aarch64_ushr_n<mode>): Likewise.
15128 (aarch64_<maxmin><mode>): Likewise.
15129 (aarch64_sqrt<mode>): Likewise.
15130 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
15131 (vshr<q>_n_*): Likewise.
15132
0050faf8
JG
151332013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15134
15135 * config/aarch64/aarch64-builtins.c
15136 (aarch64_simd_builtin_type_mode): Handle SF types.
15137 (sf_UP): Define.
15138 (BUILTIN_GPF): Define.
15139 (aarch64_init_simd_builtins): Handle SF types.
15140 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
15141 (frecps): Likewise.
15142 (frecpx): Likewise.
15143 * config/aarch64/aarch64-simd.md
15144 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
15145 (aarch64_frecpe<mode>): New.
15146 (aarch64_frecps<mode>): Likewise.
15147 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
15148 (v8type): Add frecp<esx>.
15149 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
15150 (aarch64_frecps<mode>): Likewise.
15151 * config/aarch64/iterators.md (FRECP): New.
15152 (frecp_suffix): Likewise.
15153 * config/aarch64/arm_neon.h
15154 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
15155
0fad3dbc 151562013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
15157
15158 PR target/56995
15159 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
15160 (REG_CLASS_NAMES): Idem.
15161 (REG_CLASS_CONTENTS): Idem.
15162 (REGCLASS_HAS_FP_REG): Idem.
15163 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
15164 (sh_conditional_register_usage): Idem.
15165
3e8a33f9
JL
151662013-04-21 Jeff Law <law@redhat.com>
15167
15168 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
15169 (ssa_forward_propagate_and_combine): Use it.
15170
f38e1b0a
VM
151712013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15172
15173 * lra.c: Update the flow chart diagram.
15174
682303da
VM
151752013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15176
15177 PR rtl-optimization/56847
15178 * lra-constraints.c (process_alt_operands): Discourage alternative
15179 with non-matche doffsettable memory constraint fro memory with
15180 known offset.
15181
f6b64c35
RB
151822013-04-19 Richard Biener <rguenther@suse.de>
15183
15184 PR tree-optimization/56982
15185 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
15186 function.
15187 * gimplify.c (gimplify_call_expr): Notice special calls.
15188 (gimplify_modify_expr): Likewise.
15189 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
15190 abnormal control flow receivers.
15191 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
15192 in the same way as cfun->has_nonlocal_labels.
15193 (gimple_purge_dead_abnormal_call_edges): Likewise.
15194 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
15195 receivers start a basic-block.
15196
01d8bf07
RB
151972013-04-19 Richard Biener <rguenther@suse.de>
15198
15199 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
15200 member ...
15201 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
15202 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
15203 (SLP_TREE_LOAD_PERMUTATION): Add.
15204 (vect_transform_slp_perm_load): Adjust prototype.
15205 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
15206 (vect_free_slp_instance): Likewise.
15207 (vect_create_new_slp_node): Likewise.
15208 (vect_supported_slp_permutation_p): Remove.
15209 (vect_slp_rearrange_stmts): Adjust.
15210 (vect_supported_load_permutation_p): Likewise. Inline
15211 vect_supported_slp_permutation_p here.
15212 (vect_analyze_slp_instance): Compute load permutations per
15213 slp node instead of per instance.
15214 (vect_get_slp_defs): Adjust.
15215 (vect_transform_slp_perm_load): Likewise.
15216 (vect_schedule_slp_instance): Remove redundant code.
15217 (vect_schedule_slp): Remove hack for PR56270, add it ...
15218 * tree-vect-stmts.c (vectorizable_load): ... here, do not
15219 CSE loads for SLP. Adjust.
15220
ede22fc3
GY
152212013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15222
15223 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
15224 spelling in two comments.
15225
67bc84fb
GY
152262013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15227
15228 PR target/56797
15229 * config/arm/arm.c (load_multiple_sequence): Require SP
15230 as base register for loads if SP is in the register list.
15231
e248d83f
MJ
152322013-04-19 Martin Jambor <mjambor@suse.cz>
15233
15234 PR tree-optimization/56718
15235 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
15236 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
15237 and made public. Adjusted all callers.
15238 (ipa_intraprocedural_devirtualization): New function.
15239 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
15240 (ipa_intraprocedural_devirtualization): Likewise.
15241 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
15242
4891e8f8
RB
152432013-04-19 Richard Biener <rguenther@suse.de>
15244
15245 PR tree-optimization/57000
15246 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
15247
dad89f7c
TG
152482013-04-19 Terry Guo <terry.guo@arm.com>
15249
15250 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
15251 Replace with ...
15252 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
15253 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
15254 (cortex_m4_fmacs): Use new reservations.
15255 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
15256
72ea0d47
VM
152572013-04-18 Vladimir Makarov <vmakarov@redhat.com>
15258
f1e6512c 15259 PR rtl-optimization/56999
72ea0d47
VM
15260 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
15261 related code.
15262 (lra_coalesce): Remove split_origin_bitmap and related code.
15263 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
15264 ranges if necessary.
15265
780a5b71
UB
152662013-04-18 Uros Bizjak <ubizjak@gmail.com>
15267
15268 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
15269 New array.
15270 (ix86_expand_call): Remove clobbered_registers array and use
15271 x86_64_ms_sysv_extra_clobbered_registers instead.
15272 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
15273 Declare here.
15274 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
15275 predicate.
15276 * config/i386/i386.md (*call_rex64_ms_sysv): Use
15277 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
15278 (*call_value_rex64_ms_sysv): Ditto.
15279
6f5a366a
CC
152802013-04-18 Cary Coutant <ccoutant@google.com>
15281
15282 * dwarf2out.c (output_pubnames): Check die_perennial_p of
15283 parent instead of die_mark.
15284
475b8f37
DN
152852013-04-18 Diego Novillo <dnovillo@google.com>
15286
15287 * gimple.c (create_gimple_tmp): New.
15288 (get_expr_type): New.
15289 (build_assign): New.
15290 (build_type_cast): New.
15291 * gimple.h (enum ssa_mode): Define.
15292 (gimple_seq_set_location): New.
15293 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 15294 to use build_assign and build_type_cast.
475b8f37 15295
08940f33
RB
152962013-04-18 Richard Biener <rguenther@suse.de>
15297
15298 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
15299 handle negative step. Remove redundant checks.
15300 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
15301 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
15302 for negative step and grouped loads fail to vectorize.
15303
0e0f87d4
SB
153042013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15305
15306 * emit-rtl.c (reset_insn_used_flags): New function.
15307 (reset_all_used_flags): Use it.
15308 (verify_insn_sharing): New function.
15309 (verify_rtl_sharing): Fix verification for SEQUENCEs.
15310
4c445590
JJ
153112013-04-18 Jakub Jelinek <jakub@redhat.com>
15312
15313 PR tree-optimization/56984
15314 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
15315 and (x >> M) >= N don't register any assertion if N << M is the
15316 minimum value.
15317
6873ecab
SB
153182013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15319
15320 * lower-subreg.c (resolve_simple_move): If called self-recursive,
15321 do not delete_insn insns that have not yet been emitted, only
15322 unlink them with remove_insn.
15323 * df-scan.c (df_insn_delete): Revert r197492.
15324
3ccb989e
SB
153252013-04-17 Steven Bosscher <steven@gcc.gnu.org>
15326
15327 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15328 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15329
153302013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15331
15332 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15333 define_insn_and_split.
15334 (and_scc,ior_scc,negscc): Likewise.
15335 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15336
3ccb989e 153372013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15338
15339 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15340 can benefit from using a sequence of LDRD instructions in epilogue
15341 instead of a single LDM instruction.
15342
6d10a203
MLI
153432013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15344
15345 PR 45688
15346 * doc/extend.texi: Fix typo.
15347
6983e6b5
RB
153482013-04-17 Richard Biener <rguenther@suse.de>
15349
15350 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15351 (vect_build_slp_tree): ... here.
15352 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15353 match. Remove special-casing of mismatched complex loads.
15354 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15355 re-try the match with swapped commutative operands.
15356 (vect_supported_load_permutation_p): Remove special-casing of
15357 mismatched complex loads.
15358 (vect_analyze_slp_instance): Adjust.
15359
ef23e6a2
RB
153602013-04-17 Richard Biener <rguenther@suse.de>
15361
15362 PR rtl-optimization/56921
15363 * cfgloop.h (struct loop): Add simple_loop_desc member.
15364 (struct niter_desc): Mark with GTY(()).
15365 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15366 * loop-iv.c (get_simple_loop_desc): Likewise.
15367 (free_simple_loop_desc): Likewise.
15368
15369 Revert
15370 2013-04-16 Richard Biener <rguenther@suse.de>
15371
15372 PR rtl-optimization/56921
15373 * loop-init.c (pass_rtl_move_loop_invariants): Add
15374 TODO_do_not_ggc_collect to todo_flags_finish.
15375 (pass_rtl_unswitch): Same.
15376 (pass_rtl_unroll_and_peel_loops): Same.
15377 (pass_rtl_doloop): Same.
15378
fc6f94f5
EB
153792013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15380
15381 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15382 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15383 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15384 references.
15385 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15386 * tree-streamer.c (record_common_node): Adjust reference in comment.
15387
10a88311
TG
153882013-04-17 Terry Guo <terry.guo@arm.com>
15389
15390 * config/arm/cortex-m4.md: Add a new bypass.
15391
6d9b7208 153922013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15393
15394 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15395 New pattern.
15396 (*subs_<optab><mode>_multp2): New pattern.
15397 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15398 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15399
6d9b7208 154002013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15401
15402 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15403 (*subs_mul_imm_<mode>): New pattern.
15404
18a6701e
DE
154052013-04-16 David Edelsohn <dje.gcc@gmail.com>
15406
15407 PR target/56948
15408 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15409 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15410 (vsx_movti_32bit): Change j->wa to O->wa.
15411
07c37b2f
RB
154122013-04-16 Richard Biener <rguenther@suse.de>
15413
15414 PR rtl-optimization/56921
15415 * loop-init.c (pass_rtl_move_loop_invariants): Add
15416 TODO_do_not_ggc_collect to todo_flags_finish.
15417 (pass_rtl_unswitch): Same.
15418 (pass_rtl_unroll_and_peel_loops): Same.
15419 (pass_rtl_doloop): Same.
15420
0e0f87d4 154212013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15422
15423 * config/arm/arm.c (emit_multi_reg_push): New declaration
15424 for an existing function.
15425 (arm_emit_strd_push): New function.
15426 (arm_expand_prologue): Used here.
15427 (arm_emit_ldrd_pop): New function.
15428 (arm_expand_epilogue): Used here.
15429 (arm_get_frame_offsets): Update condition.
15430 (arm_emit_multi_reg_pop): Add a special case for load of a single
15431 register with writeback.
15432
5e8e2af4
UB
154332013-04-16 Uros Bizjak <ubizjak@gmail.com>
15434
15435 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15436 description.
15437
9fd9ccf7
RB
154382013-04-16 Richard Biener <rguenther@suse.de>
15439
15440 PR tree-optimization/56756
15441 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15442 (first_mem_ref_loc): New.
15443 (execute_sm): Place the load temporarily before a previous
15444 access instead of in the latch edge to ensure its SSA dependencies
15445 are defined at points dominating the load.
15446
96fba521
SB
154472013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15448
4c8af858
SB
15449 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15450 correct fix by moving header and footer insn to the footer of
15451 the merged basic block. Clear BB_END of the merged-away block.
15452
96fba521
SB
15453 PR middle-end/43631
15454 * emit-rtl.c (make_note_raw): New function.
15455 (link_insn_into_chain): New static inline function.
15456 (add_insn): Use it.
15457 (add_insn_before, add_insn_after): Factor insn chain linking code...
15458 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15459 using link_insn_into_chain.
15460 (note_outside_basic_block_p): New helper function for emit_note_after
15461 and emit_note_before.
15462 (emit_note_after): Use nobb variant of add_insn_after if the note
15463 should not be contained in a basic block.
15464 (emit_note_before): Use nobb variant of add_insn_before if the note
15465 should not be contained in a basic block.
15466 (emit_note_copy): Use make_note_raw.
15467 (emit_note): Likewise.
15468 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15469 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15470 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15471 the moved barrier the tail of the basic block it follows.
15472 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15473
7b8265ba
JJ
154742013-04-15 Jakub Jelinek <jakub@redhat.com>
15475
15476 PR tree-optimization/56962
15477 * gimple-ssa-strength-reduction.c (record_increment): Only set
15478 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15479 either rhs1 or rhs2 is equal to c->base_expr.
15480
5185d248
RB
154812013-04-15 Richard Biener <rguenther@suse.de>
15482
15483 PR tree-optimization/56933
15484 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15485 member.
15486 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15487 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15488 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15489 dependence check ...
15490 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15491 ... here.
15492 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15493 GROUP_READ_WRITE_DEPENDENCE.
15494
a24243a0
AK
154952013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15496
15497 * emit-rtl.c (reset_all_used_flags): New function.
15498 (verify_rtl_sharing): Call reset_all_used_flags before and after
15499 performing the checks.
15500
1c50eada
KT
155012013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15502
15503 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15504 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15505 * config/arm/constraints.md (De): New constraint.
15506 * config/arm/neon.md (anddi3_neon): Delete.
15507 (neon_vand<mode>): Expand to standard anddi3 pattern.
15508 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15509 Move earlier in the file.
15510 (neon_inv_logic_op2): Likewise.
15511 (arm_anddi_operand_neon): New predicate.
15512
e927b6ad
RO
155132013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15514
15515 * configure.ac (gcc_cv_ld_as_needed): Set
15516 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15517 Use -z ignore, -z record on *-*-solaris2*.
15518 (HAVE_LD_AS_NEEDED): Update comment.
15519 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15520 * configure: Regenerate.
15521 * config.in: Regenerate.
15522 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15523 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15524 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15525 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15526 equivalents. Fix markup.
15527 * doc/tm.texi: Regenerate.
15528
e0ea8797
AH
155292013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15530
15531 * config/i386/i386.opt: New option mstack-protector-guard=.
15532 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15533 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15534 TARGET_SSP_TLS_GUARD.
15535 * config/i386/i386.c (ix86_option_override_internal): Set
15536 ix86_stack_protector_guard.
15537 * config/i386/i386.md (stack_protect_set): Enable for
15538 TARGET_SSP_TLS_GUARD only.
15539 (stack_protect_set_<mode>): Ditto.
15540 (stack_protect_test): Ditto.
15541 (stack_protect_test_<mode>): Ditto.
15542 * doc/invoke.texi (i386 Option): Document.
15543
811b72f9
EB
155442013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15545
15546 PR target/56890
15547 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15548 (S_MODES): Set H_MODE bit.
15549 (SF_MODES): Set only S_MODE and SF_MODE bits.
15550 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15551 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15552 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15553 <MODE_FLOAT>: Likewise.
15554
5529fdd6
JY
155552013-04-15 Joey Ye <joey.ye@arm.com>
15556
15557 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15558
517b1da2
JY
155592013-04-15 Joey Ye <joey.ye@arm.com>
15560
15561 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15562 for real far jump.
15563 (thumb_far_jump_used_p): Count instruction size and set
15564 far_jump_used.
15565
01007ae0
EB
155662013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15567
15568 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15569 * resource.c (mark_target_live_regs): Reformat conditional block.
15570
c46f6580
SB
155712013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15572
15573 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15574 notes, they are emitted only just before final.
15575 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15576
1f397f45
SB
155772013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15578
15579 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15580 * cfgrtl.c (delete_insn): Call it here instead.
15581 * lra-spills.c (lra_final_code_change): Use delete_insn.
15582 * haifa-sched.c (sched_remove_insn): Likewise.
15583 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15584 returning to the nop pool.
15585 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15586 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15587
58a51369
SB
155882013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15589
15590 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15591 * doc/tm.texi: Regenerated.
15592
33159866
UB
155932013-04-12 Uros Bizjak <ubizjak@gmail.com>
15594
15595 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15596 QImode checks.
15597
226e378f
SB
155982013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15599
15600 * df-core.c (df_find_def): Compare register numbers.
15601 (df_find_use): Likewise.
15602
fafb9b18
VM
156032013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15604
15605 PR target/56903
15606 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15607 lra_in_progress for return.
15608
9a946fd6
GY
156092013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15610
15611 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15612 define_insn into define_insn_and_split and emit movsicc patterns.
15613
41b83758
GY
156142013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15615
15616 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
15617
d3afd9aa
RB
156182013-04-12 Richard Biener <rguenther@suse.de>
15619
15620 * tree-pass.h (TODO_do_not_ggc_collect): New.
15621 * passes.c (execute_one_ipa_transform_pass): Honor
15622 TODO_do_not_ggc_collect.
15623 (execute_one_pass): Likewise.
15624
15625 Revert
15626 2013-04-10 Richard Biener <rguenther@suse.de>
15627
15628 * passes.c (init_optimization_passes): Remove reload pass.
15629 * ira.c (do_reload): Merge into ...
15630 (ira): ... this.
15631 (rest_of_handle_reload): Remove.
15632 (pass_reload): Likewise.
15633 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15634 of reload for vzeroupper pass placement.
15635
06f9b387
JJ
156362013-04-12 Jakub Jelinek <jakub@redhat.com>
15637
15638 PR tree-optimization/56918
15639 PR tree-optimization/56920
15640 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
15641 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
15642 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
15643 use wide_mul_with_sign method.
15644
953094d2
RB
156452013-04-12 Richard Biener <rguenther@suse.de>
15646
15647 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
15648 not be considered a gimple constant.
15649
bb506982
MG
156502013-04-12 Marc Glisse <marc.glisse@inria.fr>
15651
15652 * fold-const.c (const_binop): Handle vector shifts by a scalar.
15653 (fold_binary_loc): Call const_binop also for mixed vector-scalar
15654 operations.
15655
4b84d650
JJ
156562013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
15657 Jakub Jelinek <jakub@redhat.com>
15658
15659 * opts.c: Include diagnostic-color.h.
15660 (common_handle_option): Handle OPT_fdiagnostics_color_.
15661 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
15662 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
15663 (diagnostic-color.o): New.
15664 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
15665 (diagnostic_color_rule): New enum.
15666 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
15667 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
15668 the location string.
15669 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
15670 either NULL, or color kind.
15671 * diagnostic-color.c: New file.
15672 * diagnostic-color.h: New file.
15673 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
15674 arguments.
15675 * doc/invoke.texi (-fdiagnostics-color): Document.
15676 * pretty-print.h (pp_show_color): Define.
15677 (struct pretty_print_info): Add show_color field.
15678 * diagnostic.c: Include diagnostic-color.h.
15679 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
15680 macros. Colorize error:, warning: etc. strings and also the location
15681 string.
15682 (diagnostic_show_locus): Colorize the caret line.
15683 * pretty-print.c: Include diagnostic-color.h.
15684 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
15685 inside of %< %> quotes or quoted through q format modifier.
15686
067a1e71
AK
156872013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15688
33159866 15689 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 15690
33159866 156912013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
15692
15693 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
15694 code in CC_NZ mode.
15695 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
15696 pattern.
15697
7b55f98f
MP
156982013-04-11 Marek Polacek <polacek@redhat.com>
15699
15700 PR tree-optimization/48184
33159866 15701 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 15702
966b587e
EB
157032013-04-11 Eric Botcazou <ebotcazou@adacore.com>
15704
15705 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
15706 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
15707 (skip_simple_arithmetic): Tidy up.
15708 * tree.h (skip_simple_constant_arithmetic): Declare.
15709
33159866 157102013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
15711
15712 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
15713
1d42c1ec
RB
157142013-04-11 Richard Biener <rguenther@suse.de>
15715
15716 * tree-vect-loop.c (get_initial_def_for_induction): Properly
15717 generate vector constants.
15718
4ba5ea11
RB
157192013-04-11 Richard Biener <rguenther@suse.de>
15720
15721 PR tree-optimization/56878
15722 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
15723 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
15724 New function.
15725 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15726 Prefer to align the DR with the most invariant base address.
15727
f0defe58
SKS
157282013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15729
15730 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
15731 comment.
15732
d07458be
JG
157332013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15734
15735 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
15736 floating-point vector comparisons against 0.
15737
146b8692
JJ
157382013-04-11 Jakub Jelinek <jakub@redhat.com>
15739
15740 PR tree-optimization/56899
15741 * fold-const.c (extract_muldiv_1): Apply distributive law
15742 only if TYPE_OVERFLOW_WRAPS (ctype).
15743
b8578ff7
BC
157442013-04-11 Bin Cheng <bin.cheng@arm.com>
15745
15746 PR target/56124
15747 * ira-costs.c (scan_one_insn): Check whether the source rtx of
15748 loading has side effect.
15749
0ea8a6f9
SB
157502013-04-10 Steven Bosscher <steven@gcc.gnu.org>
15751
15752 * config/sparc/sparc.c: Include tree-pass.h.
15753 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
15754 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
15755 head of file. Change return type. Split off gate function.
15756 (sparc_gate_work_around_errata): New function.
15757 (pass_work_around_errata): New pass definition.
15758 (insert_pass_work_around_errata) New pass insert definition to
15759 insert pass_work_around_errata just after delayed-branch scheduling.
15760 (sparc_option_override): Insert the pass.
15761 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
15762
42e37616
DM
157632013-04-10 David S. Miller <davem@davemloft.net>
15764
89deeb3b
DM
15765 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
15766 or -mcpu=hypersparc.
15767
42e37616
DM
15768 * target.def (cstore_mode): New hook.
15769 * target.h: Include insn-codes.h
15770 * targhooks.c: Likewise.
15771 (default_cstore_mode): New function.
15772 * targhooks.h: Declare it.
15773 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
15774 * doc/tm.texi: Rebuild.
15775 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
15776 target hook, rather than inspecting the insn_data.
15777 * config/sparc/sparc.c (sparc_cstore_mode): New function.
15778 (TARGET_CSTORE_MODE): Redefine.
15779 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
15780 result patterns.
15781 * config/sparc/predicates.md (cstore_result_operand): New special
15782 predicate.
15783 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
15784 Use it for operand 0.
15785 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
15786 (*snesi_special): Likewise.
15787 (*snesi_zero): Likewise.
15788 (*seqsi_zero): Likewise.
15789 (*sltu_insn): Likewise.
15790 (*sgeu_insn): Likewise.
15791 (*seqdi_special): Make operand 0 and comparison operation be of
15792 DImode.
15793 (*snedi_special): Likewise.
15794 (*snedi_special_vis3): Likewise.
15795 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
15796 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
15797 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
15798 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
15799 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
15800 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
15801 (*sltu_extend_sp64): Likewise.
15802 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
15803 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
15804 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
15805 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
15806 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
15807
95ca411e
YZ
158082013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
15809
15810 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
15811 (aarch64_start_file): Use the new function.
15812
6782438d 158132013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 15814 Jason Merrill <jason@redhat.com>
6782438d
SKS
15815
15816 * common.opt: Add -gdwarf.
15817 * opts.c (common_handle_option): Handle it.
15818 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
15819
bb313b93
RB
158202013-04-10 Richard Biener <rguenther@suse.de>
15821
15822 * passes.c (execute_todo): Do not call ggc_collect conditional here.
15823 (execute_one_ipa_transform_pass): But unconditionally here.
15824 (execute_one_pass): And here.
15825 (init_optimization_passes): Remove reload pass.
15826 * tree-pass.h (TODO_ggc_collect): Remove.
15827 (pass_reload): Likewise.
15828 * ira.c (do_reload): Merge into ...
15829 (ira): ... this.
15830 (rest_of_handle_reload): Remove.
15831 (pass_reload): Likewise.
15832 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15833 of reload for vzeroupper pass placement.
15834 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
15835 and todo_flags_finish of all passes.
15836
793d9a16
RB
158372013-04-10 Richard Biener <rguenther@suse.de>
15838
15839 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
15840 first_const_oprnd field, rename first_def_type to first_op_type.
15841 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
15842 (vect_get_and_check_slp_defs): Always use the type of the
15843 operand. Allow mixed vect_external_def, vect_constant_def types.
15844 (vect_get_constant_vectors): Handle mixed vect_external_def,
15845 vect_constant_def types.
15846
12211b99 158472013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
15848
15849 PR tree-optimization/55524
15850 * tree-ssa-math-opts.c
15851 (convert_mult_to_fma): Don't use an fms construct
15852 when we don't have an fms operation, but fnma, and it looks
15853 likely that we'll be able to use the latter.
15854
12211b99 158552013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
15856
15857 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
15858 function.
15859 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
15860 inline fail caused by overwritable functions.
15861
34ab4a5b
CJW
158622013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
15863
15864 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
15865 unnecessary bits in the constant power of two case.
15866
abf9bfbc
RB
158672013-04-10 Richard Biener <rguenther@suse.de>
15868
15869 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
15870 broken code swapping operands.
15871 (vect_build_slp_tree): Do not compute load permutations here.
15872 (vect_analyze_slp_instance): Compute load permutations here,
15873 after building the SLP tree.
15874
f408477e
CB
158752013-04-09 Christian Bruel <christian.bruel@st.com>
15876
15877 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
15878 of next/prev_real_insn.
15879
5ac42672
JH
158802013-04-09 Jan Hubicka <jh@suse.cz>
15881
abf9bfbc
RB
15882 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
15883 Drop aliased parameter.
5ac42672
JH
15884 (function_and_variable_visibility): Do not handle alias pairs.
15885 * cgraph.c (varpool_externally_visible_p): Update prototype.
15886 * varpool.c (varpool_add_new_variable): Update.
15887
5017f1d2
KT
158882013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15889
15890 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
15891
48eecbee
SB
158922013-04-09 Steven Bosscher <steven@gcc.gnu.org>
15893
a949cf1c
SB
15894 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
15895
48eecbee
SB
15896 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
15897
75ef8e3d
MP
158982013-04-09 Marek Polacek <polacek@redhat.com>
15899
15900 PR tree-optimization/48762
33159866 15901 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 15902
23847df4
RB
159032013-04-09 Richard Biener <rguenther@suse.de>
15904
15905 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
15906 dealing with cost.
15907 (vect_build_slp_tree): Likewise.
15908 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
15909 calculating the cost of a SLP instance.
15910 (vect_analyze_slp_instance): Use it from here, after building
15911 the SLP tree.
15912
ea3a0fde
JJ
159132013-04-09 Jakub Jelinek <jakub@redhat.com>
15914
15915 PR middle-end/56883
15916 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
15917 expand_omp_for_static_chunk): Use simple_p = true in
15918 force_gimple_operand_gsi calls when assigning to addressable decls.
15919
a32dfe9d
JL
159202013-04-09 Jeff Law <law@redhat.com>
15921
15922 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
15923 when the boolean was created by converting a wider object which
15924 had a boolean range.
15925
d755c7ef
RB
159262013-04-09 Richard Biener <rguenther@suse.de>
15927
15928 * tree-vectorizer.h (slp_void_p): Remove.
15929 (slp_tree): Typedef before _slp_tree declaration.
15930 (struct _slp_tree): Use a vector of slp_tree as children.
15931 (vect_get_place_in_interleaving_chain): Remove.
15932 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
15933 Move ...
15934 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
15935 and make static.
15936 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
15937 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
15938 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
15939 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
15940 Use slp_node instead of slp_void_p and adjust.
15941
3d741091
RB
159422013-04-09 Richard Biener <rguenther@suse.de>
15943
15944 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
15945 work that is not necessary.
15946
39307ba7
JJ
159472013-04-09 Jakub Jelinek <jakub@redhat.com>
15948
15949 PR tree-optimization/56854
15950 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
15951 forward into clobber stmts if it would change MEM_REF lhs into
15952 non-MEM_REF.
15953
343881fd
MK
159542013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
15955
15956 * tree.c (type_hash_lookup, type_hash_add): Make static.
15957 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
15958
3922658a
RB
159592013-04-09 Richard Biener <rguenther@suse.de>
15960
15961 * tree.h (unsave_expr_now): Remove.
15962 * tree-inline.c (mark_local_for_remap_r): Remove.
15963 (unsave_expr_1): Likewise.
15964 (unsave_r): Likewise.
15965 (unsave_expr_now): Likewise.
15966 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
15967 (propagate_tree_value): Likewise.
15968
9fb6b620
SB
159692013-04-08 Steven Bosscher <steven@gcc.gnu.org>
15970
15971 * doc/rtl.texi (sequence): Rewrite documentation to match the
15972 current use of SEQUENCE rtl objects.
15973 * rtl.def (SEQUENCE): Likewise.
15974
15975 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
15976 Update documentation.
15977 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
15978 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
15979
15980 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
15981
8ddb5a29
TJ
159822013-04-08 Teresa Johnson <tejohnson@google.com>
15983
15984 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
15985 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 15986 methods.
8ddb5a29
TJ
15987 (estimate_edge_size_and_time): Add comment to suggest using rounding
15988 methods.
15989 (estimate_node_size_and_time): Ditto.
15990 (remap_edge_change_prob): Use helper rounding divide methods.
15991 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
15992 (gimple_mod_pow2_value_transform): Ditto.
15993 (gimple_mod_subtract_transform): Ditto.
15994 (gimple_ic_transform): Ditto.
15995 (gimple_stringops_transform): Ditto.
15996 * stmt.c (conditional_probability): Ditto.
15997 (emit_case_dispatch_table): Ditto.
15998 * lto-cgraph.c (merge_profile_summaries): Ditto.
15999 * tree-optimize.c (execute_fixup_cfg): Ditto.
16000 * cfgcleanup.c (try_forward_edges): Ditto.
16001 * cfgloopmanip.c (scale_loop_profile): Ditto.
16002 (loopify): Ditto.
16003 (duplicate_loop_to_header_edge): Ditto.
16004 (lv_adjust_loop_entry_edge): Ditto.
16005 * tree-vect-loop.c (vect_transform_loop): Ditto.
16006 * profile.c (compute_branch_probabilities): Ditto.
16007 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
16008 * lto-streamer-in.c (input_cfg): Ditto.
16009 * gimple-streamer-in.c (input_bb): Ditto.
16010 * ipa-cp.c (update_profiling_info): Ditto.
16011 (update_specialized_profile): Ditto.
16012 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
16013 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 16014 rounding methods.
8ddb5a29
TJ
16015 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16016 (compute_trg_info): Ditto.
16017 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
16018 (purge_dead_edges): Ditto.
16019 * loop-unswitch.c (unswitch_loop): Ditto.
16020 * cgraphclones.c (cgraph_clone_edge): Ditto.
16021 (cgraph_clone_node): Ditto.
16022 * tree-inline.c (copy_bb): Ditto.
16023 (copy_edges_for_bb): Ditto.
16024 (initialize_cfun): Ditto.
16025 (copy_cfg_body): Ditto.
16026 (expand_call_inline): Ditto.
16027
661e6bd7
KT
160282013-04-08 Kai Tietz <ktietz@redhat.com>
16029
16030 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
16031 TARGET_CYGWIN64 by TARGET_64BIT.
16032
105766f3
JR
160332013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16034
16035 * config/epiphany/epiphany.md (GPR_1): New constant.
16036 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
16037 * config/epiphany/epiphany.c (gen_compare_reg):
16038 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
16039 is already in place.
16040 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
16041 Don't require being called during rtl expansion; If y operlaps r0,
16042 return 0.
16043 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
16044 (epiphany_expand_epilogue): Likewise.
16045
8afab237
JR
16046 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
16047 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 16048 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 16049
fa7707d6
JR
16050 * config/epiphany/constraints.md (CnL): New constraint.
16051 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
16052 * config/epiphany/predicates.md (add_operand): Allow 1024.
16053
5138e18d
JR
16054 * config/epiphany/epiphany.md (logical_op): New code iterator.
16055 (op_mnc): New code attribute.
16056 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
16057 (mov_f+1, mov_f+2): New peephole2 patterns.
16058
2ccc703d
JR
16059 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
16060 (cstoresi4): Also allow re-use of zero result when doing a NE
16061 comparison to a non-zero operand.
aefb0819 16062 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 16063
093ac0a5
JR
16064 * config/epiphany/epiphany.md (<insn_opname>v2si3):
16065 Use gen_addsi3_i / gen_subsi3_i.
16066
f223bb13
JJ
160672013-04-08 Jakub Jelinek <jakub@redhat.com>
16068
16069 PR c++/34949
16070 PR c++/50243
16071 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
16072 contain anything but clobbers, at most one __builtin_stack_restore,
16073 optionally debug stmts and final resx, and if it has at least one
16074 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
16075 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
16076 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
16077 which isn't defaut definition, remove them.
16078 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
16079 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
16080 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
16081 with MEM_REF LHS with SSA_NAME address.
16082
4481581f
JL
160832013-04-08 Jeff Law <law@redhat.com>
16084
16085 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 16086
451dabda
RB
160872013-04-08 Richard Biener <rguenther@suse.de>
16088
16089 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
16090 extra newline.
16091 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
16092 determined vector type.
16093 (vect_analyze_data_refs): Likewise.
16094 (vect_get_new_vect_var): Adjust.
16095 (vect_create_destination_var): Preserve SSA name versions.
16096 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
16097 not dump anything here.
16098
3b088b47
JR
160992013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16100
16101 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16102 Add member lr_slot_known.
16103 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
16104 if necessary.
16105 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
16106 Remove code that sets lr_slot_offset according to what a previous
16107 version of epiphany_emit_save_restore used to do.
16108 (epiphany_emit_save_restore): When doing an lr save or restore,
16109 set/verify lr_slot_known and lr_slot_offset.
16110
d8484d41
XQ
161112013-04-08 Xinyu Qi <xyqi@marvell.com>
16112
33159866
UB
16113 PR target/54338
16114 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
16115 in ALL_REGS.
16116
481be1c4
RB
161172013-04-08 Richard Biener <rguenther@suse.de>
16118
16119 * alias.c (find_base_term): Fix thinko in previous change.
16120
401f3a81
JJ
161212013-04-08 Jakub Jelinek <jakub@redhat.com>
16122
16123 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
16124 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
16125 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
16126 if possible to compute val.
16127 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
16128 For QImode integers don't require anything about precision. Use
16129 const_with_all_bytes_same to find out if the constant doesn't have
16130 repeated bytes in it.
16131
03ed99a8
AK
161322013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16133
16134 * config/s390/s390.c (s390_expand_insv): Only accept insertions
16135 within mode size.
16136
781b2e62
MP
161372013-04-08 Marek Polacek <polacek@redhat.com>
16138
16139 PR rtl-optimization/48182
16140 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
16141 value to 1.
16142
27e430a2
JDA
161432013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16144
16145 PR target/55487
16146 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
16147 nuses, make sure we have a label.
16148
4902aa64
BS
161492013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16150
16151 PR target/56843
16152 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
16153 (rs6000_emit_swdiv_low_precision): Remove.
16154 (rs6000_emit_swdiv): Rewrite to handle between one and four
16155 iterations of Newton-Raphson generally; modify required number of
16156 iterations for some cases.
16157 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
16158
7bca81dc
SB
161592013-04-05 Steven Bosscher <steven@gcc.gnu.org>
16160
16161 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
16162 set-but-unused variable.
16163
16164 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
16165 basic blocks of released function bodies garbage-collectable.
16166
16167 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
16168 (struct rtl_opt_pass): Add TODO_df_finish.
16169
16170 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
16171
4542a38a
GY
161722013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16173
16174 * config/arm/constraints.md (q): New constraint.
16175 * config/arm/ldrdstrd.md: New file.
16176 * config/arm/arm.md (ldrdstrd.md) New include.
16177 (arm_movdi): Use "q" instead of "r" constraint
16178 for double-word memory access.
16179 (movdf_soft_insn): Likewise.
16180 * config/arm/vfp.md (movdi_vfp): Likewise.
16181 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 16182 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
16183 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
16184 (mem_ok_for_ldrd_strd): Likewise.
16185 (output_move_double): Update assertion.
16186
2385b218
GY
161872013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16188
16189 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
16190
75fe1cb5
GY
161912013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16192
16193 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
16194 define_insn_and_split.
16195 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
16196
dd660e8e
GY
161972013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16198
16199 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
16200 define_insn_and_split.
33159866 16201 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
16202 (shiftsi3_compare): New pattern.
16203 (rrx): New pattern.
16204 * config/arm/unspecs.md (UNSPEC_RRX): New.
16205
045e472c
GY
162062013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16207
16208 * config/arm/arm.md (negdi_extendsidi): New pattern.
16209 (negdi_zero_extendsidi): Likewise.
16210
3f3bf1a8
GY
162112013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16212
16213 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
16214 define_insn_and_split.
16215 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
16216 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
16217
b0b49556
GY
162182013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16219
16220 * config/arm/arm.md (arm_subdi3): Convert define_insn into
16221 define_insn_and_split.
16222 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
16223 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
16224
d633dd84
GY
162252013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16226
16227 * config/arm/arm.md (subsi3_carryin): New pattern.
16228 (subsi3_carryin_const): Likewise.
16229 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
16230 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
16231
f4499066
GY
162322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16233
16234 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
16235
ceef6fd9
GY
162362013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16237
16238 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 16239 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 16240
ddbdd8a7
KT
162412013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16242
16243 * config/arm/arm.c (arm_expand_builtin): Change fcode
16244 type to unsigned int.
16245
8456d78a
RR
162462013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16247
16248 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
16249
526c230f
ILT
162502013-04-04 Ian Lance Taylor <iant@google.com>
16251
33159866
UB
16252 * doc/standards.texi (Standards): The Go frontend supports the Go 1
16253 language standard.
526c230f 16254
3cfbe04d
SB
162552013-04-04 Steven Bosscher <steven@gcc.gnu.org>
16256
16257 PR middle-end/56729
16258 * df-scan.c (df_insn_delete): Disable failing assert.
16259
dfa3f8d0
KT
162602013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16261
16262 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
16263 New function prototype.
16264 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
16265 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
16266 (arm_builtin_vectorized_function): New function.
16267
f7837758
KT
162682013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16269
16270 * config/arm/arm_neon_builtins.def: New file.
16271 * config/arm/arm.c (neon_builtin_data): Move contents to
16272 arm_neon_builtins.def.
16273 (enum arm_builtins): Include neon builtin definitions.
16274 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 16275 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 16276
39c1b6db
MP
162772013-04-04 Marek Polacek <polacek@redhat.com>
16278
16279 PR tree-optimization/48186
16280 * predict.c (maybe_hot_frequency_p): Return false if
16281 HOT_BB_FREQUENCY_FRACTION is 0.
16282 (cgraph_maybe_hot_edge_p): Likewise.
16283
314f64eb
RB
162842013-04-04 Richard Biener <rguenther@suse.de>
16285
16286 PR tree-optimization/56826
16287 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
16288 more accurately.
16289
51a905b2
RB
162902013-04-04 Richard Biener <rguenther@suse.de>
16291
16292 PR tree-optimization/56213
16293 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 16294 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 16295
f1bf4f3a
RB
162962013-04-04 Richard Biener <rguenther@suse.de>
16297
16298 PR tree-optimization/56837
16299 * tree-loop-distribution.c (classify_partition): For non-zero
16300 values require that the value has the same precision as its
16301 mode to be useful as memset value.
16302
0bca7ded
NC
163032013-04-03 Nick Clifton <nickc@redhat.com>
16304
33159866 16305 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
16306 (fmssf4): Use fmsf.s on E3V5 architectures.
16307 (fnmasf4): Use fnmaf.s on E3V5 architectures.
16308 (fnmssf4): Use fnmsf.s on E3V5 architectures.
16309
b4019227
JL
163102013-04-03 Jeff Law <law@redhat.com>
16311
16312 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
16313 (lra-eliminations.o): Likewise.
16314
f57ddb5b
TJ
163152013-04-03 Teresa Johnson <tejohnson@google.com>
16316
16317 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 16318 compute_working_sets here from profile.c.
f57ddb5b 16319 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
16320 (gcov_working_set_t): Moved typedef here from basic-block.h
16321 (compute_working_set): Declare.
f57ddb5b
TJ
16322 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
16323 (get_working_sets): Renamed from compute_working_set,
33159866 16324 replace most of body with call to new compute_working_sets.
f57ddb5b 16325 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
16326 to get_working_sets.
16327 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16328 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16329 to get_working_sets.
f57ddb5b
TJ
16330 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16331 * gcov-dump.c (dump_working_sets): New function.
16332
12211b99 163332013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16334
16335 * hwint.c (sext_hwi, zext_hwi): New functions.
16336 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16337 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16338 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16339 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16340 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16341 (sext_hwi, zext_hwi): New functions.
0bca7ded 16342
be672e08
JL
163432013-04-03 Jeff Law <law@redhat.com>
16344
16345 PR tree-optimization/56799
33159866
UB
16346 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16347 back test for widening conversion erroneously dropped in prior change.
be672e08 16348
9d821fa5
KT
163492013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16350
16351 PR target/56809
16352 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16353 instead of next_real_insn.
16354
71c581e7
MP
163552013-04-03 Marek Polacek <polacek@redhat.com>
16356
16357 PR sanitizer/55702
33159866 16358 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16359
4a32ef80
KT
163602013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16361
16362 PR target/56809
16363 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16364 next_real_insn.
16365 (thumb1_output_casesi): Likewise.
16366 (thumb2_output_casesi): Likewise.
16367
1b2253d4
RB
163682013-04-03 Richard Biener <rguenther@suse.de>
16369
16370 PR tree-optimization/56817
16371 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16372 Split out ...
16373 (tree_unroll_loops_completely_1): ... new function to manually
16374 walk the loop tree, properly defering outer loops of unrolled
16375 loops to later iterations.
16376
38000232
MG
163772013-04-03 Marc Glisse <marc.glisse@inria.fr>
16378
16379 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16380 (vectorizable_load): Likewise.
16381 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16382 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16383
3fa35298
MG
163842013-04-03 Marc Glisse <marc.glisse@inria.fr>
16385
16386 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16387 BIT_FIELD_REF.
16388
b3d45ff0
UW
163892013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16390
16391 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16392
ec9202a8
BC
163932013-04-03 Bin Cheng <bin.cheng@arm.com>
16394
16395 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16396
6805bd36
MG
163972013-04-03 Marc Glisse <marc.glisse@inria.fr>
16398
16399 PR tree-optimization/56790
33159866
UB
16400 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16401 folding.
6805bd36 16402
da694a77
MG
164032013-04-03 Marc Glisse <marc.glisse@inria.fr>
16404
16405 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16406 Handle VEC_MERGE.
16407 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16408 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16409 equal arguments.
16410
4e7d7b3d
JJ
164112013-04-03 Jakub Jelinek <jakub@redhat.com>
16412
16413 PR c/19449
16414 * tree.h (force_folding_builtin_constant_p): New decl.
16415 * builtins.c (force_folding_builtin_constant_p): New variable.
16416 (fold_builtin_constant_p): Fold immediately also if
16417 force_folding_builtin_constant_p.
16418
e6c9d234
RB
164192013-04-03 Richard Biener <rguenther@suse.de>
16420
16421 PR tree-optimization/56812
16422 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16423 DRs of the same interleaving chain are independent.
16424
984d07dd
JM
164252013-04-02 Jason Merrill <jason@redhat.com>
16426
16427 * gdbinit.in (pbb): Use debug fn.
16428
622849c9
LC
164292013-04-02 Lawrence Crowl <crowl@google.com>
16430
16431 * sese.h (struct ivtype_map_elt_s): Remove unused.
16432 (extern debug_ivtype_map): Remove unused.
16433 (extern eq_ivtype_map_elts): Remove unused.
16434 * sese.c (debug_ivtype_map): Removed unused.
16435 (debug_ivtype_map_1): Removed unused.
16436 (debug_ivtype_elt): Remove unused.
16437 (eq_ivtype_map_elts): Remove unused.
16438
16439
82c0e1a0
KT
164402013-04-02 Kai Tietz <ktietz@redhat.com>
16441
16442 PR target/52790
16443 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16444 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16445 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16446 function.
82c0e1a0
KT
16447 (legitimize_pe_coff_symbol): Likewise.
16448 (is_imported_p): New helper-function.
16449 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16450 for Windows x64 targets.
16451 (ix86_expand_prologue): Optimize for pe-coff targets.
16452 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16453 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16454 medium/large code-model.
16455 (legitimize_pic_address): Likewise.
16456 (legitimize_tls_address): Likewise.
16457 (ix86_expand_call): Likewise.
16458 (x86_output_mi_thunk): Likewise.
16459 (get_dllimport_decl): Add new beimport argument.
16460 (construct_plt_address): Don't assert for x64 pe-coff targets.
16461 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16462 targets.
16463 (SYMBOL_FLAG_STUBVAR): New macro.
16464 (SYMBOL_REF_STUBVAR_P): Likewise.
16465 * config/i386/winnt.c (stub_list): New structure.
16466 (stub_head): New local variable.
16467 (i386_pe_record_stub): New function.
16468 (i386_pe_file_end): Emit refptr-stubs.
16469
5d751b0c
JJ
164702013-04-02 Jakub Jelinek <jakub@redhat.com>
16471
09bb4c99
JJ
16472 PR rtl-optimization/56745
16473 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16474 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16475
a1d8947a
JJ
16476 PR c++/34949
16477 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16478 and both of them are MEM_REFs, just compare first argument for
16479 equality and attempt to deal even with differing offsets.
16480
5d751b0c
JJ
16481 PR c++/34949
16482 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16483 of gimple_clobber_p to be MEM_REF.
16484 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16485 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16486 after gimplification.
16487 * asan.c (get_mem_ref_of_assignment): Don't instrument
16488 gimple_clobber_p stmts.
16489 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16490 gimple_clobber_p stmt if they have MEM_REF lhs and
16491 are dead because of another gimple_clobber_p stmt.
16492 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16493 gimple_clobber_p stmts like debug stmts.
16494 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16495 that refer to unused VAR_DECLs or uninitialized values.
16496 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16497 gimple_clobber_p stmts if they refer to removed parameters.
16498 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16499 formatting.
16500
e594716a
UB
165012013-04-02 Uros Bizjak <ubizjak@gmail.com>
16502
16503 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16504 using SWI48 mode attribute.
16505
7a80735b
WM
165062013-04-02 Wei Mi <wmi@google.com>
16507
16508 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16509 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16510 *<rotate_insn><mode>3_mask in i386.md.
16511
f423a9e4
AI
165122013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16513
16514 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16515
90eb75f2
RB
165162013-04-02 Richard Biener <rguenther@suse.de>
16517
16518 PR tree-optimization/56778
16519 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16520 Runtime alias tests are not supported for gather loads.
16521 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16522 stmts referenced from SSA operands before updating SSA form.
16523
d8c69a92
IC
165242013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16525 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16526
16527 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16528 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16529 * config/arm/cortex-a53.md: New file.
16530 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16531 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16532 * config/arm/arm.c (arm_issue_rate): Likewise.
16533 * config/arm/arm-tune.md: Regenerate
16534 * config/arm/arm-tables.opt: Regenerate.
16535 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16536
239eb04c
ZC
165372013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16538
16539 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16540 non-static link.
16541
c902d3c8
SN
165422013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16543
d8c69a92
IC
16544 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16545 scalar load/store operations using B/H registers.
c902d3c8
SN
16546 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16547
051d0e2f
SN
165482013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16549
16550 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16551 scalar move.
16552 * config/aarch64/aarch64.c
16553 (aarch64_simd_scalar_immediate_valid_for_move): New.
16554 * config/aarch64/aarch64-protos.h
16555 (aarch64_simd_scalar_immediate_valid_for_move): New.
16556 * config/aarch64/constraints.md (Dh, Dq): New.
16557 * config/aarch64/iterators.md (hq): New.
16558
0ee1e3d9
EB
165592013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16560
16561 * reorg.c (get_branch_condition): Deal with conditional returns.
16562 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16563
136fb3f7
WM
165642013-04-01 Wei Mi <wmi@google.com>
16565
16566 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16567 Truncate operand 2 using %b asm operand modifier.
16568 (*<shift_insn><mode>3_mask): Ditto.
16569 (*<rotate_insn><mode>3_mask): Ditto.
16570
6388c738
SB
165712013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16572
16573 PR middle-end/56798
16574 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16575
f7a4d826
KK
165762013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16577
16578 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16579 of next_real_insn.
16580 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16581
4b943a49
LC
165822013-03-30 Lawrence Crowl <crowl@google.com>
16583
16584 * dse.c (clear_alias_sets): Remove never set.
16585 (disqualified_clear_alias_sets): Remove never set.
16586 (clear_alias_mode_pool): Remove never set.
16587 (dse_step0): Remove condition that is never true.
16588 (canon_address): Remove condition that is never true.
16589 (dse_step7): Remove condition that is never true.
16590 (rest_of_handle_dse): Remove condition that is never true.
16591 (rest_of_handle_dse::did_global): Remove never read from above.
16592 (dse_step2_spill): Remove never called from above.
16593 (dse_step5_spill): Remove never called from above.
16594
39718607
SB
165952013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16596
da5c6bde
SB
16597 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16598 JUMP_TABLE_DATA changes.
16599 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16600 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16601 (Insns) <jump_table_data>: New entry.
16602 * doc/tm.texi: Regenerate.
16603
39718607
SB
16604 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16605
16606 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16607 for table jump at the end of a basic block using tablejump_p.
16608 * targhooks.c (default_invalid_within_doloop): Likewise.
16609 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16610 target hook implementation that is identical to the default hook.
16611 (rs6000_invalid_within_doloop): Remove.
16612
16613 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
16614 unused variable from tablejump_p call.
16615
16616 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
16617 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
16618 (INSN_DELETED_P): Likewise.
16619 (emit_jump_table_data): New prototype.
16620 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
16621 after 4th as unused.
16622 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
16623 * sched-vis.c (print_insn): Likewise.
16624 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
16625 insn for compatibility with back ends that use next_active_insn to
16626 identify jump table data.
16627 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
16628 (remove_insn): Likewise.
16629 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
16630 to be emitted.
16631 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
16632 (emit_jump_table_data): New function.
16633
16634 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
16635 basic block, a JUMP_TABLE_DATA never is.
16636 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
16637 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
16638 off from code handling real insns.
16639 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
16640 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
16641 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
16642 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
16643 is not a NONDEBUG_INSN_P.
16644 * ira-costs.c (scan_one_insn): Likewise.
16645 * jump.c (mark_all_labels): Likewise.
16646 (mark_jump_label_1): Likewise.
16647 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16648 * lra.c (get_insn_freq): Expect all insns reaching here to be in
16649 a basic block.
16650 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
16651 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
16652 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
16653 JUMP_TABLE_DATA_P insns.
16654 (calculate_elim_costs_all_insns): Likewise.
16655 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
16656 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
16657 (delete_output_reload): Code style fixups.
16658 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
16659 insn flags on this non-insn.
16660 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
16661 as scheduling barriers, for pre-change compatibility.
16662 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
16663 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
16664
16665 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
16666 redundant JUMP_TABLE_DATA_P test.
16667 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
16668 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16669 (frv_for_each_packet): Likewise.
16670 * config/i386/i386.c (min_insn_size): Likewise.
16671 (ix86_avoid_jump_mispredicts): Likewise.
16672 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16673 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
16674 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16675 (mips16_insn_length): Robustify.
16676 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
16677 (mips16_split_long_branches): Likewise.
16678 * config/pa/pa.c (pa_combine_instructions): Likewise.
16679 * config/rs6000/rs6000.c (get_next_active_insn): Treat
16680 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
16681 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
16682 as contributing to pool range lengths.
16683 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
16684 Remove redundant JUMP_TABLE_DATA_P test.
16685 (sh_loop_align): Likewise.
16686 (split_branches): Likewise.
16687 (sh_insn_length_adjustment): Likewise.
16688 * config/spu/spu.c (get_branch_target): Likewise.
16689
0208f7da
JH
166902013-03-29 Jan Hubicka <jh@suse.cz>
16691
16692 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
16693 gcov streaming; stream hot bb threshold to ltrans.
16694 * predict.c (get_hot_bb_threshold): Break out from ....
16695 (maybe_hot_count_p): ... here.
16696 (set_hot_bb_threshold): New function.
16697 * lto-section-in.c (lto_section_name): Add profile.
16698 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
16699 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
16700 and data-streamer.h
16701 (histogram_entry): New structure.
16702 (histogram, histogram_pool): New global vars.
16703 (histogram_hash): New structure.
16704 (histogram_hash::hash): New method.
16705 (histogram_hash::equal): Likewise.
16706 (account_time_size): New function.
16707 (cmp_counts): New function.
16708 (dump_histogram): New function.
16709 (ipa_profile_generate_summary): New function.
16710 (ipa_profile_write_summary): New function.
16711 (ipa_profile_read_summary): New function.
16712 (ipa_profile): Decide on threshold.
e594716a
UB
16713 (pass_ipa_profile): Add ipa_profile_write_summary and
16714 ipa_profile_read_summary.
0208f7da
JH
16715 * Makefile.in (ipa.o): Update dependencies.
16716 * lto-streamer.h (LTO_section_ipa_profile): New section.
16717
5a6ccc94
GDR
167182013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
16719
16720 * tree.h (VAR_P): New.
16721
39385fa6
PC
167222013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
16723
16724 PR lto/56777
16725 * doc/invoke.texi ([-fwhole-program]): Fix typo.
16726
34f0d87a
SB
167272013-03-29 Steven Bosscher <steven@gcc.gnu.org>
16728
16729 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
16730 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16731 (control_flow_insn_p): Likewise.
16732 * cfgrtl.c (duplicate_insn_chain): Likewise.
16733 * final.c (get_attr_length_1): Likewise.
16734 (shorten_branches): Likewise.
16735 (final_scan_insn): Likewise.
16736 * function.c (instantiate_virtual_regs): Likewise.
16737 * gcse.c (insert_insn_end_basic_block): Likewise.
16738 * ira-costs.c (scan_one_insn): Likewise.
16739 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16740 * lra.c (check_rtl): Likewise.
16741 * reload1.c (elimination_costs_in_insn): Likewise.
16742 * reorg.c (follow_jumps): Likewise.
16743
16744 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
16745 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16746 (thumb_far_jump_used_p): Likewise.
16747 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
16748 (workaround_speculation): Likewise.
16749 (add_sched_insns_for_speculation): Likewise.
16750 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
16751 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16752 (frv_for_each_packet): Likewise.
16753 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
16754 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
16755 (final_emit_insn_group_barriers): Likewise.
16756 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16757 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16758 (mips16_insn_length): Likewise.
16759 * config/pa/pa.c (pa_reorg): Likewise.
16760 (pa_combine_instructions): Likewise.
16761 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
16762 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
16763 (sh_reorg): Likewise.
16764 (split_branches): Likewise.
16765 * config/spu/spu.c (get_branch_target): Likewise.
16766
16767 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
16768 JUMP_TABLE_DATA_P.
16769
4ac761b0
KY
167702013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
16771
39385fa6 16772 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
16773 Fix declaration name.
16774
58a49189
LC
167752013-03-28 Lawrence Crowl <crowl@google.com>
16776
16777 * graphds.h (struct graph.indicies): Remove unused.
16778 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
16779 (SCOP_ORIGINAL_PDDRS): Remove unused.
16780 * sese.h (extern insert_loop_close_phis): Removed unused.
16781 (extern insert_guard_phis): Removed unused.
16782 (extern ivtype_map_elt_info): Removed unused.
16783 (new_ivtype_map_elt): Removed unused.
16784 * sese.c (ivtype_map_elt_info): Removed unused.
16785
7b3b6ae4
LC
167862013-03-28 Lawrence Crowl <crowl@google.com>
16787
16788 * Makefile.in: Add several missing include dependences.
16789 (DUMPFILE_H): New.
16790 (test-dump.o): New. This object is not added to any executable,
16791 but is present for ad-hoc testing.
16792 * bitmap.c
16793 (debug (const bitmap_head_def &)): New.
16794 (debug (const bitmap_head_def *)): New.
16795 * bitmap.h
16796 (extern debug (const bitmap_head_def &)): New.
16797 (extern debug (const bitmap_head_def *)): New.
16798 * cfg.c
16799 (debug (edge_def &)): New.
16800 (debug (edge_def *)): New.
16801 * cfghooks.c
16802 (debug (basic_block_def &)): New.
16803 (debug (basic_block_def *)): New.
16804 * dumpfile.h
16805 (dump_node (const_tree, int, FILE *)): Correct source file.
16806 * dwarf2out.c
16807 (debug (die_struct &)): New.
16808 (debug (die_struct *)): New.
16809 * dwarf2out.h
16810 (extern debug (die_struct &)): New.
16811 (extern debug (die_struct *)): New.
16812 * gimple-pretty-print.c
16813 (debug (gimple_statement_d &)): New.
16814 (debug (gimple_statement_d *)): New.
16815 * gimple-pretty-print.h
16816 (extern debug (gimple_statement_d &)): New.
16817 (extern debug (gimple_statement_d *)): New.
16818 * ira-build.c
16819 (debug (ira_allocno_copy &)): New.
16820 (debug (ira_allocno_copy *)): New.
16821 (debug (ira_allocno &)): New.
16822 (debug (ira_allocno *)): New.
16823 * ira-int.h
16824 (extern debug (ira_allocno_copy &)): New.
16825 (extern debug (ira_allocno_copy *)): New.
16826 (extern debug (ira_allocno &)): New.
16827 (extern debug (ira_allocno *)): New.
16828 * ira-lives.c
16829 (debug (live_range &)): New.
16830 (debug (live_range *)): New.
16831 * lra-int.h
16832 (debug (lra_live_range &)): New.
16833 (debug (lra_live_range *)): New.
16834 * lra-lives.c
16835 (debug (lra_live_range &)): New.
16836 (debug (lra_live_range *)): New.
16837 * omega.c
16838 (debug (omega_pb_d &)): New.
16839 (debug (omega_pb_d *)): New.
16840 * omega.h
16841 (extern debug (omega_pb_d &)): New.
16842 (extern debug (omega_pb_d *)): New.
16843 * print-rtl.c
16844 (debug (const rtx_def &)): New.
16845 (debug (const rtx_def *)): New.
16846 * print-tree.c
16847 (debug_tree (tree): Move within file.
16848 (debug_raw (const tree_node &)): New.
16849 (debug_raw (const tree_node *)): New.
16850 (dump_tree_via_hooks (const tree_node *, int)): New.
16851 (debug (const tree_node &)): New.
16852 (debug (const tree_node *)): New.
16853 (debug_verbose (const tree_node &)): New.
16854 (debug_verbose (const tree_node *)): New.
16855 (debug_head (const tree_node &)): New.
16856 (debug_head (const tree_node *)): New.
16857 (debug_body (const tree_node &)): New.
16858 (debug_body (const tree_node *)): New.
16859 (debug_vec_tree (tree): Move and reimplement in terms of dump.
16860 (debug (vec<tree, va_gc> &)): New.
16861 (debug (vec<tree, va_gc> *)): New.
16862 * rtl.h
16863 (extern debug (const rtx_def &)): New.
16864 (extern debug (const rtx_def *)): New.
16865 * sbitmap.c
16866 (debug_raw (simple_bitmap_def &)): New.
16867 (debug_raw (simple_bitmap_def *)): New.
16868 (debug (simple_bitmap_def &)): New.
16869 (debug (simple_bitmap_def *)): New.
16870 * sbitmap.h
16871 (extern debug (simple_bitmap_def &)): New.
16872 (extern debug (simple_bitmap_def *)): New.
16873 (extern debug_raw (simple_bitmap_def &)): New.
16874 (extern debug_raw (simple_bitmap_def *)): New.
16875 * sel-sched-dump.c
16876 (debug (vinsn_def &)): New.
16877 (debug (vinsn_def *)): New.
16878 (debug_verbose (vinsn_def &)): New.
16879 (debug_verbose (vinsn_def *)): New.
16880 (debug (expr_def &)): New.
16881 (debug (expr_def *)): New.
16882 (debug_verbose (expr_def &)): New.
16883 (debug_verbose (expr_def *)): New.
16884 (debug (vec<rtx> &)): New.
16885 (debug (vec<rtx> *)): New.
16886 * sel-sched-dump.h
16887 (extern debug (vinsn_def &)): New.
16888 (extern debug (vinsn_def *)): New.
16889 (extern debug_verbose (vinsn_def &)): New.
16890 (extern debug_verbose (vinsn_def *)): New.
16891 (extern debug (expr_def &)): New.
16892 (extern debug (expr_def *)): New.
16893 (extern debug_verbose (expr_def &)): New.
16894 (extern debug_verbose (expr_def *)): New.
16895 (extern debug (vec<rtx> &)): New.
16896 (extern debug (vec<rtx> *)): New.
16897 * sel-sched-ir.h
16898 (_list_iter_cond_expr): Make inline instead of static.
16899 * sreal.c
16900 (debug (sreal &)): New.
16901 (debug (sreal *)): New.
16902 * sreal.h
16903 (extern debug (sreal &)): New.
16904 (extern debug (sreal *)): New.
16905 * tree.h
16906 (extern debug_raw (const tree_node &)): New.
16907 (extern debug_raw (const tree_node *)): New.
16908 (extern debug (const tree_node &)): New.
16909 (extern debug (const tree_node *)): New.
16910 (extern debug_verbose (const tree_node &)): New.
16911 (extern debug_verbose (const tree_node *)): New.
16912 (extern debug_head (const tree_node &)): New.
16913 (extern debug_head (const tree_node *)): New.
16914 (extern debug_body (const tree_node &)): New.
16915 (extern debug_body (const tree_node *)): New.
16916 (extern debug (vec<tree, va_gc> &)): New.
16917 (extern debug (vec<tree, va_gc> *)): New.
16918 * tree-cfg.c
16919 (debug (struct loop &)): New.
16920 (debug (struct loop *)): New.
16921 (debug_verbose (struct loop &)): New.
16922 (debug_verbose (struct loop *)): New.
16923 * tree-dump.c: Add header dependence.
16924 * tree-flow.h
16925 (extern debug (struct loop &)): New.
16926 (extern debug (struct loop *)): New.
16927 (extern debug_verbose (struct loop &)): New.
16928 (extern debug_verbose (struct loop *)): New.
16929 * tree-data-ref.c
16930 (debug (data_reference &)): New.
16931 (debug (data_reference *)): New.
16932 (debug (vec<data_reference_p> &)): New.
16933 (debug (vec<data_reference_p> *)): New.
16934 (debug (vec<ddr_p> &)): New.
16935 (debug (vec<ddr_p> *)): New.
16936 * tree-data-ref.h
16937 (extern debug (data_reference &)): New.
16938 (extern debug (data_reference *)): New.
16939 (extern debug (vec<data_reference_p> &)): New.
16940 (extern debug (vec<data_reference_p> *)): New.
16941 (extern debug (vec<ddr_p> &)): New.
16942 (extern debug (vec<ddr_p> *)): New.
16943 * tree-ssa-alias.c
16944 (debug (pt_solution &)): New.
16945 (debug (pt_solution *)): New.
16946 * tree-ssa-alias.h
16947 (extern debug (pt_solution &)): New.
16948 (extern debug (pt_solution *)): New.
16949 * tree-ssa-alias.c
16950 (debug (_var_map &)): New.
16951 (debug (_var_map *)): New.
16952 (debug (tree_live_info_d &)): New.
16953 (debug (tree_live_info_d *)): New.
16954 * tree-ssa-alias.h
16955 (extern debug (_var_map &)): New.
16956 (extern debug (_var_map *)): New.
16957 (extern debug (tree_live_info_d &)): New.
16958 (extern debug (tree_live_info_d *)): New.
16959
be77e1e5
JH
169602013-03-28 Jan Hubicka <jh@suse.cz>
16961
16962 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
16963
777e6976
IB
169642013-03-28 Ian Bolton <ian.bolton@arm.com>
16965
16966 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
16967 record only when desired or required.
16968
9cd347ae
UB
169692013-03-28 Uros Bizjak <ubizjak@gmail.com>
16970
16971 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
16972 *vec_extractv2di_1_rex64. Use x64 isa attribute.
16973
33159866 169742013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
16975
16976 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
16977 (*andsi3_compare0_uxtw): New pattern.
16978 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
16979 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
16980
89ab31c1
JH
169812013-03-28 Jan Hubicka <jh@suse.cz>
16982
16983 * data-streamer-in.c (streamer_read_gcov_count): New function.
16984 * gimple-streamer-out.c: Include value-prof.h.
16985 (output_gimple_stmt): Output histogram.
16986 (output_bb): Use streamer_write_gcov_count.
16987 * value-prof.c: Include data-streamer.h
16988 (dump_histogram_value): Add HIST_TYPE_MAX.
16989 (stream_out_histogram_value): New function.
16990 (stream_in_histogram_value): New function.
16991 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
16992 (stream_out_histogram_value, stream_in_histogram_value): Declare.
16993 * data-streamer-out.c (streamer_write_gcov_count): New function.
16994 (streamer_write_gcov_count_stream): New function.
16995 * lto-cgraph.c (lto_output_edge): Update counter streaming.
16996 (lto_output_node): Likewise.
16997 (input_node, input_edge): Likewise.
16998 * lto-streamer-out.c (output_cfg): Update streaming.
16999 * lto-streamer-in.c (input_cfg): Likewise.
17000 * data-streamer.h (streamer_write_gcov_count,
17001 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
17002 * gimple-streamer-in.c: Include value-prof.h
17003 (input_gimple_stmt): Input histograms.
17004 (input_bb): Update profile streaming.
17005
e594716a 170062013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 17007
33159866 17008 * genmodes.c (emit_max_int): New function.
8697be17 17009 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
17010 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
17011 Added doc.
8697be17 17012 * machmode.def: Fixed comment.
89ab31c1 17013
e594716a 170142013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
17015
17016 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
17017 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
17018
74946978
MP
170192013-03-28 Marek Polacek <polacek@redhat.com>
17020 Richard Biener <rguenther@suse.de>
17021
17022 PR tree-optimization/56695
17023 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
17024 build signed result of a vector comparison.
17025 * tree-cfg.c (verify_gimple_comparison): Check that a result
17026 of a vector comparison has signed type.
17027
a64b9c26
RB
170282013-03-28 Richard Biener <rguenther@suse.de>
17029
17030 PR tree-optimization/37021
17031 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
17032 do not restrict gaps between groups.
17033 * tree-vect-stmts.c (vectorizable_load): Properly account for
17034 a gap between groups.
17035
a9dc2a2f
EB
170362013-03-28 Eric Botcazou <ebotcazou@adacore.com>
17037
17038 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
17039 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
17040 is not enabled.
17041
53cb97f9
GP
170422013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
17043
17044 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
17045 * doc/extend.texi (Named Address Spaces): Ditto.
17046 (Variable Attributes): Ditto.
17047
b802ae5c
KT
170482013-03-27 Kai Tietz <ktietz@redhat.com>
17049
eddae10a
KT
17050 * config.build: Add support for cygwin x64 target.
17051 * config.gcc: Likewise.
17052 * config.host: Likewise.
17053 * configure.ac: Likewise
17054 * configure: Regenerated.
b802ae5c 17055
371e77e3 170562013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
17057
17058 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
17059 * config/i386/t-cygwin-w64: New file.
17060 * config/i386/cygwin-w64.h: New file.
17061 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
17062 and add support for x64-cygwin target.
17063 (CPP_SPEC): Likewise.
17064 (CXX_WRAP_SPEC_LIST): Undefine before define.
17065 (LIBGCJ_SONAME): Use 15 as version.
17066
f49b33cb
RB
170672013-03-27 Richard Biener <rguenther@suse.de>
17068
17069 PR tree-optimization/56716
17070 * tree-ssa-structalias.c (perform_var_substitution): Adjust
17071 dumping for ref nodes.
17072
b37a6ce5
MJ
170732013-03-27 Martin Jambor <mjambor@suse.cz>
17074
17075 PR tree-optimization/55334
17076 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
17077 restricted pointers to arrays.
17078
9469b9b2
GDR
170792013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
17080
17081 * Makefile.in (.SUFFIXES): Add .cc.
17082 (.c.o): Apply same recipe for implicit rule .cc.o.
17083
7d24f650
RB
170842013-03-27 Richard Biener <rguenther@suse.de>
17085
17086 PR tree-optimization/37021
17087 * tree-vect-data-refs.c (vect_check_strided_load): Allow
17088 REALPART/IMAGPART_EXPRs around the supported refs.
17089 * tree-ssa-structalias.c (find_func_aliases): Assume that
17090 floating-point values are not used to transfer pointers.
17091
2f251a05
AI
170922013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
17093
f43245d1
UB
17094 * target.def (TARGET_HAS_IFUNC_P): New target hook.
17095 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
17096 * doc/tm.texi: Regenerate.
17097 * targhooks.h (default_has_ifunc_p): New.
17098 * targhooks.c (default_has_ifunc_p): Ditto.
17099 * config/linux-protos.h: New file.
17100 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
17101 hook for linux which disables support of indirect functions in android.
17102 * config/linux-android.c: New file.
17103 * config/t-linux-android.c: Ditto.
17104 * config.gcc: Added new object file linux-android.o.
17105 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 17106 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 17107 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
17108 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
17109 doesn't support indirect functions.
17110 * configure: Regenerate.
17111
78b4e425
BC
171122013-03-27 Bin Cheng <bin.cheng@arm.com>
17113
17114 PR target/56102
17115 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
17116 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
17117 mult-word mode.
17118
a5ba7b92
AK
171192013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17120
17121 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
17122
be624986
TG
171232013-03-27 Terry Guo <terry.guo@arm.com>
17124
17125 * config/arm/arm-cores.def: Added core cortex-r7.
17126 * config/arm/arm-tune.md: Regenerated.
17127 * config/arm/arm-tables.opt: Regenerated.
17128 * doc/invoke.texi: Added entry for core cortex-r7.
17129
0a514f47
WL
171302013-03-27 Walter Lee <walt@tilera.com>
17131
17132 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
17133 double-decrement of next_scratch_regno.
17134
9332b0d2
WL
171352013-03-27 Walter Lee <walt@tilera.com>
17136
801d9b2a 17137 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
17138 input operands.
17139 (insn_v1mulus): Ditto.
17140 (insn_v2muls): Ditto.
17141
f54ea5dd
WL
171422013-03-27 Walter Lee <walt@tilera.com>
17143
e594716a 17144 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
17145 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
17146
bf60f4ca
WL
171472013-03-27 Walter Lee <walt@tilera.com>
17148
e594716a 17149 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
17150 (*sibcall_value): Ditto.
17151
e3b51eeb
WL
171522013-03-27 Walter Lee <walt@tilera.com>
17153
17154 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
17155 (insn_mnz_v8qi): ... this ...
17156 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
17157 vector equivalent.
17158 (insn_v<n>mnz): Replaced by ...
17159 (insn_v1mnz): ... this ...
17160 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
17161 equivalent.
17162 (insn_mz_<mode>): Replaced by ...
17163 (insn_mz_v8qi): ... this ...
17164 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
17165 vector equivalent.
17166 (insn_v<n>mz): Replaced by ...
17167 (insn_v1mz): ... this ...
17168 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
17169 equivalent.
17170
4fc7b145
EB
171712013-03-26 Eric Botcazou <ebotcazou@adacore.com>
17172
17173 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
17174
6f33817e
RM
171752013-03-26 Roland McGrath <mcgrathr@google.com>
17176
17177 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
17178 than fprintf with a non-constant, non-format string.
17179
93a4145b
UB
171802013-03-26 Uros Bizjak <ubizjak@gmail.com>
17181
17182 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
17183 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
17184 operand 0 predicate.
17185 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
17186 attribute. Use general_x64nomem_operand as operand 1 predicate.
17187 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
17188 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17189 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
17190 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17191 (mov<mode>_insv_1): Remove expander. Merge insn with
17192 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
17193 Use general_x64nomem_operand as operand 1 predicate.
17194 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
17195 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
17196 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17197 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
17198 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
17199 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
17200 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17201 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
17202 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
17203 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
17204 (general_x64nomem_operand): Ditto.
17205
c6a9ed5a 172062013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
17207
17208 * config/rtems.opt: Add -pthread option.
17209
31b0a960
RB
172102013-03-26 Richard Biener <rguenther@suse.de>
17211
93a4145b
UB
17212 * alias.c (find_base_term): Avoid redundant and not used recursion.
17213 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
17214 (true_dependence_1): Compute and pass base terms to base_alias_check.
17215 (write_dependence_p): Likewise.
17216 (may_alias_p): Likewise.
17217
79517551
SN
172182013-03-26 Sofiane Naci <sofiane.naci@arm.com>
17219
17220 * config/aarch64/aarch64.c (aarch64_classify_address): Support
17221 PC-relative load in SI modes and above only.
17222
a76213b9
XQ
172232013-03-26 Xinyu Qi <xyqi@marvell.com>
17224
17225 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
17226 * config/arm/iwmmxt.md (WCGR0): Update.
17227 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 17228
37ff9355
UB
172292013-03-26 Uros Bizjak <ubizjak@gmail.com>
17230
17231 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
17232 Use x64 and nox64 isa attributes.
17233
30b0317c
RB
172342013-03-26 Richard Biener <rguenther@suse.de>
17235
17236 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17237 alignment computations and rely on get_object_alignment_1
17238 for the !TYPE_P case.
17239 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
17240
cbcdb140
WL
172412013-03-26 Walter Lee <walt@tilera.com>
17242
17243 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
17244 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
17245
dd884525 172462013-03-25 Jeff Law <law@redhat.com>
be672e08 17247
33159866
UB
17248 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
17249 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
17250 wrong version of prior patch.
17251
0051d3ec
WL
172522013-03-25 Walter Lee <walt@tilera.com>
17253
17254 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
17255 TILEGX_INSN_SHUFFLEBYTES1.
17256 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
17257 shufflebytes1.
17258 (tilegx_builtins): Ditto.
17259 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
17260
065a3605
WL
172612013-03-25 Walter Lee <walt@tilera.com>
17262
17263 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
17264 (floatunssisf2): New pattern.
17265 (floatsidf2): New pattern.
17266 (floatunssidf2): New pattern.
065a3605 17267
5b2a3c82
WL
172682013-03-25 Walter Lee <walt@tilera.com>
17269
17270 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
17271 tests for constraint J, K, N, P.
17272
192ea533
WL
172732013-03-25 Walter Lee <walt@tilera.com>
17274
17275 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
17276 Use indirect/pcrel encoding.
17277 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
17278 Ditto.
17279
855e0d0b
SE
172802013-03-25 Steve Ellcey <sellcey@mips.com>
17281
17282 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
17283 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
17284 * config/mips/mips.c (mips_option_override): Set IMADD default.
17285 * config/mips/mips.h (PTF_AVOID_IMADD): New.
17286 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
17287 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
17288 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
17289 * doc/invoke.texi (-mimadd/-mno-imadd): New.
17290
39e45653
JL
172912013-03-25 Jeff Law <law@redhat.com>
17292
17293 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
17294 slightly to avoid creating and folding useless trees. Simplify
17295 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
17296
7482c470
UB
172972013-03-25 Uros Bizjak <ubizjak@gmail.com>
17298
17299 * config/i386/i386.md (*zero_extendsidi2): Merge with
17300 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
17301 * config/i386/predicates.md (x86_64_zext_operand): Rename from
17302 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
17303 targets. Clarify comment.
17304
4a53743e
MJ
173052013-03-25 Martin Jambor <mjambor@suse.cz>
17306
17307 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
17308 pass-through jump functions differently.
17309 (ipa_read_jump_function): Likewise. Also use setter functions to set
17310 up jump functions.
17311
162712de
MJ
173122013-03-25 Martin Jambor <mjambor@suse.cz>
17313
17314 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
17315 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
17316 process it.
17317 (ipa_get_indirect_edge_target): New function.
17318 (devirtualization_time_bonus): New parameter known_aggs, pass it to
17319 ipa_get_indirect_edge_target. Update all callers.
17320 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
17321 ipa_get_indirect_edge_target_1 instead of calling
17322 ipa_get_indirect_edge_target.
17323 (create_specialized_node): Pass aggvlas to
17324 ipcp_discover_new_direct_edges.
17325
a5a4c20a
KT
173262013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17327
17328 * config/arm/arm.md (f_sels, f_seld): New types.
17329 (*cmov<mode>): New pattern.
17330 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17331 predicate.
17332
f992b9fc
KT
173332013-03-25 Kai Tietz <ktietz@redhat.com>
17334
17335 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17336 POSIX-printf for mingw-hosted builds.
17337
c16fd676
RB
173382013-03-25 Richard Biener <rguenther@suse.de>
17339
17340 PR middle-end/56694
17341 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17342 must-not-throw stmt location.
17343
5ad29f12
KT
173442013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17345
17346 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17347 Emit load-acquire versions when acq is true.
17348 (arm_emit_store_exclusive): Add rel parameter.
17349 Emit store-release versions when rel is true.
17350 (arm_split_compare_and_swap): Use acquire-release instructions
17351 instead.
17352 of barriers when appropriate.
17353 (arm_split_atomic_op): Likewise.
17354 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17355 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17356 (VUNSPEC_SLX): Likewise.
17357 (VUNSPEC_LDA): Likewise.
17358 (VUNSPEC_STL): Likewise.
17359 * config/arm/sync.md (atomic_load<mode>): New pattern.
17360 (atomic_store<mode>): Likewise.
17361 (arm_load_acquire_exclusive<mode>): Likewise.
17362 (arm_load_acquire_exclusivesi): Likewise.
17363 (arm_load_acquire_exclusivedi): Likewise.
17364 (arm_store_release_exclusive<mode>): Likewise.
17365
03a7dddb
CM
173662013-03-25 Catherine Moore <clm@codesourcery.com>
17367
17368 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17369 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17370 * config/mip/predicates.md (lwsp_swsp_operand,
17371 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17372 sb16_operand, db4_operand, db7_operand, ib3_operand,
17373 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17374 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17375 andi16_operand): New predicates.
17376 * config/mips/mips.md (compression): New attribute.
17377 (enabled): New attribute.
17378 (length): Consider compression in computing length.
17379 (shift_compression): New code attribute.
17380 (*add<mode>3): New operands. Record compression.
17381 (sub<mode>3): Likewise.
17382 (one_cmpl<mode>2): Likewise.
17383 (*and<mode>3): Likewise.
17384 (*ior<mode>3): Likewise.
17385 (unnamed pattern for xor): Likewise.
17386 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17387 (*<optab><mode>3): Likewise.
17388 (*mov<mode>_internal: Likewise.
17389 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17390 (mips_unsigned_immediate_p): New.
17391 (umips_lwsp_swsp_address_p): New.
17392 (m16_based_address_p): New.
17393 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17394 (mips_unsigned_immediate_p): New prototype.
17395 (lwsp_swsp_address_p): New prototype.
17396 (m16_based_address_p): New prototype.
17397 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17398 (mips_signed_immediate_p): New function.
17399 (m16_based_address_p): New function.
17400 (lwsp_swsp_address_p): New function.
17401 (mips_print_operand_punctuation): Recognize short delay slot insns
17402 for microMIPS.add<mode>3"
17403
f35c297f 174042013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17405
f35c297f
KT
17406 PR target/56720
17407 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17408 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17409
051b9446
RB
174102013-03-25 Richard Biener <rguenther@suse.de>
17411
17412 PR tree-optimization/56689
17413 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17414 any edge.
17415
374001cb
RB
174162013-03-25 Richard Biener <rguenther@suse.de>
17417
17418 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17419 of bitmap.
17420 (memory_references): Likewise.
17421 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17422 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17423 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17424 (gather_mem_refs_in_loops): Fold into ...
17425 (analyze_memory_references): ... this. Move initialization
17426 to tree_ssa_lim_initialize.
17427 (fill_always_executed_in): Rename to ...
17428 (fill_always_executed_in_1): ... this.
17429 (fill_always_executed_in): Move contains_call computation to
17430 this new function from ...
17431 (tree_ssa_lim_initialize): ... here.
17432 (tree_ssa_lim): Call fill_always_executed_in.
17433
57895947
EB
174342013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17435
17436 * postreload.c (reload_combine): Fix code detecting returns.
17437
1e1b18c1
EB
174382013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17439
17440 * function.c (emit_use_return_register_into_block): On cc0 targets,
17441 do not emit the sequence between cc0 setter and user.
17442
9216baf1
KT
174432013-03-25 Kai Tietz <ktietz@redhat.com>
17444
1e1b18c1
EB
17445 * config/i386/predicates.md (local_symbolic_operand): Interpret
17446 dll-imported symbols as none-local.
9216baf1 17447
76421b44
RB
174482013-03-25 Richard Biener <rguenther@suse.de>
17449
17450 * tree-ssa-loop-im.c (struct depend): Remove.
17451 (struct lim_aux_data): Make depends a vec of gimples.
17452 (free_lim_aux_data): Adjust.
17453 (add_dependency): Likewise.
17454 (set_level): Likewise.
17455
d154bfa2
RB
174562013-03-25 Richard Biener <rguenther@suse.de>
17457
17458 PR middle-end/56434
17459 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17460 the pointer returned by calls with ECF_MALLOC set.
17461
2cd9804e
UB
174622013-03-24 Uros Bizjak <ubizjak@gmail.com>
17463
acef5fe0
UB
17464 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17465
174662013-03-24 Uros Bizjak <ubizjak@gmail.com>
17467
17468 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17469 using MMXMODE mode iterator.
17470 (*move<mode>_internal): Merge with *movv2sf_internal and
17471 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17472
225ccc68
SB
174732013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17474
85c0f02d
SB
17475 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17476 (record_last_mem_set_info): Likewise.
17477
225ccc68
SB
17478 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17479 of XNEWVEC followed by memset.
17480 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17481
b64925dc
SB
174822013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17483
17484 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17485 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17486 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17487 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17488 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17489 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17490 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17491 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17492 BARRIER_P instead of GET_CODE.
17493
b9aaf52e
EB
174942013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17495
17496 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17497 inaccuracy in the probing code.
17498
17499 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17500 (ctrapdi4): Likewise.
17501
66de4d7c
EB
175022013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17503
17504 * calls.c (expand_call): Add missing guard to code handling return
17505 of non-BLKmode structures in MSB.
17506 * function.c (expand_function_end): Likewise.
17507
4f25c8fb
EB
175082013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17509
17510 * combine.c (try_combine): Adjust comment. Do not add the set of
17511 insn #0 if the destination indirectly is set or dies in insn #2.
17512 Tidy up code to distribute a new note.
17513
23b7850d
UB
175142013-03-22 Uros Bizjak <ubizjak@gmail.com>
17515
17516 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17517 also for alternatives 16 and 17.
17518
bed852cf
UB
175192013-03-22 Uros Bizjak <ubizjak@gmail.com>
17520
17521 * config/i386/sse.md (*mov<mode>_internal): Merge with
17522 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17523 Emit insn template depending on type attribute. Use
17524 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17525 movd instead of movq mnemonic for interunit moves. Rewrite mode
17526 attribute calculation. Remove unit attribute calculation.
17527 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17528 Set prefix_data16 attribute for DImode ssemov types.
17529 Use Ym instead of y for SSE-MMX conversion alternatives.
17530 Reorder operand constraints.
17531
1e8a7937
SB
175322013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17533
17534 * df.h (df_insn_delete): Adjust prototype.
17535 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17536 and let it decide whether mark the basic block dirty.
17537 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17538 * df-scan.c (df_insn_info_delete): New helper function, split
17539 off from df_insn_delete.
17540 (df_scan_free_bb_info): Use it.
17541 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17542 Likewise.
17543 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17544 that the insn is actually an insn and it has a non-NULL basic block.
17545 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17546
e14d094c
RB
175472013-03-22 Richard Biener <rguenther@suse.de>
17548
17549 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17550 dep_ref members.
17551 (mem_ref_alloc): Do not allocate them.
17552 (refs_independent_p): Do not query or maintain a cache.
17553
e9cf7316
RB
175542013-03-22 Richard Biener <rguenther@suse.de>
17555
17556 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17557 (gather_mem_refs_in_loops): Do not compute it.
17558 (analyze_memory_references): Do not allocate it.
17559 (tree_ssa_lim_finalize): Do not free it.
17560 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17561
f046e81b
RB
175622013-03-22 Richard Biener <rguenther@suse.de>
17563
17564 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17565
a05c0ddf
IB
175662013-03-22 Ian Bolton <ian.bolton@arm.com>
17567
17568 * config/aarch64/aarch64.c (aarch64_print_operand): New
17569 format specifier for printing a constant in hex.
17570 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17571 format specifier for printing second operand.
17572
c00217fc
RB
175732013-03-22 Richard Biener <rguenther@suse.de>
17574
17575 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17576 bitmaps.
17577 (gather_mem_refs_in_loops): Perform store accumulation here.
17578 (create_vop_ref_mapping_loop): Remove.
17579 (create_vop_ref_mapping): Likewise.
17580 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17581 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17582 (record_indep_loop): Remove.
17583 (record_dep_loop): New function.
17584 (ref_indep_loop_p_1): Adjust to only walk over references
17585 in the loop, not its subloops.
17586 (ref_indep_loop_p): Rename to ...
17587 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17588 maintaining a more fine-grained cache.
17589 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17590 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17591
15d19bf8
RB
175922013-03-22 Richard Biener <rguenther@suse.de>
17593
17594 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17595 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17596 aggregate mem_ref_loc.
17597 (free_mem_ref_locs): Inline into ...
17598 (memref_free): ... this and adjust.
17599 (mem_ref_alloc): Adjust.
17600 (mem_ref_locs_alloc): Remove.
17601 (record_mem_ref_loc): Adjust.
17602 (get_all_locs_in_loop): Rewrite into ...
17603 (for_all_locs_in_loop): ... this iterator.
17604 (rewrite_mem_ref_loc): New functor.
17605 (rewrite_mem_refs): Use for_all_locs_in_loop.
17606 (sm_set_flag_if_changed): New functor.
17607 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17608 (ref_always_accessed): New functor.
17609 (ref_always_accessed_p): Use for_all_locs_in_loop.
17610
6f37411d
MG
176112013-03-21 Marc Glisse <marc.glisse@inria.fr>
17612
17613 * tree-pass.h (PROP_gimple_lvec): New.
17614 * passes.c (dump_properties): Handle PROP_gimple_lvec.
17615 (init_optimization_passes): Move pass_lower_vector.
17616 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
17617 PROP_gimple_lvec.
17618 (pass_lower_vector): Provide PROP_gimple_lvec.
17619 (pass_lower_vector_ssa): Likewise.
17620 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
17621
511ef689
MW
176222013-03-21 Mark Wielaard <mjw@redhat.com>
17623
17624 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
17625
cc1df30b
UB
176262013-03-21 Uros Bizjak <ubizjak@gmail.com>
17627
17628 * config/i386/i386.md (*movdi_internal): Disparage slightly
17629 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
17630 conversion alternatives.
17631
c845cfe1
JJ
176322013-03-21 Jakub Jelinek <jakub@redhat.com>
17633
37e99116
JJ
17634 PR middle-end/48087
17635 * diagnostic.def (DK_WERROR): New kind.
17636 * diagnostic.h (werrorcount): Define.
17637 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
17638 promoted to DK_ERROR, increment DK_WERROR counter instead of
17639 DK_ERROR counter.
17640 * toplev.c (toplev_main): Call print_ignored_options even if
17641 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
17642 even if just werrorcount is non-zero.
17643
c845cfe1
JJ
17644 PR debug/55608
17645 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
17646 on failure.
17647 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
17648 (string_cst_pool_decl): New function.
17649 (optimize_one_addr_into_implicit_ptr): New function.
17650 (resolve_addr_in_expr): Optimize DWARF location expression
17651 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
17652 which doesn't live in memory, but has DW_AT_location or
17653 DW_AT_const_value, or refers to a string literal, into
17654 DW_OP_GNU_implicit_pointer.
17655 (optimize_location_into_implicit_ptr): New function.
17656 (resolve_addr): If removing DW_AT_location of a variable because
17657 it was DW_OP_addr of address of the variable, but the variable doesn't
17658 live in memory, try to emit const value attribute for the initializer.
17659
08e0cda6
MG
176602013-03-21 Marc Glisse <marc.glisse@inria.fr>
17661
17662 * tree.h (VECTOR_TYPE_P): New macro.
17663 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
17664 TYPE_MODE): Use it.
17665 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
17666 VEC_COND_EXPR cannot be lvalues.
17667 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
17668
d08633b4
MG
176692013-03-21 Marc Glisse <marc.glisse@inria.fr>
17670
17671 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
17672 Restrict the transformation to equal modes.
17673
e6647190
RB
176742013-03-21 Richard Biener <rguenther@suse.de>
17675
17676 PR tree-optimization/39326
17677 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
17678 (MEM_ANALYZABLE): Adjust.
17679 (record_mem_ref_loc): Move bitmap ops ...
17680 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
17681 unanalyzable refs, do not record locations for it.
17682 (analyze_memory_references): Allocate ref zero as shared
17683 unanalyzable ref.
17684 (refs_independent_p): Do not test for unanalyzed mems here.
17685 (ref_indep_loop_p_1): Special-case disambiguation against
17686 the unanalyzed ref.
cc1df30b 17687 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 17688
65074f54
CL
176892013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
17690
17691 * config/arm/arm-protos.h (tune_params): Add
17692 prefer_neon_for_64bits field.
17693 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
17694 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
17695 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
17696 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
17697 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
17698 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
17699 (arm_option_override): Handle -mneon-for-64bits new option.
17700 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
17701 (prefer_neon_for_64bits): Declare new variable.
17702 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 17703 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
17704 (arch_enabled): Handle new arch types. Remove support for onlya8
17705 and nota8.
17706 (one_cmpldi2): Use new arch names.
bc5faa5b 17707 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
17708 * config/arm/arm.opt (mneon-for-64bits): Add option.
17709 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
17710 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
17711 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
17712 of onlya8.
17713 * doc/invoke.texi (-mneon-for-64bits): Document.
17714
5a2d2a79
RB
177152013-03-21 Richard Biener <rguenther@suse.de>
17716
17717 PR tree-optimization/39326
17718 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
17719 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 17720 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 17721
5abe1e05
RB
177222013-03-21 Richard Biener <rguenther@suse.de>
17723
17724 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
17725 (vect_insert_into_interleaving_chain): Likewise.
17726 (vect_drs_dependent_in_basic_block): Inline ...
17727 (vect_slp_analyze_data_ref_dependence): ... here. New function,
17728 split out from ...
17729 (vect_analyze_data_ref_dependence): ... here. Simplify.
17730 (vect_check_interleaving): Simplify.
17731 (vect_analyze_data_ref_dependences): Likewise. Split out ...
17732 (vect_slp_analyze_data_ref_dependences): ... this new function.
17733 (dr_group_sort_cmp): New function.
17734 (vect_analyze_data_ref_accesses): Compute data-reference groups
17735 here instead of in vect_analyze_data_ref_dependence. Use
17736 a more efficient algorithm.
17737 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
17738 vect_slp_analyze_data_ref_dependences. Call
17739 vect_analyze_data_ref_accesses earlier.
17740 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17741 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
17742 (vect_slp_analyze_data_ref_dependences): New prototype.
17743
cad1735b
RB
177442013-03-21 Richard Biener <rguenther@suse.de>
17745
17746 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
17747 ref is stored in the loop.
17748 (find_refs_for_sm): Walk only over all stores.
17749 (store_motion_loop): Allocate from lim_bitmap_obstack.
17750 (store_motion): Likewise.
17751
141310ef
RB
177522013-03-21 Richard Biener <rguenther@suse.de>
17753
17754 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
17755 Update virtual SSA form.
17756
5022315a
RO
177572013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17758
17759 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
17760 * configure: Regenerate.
17761 * config.in: Regenerate.
17762 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
17763 if !HAVE_LD_EH_FRAME_CIEV3.
17764
50d4421c
RB
177652013-03-21 Richard Biener <rguenther@suse.de>
17766
17767 * tree-cfg.c (verify_expr_no_block): New function.
17768 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
17769 nor DECL_VALUE_EXPR have locations with associated blocks.
17770 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
17771 (clear_unused_block_pointer): Remove code dealing with
17772 blocks in DECL_DEBUG_EXPR locations.
17773
839b422f
RB
177742013-03-21 Richard Biener <rguenther@suse.de>
17775
17776 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
17777 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
17778 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
17779 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
17780 instead of DECL_DEBUG_EXPR_IS_FROM.
17781 * gimplify.c (gimplify_modify_expr): Likewise.
17782 * tree-cfg.c (verify_expr_location_1): Likewise.
17783 * tree-complex.c (create_one_component_var): Likewise.
17784 * tree-sra.c (create_access_replacement): Likewise.
17785 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
17786 (clear_unused_block_pointer): Likewise.
17787 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
17788 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
17789 * var-tracking.c (var_debug_decl): Likewise.
17790 (track_expr_p): Likewise.
17791 * tree-inline.c (add_local_variables): Likewise. Set
17792 DECL_HAS_DEBUG_EXPR_P after copying it.
17793 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
17794 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
17795
fe04878d
UB
177962013-03-21 Uros Bizjak <ubizjak@gmail.com>
17797
17798 PR bootstrap/56656
17799 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
17800 * configure: Regenerate.
17801 * config.in: Regenerate.
17802 * config/i386/i386.md (*movdf_internal): Use
17803 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17804 movd instead of movq mnemonic for interunit moves.
17805 (*movdi_internal): Ditto.
17806
bd059b26 178072013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
17808
17809 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
17810 (abd<mode>_3): New pattern.
17811 (aba<mode>_3): New pattern.
17812 (fabd<mode>_3): New pattern.
17813
bd059b26 178142013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
17815
17816 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
17817 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
17818 occurrence of REGISTER_PREFIX as its empty string.
17819
4f1f78b9
JL
178202013-03-20 Jeff Law <law@redhat.com>
17821
17822 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
17823 addititional equivalences for equality comparisons between an SSA_NAME
17824 and a constant where the SSA_NAME was set from a widening conversion.
17825
327a1118
WL
178262013-03-20 Walter Lee <walt@tilera.com>
17827
17828 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
17829
813e0036
UB
178302013-03-20 Uros Bizjak <ubizjak@gmail.com>
17831
17832 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
17833 depending on type attribute.
17834 (*movti_internal): Ditto.
17835 (*movtf_internal): Ditto.
17836 (*movxf_internal): Ditto.
17837 (*movdf_internal): Ditto.
17838 (*movsf_internal): Ditto.
17839
7cf34aae
UB
178402013-03-20 Uros Bizjak <ubizjak@gmail.com>
17841
17842 * config/i386/i386.md (*movti_internal): Set prefix attribute to
17843 maybe_vex for sselog1 and ssemov types.
17844 (*movdi_internal): Reorder operand constraints.
17845 (*movsi_internal): Ditto. Set prefix attribute to
17846 maybe_vex for sselog1 and ssemov types.
17847 (*movtf_internal): Set prefix attribute to maybe_vex
17848 for sselog1 and ssemov types.
17849 (*movdf_internal): Ditto. Set prefix_data16 attribute for
17850 DImode ssemov types. Reorder operand constraints.
17851 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
17852 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
17853 attribute for SImode ssemov types. Reorder operand constraints.
17854
19321415
MJ
178552013-03-20 Martin Jambor <mjambor@suse.cz>
17856
17857 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
17858 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
17859
12211b99 178602013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
17861
17862 * config/rs6000/predicates.md (indexed_address, update_address_mem
17863 update_indexed_address_mem): New predicates.
17864 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
17865 attribute for load/store instructions.
17866 * config/rs6000/dfp.md (movsd_store): Likewise.
17867 (movsd_load): Likewise.
17868 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
17869 (unnamed HI->DI extend define_insn): Likewise.
17870 (unnamed SI->DI extend define_insn): Likewise.
17871 (unnamed QI->SI extend define_insn): Likewise.
17872 (unnamed QI->HI extend define_insn): Likewise.
17873 (unnamed HI->SI extend define_insn): Likewise.
17874 (unnamed HI->SI extend define_insn): Likewise.
17875 (extendsfdf2_fpr): Likewise.
17876 (movsi_internal1): Likewise.
17877 (movsi_internal1_single): Likewise.
17878 (movhi_internal): Likewise.
17879 (movqi_internal): Likewise.
17880 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
17881 attribute for load/store instructions.
17882 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
17883 instructions.
17884 (mov<mode>_softfloat): Likewise.
17885 (mov<mode>_hardfloat32): Likewise.
17886 (mov<mode>_hardfloat64): Likewise.
17887 (mov<mode>_softfloat64): Likewise.
17888 (movdi_internal32): Likewise.
17889 (movdi_internal64): Likewise.
17890 (probe_stack_<mode>): Likewise.
17891
178922013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
17893
17894 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
17895 floating point, and decimal floating point to reload iterator.
17896
17897 * config/rs6000/constraints.md (wl constraint): New constraints to
17898 return FLOAT_REGS if certain options are used to reduce the number
17899 of separate patterns that exist in the file.
17900 (wx constraint): Likewise.
17901 (wz constraint): Likewise.
17902
17903 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17904 -mdebug=reg, print wg, wl, wx, and wz constraints.
17905 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17906 Initialize the reload functions for 64-bit binary/decimal floating
17907 point types.
17908 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17909 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17910 create the buffer on the stack to overcome not having a 32-bit
17911 load and store.
17912 (rs6000_emit_move): Likewise.
17913 (rs6000_secondary_memory_needed_rtx): Likewise.
17914 (rs6000_alloc_sdmode_stack_slot): Likewise.
17915 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17916 via xxlxor, just like DFmode 0.0.
17917
17918 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
17919 define as 1 if we are running on a power7 or newer.
17920 (enum r6000_reg_class_enum): Add new constraints.
17921
17922 * config/rs6000/dfp.md (movsd): Delete, combine with binary
17923 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17924 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 17925 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
17926 (movsd splitter): Likewise.
17927 (movsd_hardfloat): Likewise.
17928 (movsd_softfloat): Likewise.
17929
17930 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
17931 binary and decimal floating point moves.
17932 (fmove_ok): New attributes to combine binary and decimal floating
17933 point moves, and to combine power6x (mfpgpr) moves along normal
17934 floating moves.
17935 (real_value_to_target): Likewise.
17936 (f32_lr): Likewise.
17937 (f32_lm): Likewise.
17938 (f32_li): Likewise.
17939 (f32_sr): Likewise.
17940 (f32_sm): Likewise.
17941 (f32_si): Likewise.
17942 (movsf): Combine binary and decimal floating point moves. Combine
17943 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 17944 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
17945 (mov<mode> for SFmode/SDmode); Likewise.
17946 (SFmode/SDmode splitters): Likewise.
17947 (movsf_hardfloat): Likewise.
17948 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
17949 (movsf_softfloat): Likewise.
17950 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
17951
17952 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
17953 wx and wz constraints.
17954
17955 * config/rs6000/constraints.md (wg constraint): New constraint to
17956 return FLOAT_REGS if -mmfpgpr (power6x) was used.
17957
17958 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
17959 constraint.
17960
17961 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17962 -mdebug=reg, print wg, wl, wx, and wz constraints.
17963 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17964 Initialize the reload functions for 64-bit binary/decimal floating
17965 point types.
17966 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17967 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17968 create the buffer on the stack to overcome not having a 32-bit
17969 load and store.
17970 (rs6000_emit_move): Likewise.
17971 (rs6000_secondary_memory_needed_rtx): Likewise.
17972 (rs6000_alloc_sdmode_stack_slot): Likewise.
17973 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17974 via xxlxor, just like DFmode 0.0.
17975
c6d5ff83
MM
17976 * config/rs6000/dfp.md (movdd): Delete, combine with binary
17977 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17978 with other moves by using conditional constraits (wg). Use LFIWZX
17979 and STFIWX for loading SDmode on power7.
17980 (movdd splitters): Likewise.
17981 (movdd_hardfloat32): Likewise.
17982 (movdd_softfloat32): Likewise.
17983 (movdd_hardfloat64_mfpgpr): Likewise.
17984 (movdd_hardfloat64): Likewise.
17985 (movdd_softfloat64): Likewise.
17986
17987 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
17988 64-bit binary and decimal floating point moves.
17989 (FMOVE64X): Likewise.
17990 (movdf): Combine 64-bit binary and decimal floating point moves.
17991 Combine power6x (mfpgpr) moves with other moves by using
17992 conditional constraits (wg).
17993 (mov<mode> for DFmode/DDmode): Likewise.
17994 (DFmode/DDmode splitters): Likewise.
17995 (movdf_hardfloat32): Likewise.
17996 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
17997 (movdf_softfloat32): Likewise.
17998 (movdf_hardfloat64_mfpgpr): Likewise.
17999 (movdf_hardfloat64): Likewise.
18000 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
18001 (movdf_softfloat64): Likewise.
18002 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
18003 (reload_<mode>_load): Move to later in the file so they aren't in
18004 the middle of the floating point move insns.
18005 (reload_<mode>_store): Likewise.
18006
18007 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
18008 constraint.
18009
18010 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
18011 constraint if -mdebug=reg.
bd059b26
UB
18012 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
18013 Enable using dd reload support if needed.
c6d5ff83
MM
18014
18015 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
18016 binary and decimal floating point moves in rs6000.md.
18017 (movtd_internal): Likewise.
18018
18019 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
18020 decimal floating point moves.
18021 (movtf): Likewise.
18022 (movtf_internal): Likewise.
18023 (mov<mode>_internal, TDmode/TFmode): Likewise.
18024 (movtf_softfloat): Likewise.
18025 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
18026
18027 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
18028 movdi_internal64, using wg constraint for move direct operations.
18029 (movdi_internal64): Likewise.
18030
18031 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
18032 MODES_TIEABLE_P for selected modes. Print the numerical value of
18033 the various virtual registers. Use GPR/FPR first/last values,
18034 instead of hard coding the register numbers. Print which modes
18035 have reload functions registered.
bd059b26
UB
18036 (rs6000_option_override_internal): If -mdebug=reg, trace the options
18037 settings before/after setting cpu, target and subtarget settings.
18038 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
18039 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
18040 (rs6000_secondary_reload_fail): Likewise.
18041 (rs6000_secondary_reload_inner): Likewise.
18042
18043 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
18044 macros for first/last GPR and FPR registers.
18045 (LAST_GPR_REGNO): Likewise.
18046 (FIRST_FPR_REGNO): Likewise.
18047 (LAST_FPR_REGNO): Likewise.
18048
18049 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
18050 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
18051 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
18052 (vcond<mode><mode>): Likewise.
18053 (vcondu<mode><mode>): Likewise.
18054 (vector_gtu<mode>): Likewise.
18055 (vector_gte<mode>): Likewise.
18056 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 18057 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
18058 (ior<mode>3): Likewise.
18059 (and<mode>3): Likewise.
18060 (one_cmpl<mode>2): Likewise.
18061 (nor<mode>3): Likewise.
18062 (andc<mode>3): Likewise.
18063
18064 * config/rs6000/constraints.md (wt constraint): New constraint
18065 that returns VSX_REGS if TImode is allowed in VSX registers.
18066
18067 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
18068 constant under VSX.
18069
18070 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
18071 similar to TImode, but it is restricted to being in the GPRs.
18072
18073 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
18074 TImode to occupy a single VSX register.
18075
18076 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
18077 -mvsx-timode for power7/power8.
18078 (power7 cpu): Likewise.
18079 (power8 cpu): Likewise.
18080
18081 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
18082 sure that TFmode/TDmode take up two registers if they are ever
18083 allowed in the upper VSX registers.
18084 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
18085 registers.
18086 (rs6000_init_hard_regno_mode_ok): Likewise.
18087 (rs6000_debug_reg_global): Add debugging for PTImode and wt
18088 constraint. Print if LRA is turned on.
18089 (rs6000_option_override_internal): Give an error if -mvsx-timode
18090 and VSX is not enabled.
18091 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
18092 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
18093 to reg+offset addressing. Use PTImode when checking offset
18094 addresses for validity.
18095 (reg_offset_addressing_ok_p): Likewise.
18096 (rs6000_legitimate_offset_address_p): Likewise.
18097 (rs6000_legitimize_address): Likewise.
18098 (rs6000_legitimize_reload_address): Likewise.
18099 (rs6000_legitimate_address_p): Likewise.
18100 (rs6000_eliminate_indexed_memrefs): Likewise.
18101 (rs6000_emit_move): Likewise.
18102 (rs6000_secondary_reload): Likewise.
18103 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
18104 reloads to fpr registers to continue to use reg+offset addressing,
18105 but 64-bit reloads to altivec registers need reg+reg addressing.
18106 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
18107 it. Treat LO_SUM like a PLUS operation.
18108 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 18109 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
18110 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
18111 registers to share a register with a smaller sized type, since VSX
18112 puts scalars in the upper 64-bits.
18113 (print_operand): Add support for PTImode.
18114 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
18115 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
18116 registers, but don't have arithmetic support.
18117 (rs6000_memory_move_cost): Add test for VSX.
18118 (rs6000_opt_masks): Add -mvsx-timode.
18119
18120 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
18121 for TImode.
18122 (VSs): Likewise.
18123 (VSr): Use wt constraint for TImode.
18124 (VSv): Drop TImode support.
18125 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
18126 (vsx_movti_64bit): Likewise.
18127 (vsx_movti_32bit): Likewise.
18128 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
18129 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
18130 one '?' on the appropriate output constraint. Do not allow TImode
18131 logical operations on 32-bit systems.
18132 (vsx_ior<mode>3): Likewise.
18133 (vsx_xor<mode>3): Likewise.
18134 (vsx_one_cmpl<mode>2): Likewise.
18135 (vsx_nor<mode>3): Likewise.
18136 (vsx_andc<mode>3): Likewise.
18137 (vsx_concat_<mode>): Likewise.
18138 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
18139
18140 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
18141 OPTION_MASK_VSX_TIMODE.
18142 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
18143 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
18144
18145 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
18146 (TI2 iterator): New iterator for TImode, PTImode.
18147 (wd mode attribute): Add values for vector types.
bd059b26
UB
18148 (movti_string): Replace TI move operations with operations for TImode
18149 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
18150 (mov<mode>_string, TImode/PTImode): Likewise.
18151 (movti_ppc64): Likewise.
18152 (mov<mode>_ppc64, TImode/PTImode): Likewise.
18153 (TI mode splitters): Likewise.
18154
18155 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
18156 constraint.
18157
1fc5eced
MG
181582013-03-20 Marc Glisse <marc.glisse@inria.fr>
18159
18160 PR tree-optimization/56355
18161 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
18162 Also handle integers with undefined overflow.
18163
22c4c869
CM
181642013-03-20 Catherine Moore <clm@codesourcery.com>
18165 Maciej W. Rozycki <macro@codesourcery.com>
18166 Tom de Vries <tom@codesourcery.com>
12211b99 18167 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
18168 Iain Sandoe <iain@codesourcery.com>
18169 Nathan Froyd <froydnj@codesourcery.com>
12211b99 18170 Chao-ying Fu <fu@mips.com>
22c4c869
CM
18171
18172 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 18173 Document new function attributes.
22c4c869
CM
18174 * doc/invoke.texi (minterlink-compressed, mmicromips,
18175 m14k, m14ke, m14kec): Document new options.
18176 (minterlink-mips16): Update documentation.
18177 * doc/md.texi (ZC, ZD): Document new constraints.
18178 * configure.ac (gcc_cv_as_micromips): Check if linker
18179 supports the .set micromips directive.
18180 * configure: Regenerate.
18181 * config.in: Regenerate.
18182 * config/mips/mips-tables.opt: Regenerate.
18183 * config/mips/micromips.md: New file.
18184 * constraints.md (ZC, ZD): New constraints.
18185 * config/mips/predicates.md (movep_src_register): New predicate.
18186 (movep_src_operand): New predicate.
18187 (non_volatile_mem_operand): New predicate.
18188 * config/mips/mips.md (multimem): New type.
18189 (length): Differentiate between 17-bit and 18-bit branch offsets.
18190 (MOVEP1, MOVEP2): New mode iterator.
33159866 18191 (mov_<load>l): Use ZC constraint.
22c4c869
CM
18192 (mov_<load>r): Likewise.
18193 (mov_<store>l): Likewise.
18194 (mov_<store>r): Likewise.
18195 (*branch_equality<mode>_inverted): Add microMIPS support.
18196 (*branch_equality<mode>): Likewise.
18197 (*jump_absolute): Likewise.
18198 (indirect_jump_<mode>): Likewise.
18199 (tablejump_<mode>): Likewise.
18200 (<optab>_internal): Likewise.
18201 (sibcall_internal): Likewise.
18202 (sibcall_value_internal): Likewise.
18203 (prefetch): Use constraint ZD.
18204 * config/mips/mips.opt (minterlink-compressed): New option.
18205 (minterlink-mips16): Now an alias for minterlink-compressed.
18206 (mmicromips): New option.
18207 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18208 (compare_and_swap_12): Likewise.
18209 (sync_add<mode>): Likewise.
18210 (sync_<optab>_12): Likewise.
18211 (sync_old_<optab>_12): Likewise.
18212 (sync_new_<optab>_12): Likewise.
18213 (sync_nand_12): Likewise.
18214 (sync_old_nand_12): Likewise.
18215 (sync_new_nand_12): Likewise.
18216 (sync_sub<mode>): Likewise.
18217 (sync_old_add<mode>): Likewise.
18218 (sync_old_sub<mode>): Likewise.
18219 (sync_new_add<mode>): Likewise.
18220 (sync_new_sub<mode>): Likewise.
18221 (sync_<optab><mode>): Likewise.
18222 (sync_old_<optab><mode>): Likewise.
18223 (sync_new_<optab><mode>): Likewise.
18224 (sync_nand<mode>): Likewise.
18225 (sync_old_nand<mode>): Likewise.
18226 (sync_new_nand<mode>): Likewise.
18227 (sync_lock_test_and_set<mode>): Likewise.
18228 (test_and_set_12): Likewise.
18229 (atomic_compare_and_swap<mode>): Likewise.
18230 (atomic_exchange<mode>_llsc): Likewise.
18231 (atomic_fetch_add<mode>_llsc): Likewise.
18232 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18233 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18234 (umips_save_restore_pattern_p): Likewise.
18235 (umips_load_store_pair_p): Likewise.
18236 (umips_output_load_store_pair): Likewise.
18237 (umips_movep_target_p): Likewise.
18238 (umips_12bit_offset_address_p): Likewise.
18239 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18240 (mips_base_mips16): Rename this...
18241 (mips_base_compression_flags): ...to this. Update all uses.
18242 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18243 (mips_mips16_decl_p): Delete.
18244 (mips_nomips16_decl_p): Delete.
33159866 18245 (mips_get_compress_on_flags): New function.
22c4c869
CM
18246 (mips_get_compress_off_flags): New function.
18247 (mips_get_compress_mode): New function.
18248 (mips_get_compress_on_name): New function.
18249 (mips_get_compress_off_name): New function.
18250 (mips_insert_attributes): Support multiple compression types.
18251 (mips_merge_decl_attributes): Likewise.
18252 (umips_12bit_offset_address_p): New function.
18253 (mips_start_function_definition): Emit .set micromips directive.
18254 (mips_call_may_need_jalx_p): New function.
18255 (mips_function_ok_for_sibcall): Add microMIPS support.
18256 (mips_print_operand_punctuation): Support short delay slots and
18257 compact jumps.
18258 (umips_swm_mask, umips_swm_encoding): New.
18259 (umips_build_save_restore): New function.
18260 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18261 (was_mips16_p): Remove.
18262 (old_compression_mode): New.
18263 (mips_set_compression_mode): New function.
18264 (mips_set_current_function): Add microMIPS support.
18265 (mips_option_override): Likewise.
18266 (umips_save_restore_pattern_p): New function.
18267 (umips_output_save_restore): New function.
18268 (umips_load_store_pair_p_1): New function.
18269 (umips_load_store_pair_p): New function.
18270 (umips_output_load_store_pair_1): New function.
18271 (umips_output_load_store_pair): New function.
18272 (umips_movep_target_p) New function.
18273 (mips_prepare_pch_save): Add microMIPS support.
18274 * config/mips/mips.h (TARGET_COMPRESSION): New.
18275 (TARGET_CPU_CPP_BUILTINS): Update macro
18276 to use new compression flags and to support microMIPS.
18277 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18278 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18279 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18280 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18281 (ASM_SPEC): Support mmicromips and mno-micromips.
18282 (M16STORE_REG_P): New macro.
18283 (MIPS_CALL): Support TARGET_MICROMIPS.
18284 (MICROMIPS_J): New macro.
18285 (mips_base_mips16): Rename this...
18286 (mips_base_compression_flags): ...to this.
18287 (UMIPS_12BIT_OFFSET_P): New macro.
18288 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18289 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
182902013-03-20 Richard Biener <rguenther@suse.de>
18291
18292 PR tree-optimization/56661
18293 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
18294 the result does not have to be distinct.
18295
54714c68
RB
182962013-03-20 Richard Biener <rguenther@suse.de>
18297
18298 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
18299 remap_gimple_op_r.
18300
cca1130d 183012013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 18302 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
18303
18304 PR rtl-optimization/56605
18305 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
18306
2a930377
UB
183072013-03-20 Uros Bizjak <ubizjak@gmail.com>
18308
18309 PR bootstrap/56656
18310 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
18311 that require movd instead of movq.
18312
d6d305fe
RB
183132013-03-20 Richard Biener <rguenther@suse.de>
18314
18315 * tree-ssa-structalias.c (struct variable_info): Add pointer
18316 to the first field of an aggregate with sub-vars. Make
18317 this and the pointer to the next subfield its ID.
18318 (vi_next): New function.
18319 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
18320 storedanything_id, integer_id): Increment by one.
18321 (new_var_info, get_call_vi, lookup_call_clobber_vi,
18322 get_call_clobber_vi): Adjust.
18323 (solution_set_expand): Simplify and speedup.
18324 (solution_set_add): Inline into ...
18325 (set_union_with_increment): ... this. Adjust accordingly.
18326 (do_sd_constraint): Likewise.
18327 (do_ds_constraint): Likewise.
18328 (do_complex_constraint): Simplify.
18329 (build_pred_graph): Adjust.
18330 (solve_graph): Likewise. Simplify and speedup.
18331 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18332 get_constraint_for_component_ref, get_constraint_for_1,
18333 first_vi_for_offset, first_or_preceding_vi_for_offset,
18334 create_function_info_for, create_variable_info_for_1,
18335 create_variable_info_for, intra_create_variable_infos): Adjust.
18336 (init_base_vars): Push NULL for ID zero.
18337 (compute_points_to_sets): Adjust.
18338
a271b42d
RB
183392013-03-20 Richard Biener <rguenther@suse.de>
18340
18341 * cfgloop.c (verify_loop_structure): Streamline and avoid
18342 ICEing on corrupt loop tree.
18343 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18344 loop tree.
18345
ebd65954
RB
183462013-03-20 Richard Biener <rguenther@suse.de>
18347
18348 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18349 check whether an SSA update is needed.
18350
4547b7ee
RS
183512013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18352
18353 * config/mips/constraints.md (T): Rename to...
18354 (Yf): ...this.
18355 (U): Rename to...
18356 (Yd): ...this.
18357 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18358 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18359
0b8cdc58
IB
183602013-03-19 Ian Bolton <ian.bolton@arm.com>
18361
18362 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18363 (*subsi3_carryin_uxtw): Likewise.
18364
5977a10d
IB
183652013-03-19 Ian Bolton <ian.bolton@arm.com>
18366
18367 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18368 (*rorsi3_insn_uxtw): Likewise.
18369
bd83ff2c
IB
183702013-03-19 Ian Bolton <ian.bolton@arm.com>
18371
18372 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18373 (*extrsi5_insn_uxtw): Likewise.
18374
ba65123c
RB
183752013-03-19 Richard Biener <rguenther@suse.de>
18376
18377 PR tree-optimization/56273
18378 * passes.c (init_optimization_passes): Move second VRP after DOM.
18379
2eac0476
UB
183802013-03-19 Uros Bizjak <ubizjak@gmail.com>
18381
18382 * config/i386/i386.md (*movti_internal): Merge from
18383 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18384 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18385 nox64 isa attributes.
18386
6e55eda7
RB
183872013-03-18 Richard Biener <rguenther@suse.de>
18388
18389 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18390 (unite): Likewise.
18391 (merge_node_constraints): Likewise.
18392 (build_succ_graph): Likewise.
18393 (valid_graph_edge): Inline into single caller.
18394 (unify_nodes): Likewise. Use bitmap_set_bit return value
18395 and cache varinfo.
18396 (scc_visit): Fix formatting and variable use.
18397 (do_sd_constraint): Use gcc_checking_assert.
18398 (do_ds_constraint): Likewise.
18399 (do_complex_constraint): Likewise.
18400 (condense_visit): Likewise. Cleanup.
18401 (dump_pred_graph): New function.
18402 (perform_var_substitution): Dump the pred-graph before
18403 variable substitution.
18404 (find_equivalent_node): Use gcc_checking_assert.
18405 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18406
4bdd44c4
RB
184072013-03-18 Richard Biener <rguenther@suse.de>
18408
18409 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18410 Remove cond_expr_stmt_list argument and do not gimplify the
18411 built expression.
18412 (vect_loop_versioning): Adjust.
18413 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18414 Cleanup to use less temporaries.
18415 (vect_create_data_ref_ptr): Cleanup.
18416
38c56a5b
JJ
184172013-03-18 Jakub Jelinek <jakub@redhat.com>
18418
18419 PR tree-optimization/56635
18420 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18421 require types_compatible_p types.
18422
20b2e6a0
NC
184232013-03-18 Nick Clifton <nickc@redhat.com>
18424
a6178a25
NC
18425 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18426 spurious backslash.
18427
20b2e6a0
NC
18428 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18429 Add missing line to comment describing function.
18430
92608d0e
RB
184312013-03-18 Richard Biener <rguenther@suse.de>
18432
18433 PR tree-optimization/56210
18434 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18435 Handle string / character search functions.
18436 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18437
31348d52
RB
184382013-03-18 Richard Biener <rguenther@suse.de>
18439
18440 PR middle-end/56483
18441 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18442 and implement properly.
18443 * gimple.h (gimple_cond_single_var_p): Remove.
18444
fcac74a1
RB
184452013-03-18 Richard Biener <rguenther@suse.de>
18446
18447 * tree-data-ref.h (find_data_references_in_loop): Declare.
18448 * tree-data-ref.c (get_references_in_stmt): Use a stack
18449 vector pre-allocated in the callers.
18450 (find_data_references_in_stmt): Adjust.
18451 (graphite_find_data_references_in_stmt): Likewise.
18452 (create_rdg_vertices): Likewise.
18453 (find_data_references_in_loop): Export.
18454 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18455 Compute dependences here...
18456 (vect_analyze_data_refs): ...not here. When we encounter
18457 a non-vectorizable data reference in basic-block vectorization
18458 truncate the data reference vector. Do not bother to
18459 fixup data-dependence information for gather loads.
18460 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18461 of data references, as reported.
18462
0d5a1b56
RB
184632013-03-18 Richard Biener <rguenther@suse.de>
18464
18465 PR tree-optimization/3713
18466 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18467 has_constants and expr.
18468 (stmt_has_constants): Properly valueize SSA names when deciding
18469 whether the stmt has constants.
18470
789c34e3
RB
184712013-03-18 Richard Biener <rguenther@suse.de>
18472
18473 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18474 whole function when there is nothing to do.
18475 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18476 * tree-vectorizer.c (vectorize_loops): Update virtual and
18477 loop-closed SSA once.
18478 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18479
076b4605
RB
184802013-03-18 Richard Biener <rguenther@suse.de>
18481
18482 PR middle-end/56113
18483 * domwalk.c (bb_postorder): New global static.
18484 (cmp_bb_postorder): New function.
18485 (walk_dominator_tree): Replace scheme imposing an order for
18486 visiting dominator sons by one sorting them at the time they
18487 are pushed on the stack.
18488
bdb01696
RB
184892013-03-18 Richard Biener <rguenther@suse.de>
18490
18491 PR tree-optimization/39326
18492 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18493 (struct mem_ref): Replace mem member with ao_ref typed member.
18494 (MEM_ANALYZABLE): Adjust.
18495 (memref_eq): Likewise.
18496 (mem_ref_alloc): Likewise.
18497 (gather_mem_refs_stmt): Likewise.
18498 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18499 (execute_sm_if_changed_flag_set): Adjust.
18500 (execute_sm): Likewise.
18501 (ref_always_accessed_p): Likewise.
18502 (refs_independent_p): Likewise.
18503 (can_sm_ref_p): Likewise.
18504
12d2dc5e
JJ
185052013-03-18 Jakub Jelinek <jakub@redhat.com>
18506
18507 PR c/56566
18508 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18509 return 1 even for !unsignedp.
18510
286fb677
UB
185112013-03-17 Uros Bizjak <ubizjak@gmail.com>
18512
18513 * config/i386/i386.md (isa): Add x64 and nox64.
18514 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18515 (*pushtf): Enable *roF alternative for x64 isa only.
18516 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18517 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18518 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18519 (*movtf_internal): Merge from *movtf_internal_rex64 and
18520 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18521 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18522 nox64 isa attributes.
18523 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18524 nox64 isa attributes.
18525 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18526
88b97037
UB
185272013-03-17 Uros Bizjak <ubizjak@gmail.com>
18528
18529 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18530
9f4f1735
JJ
185312013-03-17 Jakub Jelinek <jakub@redhat.com>
18532
18533 PR target/56640
18534 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18535 class names. Remove trailing comma after "ALL_REGS".
18536
48f4a6fa
JH
185372013-03-16 Jan Hubicka <jh@suse.cz>
18538
18539 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18540 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18541 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18542 of cgraph_get_create_node.
18543 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18544
98e81123
JM
185452013-03-16 Jason Merrill <jason@redhat.com>
18546
18547 PR debug/49090
18548 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18549 with DW_AT_default_value.
18550
8a298c04
JJ
185512013-03-16 Jakub Jelinek <jakub@redhat.com>
18552
18553 * BASE-VER: Set to 4.9.0.
18554
4323afa0
AK
185552013-03-14 Andi Kleen <ak@linux.intel.com>
18556
18557 PR target/56619
18558 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18559 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18560 Document _x* TSX intrinsics.
18561
b3c0d469
JJ
185622013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18563 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18564
18565 * configure.ac: Add MicroBlaze TLS support detection.
18566 * configure: Regenerate.
88b97037
UB
18567 * config/microblaze/microblaze-protos.h
18568 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18569 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18570 * config/microblaze/microblaze.c (microblaze_address_type): Add
18571 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18572 (microblaze_address_info): Add tls_reloc.
18573 (TARGET_HAVE_TLS): Define.
18574 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18575 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18576 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18577 load_tls_operand, microblaze_call_tls_get_addr,
18578 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18579 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18580 (get_base_reg): Use microblaze_tls_symbol_p.
18581 (microblaze_classify_address): Handle TLS.
88b97037
UB
18582 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18583 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18584 (microblaze_legitimize_address): Handle TLS.
18585 (microblaze_address_insns): Handle ADDRESS_TLS.
18586 (pic_address_needs_scratch): Handle TLS.
18587 (print_operand_address): Handle TLS.
18588 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18589 (microblaze_expand_move): Handle TLS.
88b97037
UB
18590 (microblaze_legitimate_constant_p): Check
18591 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18592 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18593 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18594 (PIC_OFFSET_TABLE_REGNUM): Set.
18595 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18596 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18597 (addsi3, movsi_internal2, movdf_internal): Update constraints
18598 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18599 (move_operand): Redefine as move_src_operand,
18600 check microblaze_tls_referenced_p.
8cc9a5a5 18601
d803a491
IB
186022013-03-14 Ian Bolton <ian.bolton@arm.com>
18603
18604 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18605 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18606
a8504f22
IB
186072013-03-14 Ian Bolton <ian.bolton@arm.com>
18608
18609 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18610 CC mode for AND.
18611
df2dfaea
JJ
186122013-03-14 Jakub Jelinek <jakub@redhat.com>
18613
fbd28bc3
JJ
18614 PR tree-optimization/53265
18615 * common.opt (Waggressive-loop-optimizations): New option.
18616 * tree-ssa-loop-niter.c: Include tree-pass.h.
18617 (do_warn_aggressive_loop_optimizations): New function.
18618 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
18619 if number_of_latch_executions returned constant.
18620 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
18621 early. If number_of_latch_executions returned constant, set
18622 nb_iterations_upper_bound back to it.
18623 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
18624 field.
18625 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
18626 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
18627
df2dfaea
JJ
18628 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
18629 (MULTILIB_OSDIRNAMES): Set.
18630 * genmultilib: If defaultosdirname doesn't start with :: , set
18631 defaultosdirname2 instead, clear it and emit two . multilib_raw
18632 entries instead of just one.
18633
ee0d2b68
KK
186342013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
18635
18636 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18637 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
18638 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18639 (SUBTARGET_OVERRIDE_OPTIONS): New.
18640
decc676e
OE
186412013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
18642
18643 PR target/49880
18644 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
18645 (musermode): Convert to Var(TARGET_USERMODE).
18646 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
18647 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
18648 * config/sh/sh.c (sh_option_override): Use
18649 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
18650 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
18651 condition.
18652 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
18653 TARGET_SH4.
18654 (udivsi3_i4_single, divsi3_i4_single): Use
18655 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
18656
f4b719c7
DK
186572013-03-13 Dave Korn <dave.korn.cygwin@....>
18658
18659 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
18660 default setting.
18661
c40eced0
RB
186622013-03-13 Richard Biener <rguenther@suse.de>
18663
18664 PR tree-optimization/56608
18665 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
18666 calls when vectorizing basic-blocks.
18667
1bfa5973
JJ
186682013-03-13 Jakub Jelinek <jakub@redhat.com>
18669
18670 PR plugins/45078
18671 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
18672 tm_file.
18673
6fcf5434
JJ
186742013-03-12 Jakub Jelinek <jakub@redhat.com>
18675
18676 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
18677
4f38fa8c
JH
186782013-03-11 Jan Hubicka <jh@suse.cz>
18679
18680 PR lto/56557
18681 * lto-streamer-out.c (output_symbol_p): Skip references from
18682 constructors of external variables.
18683
c5c5ba89
JH
186842013-03-11 Jan Hubicka <jh@suse.cz>
18685
18686 PR middle-end/56571
18687 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
18688 from pseudos.
18689 * emit-rtl.c (verify_rtx_sharing): Likewise.
18690 (copy_insn_1): Likewise.
18691 * rtl.c (copy_rtx): Likewise.
18692
c2a939b1
GJL
186932013-03-11 Georg-Johann Lay <avr@gjlay.de>
18694
18695 PR target/56591
18696 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
18697 output_operand_lossage message.
88b97037 18698
3c3279fb
RE
186992013-03-11 Richard Earnshaw <rearnsha@arm.com>
18700
18701 PR target/56470
18702 * arm.c (shift_op): Validate RTL pattern on the fly.
18703 (arm_print_operand, case 'S'): Don't use shift_operator to validate
18704 the RTL.
18705
aef5ef9d
JDA
187062013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18707
18708 PR target/56347
18709 * config/pa/pa.md (call_value): Check for calls to powf and direct to
18710 new call patterns that clobber %fr12.
18711 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
18712 split and postreload patterns.
18713 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
18714 registers %fr12 and %fr12R as call used.
18715
456610d3
SB
187162013-03-09 Steven Bosscher <steven@gcc.gnu.org>
18717
18718 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
18719 (canon_address, record_store, replace_read, check_mem_read_rtx,
18720 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
18721 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
18722 rest_of_handle_dse): Likewise.
18723
4b1baac8
RS
187242013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
18725
18726 PR middle-end/56524
18727 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
18728 Add base_optabs.
18729 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
18730 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
18731 (save_optabs_if_changed): Replace with...
18732 (init_tree_optimization_optabs): ...this.
18733 * optabs.c (save_optabs_if_changed): Rename to...
18734 (init_tree_optimization_optabs): ...this. Take the optimization node
18735 as argument. Do nothing if the base optabs are already correct.
18736 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
18737 to recompute optabs.
18738 * function.h (function): Remove optabs field.
18739 * function.c (invoke_set_current_function_hook): Call
18740 init_tree_optimization_optabs. Use the result to initialize
18741 this_fn_optabs.
18742
b7a78683
AH
187432013-02-27 Aldy Hernandez <aldyh@redhat.com>
18744
18745 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
18746 if GTMA_HAS_NO_INSTRUMENTATION.
18747 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
18748 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
18749 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
18750 * gimple-pretty-print.c (dump_gimple_transaction): Handle
18751 GTMA_HAS_NO_INSTRUMENTATION.
18752
6384c29b
JJ
187532013-03-08 Jakub Jelinek <jakub@redhat.com>
18754
18755 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
18756 libasan_preinit.o.
18757
ecd4f20a
MP
187582013-03-08 Marek Polacek <polacek@redhat.com>
18759 Jakub Jelinek <jakub@redhat.com>
18760
18761 PR tree-optimization/56478
18762 * predict.c (is_comparison_with_loop_invariant_p): Change the
18763 type of loop_step to tree.
18764 (predict_loops): Adjust.
18765 (predict_iv_comparison): Perform the computations on double_ints.
18766
64366d35
RB
187672013-03-08 Richard Biener <rguenther@suse.de>
18768
18769 PR tree-optimization/56570
18770 * tree-cfg.c (verify_expr_location_1): Verify locations for
18771 DECL_DEBUG_EXPR.
18772 * tree-sra.c (create_access_replacement): Strip locations
18773 from DECL_DEBUG_EXPRs.
18774
a9d5a059
RB
187752013-03-08 Richard Biener <rguenther@suse.de>
18776
18777 * tree-inline.c (expand_call_inline): Do not associate
18778 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
18779 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
18780
b7aa4e9a
RB
187812013-03-08 Richard Biener <rguenther@suse.de>
18782
18783 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
18784 or block changes with -Og. Fix for location / block encoding
18785 changes and PHI arguments with locations.
18786
c4c2f9fa
SB
187872013-03-07 Steven Bosscher <steven@gcc.gnu.org>
18788
18789 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
18790 for all counters.
18791 (struct output_info): Likewise.
18792 (register_overhead): Remove bad gcc_assert.
18793 (bitmap_find_bit): If there is only a single bitmap element, do not
18794 count a miss as a search.
18795 (print_statistics): Update for counter type changes.
18796 (dump_bitmap_statistics): Likewise. Print headers such that they
18797 are properly lined up with the printed counters.
18798
5bf6606a
JJ
187992013-03-07 Jakub Jelinek <jakub@redhat.com>
18800
18801 PR tree-optimization/56559
18802 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
18803 check that it has only a single use.
18804
2c653d46
RB
188052013-03-07 Richard Biener <rguenther@suse.de>
18806
18807 * doc/invoke.texi (fwhole-program): Discourage use in combination
18808 with -flto.
18809
a72d8780
JJ
188102013-03-06 Jakub Jelinek <jakub@redhat.com>
18811
01a454df
JJ
18812 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
18813
c1781047
JJ
18814 PR tree-optimization/56539
18815 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
18816 instead of GSI_CONTINUE_LINKING as last argument to
18817 force_gimple_operand_gsi. Adjust function comment.
18818
9772c47a
JJ
18819 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
18820 aarch64-cores.def.
18821
a72d8780
JJ
18822 PR middle-end/56548
18823 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
18824 promoted mode, convert the result back to the original mode.
18825
fa5556de
RB
188262013-03-06 Richard Biener <rguenther@suse.de>
18827
18828 PR middle-end/56294
18829 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
18830 (insert_updated_phi_nodes_compare_uids): New function.
18831 (update_ssa): Sort symbols_to_rename after UID before
18832 traversing it to insert PHI nodes.
18833
010403d1
RB
188342013-03-06 Richard Biener <rguenther@suse.de>
18835
18836 PR middle-end/50494
18837 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
18838 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
18839
18840 Revert
18841 2013-02-13 Richard Biener <rguenther@suse.de>
18842
18843 PR lto/50494
18844 * varasm.c (output_constant_def_1): Get the decl representing
18845 the constant as argument.
18846 (output_constant_def): Wrap output_constant_def_1.
18847 (make_decl_rtl): Use output_constant_def_1 with the decl
18848 representing the constant.
18849 (build_constant_desc): Optionally re-use a decl already
18850 representing the constant.
18851 (tree_output_constant_def): Adjust.
18852
3c27ce4c
JY
188532013-03-06 Joey Ye <joey.ye@arm.com>
18854
18855 PR lto/50293
18856 * gcc.c (convert_white_space): New function.
18857 (main): Handles white space in function name.
18858
8f6d1c86
OE
188592013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
18860
18861 PR target/56529
18862 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
18863 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
18864 to SH_DIV_CALL_TABLE for TARGET_SH2.
18865 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
18866 list.
18867 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
18868 call-table options.
18869
798a209f
SA
188702013-03-05 Sterling Augustine <saugustine@google.com>
18871 Cary Coutant <ccoutant@google.com>
18872
18873 PR debug/55364
18874 * dwarf2out.c (resolve_addr): Don't call
18875 remove_loc_list_addr_table_entries a second time for the same
18876 expression.
18877
6cfa417f 188782013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 18879
6cfa417f
JJ
18880 PR debug/56510
18881 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
18882 (avoid_complex_debug_insns): New function.
18883 (expand_debug_locations): Call it.
18884
18885 PR rtl-optimization/56484
18886 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
18887 lifetimes of hard registers on small register class machines.
18888
188892013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
18890
18891 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 18892 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 18893 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
18894 fast_interrupt.
18895 (microblaze_fast_interrupt_function_p): New function.
18896 (microblaze_is_interrupt_handler): Rename to
18897 microblaze_is_interrupt_variant and add fast_interrupt check.
18898 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
18899 (save_restore_insns): Likewise.
18900 (compute_frame_size): Likewise.
18901 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
18902 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
18903 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
18904 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
18905 microblaze_is_interrupt_variant.
18906
731aefac
KT
189072013-03-05 Kai Tietz <ktietz@redhat.com>
18908
18909 * sdbout.c (sdbout_one_type): Switch to current function's section
18910 supporting cold/hot.
18911
a72d8780 189122013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
18913
18914 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
18915 -mxl-reorder.
18916
334e71e8
JJ
189172013-03-05 Jakub Jelinek <jakub@redhat.com>
18918
0b50e654
JJ
18919 PR middle-end/56461
18920 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
18921 if VALGRIND_GET_VBITS is defined, temporarily make object
18922 memory all defined, and restore previous valgrind addressability
18923 and definability afterwards. Free this_object at the end.
18924
4ccf8f43
JJ
18925 PR middle-end/56461
18926 * lra.c (lra): Call lra_clear_live_ranges if live_p,
18927 right before calling lra_create_live_ranges, also call it
18928 when clearing live_p. Only call lra_clear_live_ranges
18929 at the end if live_p.
18930
334e71e8
JJ
18931 PR middle-end/56461
18932 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
18933
9ca966ca
RB
189342013-03-05 Richard Biener <rguenther@suse.de>
18935
18936 PR tree-optimization/56521
18937 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
18938 value-id.
18939
d273b176
SB
189402013-03-05 Steven Bosscher <steven@gcc.gnu.org>
18941
18942 PR c++/55135
18943 * except.h (remove_unreachable_eh_regions): New prototype.
18944 * except.c (remove_eh_handler_splicer): New function, split out
18945 of remove_eh_handler.
18946 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
18947 warning about running it on many EH regions one at a time.
18948 (remove_unreachable_eh_regions_worker): New function, walk the
18949 EH tree in depth-first order and remove non-marked regions.
18950 (remove_unreachable_eh_regions): New function.
18951 * tree-eh.c (mark_reachable_handlers): New function, split out
18952 from remove_unreachable_handlers.
18953 (remove_unreachable_handlers): Use mark_reachable_handlers and
18954 remove_unreachable_eh_regions.
18955 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
18956 and remove_unreachable_eh_regions.
18957
5e7f1aef
RB
189582013-03-05 Richard Biener <rguenther@suse.de>
18959
18960 PR middle-end/56525
18961 * loop-init.c (fix_loop_structure): Remove loops in two stages,
18962 not freeing them until the end.
18963
f276b762
AK
189642013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18965
18966 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
18967
12a43ab8
RB
189682013-03-05 Richard Biener <rguenther@suse.de>
18969
18970 PR tree-optimization/56270
18971 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
18972 of loads after scheduling an SLP instance.
18973
93675444
JJ
189742013-03-05 Jakub Jelinek <jakub@redhat.com>
18975
db4138e3
JJ
18976 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
18977 tic6x.exp.
18978 (check_gcc_parallelize): Run guality.exp as a separate job from
18979 vect.exp with unsorted.exp and $(dg_target_exps) separately from
18980 struct-layout-1.exp with stackalign.exp.
18981
dd3d1ec0
JJ
18982 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
18983
b8d381a3
JJ
18984 PR middle-end/56461
18985 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
18986 load_index sbitmap even if some bit in it isn't set.
18987
b4f9786b
JJ
18988 PR middle-end/56461
18989 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
18990 (discover_iteration_bound_by_body_walk): Change queues to
18991 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
18992 spelling in comment. Call safe_push on queues[bound_index] directly.
18993 Release queues[queue_index] in every iteration unconditionally.
18994 Release bounds vector.
18995
93675444
JJ
18996 PR middle-end/56461
18997 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
18998 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
18999 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
19000 inner_phis vector.
19001
3e492e9c
RB
190022013-03-05 Richard Biener <rguenther@suse.de>
19003
19004 PR lto/56515
19005 * tree-inline.c (remap_blocks_to_null): New function.
19006 (expand_call_inline): When expanding a call stmt without
19007 an associated block inline remap all callee blocks to NULL.
19008
a5d1569a
JJ
190092013-03-05 Jakub Jelinek <jakub@redhat.com>
19010
86efb5cd
JJ
19011 PR rtl-optimization/56494
19012 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
19013 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
19014 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
19015
85f5dbea
JJ
19016 PR middle-end/56461
19017 * sel-sched-ir.c (free_sched_pools): Release
19018 succs_info_pool.stack[succs_info_pool.max_top] vectors too
19019 if succs_info_pool.max_top isn't -1.
19020
a5d1569a
JJ
19021 PR bootstrap/56509
19022 * opts.c (opts_obstack, opts_concat): Moved to...
19023 * opts-common.c (opts_obstack, opts_concat): ... here.
19024
4432aa6c
JJ
190252013-03-04 Jakub Jelinek <jakub@redhat.com>
19026
19027 PR middle-end/56461
19028 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
19029
f3a1fb91
MJ
190302013-03-04 Martin Jambor <mjambor@suse.cz>
19031
19032 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
19033 all appropriate places.
19034
22110e6c
EB
190352013-01-04 Eric Botcazou <ebotcazou@adacore.com>
19036
19037 PR tree-optimization/56424
19038 * ipa-split.c (split_function): Do not set the RSO flag if result is
19039 not by reference and its type is a register type.
19040
a72d8780 190412013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 19042
88b97037 19043 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 19044 (microblaze_legitimate_pic_operand): Likewise
88b97037 19045 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
19046 new function microblaze_legitimate_pic_operand
19047 * config/microblaze/microblaze-protos.h
19048 (microblaze_legitimate_pic_operand): Declare.
19049
a72d8780 190502013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 19051
a72d8780 19052 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 19053 New predicate for supported rtx code types.
a72d8780 19054 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
19055 call_insn_simple_operand predicate.
19056
541d9ac8
JJ
190572013-03-04 Jakub Jelinek <jakub@redhat.com>
19058
5eb010bc
JJ
19059 PR middle-end/56461
19060 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
19061 partitions.ordered_remove.
19062
30862efc
JJ
19063 PR middle-end/56461
19064 * tree-vect-stmts.c (vectorizable_conversion): Don't call
19065 vec_oprnds0.create (1) for modifier == NONE.
19066
8930f723
JJ
19067 PR middle-end/56461
19068 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
19069 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
19070 vec_oprnds1 right before pushing anything to it for
19071 scalar_shift_arg.
19072
541d9ac8
JJ
19073 PR middle-end/56461
19074 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
19075 set nbbs to 0 instead of having separate code path.
19076 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
19077 instead of false as last argument if returning NULL.
19078
7aa7f2e3
SL
190792013-03-03 Sandra Loosemore <sandra@codesourcery.com>
19080
19081 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
19082 the attribute is now called "target" instead of "option".
19083 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
19084 * doc/tm.texi.in (Target Attributes): Likewise document the correct
19085 attribute/pragma name for TARGET_OPTION_VALID_P and
19086 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
19087 * doc/tm.texi: Regenerated.
19088
8930f723 190892013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 19090
8930f723 19091 * config/microblaze/microblaze.c:
cb8a1637 19092 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
19093 * config/microblaze/microblaze.h: Add -mxl-reorder to
19094 DRIVER_SELF_SPECS.
19095 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
19096 instructions emitted if TARGET_REORDER.
88b97037
UB
19097 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
19098 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 19099 separately.
cb8a1637 19100
4dc1d68c
XDL
191012013-03-01 Xinliang David Li <davidxl@google.com>
19102
19103 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
19104 walk length.
19105
689eaba3
JJ
191062013-03-01 Jakub Jelinek <jakub@redhat.com>
19107
9d676bf6
JJ
19108 PR middle-end/56461
19109 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
19110 vector even when returning true. Fix up function comment formatting.
19111
caff7edf
JJ
19112 PR middle-end/56461
19113 * ira-build.c (ira_loop_nodes_count): New variable.
19114 (create_loop_tree_nodes): Initialize it.
19115 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
19116
b6b9227d
JJ
19117 PR middle-end/56461
19118 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
19119 method on dr_chain and result_chain.
19120 * tree-vect-stmts.c (vectorizable_store): Only call
19121 result_chain.create if j == 0.
19122
689eaba3
JJ
19123 PR middle-end/56461
19124 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
19125 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
19126 before overwriting it.
19127
40bf31ed
TB
191282013-03-01 Tobias Burnus <burnus@net-b.de>
19129
19130 * doc/extended.texi (C Extensions): Change order in @menu
19131 to match @node.
19132 (Other MIPS Built-in Functions): Move last MIPS entry before
19133 "picoChip Built-in Functions".
19134 (SH Built-in Functions): Move after RX Built-in Functions.
19135 * doc/gcc.texi (Introduction): Change order in @menu
19136 to match @node.
19137 * doc/md.texi (Constraints): Ditto.
19138 * gty.texi (Type Information): Ditto.
19139 (User-provided marking routines for template types): Make
19140 subsection.
19141 * doc/invoke.texi (AArch64 Options): Move before
19142 "Adapteva Epiphany Options".
19143
e664c61c
KS
191442013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
19145 Jakub Jelinek <jakub@redhat.com>
19146
19147 PR sanitizer/56454
19148 * asan.c (gate_asan): Lookup no_sanitize_address instead of
19149 no_address_safety_analysis attribute.
19150 * doc/extend.texi (no_address_safety_attribute): Rename to
19151 no_sanitize_address attribute, mention no_address_safety_analysis
19152 attribute as deprecated alias.
19153
37b5ec8f
JJ
191542013-02-28 Jakub Jelinek <jakub@redhat.com>
19155
19156 PR middle-end/56461
19157 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
19158 type to vec<vec<tree> > *.
19159 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
19160 to be vec<tree> instead of vec<tree> *, set vec_defs
19161 to vNULL and call vec_defs.create (number_of_vects), adjust other
19162 uses of vec_defs.
19163 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
19164 vectorizable_condition): Adjust vect_get_slp_defs callers.
19165
ba96cdfb
JG
191662013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19167
19168 * config/aarch64/aarch64.c
19169 (aarch64_float_const_representable): Remove unused variable.
19170
6f549691
JG
191712013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19172
19173 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
19174
af55e82d
JG
191752013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19176
19177 * config/aarch64/aarch64-builtins.c
19178 (aarch64_init_simd_builtins): Make static.
19179
1df3f464
JG
191802013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19181
19182 * config/aarch64/aarch64.c
19183 (aarch64_simd_make_constant): Make static.
19184
f8f42513
MJ
191852013-02-28 Martin Jambor <mjambor@suse.cz>
19186
19187 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
19188 with no initialization to the RHS of debug statements.
19189
b48b3fc4
MJ
191902013-02-28 Martin Jambor <mjambor@suse.cz>
19191
19192 PR tree-optimization/56294
19193 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
19194 Adjust dumping.
19195 (get_access_replacement): Do not call create_access_replacement.
19196 Assert a replacement exists.
19197 (get_repl_default_def_ssa_name): Create the replacement declaration
19198 itself.
19199
c3ae224c
RR
192002013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19201
19202 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
19203 final_end_function.
19204
45fa0eef
MP
192052013-02-28 Marek Polacek <polacek@redhat.com>
19206
19207 PR rtl-optimization/56466
19208 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
19209 if we're changing a loop.
19210 (peel_loops_completely): Likewise.
19211
502c067d
PC
192122013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
19213
19214 PR c++/55813
19215 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
19216
ff24afc8
GJL
192172013-02-28 Georg-Johann Lay <avr@gjlay.de>
19218
19219 PR target/56445
19220 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
19221 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
19222 INTX_FTYPE_FX, FX_FTYPE_INTX.
19223 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
19224
c7b1fc1b
GJL
192252013-02-28 Georg-Johann Lay <avr@gjlay.de>
19226
19227 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
19228 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
19229 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
19230 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
19231 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
19232 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
19233 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
19234 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
19235 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
19236 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
19237 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
19238 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
19239 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
19240 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
19241 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
19242 (avrxmega6): Increase max flash segments from 5 to 6.
19243 * config/avr/t-multilib: Regenerate.
19244 * config/avr/avr-tables.opt: Regenerate.
19245 * doc/avr-mmcu.texi: Regenerate.
19246
4a0e3cfe
GJL
192472013-02-28 Georg-Johann Lay <avr@gjlay.de>
19248
19249 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
19250 (avr_device_to_arch): Rename to avr_device_to_ld.
19251 (avr_device_to_as): New prototype.
19252 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
19253 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
19254 * config/avr/driver-avr.c (avr_device_to_as): New.
19255 (avr_device_to_arch): Rename to avr_device_to_ld.
19256
97785e52
JJ
192572013-02-27 Jakub Jelinek <jakub@redhat.com>
19258
3f292312
JJ
19259 PR middle-end/56461
19260 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
19261 method on dr_chain and result_chain.
19262
a344216b
JJ
19263 PR middle-end/56461
19264 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
19265 pointer_set_destroy on not_executed_last_iteration.
19266
f121ad02 19267 PR middle-end/56461
88b97037 19268 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 19269
307f83a3
JJ
19270 PR middle-end/56461
19271 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
19272 FOR_EACH_DEFINED_FUNCTION when freeing state.
19273
e19624ee
JJ
19274 PR middle-end/56461
19275 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
19276 pool_free.
19277 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
19278 overwriting it.
19279
90e709fd
JJ
19280 PR middle-end/56461
19281 * ipa-cp.c (decide_whether_version_node): Call vec_free on
19282 known_aggs[i].items and release known_aggs vector.
19283
97785e52
JJ
19284 PR middle-end/56461
19285 * ipa-reference.c (propagate): Free node_info even for alias nodes.
19286
192872013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 19288
97785e52
JJ
19289 * config/microblaze/microblaze.c (microblaze_emit_compare):
19290 Use xor for EQ/NE comparisions.
19291 * config/microblaze/microblaze.md (cstoresf4): Add constraints
19292 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 19293
6fa5e0ed
JJ
192942013-02-27 Jakub Jelinek <jakub@redhat.com>
19295
19296 PR middle-end/56461
19297 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
19298 vector.
19299 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
19300 vec_safe_push, always update *slot.
19301 (redirect_edge_var_map_clear): Use vec_free.
19302 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
19303 (free_var_map_entry): Use vec_free.
19304 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
19305 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
19306
436a956a
AB
193072013-02-27 Andrey Belevantsev <abel@ispras.ru>
19308
19309 PR middle-end/45472
436a956a
AB
19310 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
19311 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
19312 Reorder tests for speculativeness in the logical and operator.
19313
f5c2caca
JJ
193142013-02-27 Jakub Jelinek <jakub@redhat.com>
19315
0fcb564b
JJ
19316 * incpath.c (add_standard_paths): Use reconcat instead of concat
19317 where appropriate and avoid leaking memory.
19318
dc357798
JJ
19319 * opts.h: Include obstack.h.
19320 (opts_concat): New prototype.
19321 (opts_obstack): New declaration.
19322 * opts.c (opts_concat): New function.
19323 (opts_obstack): New variable.
19324 (init_options_struct): Call gcc_init_obstack on opts_obstack.
19325 (finish_options): Use opts_concat instead of concat
19326 and XOBNEWVEC instead of XNEWVEC.
19327 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19328 generate_option): Likewise.
19329 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19330 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19331
f5c2caca
JJ
19332 PR target/56455
19333 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19334 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19335
d0163673
JJ
193362013-02-26 Jakub Jelinek <jakub@redhat.com>
19337
19338 PR middle-end/56461
19339 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19340
b5ad2b8e
JR
193412013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19342
19343 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19344 (arm_block_move_unaligned_straight): Likewise.
19345 (arm_adjust_block_mem): Likewise.
19346
9b639e2c
JR
193472013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19348
19349 PR target/48901
19350 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19351 temp, cond and label.
19352 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19353
e13a0ccb
JR
19354 PR target/52500
19355 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19356 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19357
fbe4f171
JR
19358 PR target/52501
19359 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19360 of prologue/epilogue functions.
19361
ae006543
JR
19362 PR target/52550
19363 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19364 Remove unused variable cfa_offset.
19365 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19366
c81369fa
JR
19367 PR target/54639
19368 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19369 type promotion to unsigned.
19370
f8a8fea7
JR
19371 PR target/54640
19372 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19373 for HOST_WIDE_INT of 32 bit / same size as int.
19374 (arm_block_move_unaligned_straight): Likewise.
19375 (arm_adjust_block_mem): Likewise.
19376
f8be5169
JR
19377 PR target/54662
19378 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19379 ALL_CFLAGS.
19380
f1ad3354
MP
193812013-02-26 Marek Polacek <polacek@redhat.com>
19382
19383 PR tree-optimization/56426
88b97037 19384 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19385
a6af0f42
RB
193862013-02-26 Richard Biener <rguenther@suse.de>
19387
19388 PR target/56444
19389 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19390 unused variable loops.
19391
aca43c6c
JJ
193922013-02-26 Jakub Jelinek <jakub@redhat.com>
19393
cecbe5d9
JJ
19394 PR tree-optimization/56448
19395 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19396 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19397 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19398 later operands of the references, or even first operand for
19399 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19400
aca43c6c
JJ
19401 PR tree-optimization/56443
19402 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19403 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19404 to type_for_mode langhook.
19405
53e2e141
MT
194062013-02-25 Matt Turner <mattst88@gmail.com>
19407
19408 * doc/invoke.texi: Document r4700.
19409
259ee451
RB
194102013-02-25 Richard Biener <rguenther@suse.de>
19411
19412 PR tree-optimization/56175
19413 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19414 split out from ...
19415 (simplify_bitwise_binary): ... here. Also guard the conversion
19416 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19417
6d65e8f1
CM
194182013-02-25 Catherine Moore <clm@codesourcery.com>
19419
19420 Revert:
19421 2013-02-24 Catherine Moore <clm@codesourcery.com>
19422 Maciej W. Rozycki <macro@codesourcery.com>
19423 Tom de Vries <tom@codesourcery.com>
a72d8780 19424 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19425 Iain Sandoe <iain@codesourcery.com>
19426 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19427 Chao-ying Fu <fu@mips.com>
88b97037 19428
6d65e8f1 19429 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19430 Document new function attributes.
6d65e8f1
CM
19431 * doc/invoke.texi (minterlink-compressed, mmicromips,
19432 m14k, m14ke, m14kec): Document new options.
19433 (minterlink-mips16): Update documentation.
19434 * doc/md.texi (ZC, ZD): Document new constraints.
19435 * configure.ac (gcc_cv_as_micromips): Check if linker
19436 supports the .set micromips directive.
19437 * configure: Regenerate.
19438 * config.in: Regenerate.
19439 * config/mips/mips-tables.opt: Regenerate.
19440 * config/mips/micromips.md: New file.
19441 * constraints.md (ZC, AD): New constraints.
19442 * config/mips/predicates.md (movep_src_register): New predicate.
19443 (movep_src_operand): New predicate.
19444 (non_volatile_mem_operand): New predicate.
19445 * config/mips/mips.md (multimem): New type.
19446 (length): Differentiate between 17-bit and 18-bit branch offsets.
19447 (MOVEP1, MOVEP2): New mode iterator.
19448 (mov_<load>l): Use ZC constraint.
19449 (mov_<load>r): Likewise.
19450 (mov_<store>l): Likewise.
19451 (mov_<store>r): Likewise.
19452 (*branch_equality<mode>_inverted): Add microMIPS support.
19453 (*branch_equality<mode>): Likewise.
19454 (*jump_absolute): Likewise.
19455 (indirect_jump_<mode>): Likewise.
19456 (tablejump_<mode>): Likewise.
19457 (<optab>_internal): Likewise.
19458 (sibcall_internal): Likewise.
19459 (sibcall_value_internal): Likewise.
19460 (prefetch): Use constraint ZD.
19461 * config/mips/mips.opt (minterlink-compressed): New option.
19462 (minterlink-mips16): Now an alias for minterlink-compressed.
19463 (mmicromips): New option.
19464 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19465 (compare_and_swap_12): Likewise.
19466 (sync_add<mode>): Likewise.
19467 (sync_<optab>_12): Likewise.
19468 (sync_old_<optab>_12): Likewise.
19469 (sync_new_<optab>_12): Likewise.
19470 (sync_nand_12): Likewise.
19471 (sync_old_nand_12): Likewise.
19472 (sync_new_nand_12): Likewise.
19473 (sync_sub<mode>): Likewise.
19474 (sync_old_add<mode>): Likewise.
19475 (sync_old_sub<mode>): Likewise.
19476 (sync_new_add<mode>): Likewise.
19477 (sync_new_sub<mode>): Likewise.
19478 (sync_<optab><mode>): Likewise.
19479 (sync_old_<optab><mode>): Likewise.
19480 (sync_new_<optab><mode>): Likewise.
19481 (sync_nand<mode>): Likewise.
19482 (sync_old_nand<mode>): Likewise.
19483 (sync_new_nand<mode>): Likewise.
19484 (sync_lock_test_and_set<mode>): Likewise.
19485 (test_and_set_12): Likewise.
19486 (atomic_compare_and_swap<mode>): Likewise.
19487 (atomic_exchange<mode>_llsc): Likewise.
19488 (atomic_fetch_add<mode>_llsc): Likewise.
19489 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19490 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19491 (umips_save_restore_pattern_p): Likewise.
19492 (umips_load_store_pair_p): Likewise.
19493 (umips_output_load_store_pair): Likewise.
19494 (umips_movep_target_p): Likewise.
19495 (umips_12bit_offset_address_p): Likewise.
19496 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19497 (mips_base_mips16): Rename this...
19498 (mips_base_compression_flags): ...to this. Update all uses.
19499 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19500 (mips_mips16_decl_p): Delete.
19501 (mips_nomips16_decl_p): Delete.
19502 (mips_get_compress_on_flags): New function.
19503 (mips_get_compress_off_flags): New function.
19504 (mips_get_compress_mode): New function.
19505 (mips_get_compress_on_name): New function.
19506 (mips_get_compress_off_name): New function.
19507 (mips_insert_attributes): Support multiple compression types.
19508 (mips_merge_decl_attributes): Likewise.
19509 (umips_12bit_offset_address_p): New function.
19510 (mips_start_function_definition): Emit .set micromips directive.
19511 (mips_call_may_need_jalx_p): New function.
19512 (mips_function_ok_for_sibcall): Add microMIPS support.
19513 (mips_print_operand_punctuation): Support short delay slots and
19514 compact jumps.
19515 (umips_swm_mask, umips_swm_encoding): New.
19516 (umips_build_save_restore): New function.
19517 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19518 (was_mips16_p): Remove.
19519 (old_compression_mode): New.
19520 (mips_set_compression_mode): New function.
19521 (mips_set_current_function): Add microMIPS support.
19522 (mips_option_override): Likewise.
19523 (umips_save_restore_pattern_p): New function.
19524 (umips_output_save_restore): New function.
19525 (umips_load_store_pair_p_1): New function.
19526 (umips_load_store_pair_p): New function.
19527 (umips_output_load_store_pair_1): New function.
19528 (umips_output_load_store_pair): New function.
19529 (umips_movep_target_p) New function.
19530 (mips_prepare_pch_save): Add microMIPS support.
19531 * config/mips/mips.h (TARGET_COMPRESSION): New.
19532 (TARGET_CPU_CPP_BUILTINS): Update macro
19533 to use new compression flags and to support microMIPS.
19534 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19535 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19536 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19537 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19538 (ASM_SPEC): Support mmicromips and mno-micromips.
19539 (M16STORE_REG_P): New macro.
19540 (MIPS_CALL): Support TARGET_MICROMIPS.
19541 (MICROMIPS_J): New macro.
19542 (mips_base_mips16): Rename this...
19543 (mips_base_compression_flags): ...to this.
19544 (UMIPS_12BIT_OFFSET_P): New macro.
19545 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19546 (MULTILIB_DIRNAMES): Likewise.
19547
5e5df392
TV
195482013-02-25 Tom de Vries <tom@codesourcery.com>
19549
19550 PR rtl-optimization/56131
19551 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19552 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19553 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19554
3fdb53c1
TB
195552013-02-25 Tobias Burnus <burnus@net-b.de>
19556
19557 * doc/invoke.texi (-fsanitize=): Move from optimization
19558 to debugging options.
19559
ed358aea
AB
195602013-02-25 Andrey Belevantsev <abel@ispras.ru>
19561
19562 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19563
f45e9053
AB
195642013-02-25 Andrey Belevantsev <abel@ispras.ru>
19565 Alexander Monakov <amonakov@ispras.ru>
19566
19567 PR middle-end/56077
19568 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19569 flush pending lists also on non-jumps. Adjust comment.
19570
6941b508
CM
195712013-02-24 Catherine Moore <clm@codesourcery.com>
19572 Maciej W. Rozycki <macro@codesourcery.com>
19573 Tom de Vries <tom@codesourcery.com>
a72d8780 19574 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19575 Iain Sandoe <iain@codesourcery.com>
19576 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19577 Chao-ying Fu <fu@mips.com>
6941b508
CM
19578
19579 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19580 Document new function attributes.
6941b508
CM
19581 * doc/invoke.texi (minterlink-compressed, mmicromips,
19582 m14k, m14ke, m14kec): Document new options.
19583 (minterlink-mips16): Update documentation.
19584 * doc/md.texi (ZC, ZD): Document new constraints.
19585 * configure.ac (gcc_cv_as_micromips): Check if linker
19586 supports the .set micromips directive.
19587 * configure: Regenerate.
19588 * config.in: Regenerate.
19589 * config/mips/mips-tables.opt: Regenerate.
19590 * config/mips/micromips.md: New file.
19591 * constraints.md (ZC, AD): New constraints.
19592 * config/mips/predicates.md (movep_src_register): New predicate.
19593 (movep_src_operand): New predicate.
19594 (non_volatile_mem_operand): New predicate.
19595 * config/mips/mips.md (multimem): New type.
19596 (length): Differentiate between 17-bit and 18-bit branch offsets.
19597 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19598 (mov_<load>l): Use ZC constraint.
6941b508
CM
19599 (mov_<load>r): Likewise.
19600 (mov_<store>l): Likewise.
19601 (mov_<store>r): Likewise.
19602 (*branch_equality<mode>_inverted): Add microMIPS support.
19603 (*branch_equality<mode>): Likewise.
19604 (*jump_absolute): Likewise.
19605 (indirect_jump_<mode>): Likewise.
19606 (tablejump_<mode>): Likewise.
19607 (<optab>_internal): Likewise.
19608 (sibcall_internal): Likewise.
19609 (sibcall_value_internal): Likewise.
19610 (prefetch): Use constraint ZD.
19611 * config/mips/mips.opt (minterlink-compressed): New option.
19612 (minterlink-mips16): Now an alias for minterlink-compressed.
19613 (mmicromips): New option.
19614 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19615 (compare_and_swap_12): Likewise.
19616 (sync_add<mode>): Likewise.
19617 (sync_<optab>_12): Likewise.
19618 (sync_old_<optab>_12): Likewise.
19619 (sync_new_<optab>_12): Likewise.
19620 (sync_nand_12): Likewise.
19621 (sync_old_nand_12): Likewise.
19622 (sync_new_nand_12): Likewise.
19623 (sync_sub<mode>): Likewise.
19624 (sync_old_add<mode>): Likewise.
19625 (sync_old_sub<mode>): Likewise.
19626 (sync_new_add<mode>): Likewise.
19627 (sync_new_sub<mode>): Likewise.
19628 (sync_<optab><mode>): Likewise.
19629 (sync_old_<optab><mode>): Likewise.
19630 (sync_new_<optab><mode>): Likewise.
19631 (sync_nand<mode>): Likewise.
19632 (sync_old_nand<mode>): Likewise.
19633 (sync_new_nand<mode>): Likewise.
19634 (sync_lock_test_and_set<mode>): Likewise.
19635 (test_and_set_12): Likewise.
19636 (atomic_compare_and_swap<mode>): Likewise.
19637 (atomic_exchange<mode>_llsc): Likewise.
19638 (atomic_fetch_add<mode>_llsc): Likewise.
19639 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19640 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19641 (umips_save_restore_pattern_p): Likewise.
19642 (umips_load_store_pair_p): Likewise.
19643 (umips_output_load_store_pair): Likewise.
19644 (umips_movep_target_p): Likewise.
19645 (umips_12bit_offset_address_p): Likewise.
19646 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19647 (mips_base_mips16): Rename this...
19648 (mips_base_compression_flags): ...to this. Update all uses.
19649 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19650 (mips_mips16_decl_p): Delete.
19651 (mips_nomips16_decl_p): Delete.
3fdb53c1 19652 (mips_get_compress_on_flags): New function.
6941b508
CM
19653 (mips_get_compress_off_flags): New function.
19654 (mips_get_compress_mode): New function.
19655 (mips_get_compress_on_name): New function.
19656 (mips_get_compress_off_name): New function.
19657 (mips_insert_attributes): Support multiple compression types.
19658 (mips_merge_decl_attributes): Likewise.
19659 (umips_12bit_offset_address_p): New function.
19660 (mips_start_function_definition): Emit .set micromips directive.
19661 (mips_call_may_need_jalx_p): New function.
19662 (mips_function_ok_for_sibcall): Add microMIPS support.
19663 (mips_print_operand_punctuation): Support short delay slots and
19664 compact jumps.
19665 (umips_swm_mask, umips_swm_encoding): New.
19666 (umips_build_save_restore): New function.
19667 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19668 (was_mips16_p): Remove.
19669 (old_compression_mode): New.
19670 (mips_set_compression_mode): New function.
19671 (mips_set_current_function): Add microMIPS support.
19672 (mips_option_override): Likewise.
19673 (umips_save_restore_pattern_p): New function.
19674 (umips_output_save_restore): New function.
19675 (umips_load_store_pair_p_1): New function.
19676 (umips_load_store_pair_p): New function.
19677 (umips_output_load_store_pair_1): New function.
19678 (umips_output_load_store_pair): New function.
19679 (umips_movep_target_p) New function.
19680 (mips_prepare_pch_save): Add microMIPS support.
19681 * config/mips/mips.h (TARGET_COMPRESSION): New.
19682 (TARGET_CPU_CPP_BUILTINS): Update macro
19683 to use new compression flags and to support microMIPS.
19684 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19685 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19686 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19687 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19688 (ASM_SPEC): Support mmicromips and mno-micromips.
19689 (M16STORE_REG_P): New macro.
19690 (MIPS_CALL): Support TARGET_MICROMIPS.
19691 (MICROMIPS_J): New macro.
19692 (mips_base_mips16): Rename this...
19693 (mips_base_compression_flags): ...to this.
19694 (UMIPS_12BIT_OFFSET_P): New macro.
19695 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19696 (MULTILIB_DIRNAMES): Likewise.
19697
cdebbc6d
JJ
196982013-02-24 Jakub Jelinek <jakub@redhat.com>
19699
19700 PR target/52555
19701 * target-globals.c (save_target_globals): For init_reg_sets and
19702 target_reinit remporarily set this_fn_optabs to this_target_optabs.
19703
18c63565
JG
197042013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
19705
19706 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
19707 * config/aarch64/t-aarch64
19708 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
19709
2194f7a2
VM
197102013-02-22 Vladimir Makarov <vmakarov@redhat.com>
19711
19712 PR inline-asm/56148
19713 * lra-constraints.c (process_alt_operands): Reload operand
19714 conflicting with earlier clobber only if no more other conflicting
19715 operands.
19716
7d613735
JJ
197172013-02-22 Jakub Jelinek <jakub@redhat.com>
19718
19719 PR sanitizer/56393
19720 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
19721 if not linking a shared library.
19722
ac8d93a7
SL
197232013-02-22 Seth LaForge <sethml@google.com>
19724
19725 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
19726
e0237780
GY
197272013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
19728
3fdb53c1
TB
19729 * config/arm/arm.md (split for extendsidi): Update condition.
19730 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
19731 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
19732 (qhs_zextenddi_cstr): Likewise.
e0237780 19733
d7fde18c
JJ
197342013-02-21 Jakub Jelinek <jakub@redhat.com>
19735
be63b77d
JJ
19736 PR middle-end/56420
19737 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
19738 avoid signed wrapping.
19739 (expand_mult): Handle properly multiplication by
19740 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
19741 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
19742 in the compiler if coeff is HOST_WIDE_INT_MIN.
19743 (expand_divmod): Don't make ext_op1 static, change it's type to
19744 uhwi. Avoid undefined behavior in -INTVAL (op1).
19745
d7fde18c
JJ
19746 PR rtl-optimization/50339
19747 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
19748 field.
19749 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
19750 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
19751 into splitting_ashiftrt field.
19752 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
19753 ASHIFTRT.
19754 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
19755 choices.
19756
6aad4455
AH
197572013-02-20 Aldy Hernandez <aldyh@redhat.com>
19758
19759 PR middle-end/56108
19760 * trans-mem.c (execute_tm_mark): Do not expand transactions that
19761 are sure to go irrevocable.
19762
38fe784d
HPN
197632013-02-21 Hans-Peter Nilsson <hp@axis.com>
19764
19765 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
19766 scalars are valid operands.
19767
0fd44da3
MJ
197682013-02-21 Martin Jambor <mjambor@suse.cz>
19769
19770 PR tree-optimization/56310
19771 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
19772 only matching indices and non-negative final offsets.
19773 (intersect_aggregates_with_edge): Pass src_idx to
19774 agg_replacements_to_vector. Pass src_idx insstead of index to
19775 intersect_with_agg_replacements.
19776
7a92038b
MJ
197772013-02-21 Martin Jambor <mjambor@suse.cz>
19778
19779 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
19780 instead of hard-wired defaults.
19781
c0da9c37
MR
197822013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
19783
19784 * doc/invoke.texi (MIPS Options): Update documentation of the
19785 floating-point multiply-accumulate instruction restrictions.
19786
d247ea0c 197872013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
19788
19789 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
19790 asan_shadow_offset on x86_64 linux.
19791
22deefcb
RB
197922013-02-21 Richard Biener <rguenther@suse.de>
19793
19794 PR tree-optimization/56415
19795 Revert
19796 2013-02-11 Richard Biener <rguenther@suse.de>
19797
19798 PR tree-optimization/56273
19799 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19800 first VRP run.
19801
7bcc6e75
JJ
198022013-02-21 Jakub Jelinek <jakub@redhat.com>
19803
a0ad148f
JJ
19804 PR bootstrap/56258
19805 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
19806 instead of @itemx.
19807
7bcc6e75
JJ
19808 PR inline-asm/56405
19809 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
19810 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
19811
a0a7b611
JH
198122013-02-20 Jan Hubicka <jh@suse.cz>
19813
19814 PR tree-optimization/56265
88b97037
UB
19815 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
19816 when target is referenced for first time.
a0a7b611 19817
c0e50f72
RB
198182013-02-20 Richard Biener <rguenther@suse.de>
19819
19820 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
19821 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
19822 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
19823 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
19824 not return anything.
19825 (rename_ssa_copies): Do not remove unused locals.
19826 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 19827 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
19828 * passes.c (execute_function_todo): Do not schedule unused locals
19829 removal if cleanup_tree_cfg did something.
19830 * tree-ssa-live.c (remove_unused_locals): Dump statistics
19831 about the number of removed locals.
19832
a52ca739
RB
198332013-02-20 Richard Biener <rguenther@suse.de>
19834
19835 PR tree-optimization/56398
88b97037 19836 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 19837
ec9c9d1b
MJ
198382013-02-20 Martin Jambor <mjambor@suse.cz>
19839
19840 PR tree-optimization/55334
19841 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
19842 restricted pointers to arrays.
19843
e91c8ed6 198442013-02-20 Richard Biener <rguenther@suse.de>
88b97037 19845 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
19846
19847 PR tree-optimization/56396
19848 * tree-ssa-ccp.c (n_const_val): New static variable.
19849 (get_value): Return NULL for SSA names we don't have a lattice
19850 entry for.
19851 (ccp_initialize): Initialize n_const_val.
19852 * tree-ssa-copy.c (n_copy_of): New static variable.
19853 (init_copy_prop): Initialize n_copy_of.
19854 (get_value): Return NULL_TREE for SSA names we don't have a
19855 lattice entry for.
19856
3d916479
MJ
198572013-02-20 Martin Jambor <mjambor@suse.cz>
19858
19859 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
19860
71a86758
RB
198612013-02-20 Richard Biener <rguenther@suse.de>
19862
19863 * genpreds.c (write_lookup_constraint): Do not compare first
19864 letter of the constraint again.
19865
79836a12
RB
198662013-02-20 Richard Biener <rguenther@suse.de>
19867
19868 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
19869 and ceil_log2.
19870 (get_use_iv_cost): Terminate hashtable walk when coming across
19871 an empty entry.
19872
bbe4fb2c
IZ
198732013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
19874
19875 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
19876 reassociation for avx2 targets.
19877
a72d8780 198782012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 19879
c77f83d5
EI
19880 * config/microblaze/microblaze.c: microblaze_has_clz = 0
19881 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 19882 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
19883 version and TARGET_PATTERN_COMPARE check
19884 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 19885
a72d8780 198862012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 19887
a72d8780 19888 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
19889 function before branching.
19890
242387fa
AB
198912012-02-19 Andrey Belevantsev <abel@ispras.ru>
19892
19893 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
19894 DUMP_INSN_RTX_UID.
19895 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
19896
b4979ab9
AB
198972012-02-19 Andrey Belevantsev <abel@ispras.ru>
19898
19899 PR middle-end/55889
b4979ab9
AB
19900 * sel-sched.c: Include ira.h.
19901 (implicit_clobber_conflict_p): New function.
19902 (moveup_expr): Use it.
88b97037 19903 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 19904
24d63016
RB
199052013-02-19 Richard Biener <rguenther@suse.de>
19906
19907 PR tree-optimization/56384
19908 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
19909 (vn_hash_type): Split out from ...
19910 (vn_hash_constant_with_type): ... here.
19911 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
19912 (vn_phi_eq): Compare types from vn_phi_s structure.
19913 (vn_phi_lookup): Populate vn_phi_s type.
19914 (vn_phi_insert): Likewise.
19915
a475fd3d
JJ
199162013-02-19 Jakub Jelinek <jakub@redhat.com>
19917
47cc28f5
JJ
19918 PR tree-optimization/56350
19919 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
19920 if haven't found reduction or nested cycle operand, rather than
19921 asserting we must find it.
19922
a475fd3d
JJ
19923 PR tree-optimization/56381
19924 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
19925 to fold_build3.
19926
199272013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
19928 Jakub Jelinek <jakub@redhat.com>
19929
19930 PR target/52555
19931 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
19932 (swap_optab_enable): Same.
19933 (init_all_optabs): Use argument instead of global.
88b97037 19934 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
19935 * expr.h (init_all_optabs): Add argument to prototype.
19936 (TREE_OPTIMIZATION_OPTABS): New.
19937 (save_optabs_if_changed): Protoize.
19938 * optabs.h: Declare this_fn_optabs.
19939 * optabs.c (save_optabs_if_changed): New.
19940 Declare this_fn_optabs.
19941 (init_optabs): Add argument to init_all_optabs() call.
19942 * function.c (invoke_set_current_function_hook): Handle per
19943 function optabs.
19944 * function.h (struct function): New field optabs.
19945 * config/mips/mips.c (mips_set_mips16_mode): Handle when
19946 optimization_current_node has changed.
19947 * target-globals.h (save_target_globals_default_opts): Protoize.
19948 * target-globals.c (save_target_globals_default_opts): New.
19949
3f587ca3
JDA
199502013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19951
19952 PR target/56347
19953 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
19954 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
19955
19956 PR target/56214
19957 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
19958 and HImode, require all displacements to be an integer multiple of
19959 their mode size.
ceaca33e
JDA
19960 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
19961 only allow QImode and HImode when reload is in progress and strict is
19962 true. Likewise for symbolic addresses. Use base14_operand to check
19963 displacements in REG+BASE addresses.
19964
fe0b4796
RB
199652013-02-18 Richard Biener <rguenther@suse.de>
19966
19967 PR tree-optimization/56366
19968 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19969 handle sign-conversion of outer-loop initial induction value.
19970
6aaf596b
RB
199712013-02-18 Richard Biener <rguenther@suse.de>
19972
73db8ff1 19973 PR middle-end/56349
6aaf596b
RB
19974 * cfghooks.c (merge_blocks): If we merge a latch into another
19975 block adjust references to it.
19976 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
19977 (verify_loop_structure): Verify that a recorded latch is in fact
19978 a latch.
19979
5e97dfb6
RB
199802013-02-18 Richard Biener <rguenther@suse.de>
19981
19982 PR tree-optimization/56321
19983 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
19984 order SSA name release and virtual operand unlinking.
19985
825527e8
EI
199862013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19987
19988 * config/microblaze/microblaze.md (save_stack_block): Define.
19989 (restore_stack_block): Likewise.
19990
debd11d9
EI
199912013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19992
19993 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
19994 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
19995 * config/microblaze/microblaze.c (microblaze_option_override):
19996 Bail out early for PIC modes when target does not support PIC.
19997
8ec77be0
EI
199982013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19999
88b97037 20000 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
20001 Replace with a microblaze version.
20002 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 20003 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
20004 microblaze.
20005
b41288b3
JJ
200062013-02-16 Jakub Jelinek <jakub@redhat.com>
20007 Dodji Seketeli <dodji@redhat.com>
20008
20009 PR asan/56330
88b97037 20010 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
20011 (instrument_mem_region_access): Do not forget to always put
20012 instrumentation of the of 'base' and 'base + len' in a "if (len !=
20013 0) statement, even for cases where either 'base' or 'base + len'
20014 are not instrumented -- because they have been previously
20015 instrumented. Simplify the logic by putting all the statements
20016 instrument 'base + len' inside a sequence, and then insert that
20017 sequence right before the current insertion point. Then, to
20018 instrument 'base + len', just get an iterator on that statement.
20019 And do not forget to update the pointer to iterator the function
20020 received as argument.
20021
47918951
VM
200222013-02-15 Vladimir Makarov <vmakarov@redhat.com>
20023
20024 PR rtl-optimization/56348
20025 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
20026
3fb7c699
SB
200272013-02-15 Steven Bosscher <steven@gcc.gnu.org>
20028
20029 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
20030 (clean_graph_dump_file): Pass base to start_graph_dump.
20031
576fe41a
RH
200322013-02-14 Richard Henderson <rth@redhat.com>
20033
20034 PR target/55941
20035 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
20036
bb3accfa
SB
200372013-02-14 Steven Bosscher <steven@gcc.gnu.org>
20038
20039 * collect2-aix.h: Define F_LOADONLY.
20040
03143140
RB
200412013-02-14 Richard Biener <rguenther@suse.de>
20042
20043 PR lto/50494
20044 * varasm.c (output_constant_def_1): Get the decl representing
20045 the constant as argument.
20046 (output_constant_def): Wrap output_constant_def_1.
20047 (make_decl_rtl): Use output_constant_def_1 with the decl
20048 representing the constant.
20049 (build_constant_desc): Optionally re-use a decl already
20050 representing the constant.
20051 (tree_output_constant_def): Adjust.
20052
8fb06726
DS
200532013-02-14 Dodji Seketeli <dodji@redhat.com>
20054
20055 Fix an asan crash
20056 * asan.c (instrument_builtin_call): Really put the length of the
20057 second source argument into src1_len.
20058
c4bfe8bf
JJ
200592013-02-13 Jakub Jelinek <jakub@redhat.com>
20060
20061 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
20062 argument. If it is false, don't create edge from then_bb to
20063 fallthru_bb.
20064 (insert_if_then_before_iter): Pass true to it.
20065 (build_check_stmt): Pass false to it.
20066 (transform_statements): Flush hash table only on extended basic
20067 block boundaries, rather than at the beginning of every bb.
20068 Don't flush hash table on nonfreeing_call_p calls.
20069 * tree-flow.h (nonfreeing_call_p): New prototype.
20070 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
20071
7afe2801
DM
200722013-02-13 David S. Miller <davem@davemloft.net>
20073
20074 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
20075
70cc3288
VM
200762013-02-13 Vladimir Makarov <vmakarov@redhat.com>
20077
20078 PR target/56184
20079 * ira.c (max_regno_before_ira): Move from ...
20080 (ira): ... here.
20081 (fix_reg_equiv_init): Use max_regno_before_ira instead of
20082 vec_safe_length.
20083
6422242b
JJ
200842013-02-13 Jakub Jelinek <jakub@redhat.com>
20085
20086 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
20087
976a81ee
RB
200882013-02-13 Richard Biener <rguenther@suse.de>
20089
20090 PR lto/56295
20091 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
20092 globals in MEM_REFs.
20093
c1874a87
RB
200942013-02-13 Richard Biener <rguenther@suse.de>
20095
20096 * loop-init.c (loop_optimizer_init): Clear loop state when
20097 re-initializing preserved loops.
20098 * loop-unswitch.c (unswitch_single_loop): Return whether
20099 we unswitched the loop. Do not verify loop state here.
88b97037 20100 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 20101
b4ab7d34
KS
201022013-02-13 Kostya Serebryany <kcc@google.com>
20103
88b97037
UB
20104 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
20105 on x86_64 linux.
b4ab7d34
KS
20106 * sanitizer.def: Rename __asan_init to __asan_init_v1.
20107
bdcbe80c
DS
201082013-02-12 Dodji Seketeli <dodji@redhat.com>
20109
20110 Avoid instrumenting duplicated memory access in the same basic block
20111 * Makefile.in (asan.o): Add new dependency on hash-table.h
20112 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
20113 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
20114 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
20115 (free_mem_ref_resources, has_mem_ref_been_instrumented)
20116 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
20117 (get_mem_ref_of_assignment): New functions.
20118 (get_mem_refs_of_builtin_call): Extract from
20119 instrument_builtin_call and tweak a little bit to make it fit with
20120 the new signature.
20121 (instrument_builtin_call): Use the new
20122 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
20123 of is_gimple_builtin_call.
20124 (instrument_derefs, instrument_mem_region_access): Insert the
20125 instrumented memory reference into the hash table.
20126 (maybe_instrument_assignment): Renamed instrument_assignment into
20127 this, and change it to advance the iterator when instrumentation
20128 actually happened and return true in that case. This makes it
20129 homogeneous with maybe_instrument_assignment, and thus give a
20130 chance to callers to be more 'regular'.
20131 (transform_statements): Clear the memory reference hash table
20132 whenever we enter a new BB, when we cross a function call, or when
20133 we are done transforming statements. Use
20134 maybe_instrument_assignment instead of instrumentation. No more
20135 need to special case maybe_instrument_assignment and advance the
20136 iterator after calling it; it's now handled just like
20137 maybe_instrument_call. Update comment.
20138
4861a1f7
RB
201392013-02-13 Richard Biener <rguenther@suse.de>
20140
20141 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
20142 Fix loop discovery code.
20143
1c86bd80
VM
201442013-02-12 Vladimir Makarov <vmakarov@redhat.com>
20145
20146 PR inline-asm/56148
20147 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 20148 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
20149 the operand is not reloaded. Prefer to reload conflicting operand
20150 if earlyclobber and matching operands are the same.
20151
7cbda518
RB
201522013-02-12 Richard Biener <rguenther@suse.de>
20153
20154 PR lto/56297
20155 * lto-streamer-out.c (write_symbol): Do not output symbols
20156 for hard register variables.
20157
e68a4ef6
GJL
201582013-02-12 Georg-Johann Lay <avr@gjlay.de>
20159
20160 PR target/54222
20161 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
20162 (umulsidi3_insn, mulsidi3_insn): New insns.
20163
a72d8780 201642013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
20165
20166 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
20167 (struct tune_params): Add vec_costs field.
20168 * config/arm/arm.c (arm_builtin_vectorization_cost)
20169 (arm_add_stmt_cost): New functions.
20170 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
20171 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
20172 (arm_default_vec_cost): New struct of type cpu_vec_costs.
20173 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
20174 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
20175 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
20176 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
20177
43320568
RB
201782013-02-12 Richard Biener <rguenther@suse.de>
20179
20180 PR lto/56295
20181 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
20182 decls again if possible.
20183
a011aa39
RB
201842013-02-12 Richard Biener <rguenther@suse.de>
20185
20186 PR middle-end/56288
20187 * tree-ssa.c (verify_ssa_name): Fix check, move
20188 SSA_NAME_IN_FREE_LIST check up.
20189
6da26889
JJ
201902013-02-12 Jakub Jelinek <jakub@redhat.com>
20191 Steven Bosscher <steven@gcc.gnu.org>
20192
20193 PR rtl-optimization/56151
20194 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
20195 equal to op0 or op1, and last_insn pattern is CODE operation
20196 with MEM dest and one of the operands matches that MEM.
20197
f80e0faf
ST
201982013-02-11 Sriraman Tallam <tmsriramgoogle.com>
20199
20200 * doc/extend.texi: Document Function Multiversioning and "default"
20201 parameter string to target attribute.
20202 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
20203 target attribute parameter is "default".
20204 (ix86_compare_version_priority): Remove checks for target attribute.
20205 (ix86_mangle_function_version_assembler_name): Change error to sorry.
20206 Remove check for target attribute equal to NULL. Add assert.
20207 (ix86_generate_version_dispatcher_body): Change error to sorry.
20208
6c59ffd1
IS
202092013-02-11 Iain Sandoe <iain@codesourcery.com>
20210 Jack Howarth <howarth@bromo.med.uc.edu>
20211 Patrick Marlier <patrick.marlier@gmail.com>
20212
20213 PR libitm/55693
20214 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
20215 define ENDFILE_SPEC as TM_DESTRUCTOR.
20216 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
20217
a72d8780 202182013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
20219 Jack Howarth <howarth@bromo.med.uc.edu>
20220 Jakub Jelinek <jakub@redhat.com>
20221
20222 PR sanitizer/55617
20223 * config/darwin.c (cdtor_record): Rename ctor_record.
20224 (sort_cdtor_records): Rename sort_ctor_records.
20225 (finalize_dtors): New routine to sort destructors by
20226 priority before use in assemble_integer.
20227 (machopic_asm_out_destructor): Use finalize_dtors if needed.
20228
b63fe007
UB
202292013-02-11 Uros Bizjak <ubizjak@gmail.com>
20230
20231 PR rtl-optimization/56275
20232 * simplify-rtx.c (avoid_constant_pool_reference): Check that
20233 offset is non-negative and less than cmode size before
20234 calling simplify_subreg.
20235
8e89b5b5
RB
202362013-02-11 Richard Biener <rguenther@suse.de>
20237
20238 PR tree-optimization/56264
20239 * cfgloop.h (fix_loop_structure): Adjust prototype.
20240 * loop-init.c (fix_loop_structure): Return the number of
20241 newly discovered loops.
20242 * tree-cfgcleanup.c (repair_loop_structures): When new loops
20243 are discovered, do a full loop-closed SSA rewrite.
20244
b4a4b56d
RB
202452013-02-11 Richard Biener <rguenther@suse.de>
20246
20247 PR tree-optimization/56273
20248 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20249 first VRP run.
20250 (check_array_ref): Fix missing newline in dumps.
20251 (search_for_addr_array): Likewise.
20252
0c885229
DE
202532013-02-09 David Edelsohn <dje.gcc@gmail.com>
20254
20255 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
20256
59ac9a55
JJ
202572013-02-09 Jakub Jelinek <jakub@redhat.com>
20258
20259 PR target/56256
20260 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
20261
25bb0bb5
VM
202622013-02-08 Vladimir Makarov <vmakarov@redhat.com>
20263
20264 PR rtl-optimization/56246
0c885229 20265 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
20266 reload pseudo.
20267 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
20268 constraints are satisfied.
20269
a698cc03
JL
202702013-02-08 Jeff Law <law@redhat.com>
20271
20272 PR debug/53948
20273 * emit-rtl.c (reg_is_parm_p): New function.
20274 * regs.h (reg_is_parm_p): New prototype.
20275 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
20276 callee-clobbered registers.
20277
e1122ddd
MM
202782013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20279
20280 PR target/56043
20281 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
20282 If there is no implicit builtin declaration, just return NULL.
20283
19c5f6e6
UB
202842013-02-08 Uros Bizjak <ubizjak@gmail.com>
20285
20286 * config/i386/sse.md (FMAMODEM): New mode iterator.
20287 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
20288 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
20289
2480f2ca 202902013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 20291
2480f2ca
UB
20292 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
20293 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
20294 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
20295
202962013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20297
20298 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
20299 (microblaze*-*-elf): Likewise.
20300 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
20301 LINK_SPEC.
20302 * config/microblaze/microblaze-c.c: Add builtin defines for
20303 _LITTLE_ENDIAN and _BIG_ENDIAN.
20304 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
20305 add to TARGET_DEFAULT flags.
76ef61fb 20306 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
20307 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
20308 * config/microblaze/microblaze.md: Update extendsidi2 and
20309 movdi_internal instructions to use low-order / high-order reg
20310 print_operands.
20311 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
20312 options and inversemask / mask of LITTLE_ENDIAN.
20313 * config/microblaze/t-microblaze: Expand multilib options to
20314 include mlittle-endian (le) and update exceptions patterns.
20315
600a5961
JJ
203162013-02-08 Jakub Jelinek <jakub@redhat.com>
20317
5df81313
JJ
20318 PR rtl-optimization/56195
20319 * lra-constraints.c (get_reload_reg): Don't reuse regs
20320 if they have smaller mode than requested, if they have
20321 wider mode than requested, try to return a SUBREG.
20322
600a5961
JJ
20323 PR tree-optimization/56250
20324 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
20325 if type is unsigned and code isn't MULT_EXPR.
20326
ff544649
GJL
203272013-02-08 Georg-Johann Lay <avr@gjlay.de>
20328
20329 PR tree-optimization/56064
20330 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20331 bits according to mode.
20332 * fixed-value.h (fixed_from_double_int)
20333 (const_fixed_from_double_int): Adjust comments.
20334
e45cde98
RB
203352013-02-08 Richard Biener <rguenther@suse.de>
20336
20337 PR lto/56231
20338 * lto-streamer.h (struct data_in): Remove current_file, current_line
20339 and current_col members.
20340 * lto-streamer-out.c (lto_output_location): Stream changed bits
20341 en-block for efficiency.
20342 * lto-streamer-in.c (clear_line_info): Remove.
20343 (lto_input_location): Cache current file, line and column
20344 globally via local statics. Read changed bits en-block.
20345 (input_function): Do not call clear_line_info.
20346 (lto_read_body): Likewise.
20347 (lto_input_toplevel_asms): Likewise.
20348
c1ca73d8
MM
203492013-02-08 Michael Matz <matz@suse.de>
20350
20351 PR tree-optimization/52448
20352 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20353 (nt_call_phase): New static.
20354 (add_or_mark_expr): Only mark accesses with newer phase than any
20355 call seen.
20356 (nonfreeing_call_p): New.
20357 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20358 (nt_fini_block): Keep blocks marked as visited.
20359 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20360
57548aa2
RB
203612013-02-08 Richard Biener <rguenther@suse.de>
20362
20363 * ira.c (ira): Free broken dominator information.
20364
8e10366f
UB
203652013-02-08 Uros Bizjak <ubizjak@gmail.com>
20366
20367 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20368
f64fb0fa
MP
203692013-02-08 Marek Polacek <polacek@redhat.com>
20370
8e10366f 20371 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20372
0375167b
RB
203732013-02-08 Richard Biener <rguenther@suse.de>
20374
20375 PR middle-end/56181
20376 * cfgloop.h (flow_loops_find): Adjust.
20377 (bb_loop_header_p): Declare.
20378 * cfgloop.c (bb_loop_header_p): New function split out from ...
20379 (flow_loops_find): ... here. Adjust function signature,
20380 support incremental loop structure update.
20381 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20382 * cfgloopmanip.c (fix_loop_structure): Move ...
20383 * loop-init.c (fix_loop_structure): ... here.
20384 (apply_loop_flags): Split out from ...
20385 (loop_optimizer_init): ... here.
20386 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20387 in incremental mode, only remove dead loops here.
20388
85d768f3
GJL
203892013-02-08 Georg-Johann Lay <avr@gjlay.de>
20390
20391 PR target/54222
20392 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20393 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20394 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20395 (*round<mode>3.libgcc): New insns for fixed-modes.
20396 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20397 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20398 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20399 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20400 implementations. Define to __builtin_avr_absFX,
20401 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20402 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20403 __builtin_avr_countlsFX, respectively.
20404 * config/avr/avr-c.c (target.h): Include it.
20405 (enum avr_builtin_id): New enum.
20406 (avr_resolve_overloaded_builtin): New static function.
20407 (avr_register_target_pragmas): Use it to set
20408 targetm.resolve_overloaded_builtin.
20409 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20410 tree nodes used by DEF_BUILTIN.
20411 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20412 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20413 <AVR_BUILTIN_xxBITS>: Same.
20414
661bc682
RB
204152013-02-08 Richard Biener <rguenther@suse.de>
20416
20417 * cfgloop.c (verify_loop_structure): Properly handle
20418 a loop exiting to another loop header.
20419 * ira-int.h (ira_loops): Remove.
20420 * ira.c (ira_loops): Remove.
20421 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20422 (do_reload): Use loop_optimizer_finalize.
20423 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20424 number_of_loops to access the loop tree.
20425 (more_one_region_p): Likewise.
20426 (finish_loop_tree_nodes): Likewise.
20427 (rebuild_regno_allocno_maps): Likewise.
20428 (mark_loops_for_removal): Likewise.
20429 (mark_all_loops_for_removal): Likewise.
20430 (remove_unnecessary_regions): Likewise.
20431 (ira_build): Likewise.
20432 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20433
0d5049b2
RB
204342013-02-08 Richard Biener <rguenther@suse.de>
20435
20436 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20437 * ipa-pure-const.c (analyze_function): Avoid calling
20438 mark_irreducible_loops twice.
8e10366f 20439 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20440
499f32e8
DM
204412013-02-07 David S. Miller <davem@davemloft.net>
20442
20443 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20444 on 'reg'.
20445 * var-tracking.c (vt_add_function_parameter): Test the presence of
20446 HAVE_window_save properly and do not remap argument registers when
20447 we have a leaf function.
20448
6edc3e32
UB
204492013-02-07 Uros Bizjak <ubizjak@gmail.com>
20450
20451 PR bootstrap/56227
20452 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20453 instead of "ll".
20454 * config/i386/i386.c (ix86_print_operand): Ditto.
20455
5306401f
VM
204562013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20457
6edc3e32 20458 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20459
027ece11
VM
204602013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20461
20462 PR rtl-optimization/56225
20463 * lra-constraints.c (process_alt_operands): Check that reload hard
20464 reg can hold value for strict_low_part.
20465
f980dfdb
JJ
204662013-02-07 Jakub Jelinek <jakub@redhat.com>
20467
20468 PR debug/56154
20469 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20470 dwarf2out_end_function.
20471 (in_first_function_p, maybe_at_text_label_p,
20472 first_loclabel_num_not_at_text_label): New variables.
20473 (dwarf2out_var_location): In the first function find out
6edc3e32 20474 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20475 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20476 functions.
20477
73dd3123
EB
204782013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20479
20480 PR rtl-optimization/56178
20481 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20482 SUBREG of a register. Tidy up related block of code.
20483 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20484 note if the source is a register or a SUBREG of a register.
20485
e3936f47
JJ
204862013-02-07 Jakub Jelinek <jakub@redhat.com>
20487
20488 PR target/56228
20489 * config/rs6000/rs6000.md (ptrm): New mode attr.
20490 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20491 call_value_indirect_aix<pttrsize>,
20492 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20493 m in constraints.
20494
d96d674b
MH
204952013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20496
20497 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20498 if -bnortl. Convert to strcmp and strncmp.
20499
921f2dee
AM
205002013-02-07 Alan Modra <amodra@gmail.com>
20501
20502 PR target/54009
20503 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20504 addresses won't wrap when offsetting.
20505 (rs6000_secondary_reload): Provide secondary reloads needed for
20506 wrapping LO_SUM addresses.
20507
d09c7dba
TS
205082013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20509
20510 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20511 MACH, just __MACH__.
20512
a44bbd48
RB
205132013-02-06 Richard Biener <rguenther@suse.de>
20514
20515 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20516 instead of calling fix_loop_structure.
20517
6d840d99
JJ
205182013-02-06 Jakub Jelinek <jakub@redhat.com>
20519
20520 PR middle-end/56217
20521 * omp-low.c (use_pointer_for_field): Return false if
20522 lower_send_shared_vars doesn't generate any copy-out code.
20523
0f33baa9
TV
205242013-02-06 Tom de Vries <tom@codesourcery.com>
20525
20526 PR rtl-optimization/56131
20527 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20528 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20529 of the label is NULL. Add comment.
20530
11f1e3ab
JJ
205312013-02-05 Jakub Jelinek <jakub@redhat.com>
20532
31502f9f
JJ
20533 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20534
a74db9bd
JJ
20535 PR sanitizer/55374
20536 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20537 (STATIC_LIBTSAN_LIBS): Likewise.
20538 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20539 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20540 is defined, don't add anything else beyond that.
20541 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20542 (LINK_COMMAND_SPEC): Use them.
20543
11f1e3ab
JJ
20544 PR tree-optimization/56205
20545 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20546 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20547 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20548
14ac6aa2
RB
205492013-02-05 Richard Biener <rguenther@suse.de>
20550
20551 PR tree-optimization/53342
20552 PR tree-optimization/53185
20553 * tree-vectorizer.h (vect_check_strided_load): Remove.
20554 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20555 not disallow peeling for vectorized strided loads.
20556 (vect_check_strided_load): Make static and simplify.
20557 (vect_analyze_data_refs): Adjust.
20558 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20559 correctly when vectorizing strided loads.
20560
6f22445a
RB
205612013-02-05 Richard Biener <rguenther@suse.de>
20562
20563 * doc/install.texi: Refer to ISL, not PPL.
20564
39f9719e
JH
205652013-02-05 Jan Hubicka <jh@suse.cz>
20566
ec4224ac
JH
20567 PR tree-optimization/55789
20568 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20569
205702013-02-05 Jan Hubicka <jh@suse.cz>
20571
20572 PR tree-optimization/55789
39f9719e
JH
20573 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20574 the dead call anyway.
20575
956d3b33
EB
205762013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20577
20578 PR sanitizer/55374
20579 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20580
205812013-02-04 Alexander Potapenko <glider@google.com>
20582 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20583 Jakub Jelinek <jakub@redhat.com>
20584
20585 PR sanitizer/55617
20586 * config/darwin.c (sort_ctor_records): Stabilized qsort
20587 on constructor priority by using original position.
20588 (finalize_ctors): New routine to sort constructors by
20589 priority before use in assemble_integer.
20590 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20591
7ac3af38
JJ
205922013-02-04 Jakub Jelinek <jakub@redhat.com>
20593
20594 PR libstdc++/54314
20595 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20596 about visibility on artificial decls.
20597 * config/sol2.c (solaris_assemble_visibility): Likewise.
20598
152689dc
KT
205992013-02-04 Kai Tietz <ktietz@redhat.com>
20600
20601 PR target/56186
20602 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20603 argument and improve checking of return-argument types for 16-byte
20604 modes.
20605 (ix86_function_value_1): Add additional valtype argument on call
20606 of function_value_64.
20607 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20608 handling infunction_value_64 function.
20609
2b5987b5
MGD
206102013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20611
7ac3af38 20612 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 20613
14597080
RB
206142013-02-04 Richard Biener <rguenther@suse.de>
20615
20616 PR tree-optimization/56188
20617 * tree-ssa-structalias.c (label_visit): Consider case with
20618 initially non-empty points-to set.
20619 (perform_var_substitution): Dump node mapping and clean up.
20620
ed73881e
RG
206212013-02-04 Richard Guenther <rguenther@suse.de>
20622
20623 PR lto/56168
20624 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
20625 node prevail as last resort.
20626 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 20627 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 20628
139a0707
RB
206292013-02-04 Richard Biener <rguenther@suse.de>
20630
20631 PR tree-optimization/56113
20632 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
20633 Merge into ...
20634 (equiv_class_lookup_or_add): ... this.
20635 (label_visit): Adjust and fix error in previous patch.
20636 (perform_var_substitution): Adjust.
20637
50fe8924
OE
206382013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
20639
20640 * config/sh/divtab.c: Fix formatting and comments throughout the file.
20641 * config/sh/sh4-300.md: Likewise.
20642 * config/sh/sh4a.md: Likewise.
20643 * config/sh/constraints.md: Likewise.
20644 * config/sh/sh.md: Likewise.
20645 * config/sh/netbsd-elf.h: Likewise.
20646 * config/sh/predicates.md: Likewise.
20647 * config/sh/sh-protos.h: Likewise.
20648 * config/sh/ushmedia.h: Likewise.
20649 * config/sh/linux.h: Likewise.
20650 * config/sh/sh.c: Likewise.
20651 * config/sh/superh.h: Likewise.
20652 * config/sh/elf.h: Likewise.
20653 * config/sh/sh4.md: Likewise.
20654 * config/sh/sh.h: Likewise.
20655
1a04ac2b
JDA
206562013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20657
20658 * config/pa/constraints.md: Adjust unused letters. Change "T"
20659 constraint to match_test floating_point_store_memory_operand().
20660 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
20661 (base14_operand): New.
20662 (floating_point_store_memory_operand): New.
20663 (integer_store_memory_operand): Revise to use base14_operand and
20664 reg_plus_base_memory_operand.
20665 (move_dest_operand): Allow symbolic_memory_operands.
20666 (symbolic_memory_operand): Check for LO_SOM.
20667 (symbolic_operand): Change default case to break.
20668 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
20669 CONST_DOUBLE values to be reloaded by putting them into memory when
20670 the destination is a floating point register.
20671 (movdf): Remove code to handle CONST_DOUBLE.
20672 (movsf): Likewise.
20673 (reload_indf_r1): New.
20674 (reload_insf_r1): New.
20675 Consistently use "Q" and "T" constraints with integer and floating
20676 point move instructions, respectively.
20677 (movdi): Remove FAIL.
20678 Change predicate for source operand unamed DImode move from
20679 general_operand to move_src_operand.
20680 (umulsidi3): Change predicate for destination operand to
20681 register_operand.
20682 Likewise for similar unamed patterns.
20683 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
20684 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
20685 (hppa_legitimize_address): Simplify mask calculation.
20686 (pa_emit_move_sequence): Revised handling of secondary reloads from
20687 REG+D addresses for floating point loads and stores. Directly handle
20688 loading CONST0_RTX (mode) to a floating point register.
20689 (pa_secondary_reload): Handle reloading DF and SFmode constant values
20690 to floating point registers. Don't restrict secondary reloads to
20691 floating point registers to integer modes. Revise some comments and
20692 cleanup some code.
20693 (TARGET_LEGITIMATE_ADDRESS_P): Define.
20694 (pa_legitimate_address_p): New.
20695 (pa_legitimize_reload_address): New.
20696 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
20697 (STRICT_REG_OK_FOR_BASE_P): New.
20698 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
20699 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
20700
3bf65591
DE
207012013-02-03 David Edelsohn <dje.gcc@gmail.com>
20702 Andrew Dixie <andrewd@gentrack.com>
20703
20704 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
20705 flag set.
20706
c0a8a3e6
RS
207072013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
20708
20709 * expmed.c (extract_bit_field_1): Pass the full width of the
20710 structure to get_best_reg_extraction_insn.
20711
99113dff
DE
207122013-02-01 David Edelsohn <dje.gcc@gmail.com>
20713
20714 PR target/54601
20715 * configure.ac (use_cxa_atexit): Add AIX.
20716 * configure: Regenerate.
20717
20718 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
20719
ddd84654
JJ
207202013-02-01 Jakub Jelinek <jakub@redhat.com>
20721
20722 PR debug/54793
20723 * final.c (need_profile_function): New variable.
20724 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
20725 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
20726 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
20727 notes, targetm.asm_out.function_prologue doesn't emit anything,
20728 HAVE_prologue and profiler should be emitted before prologue,
20729 set need_profile_function instead of emitting it.
20730 (final_scan_insn): If need_profile_function, emit
20731 profile_function on the first NOTE_INSN_BASIC_BLOCK or
20732 NOTE_INSN_FUNCTION_BEG note.
20733
207342013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
20735
20736 * config/rs6000/rs6000.md (smulditi3): New.
20737 (umulditi3): New.
20738
ff2a9d88
RH
20739 * config/alpha/alpha.md (umulditi3): New.
20740
14d52b90
DE
207412013-02-01 David Edelsohn <dje.gcc@gmail.com>
20742
20743 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
20744 (ASM_OUTPUT_ALIGNED_LOCAL): New.
20745
8c7ca45c
RB
207462013-02-01 Richard Biener <rguenther@suse.de>
20747
20748 PR tree-optimization/56113
20749 * tree-ssa-structalias.c (label_visit): Reduce work for
20750 single-predecessor nodes.
20751
9f419393
EB
207522013-02-01 Eric Botcazou <ebotcazou@adacore.com>
20753
20754 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
20755 range isn't testing for zero.
20756
c5f4be84
SB
207572013-01-31 Steven Bosscher <steven@gcc.gnu.org>
20758
20759 PR middle-end/56113
20760 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
20761
dbdbd982
NC
207622013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
20763 Nick Clifton <nickc@redhat.com>
20764
20765 * config/v850/constraints.md (Q): Define as a memory constraint.
20766 * config/v850/predicates.md (label_ref_operand): New predicate.
20767 (e3v5_shift_operand): New predicate.
20768 (ior_operator): New predicate.
20769 * config/v850/t-v850: Add e3v5 multilib.
20770 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
20771 (v850_gen_movdi): Prototype.
20772 * config/v850/v850.c: Add support for e3v5 architecture.
20773 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
20774 TARGET_V850E_UP.
20775 (construct_save_jarl): Add e3v5 long JARL support.
20776 (v850_adjust_insn_length): New function. Adjust length of call
20777 insns when using e3v5 instructions.
20778 (v850_gen_movdi): New function: Generate instructions to move a
20779 DImode value.
20780 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
20781 (CPP_SPEC): Define __v850e3v5__ as appropriate.
20782 (TARGET_USE_FPU): Enable for e3v5.
20783 (CONST_OK_FOR_W): New macro.
20784 (ADJUST_INSN_LENGTH): Define.
20785 * config/v850/v850.md (UNSPEC_LOOP): Define.
20786 (attr cpu): Add v850e3v5.
20787 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
20788 (movdi): New pattern.
20789 (movdi_internal): New pattern.
20790 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
20791 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
20792 (cstoresf4): Likewise.
20793 (cstoredf4): Likewise.
20794 (insv): New pattern.
20795 (rotlso3_a): New pattern.
20796 (rotlsi3_b): New pattern
20797 (rotlsi3_v850e3v5): New pattern.
20798 (doloop_begin): New pattern.
20799 (fix_loop_counter): New pattern.
20800 (doloop_end): New pattern.
20801 (branch_normal): Add e3v5 long branch support.
20802 (branch_invert): Likewise.
20803 (branch_z_normal): Likewise.
20804 (branch_z_invert): Likewise.
20805 (branch_nz_normal): Likewise.
20806 (branch_nz_invert): Likewise.
20807 (call_internal_short): Add e3v5 register-indirect JARL support.
20808 (call_internal_long): Likewise.
20809 (call_value_internal_short): Likewise.
20810 (call_value_internal_long): Likewise.
20811 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
20812 (mloop): New option.
20813 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 20814 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 20815
73861a41
PK
208162013-01-31 Paul Koning <ni1d@arrl.net>
20817
20818 PR debug/55059
20819 PR debug/54508
20820 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
20821 children if parent is a class.
20822 (prune_unused_types_prune): Don't add DW_AT_declaration.
20823
e44978dc
RB
208242013-01-31 Richard Biener <rguenther@suse.de>
20825
20826 PR tree-optimization/56157
20827 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
20828 match up operand with SLP child.
20829
90b10dec
JM
208302013-01-31 Jason Merrill <jason@redhat.com>
20831
04d2dadd 20832 PR debug/54410
90b10dec
JM
20833 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
20834 parameters the first time.
20835 (gen_scheduled_generic_parms_dies): Check completeness here.
20836
6e616110
RB
208372013-01-31 Richard Biener <rguenther@suse.de>
20838
20839 PR middle-end/53073
20840 * common.opt (faggressive-loop-optimizations): New flag,
20841 enabled by default.
20842 * doc/invoke.texi (faggressive-loop-optimizations): Document.
20843 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
20844 infer_loop_bounds_from_undefined by it.
20845
636f59cf
RB
208462013-01-31 Richard Biener <rguenther@suse.de>
20847
20848 PR tree-optimization/56150
20849 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
20850 visit virtual operands.
20851 (find_uses_to_rename_bb): Likewise.
20852
208532013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
20854
20855 PR tree-optimization/56150
20856 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
20857 mixed store non-store stmts.
20858
32887460
JJ
208592013-01-30 Jakub Jelinek <jakub@redhat.com>
20860
e60e09a0
JJ
20861 PR sanitizer/55374
20862 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
20863 LIBASAN_EARLY_SPEC is defined.
20864 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
20865 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
20866 before %o.
20867 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
20868
32887460
JJ
20869 PR c++/55742
20870 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
20871 invalid args instead of ICEing on it.
20872 (ix86_valid_target_attribute_tree): Return error_mark_node if
20873 ix86_valid_target_attribute_inner_p failed.
20874 (ix86_valid_target_attribute_p): Return false only if
20875 ix86_valid_target_attribute_tree returned error_mark_node. Allow
20876 target("default") attribute.
20877 (sorted_attr_string): Change argument from const char * to tree,
20878 merge in all target attribute arguments rather than just one.
20879 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
20880 instead of free. Avoid using strcat.
20881 (ix86_mangle_function_version_assembler_name): Mangle
20882 target("default") as if no target attribute is present. Adjust
20883 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
20884 instead of xmalloc and XDELETEVEC instead of free.
20885 (ix86_function_versions): Don't return true if one of the decls
20886 doesn't have target attribute. If they don't and one of the decls
20887 is DECL_FUNCTION_VERSIONED, report an error. Adjust
20888 sorted_attr_string caller. Use XDELETEVEC instead of free.
20889 (ix86_supports_function_versions): Remove.
20890 (make_name): Fix up formatting.
20891 (make_dispatcher_decl): Remove resolver_name and its initialization.
20892 Avoid leaking memory.
20893 (is_function_default_version): Return true if there is
20894 target("default") attribute rather than no target attribute at all.
20895 (make_resolver_func): Avoid leaking memory.
20896 (ix86_generate_version_dispatcher_body): Likewise.
20897 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
20898 * target.def (supports_function_versions): Remove.
20899 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
20900 * doc/tm.texi: Regenerated.
20901
73cca0cc
VM
209022013-01-30 Vladimir Makarov <vmakarov@redhat.com>
20903
20904 PR rtl-optimization/56144
20905 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
20906 for values with side effects.
20907
11452e7b
RB
209082013-01-30 Richard Biener <rguenther@suse.de>
20909
20910 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
20911 (sparseset_pop): Likewise.
20912 * cfganal.c (compute_idf): Likewise. Increase work-stack size
20913 to be able to use quick_push in the worker loop.
20914
01cb1ef5
MP
209152013-01-30 Marek Polacek <polacek@redhat.com>
20916
20917 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
20918
e892936e
RB
209192013-01-30 Richard Biener <rguenther@suse.de>
20920
20921 PR lto/56147
6edc3e32 20922 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 20923
cc06c01d
GJL
209242013-01-30 Georg-Johann Lay <avr@gjlay.de>
20925
20926 PR tree-optimization/56064
20927 * fixed-value.c (fixed_from_double_int): New function.
20928 * fixed-value.h (fixed_from_double_int): New prototype.
20929 (const_fixed_from_double_int): New static inline function.
20930 * fold-const.c (native_interpret_fixed): New static function.
20931 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
20932 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
20933 (native_encode_fixed): New static function.
20934 (native_encode_expr) <FIXED_CST>: Use it.
20935 (native_interpret_int): Move double_int worker code to...
20936 * double-int.c (double_int::from_buffer): ...this new static method.
20937 * double-int.h (double_int::from_buffer): Prototype it.
20938
d394a308
RB
209392013-01-30 Richard Biener <rguenther@suse.de>
20940
20941 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
20942 New pointer-map and obstack.
20943 (init_alias_vars): Allocate pointer-map and obstack.
20944 (delete_points_to_sets): Free them.
20945 (find_what_var_points_to): Cache result.
20946 (find_what_p_points_to): Adjust for changed interface of
20947 find_what_var_points_to.
20948 (compute_points_to_sets): Likewise.
20949 (ipa_pta_execute): Likewise.
20950
20804d96
RO
209512013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20952
20953 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
20954 * configure: Regenerate.
20955 * config.in: Regenerate.
20956 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
20957 #nobits/#progbits if supported.
20958
a7ad88a2
OE
209592013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
20960
20961 PR target/56121
20962 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
20963 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
20964 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
20965
7af79f92
GY
209662013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20967
91bfca59
OE
20968 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
20969 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 20970
753bcf7b
GY
209712013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20972
91bfca59
OE
20973 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
20974 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 20975
8cbc2ea8
GY
209762013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20977
91bfca59
OE
20978 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
20979 declaration.
20980 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
20981 * config/arm/cortex-a7.md: New bypasses using
20982 arm_mac_accumulator_is_result.
8cbc2ea8 20983
697a3325
GY
209842013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20985
91bfca59 20986 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 20987 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
20988 (cortex_a7_fpfmad): New reservation.
20989 (cortex_a7_fpmacs): Use ffmas and update required units.
20990 (cortex_a7_fpmuld): Update required units and latency.
20991 (cortex_a7_fpmacd): Likewise.
20992 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
20993 (cortex_a7_neon). Likewise.
20994 (bypass) Update participating units.
697a3325 20995
29637783
GY
209962013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20997
91bfca59
OE
20998 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
20999 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
21000 from fmac to ffma.
21001 * config/arm/vfp11.md (vfp_farith): Use ffmas.
21002 (vfp_fmul): Use ffmad.
21003 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
21004 (cortex_r4_fmacd): Use ffmad.
21005 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
21006 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
21007 (cortex_a9_fmacd): Use ffmad.
21008 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
21009 (cortex_a8_vfp_macd): Use ffmad.
21010 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
21011 (cortex_a5_fpmacd): Use ffmad.
21012 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
21013 (cortex_a15_vfp_macd): Use ffmad.
21014 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 21015
2ee8a2d5
JM
210162013-01-29 Jason Merrill <jason@redhat.com>
21017
21018 PR libstdc++/54314
21019 * varasm.c (default_assemble_visibility): Don't warn about
21020 visibility on artificial decls.
21021
78d087bc
RB
210222013-01-29 Richard Biener <rguenther@suse.de>
21023
21024 PR tree-optimization/56113
21025 * tree-ssa-structalias.c (equiv_class_lookup): Also return
21026 the bitmap leader.
21027 (label_visit): Free duplicate bitmaps and record the leader instead.
21028 (perform_var_substitution): Adjust.
21029
83ba4d6f
RB
210302013-01-29 Richard Biener <rguenther@suse.de>
21031
21032 PR tree-optimization/55270
21033 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
21034 the CFG, schedule loops for fixup.
21035
66dfe13f
NC
210362013-01-29 Nick Clifton <nickc@redhat.com>
21037
21038 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
21039 SP_REG.
21040
5a579c3b
LE
210412013-01-28 Leif Ekblad <leif@rdos.net>
21042
21043 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
21044 * config/i386/i386.h (TARGET_RDOS): New macro.
21045 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
21046 * config/i386/i386.c (ix86_option_override_internal): For 64bit
21047 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
21048 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
21049 DEFAULT_LARGE_SECTION_THRESHOLD.
21050 * config/i386/i386.md (R14_REG, R15_REG): New constants.
21051 * config/i386/rdos.h: New file.
21052 * config/i386/rdos64.h: New file.
21053
51e44392
BS
210542013-01-28 Bernd Schmidt <bernds@codesourcery.com>
21055
21056 PR other/54814
21057 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
21058 TEST_HARD_REG_BIT.
21059
db1fb332
JJ
210602013-01-28 Jakub Jelinek <jakub@redhat.com>
21061
21062 PR rtl-optimization/56117
21063 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
21064 call cselib_lookup_from_insn on the MEM before calling
21065 add_insn_mem_dependence.
21066
16917761
RB
210672013-01-28 Richard Biener <rguenther@suse.de>
21068
21069 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
21070 to a stmt that didn't have one.
21071 (copy_phis_for_bb): Likewise for PHI arguments.
21072 (copy_debug_stmt): Likewise for debug stmts.
21073
b9fc0497
RB
210742013-01-28 Richard Biener <rguenther@suse.de>
21075
21076 PR tree-optimization/56034
6edc3e32 21077 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
21078 (partition_builtin_p): Adjust.
21079 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
21080 it is the last partition.
21081 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
21082 up the vertex for the definition.
21083 (classify_partition): Classify whether a partition is a
21084 PKIND_REDUCTION, thus has uses outside of the loop.
21085 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
21086 Merge all PKIND_REDUCTION partitions into the last partition.
21087 (tree_loop_distribution): Seed partitions from reductions as well.
21088
aa710d25
JJ
210892013-01-28 Jakub Jelinek <jakub@redhat.com>
21090
0bfbca58
JJ
21091 PR tree-optimization/56125
21092 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
21093 pow(x,c) into sqrt(x) * powi(x, n/2) or
21094 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
21095 optimizing for size.
21096 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
21097 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
21098 integer.
21099
aa710d25
JJ
21100 PR tree-optimization/56094
21101 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
21102 to UNKNOWN_LOCATION while gimplifying expr.
21103
77dc5297
UB
211042013-01-27 Uros Bizjak <ubizjak@gmail.com>
21105
21106 PR target/56114
21107 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
21108 operand 0 in movabs insn template for -masm=intel asm alternative.
21109 (*movabs<mode>_2): Ditto for operand 1.
21110
0bfbca58 211112013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
21112
21113 PR target/54663
21114 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
21115 of microblaze-c.o
21116
0bfbca58 211172013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
21118
21119 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
21120 tm_file.
21121
0bfbca58 211222013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
21123
21124 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
21125 Undef to avoid warning.
21126
478f60f9
MH
211272013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
21128
21129 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
21130 * configure: Regenerate.
21131
d7fa6ee2
JJ
211322013-01-25 Jakub Jelinek <jakub@redhat.com>
21133
21134 PR tree-optimization/56098
21135 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
21136 for stmts with volatile ops.
21137 (cond_store_replacement): Don't optimize if assign has volatile ops.
21138 (cond_if_else_store_replacement_1): Don't optimize if either
21139 then_assign or else_assign have volatile ops.
21140 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
21141 volatile ops.
21142
f8fe87bd
GJL
211432013-01-25 Georg-Johann Lay <avr@gjlay.de>
21144
21145 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
21146
28398d0d
GJL
211472013-01-25 Georg-Johann Lay <avr@gjlay.de>
21148
21149 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
21150 missing ':' in asm example.
21151
b7d7d917
TB
211522013-01-25 Tejas Belagod <tejas.belagod@arm.com>
21153
21154 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
21155 entries into lane and laneq entries.
77dc5297
UB
21156 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
21157 Remove AdvSIMD scalar modes.
b7d7d917
TB
21158 (aarch64_sq<r>dmulh_laneq<mode>): New.
21159 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
21160 modes.
21161 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
21162 builtin implementations to relfect changes in RTL in aarch64-simd.md.
21163 * config/aarch64/iterators.md (VCOND): New.
21164 (VCONQ): New.
21165
556f9906
GJL
211662013-01-25 Georg-Johann Lay <avr@gjlay.de>
21167
21168 PR target/54222
21169 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
21170 Add NULL LIBNAME argument to existing definitions.
21171 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
21172 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
21173 * config/avr/avr.c (DEF_BUILTIN): Same.
21174 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
21175 (avr_expand_builtin): Expand to a vanilla call if a libgcc
21176 implementation is available (DECL_ASSEMBLER_NAME is set).
21177 (avr_fold_absfx): New static function.
21178 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
21179 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
21180 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
21181 AVR_BUILTIN_ABSLLK.
21182 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
21183 (abshk, absk, abslk, absllk): Provide as static inline functions.
21184
1f546bbb
MP
211852013-01-25 Marek Polacek <polacek@redhat.com>
21186
21187 PR tree-optimization/56035
21188 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
21189
7e184bd7
UB
211902012-01-24 Uros Bizjak <ubizjak@gmail.com>
21191
21192 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
21193 (*movtf_internal_rex64): Add (!o,C) alternative
21194 (*movxf_internal_rex64): Ditto.
21195 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
21196
f5ba49ac
SM
211972013-01-24 Shenghou Ma <minux.ma@gmail.com>
21198
21199 * doc/invoke.texi: fix typo.
21200 * doc/objc.texi: fix typo.
21201
a6343728
RS
212022013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
21203
21204 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
21205 for the first two alternatives.
21206
cd030c07
DN
212072013-01-24 Diego Novillo <dnovillo@google.com>
21208
77dc5297 21209 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
21210 (ggc-zone.o): Remove.
21211 * configure.ac: Remove option --with-gc.
21212 * configure: Re-generate.
21213 * doc/install.texi: Remove documentation for --with-gc.
21214 * gengtype.c (write_enum_defn): Remove. Update all users.
21215 (write_Types_process_field): Remove generation of gt_e_* argument.
21216 (output_type_enum): Remove. Update all users.
21217 (write_enum_defn): Remove. Update all users.
21218 (enum alloc_zone): Remove. Update all users.
77dc5297 21219 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
21220 * ggc-common.c (ggc_splay_alloc): Remove first argument.
21221 Update all callers.
21222 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 21223 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
21224 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
21225 Update all users.
aaf1e810 21226 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
21227 (struct alloc_zone): Remove.
21228 (ggc_internal_alloc_zone_stat): Remove.
21229 (ggc_internal_cleared_alloc_zone_stat): Remove.
21230 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
21231 (ggc_pch_count_object): Remove last argument. Update all users.
21232 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
21233 (struct alloc_zone): Remove.
21234 * ggc-zone.c: Remove.
77dc5297 21235 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
21236 (struct alloc_zone): Remove.
21237 (ggc_alloc_typed_stat): Remove.
21238 (ggc_alloc_typed): Remove.
21239 (ggc_splay_alloc): Remove first argument.
21240 (rtl_zone): Remove. Update all users.
21241 (tree_zone): Remove. Update all users.
21242 (tree_id_zone): Remove. Update all users.
21243 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 21244 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 21245 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 21246 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 21247
a861ffa4
GJL
212482013-01-24 Georg-Johann Lay <avr@gjlay.de>
21249
21250 * config/avr/avr.c (avr_out_fract): Make register numbers that
21251 might be outside of source operand signed.
21252
593c0ddd
UB
212532013-01-24 Uros Bizjak <ubizjak@gmail.com>
21254
21255 * config/i386/constraints.md (Yf): New constraint.
21256 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
21257 of f constraint to conditionaly disable x87 register preferences.
21258 (*movdf_internal): Ditto.
21259 (*movsf_internal): Ditto.
21260
e86c0101
SB
212612013-01-24 Steven Bosscher <steven@gcc.gnu.org>
21262
21263 PR inline-asm/55934
21264 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
21265 that have operands with impossible constraints.
21266 Add a FIXME for a speed-up opportunity.
21267 * lra-constraints.c (process_alt_operands): Verify that a class
21268 selected from constraints on asms is valid for the operand mode.
21269 (curr_insn_transform): Remove incorrect comment.
21270
f6fee35f
DE
212712013-01-23 David Edelsohn <dje.gcc@gmail.com>
21272
21273 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
21274 TOC operand is a valid symbol ref in the constant pool.
21275
212762013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 21277
aaf1e810 21278 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 21279
dc62d7d1
GJL
212802013-01-23 Georg-Johann Lay <avr@gjlay.de>
21281
21282 PR target/54222
21283 * config/avr/stdfix.h: New file.
21284 * t-avr (stdfix-gcc.h): New rule to build it.
21285 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
21286
2660d12d
KS
212872013-01-23 Kostya Serebryany <kcc@google.com>
21288
77dc5297
UB
21289 * config/darwin.h: remove dependency on
21290 CoreFoundation (asan on Mac OS).
2660d12d 21291
a70418fc
JJ
212922013-01-23 Jakub Jelinek <jakub@redhat.com>
21293
21294 PR target/49069
21295 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
21296 instead of cmpdi_operand for first comparison operand.
21297 Don't assert that comparison operands aren't both constants.
21298
47876a2a
JW
212992013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
21300
21301 * doc/install.texi (Downloading the Source): Update references to
21302 downloading separate components.
21303
213042013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
21305
21306 * doc/extend.texi (__int128): Improve grammar.
21307
47876a2a 213082013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
21309
21310 PR target/56028
21311 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
21312 alternative to (o,r).
21313 (*movdi_internal_rex64): Remove (!o,n) alternative.
21314 (DImode immediate->memory splitter): Remove.
21315 (DImode immediate->memory peephole2): Remove.
21316 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
21317 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
21318 alternative to (!o,*r).
21319 (*movtf_internal_sse): New pattern.
21320 (*movxf_internal_rex64): New pattern.
21321 (*movxf_internal): Disable for TARGET_64BIT.
21322 (*movdf_internal_rex64): Remove (!o,F) alternative.
21323
3a984f10
JJ
213242013-01-22 Jakub Jelinek <jakub@redhat.com>
21325
502498d5
JJ
21326 PR middle-end/56074
21327 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21328 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21329 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21330 stmt locations where LOCATION_LOCUS of the stmt location is
21331 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21332
3a984f10
JJ
21333 PR target/55686
21334 * config/i386/i386.md (UNSPEC_STOS): New.
21335 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21336 *strsetqi_1): Add UNSPEC_STOS.
21337
fa817f7f
PC
213382013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21339
21340 PR c++/56067
21341 * doc/invoke.texi: Remove left over -Wsynth example.
21342
8f498c1b
JJ
213432013-01-21 Jakub Jelinek <jakub@redhat.com>
21344
21345 PR tree-optimization/56051
21346 * fold-const.c (fold_binary_loc): Don't fold
21347 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21348 a narrowing conversion, or widening conversion from signed
21349 to unsigned.
21350
47876a2a 213512013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21352
21353 PR rtl-optimization/56023
21354 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21355 dependent on debug instruction.
21356
5b9db1bc
MJ
213572013-01-21 Martin Jambor <mjambor@suse.cz>
21358
21359 PR middle-end/56022
21360 * function.c (allocate_struct_function): Call
21361 invoke_set_current_function_hook earlier.
21362
e8bb7d68
JJ
213632013-01-21 Jakub Jelinek <jakub@redhat.com>
21364
21365 * reload1.c (init_reload): Only initialize reload_obstack
21366 during the first call.
21367
616a4e32
MP
213682013-01-21 Marek Polacek <polacek@redhat.com>
21369
21370 * cfgloop.c (verify_loop_structure): Fix up grammar.
21371
4401981b
YHH
213722013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21373
21374 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21375 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21376
8e87740b
RR
213772013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21378
21379 PR target/56058
21380 * config/arm/marvell-pj4.md: Update copyright year.
21381 Fix up use of alu to alu_reg and simple_alu_imm.
21382
47876a2a 213832013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21384
21385 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21386
89d56d79
VM
213872013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21388
21389 PR target/55433
21390 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21391 insn for secondary memory move when memory mode should be different.
89d56d79 21392
fe603553
JDA
213932013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21394
21395 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21396 atomic_storedi_1): New patterns.
21397
01284895
VK
213982013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21399
21400 btver2 pipeline descriptions.
21401 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21402 descriptions.
21403 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21404 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21405 type attributes.
21406 * config/i386/btver2.md: New file describing btver2 pipelines.
21407
5630e3e1
JL
214082013-01-19 Andrew Pinski <apinski@cavium.com>
21409
21410 PR tree-optimization/52631
21411 * tree-ssa-sccvn (visit_use): Before looking up the original
21412 statement, try looking up the simplified expression.
21413
650ae806
AG
214142013-01-19 Anthony Green <green@moxielogic.com>
21415
21416 * config/moxie/moxie.c (moxie_expand_prologue): Set
21417 current_function_static_stack_size.
21418
e300ec2d
JJ
214192013-01-18 Jakub Jelinek <jakub@redhat.com>
21420
21421 PR tree-optimization/56029
21422 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21423 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21424
a3d7af04
SS
214252013-01-18 Sharad Singhai <singhai@google.com>
21426
21427 PR tree-optimization/55995
21428 * dumpfile.c (dump_loc): Print location only if available.
21429 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21430
66aa7879
VM
214312013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21432
21433 PR target/55433
21434 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21435 secondary memory move.
21436 (inherit_reload_reg): Use rclass instead of cl for
21437 check_secondary_memory_needed_p.
21438
3f0fee7b
JJ
214392013-01-18 Jakub Jelinek <jakub@redhat.com>
21440
21441 PR middle-end/56015
21442 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21443 the case where writing real complex part of target modifies op1.
3f0fee7b 21444
70c67693
JG
214452013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21446
21447 * config/aarch64/aarch64-simd.md
21448 (aarch64_vcond_internal<mode>): Handle unordered cases.
21449 * config/aarch64/iterators.md (v_cmp_result): New.
21450
df8de9b3
YHH
214512013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21452 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21453
21454 * config/arm/marvell-pj4.md: New file.
21455 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21456 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21457 (generic_vfp): Likewise.
21458 * config/arm/arm-cores.def: Add marvell-pj4.
21459 * config/arm/arm-tune.md: Regenerate.
21460 * config/arm/arm-tables.opt: Regenerate.
21461 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21462 * doc/invoke.texi: Document marvell-pj4.
21463
be30c356
TB
214642013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21465
21466 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21467
0bfbca58 214682013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21469
21470 PR debug/54114
21471 PR debug/54402
21472 PR debug/49888
21473 * var-tracking.c (negative_power_of_two_p): New.
21474 (global_get_addr_cache, local_get_addr_cache): New.
21475 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21476 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21477 heading comment.
21478 (vt_stack_offset_p): Remove.
21479 (vt_canon_true_dep): Always canonicalize loc's address.
21480 (clobber_overlapping_mems): Make sure we have a MEM.
21481 (local_get_addr_clear_given_value): New.
21482 (val_reset): Clear local cached entries.
21483 (compute_bb_dataflow): Create and release the local cache.
21484 Disable duplicate MEMs clobbering.
21485 (emit_notes_in_bb): Clobber MEMs likewise.
21486 (vt_emit_notes): Create and release the local cache.
21487 (vt_initialize, vt_finalize): Create and release the global
21488 cache, respectively.
1f6bc337 21489 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21490
0bfbca58 214912013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21492
21493 PR libmudflap/53359
21494 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21495 not found in the symtab.
21496
0bfbca58 214972013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21498
c350ba53 21499 PR debug/56006
3aa03517
AO
21500 PR rtl-optimization/55547
21501 PR rtl-optimization/53827
21502 PR debug/53671
21503 PR debug/49888
21504 * alias.c (offset_overlap_p): New, factored out of...
21505 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21506 the conservative special case for symbolic constants. Don't
21507 adjust zero sizes on alignment.
21508
c664546f
JL
215092013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21510
21511 PR rtl-optimization/52573
21512 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21513 REG_UNUSED for the same register.
21514
1bd3f750
MP
215152013-01-17 Richard Biener <rguenther@suse.de>
21516 Marek Polacek <polacek@redhat.com>
21517
21518 PR rtl-optimization/55833
21519 * loop-unswitch.c (unswitch_loops): Move loop verification...
21520 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21521 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21522 Set it to true when we're removing a loop from hierarchy tree in
21523 an irreducible region.
21524 (fix_bb_placements): Adjust caller.
21525 (fix_loop_placements): Likewise.
21526
e52a8b71
GJL
215272013-01-17 Georg-Johann Lay <avr@gjlay.de>
21528
21529 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21530 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21531 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21532 Remove ID. Adjust comments.
21533 * config/avr/avr-c.c (avr_builtin_name): Remove.
21534 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21535 * config/avr/avr.c (avr_tolower): New static function.
21536 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21537 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21538 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21539 default expansion.
21540
8386a7ea
JH
215412013-01-17 Jan Hubicka <jh@suse.cz>
21542
610fb637 21543 PR tree-optimization/55273
8386a7ea
JH
21544 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21545
47876a2a 215462013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21547
21548 PR target/55981
21549 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21550 store through atomic_store<mode>_1.
21551 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21552
8222c37e
MJ
215532013-01-17 Martin Jambor <mjambor@suse.cz>
21554
21555 PR tree-optimizations/55264
21556 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21557 for virtual methods.
21558 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21559 virtual methods before inlining is over.
21560 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21561 virtual functions.
21562 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21563 non-virtual.
21564
79f01c76
VM
215652013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21566
21567 PR rtl-optimization/56005
21568 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21569 pending reads for prefetch.
21570
d0b6bb1b
IB
215712013-01-16 Ian Bolton <ian.bolton@arm.com>
21572
aaf1e810 21573 * config/aarch64/aarch64.md
d0b6bb1b
IB
21574 (*cstoresi_neg_uxtw): New pattern.
21575 (*cmovsi_insn_uxtw): New pattern.
21576 (*<optab>si3_uxtw): New pattern.
21577 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21578 (*<optab>si3_insn_uxtw): New pattern.
21579 (*bswapsi2_uxtw): New pattern.
21580
cb9cf03b
RB
215812013-01-16 Richard Biener <rguenther@suse.de>
21582
21583 * tree-inline.c (tree_function_versioning): Remove set but
21584 never used variable.
21585
2cfc56b9
RB
215862013-01-16 Richard Biener <rguenther@suse.de>
21587
21588 PR tree-optimization/55964
21589 * tree-flow.h (rename_variables_in_loop): Remove.
21590 (rename_variables_in_bb): Likewise.
21591 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21592 (copy_loop_before): Adjust and delete update-ssa status.
21593 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21594 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21595 (rename_variables_in_loop): Remove.
21596 (slpeel_update_phis_for_duplicate_loop): Likewise.
21597 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21598 use available cfg machinery instead of duplicating it.
21599 Update PHI nodes and perform poor-mans SSA update here.
21600 (slpeel_tree_peel_loop_to_edge): Adjust.
21601
c25a0c60
RB
216022013-01-16 Richard Biener <rguenther@suse.de>
21603
21604 PR tree-optimization/54767
21605 PR tree-optimization/53465
21606 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21607 (vrp_visit_phi_node): For PHI arguments coming via backedges
21608 drop all symbolical range information.
21609 (execute_vrp): Compute backedges.
21610
04b535af
RB
216112013-01-16 Richard Biener <rguenther@suse.de>
21612
21613 * doc/install.texi: Update CLooG and ISL requirements to
21614 0.18.0 and 0.11.1.
21615
8b0a1e0b
CB
216162013-01-16 Christian Bruel <christian.bruel@st.com>
21617
21618 PR target/55301
21619 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
21620 (broken_move): Handle UNSPECV_SP_SWITCH_B.
21621 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
21622
216232013-01-16 DJ Delorie <dj@redhat.com>
21624
21625 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
21626 (UNSPECV_SP_SWITCH_E): New.
21627 (sp_switch_1): Change to an unspec.
21628 (sp_switch_2): Change to an unspec. Don't use post-inc when we
21629 replace $r15.
21630
216312013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
21632
21633 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
21634 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
21635 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
21636 (expand_mem_thread_fence): Ditto.
21637 (expand_mem_signal_fence): Ditto.
21638 (expand_atomic_load): Ditto.
21639 (expand_atomic_store): Ditto.
21640
0bfbca58 216412013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
21642
21643 PR rtl-optimization/55547
21644 PR rtl-optimization/53827
21645 PR debug/53671
21646 PR debug/49888
21647 * alias.c (memrefs_conflict_p): Set sizes to negative after
21648 AND adjustments.
21649
305e3ac1
JJ
216502013-01-15 Jakub Jelinek <jakub@redhat.com>
21651
21652 PR target/55940
21653 * function.c (thread_prologue_and_epilogue_insns): Always
21654 add crtl->drap_reg to set_up_by_prologue.set, even if
21655 stack_realign_drap is false.
21656
f78ac4f2
JBG
216572013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21658
21659 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
21660 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
21661 *call): Fix indention.
21662
a78a8cc4
TV
216632013-01-15 Tom de Vries <tom@codesourcery.com>
21664
21665 PR target/55876
21666 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
21667 Update comment.
21668
0e80383f
VM
216692013-01-15 Vladimir Makarov <vmakarov@redhat.com>
21670
305e3ac1 21671 PR rtl-optimization/55153
0e80383f
VM
21672 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
21673
207b5956
MJ
216742013-01-15 Martin Jambor <mjambor@suse.cz>
21675
21676 PR tree-optimization/55920
21677 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
21678 accesses as grp_to_be_debug_replaced.
21679
a7818b54
JJ
216802013-01-15 Jakub Jelinek <jakub@redhat.com>
21681
21682 PR tree-optimization/55920
21683 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
21684 there is non-useless type conversion needed from debug rhs to lhs,
21685 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
21686
b0fe107e
JM
216872013-01-15 Joseph Myers <joseph@codesourcery.com>
21688 Mikael Pettersson <mikpe@it.uu.se>
21689
21690 PR target/43961
21691 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
21692 Thumb.
21693 (ASM_OUTPUT_CASE_LABEL): Remove.
21694 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
21695 * final.c (shorten_branches): Update alignment of labels before
21696 jump tables if CASE_VECTOR_SHORTEN_MODE.
21697
34ab62ee
RB
216982013-01-15 Richard Biener <rguenther@suse.de>
21699
21700 PR bootstrap/55961
21701 * system.h: Do not include gmp.h for building host tools.
21702
783a3a05
RB
217032013-01-15 Richard Biener <rguenther@suse.de>
21704
21705 PR middle-end/55882
21706 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
21707 account for bitpos when computing alignment.
21708
3a579e09
VY
217092013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
21710
21711 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
21712 (ix86_target_macros_internal): Likewise.
21713
21714 * config/i386/i386.c (m_CORE2I7): Removed.
21715 (m_CORE_HASWELL): New macro.
21716 (m_CORE_ALL): Likewise.
21717 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
21718 (initial_ix86_arch_features): Likewise.
21719 (processor_target_table): Initializations for Core avx2.
21720 (cpu_names): New names "core-avx2".
21721 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
21722 PROCESSOR_CORE_HASWELL.
21723 (ix86_issue_rate): New case.
21724 (ia32_multipass_dfa_lookahead): Likewise.
21725 (ix86_sched_init_global): Likewise.
21726
21727 * config/i386/i386.h (TARGET_HASWELL): New macro.
21728 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
21729 (processor_type): New PROCESSOR_HASWELL.
21730
955f5a07
JJ
217312013-01-15 Jakub Jelinek <jakub@redhat.com>
21732
ff784829
JJ
21733 PR tree-optimization/55955
21734 * tree-vect-loop.c (vectorizable_reduction): Give up early on
21735 *SHIFT_EXPR and *ROTATE_EXPR codes.
21736
955f5a07
JJ
21737 PR tree-optimization/48766
21738 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
21739 -ftrapv disable -fwrapv.
21740
aeb8b4e9
GJL
217412013-01-14 Georg-Johann Lay <avr@gjlay.de>
21742
21743 PR target/55974
21744 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
21745 etc. to 1 and not to __flash.
21746 Use LL suffix for __INT24_MAX__ with -mint8.
21747 Use ULL suffix for __UINT24_MAX__ with -mint8.
21748
1c494c6a
GJL
217492013-01-14 Georg-Johann Lay <avr@gjlay.de>
21750
21751 * config/avr/avr-arch.h
21752 (struct base_arch_s): Use typedef avr_arch_t instead.
21753 (struct arch_info_s): Use typedef avr_arch_info_t instead.
21754 (struct mcu_type_s): Use typedef avr_mcu_t instead.
21755 * config/avr/avr.c: Same.
21756 * config/avr/avr-devices.c: Same.
21757 * config/avr/driver-avr.c: Same.
21758 * config/avr/gen-avr-mmcu-texi.c: Same.
21759 * config/avr/avr-mcus.def: Adjust comment.
21760
a50344cb
TB
217612013-01-14 Tejas Belagod <tejas.belagod@arm.com>
21762
88e784e6
UB
21763 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
21764 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 21765
47876a2a 217662013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
21767 Andi Kleen <ak@linux.intel.com>
21768
21769 PR target/55948
21770 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
21771 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
21772 memmodel flag.
21773
00892272
GJL
217742013-01-14 Georg-Johann Lay <avr@gjlay.de>
21775
21776 * config/avr/avr-stdint.h: Remove trailing blanks.
21777 * config/avr/avr-log.h: Same.
21778 * config/avr/avr-arch.h: Same.
21779 * config/avr/avr-devices.c: Same.
21780 * config/avr/avr-dimode.md: Same.
21781 * config/avr/predicates.md: Same.
21782 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 21783
00892272
GJL
21784 * config/avr/avr-protos.h: Same. And:
21785 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
21786 (init_cumulative_args): Rename to avr_init_cumulative_args.
21787 (expand_prologue): Rename to avr_expand_prologue.
21788 (expand_epilogue): Rename to avr_expand_epilogue.
21789 (adjust_insn_length): Rename to avr_adjust_insn_length.
21790 (notice_update_cc): Rename to avr_notice_update_cc.
21791 (final_prescan_insn): Rename to avr_final_prescan_insn.
21792 * config/avr/avr.c: Same.
21793 * config/avr/avr.h: Same.
21794 * config/avr/avr.md: Remove trailing blanks.
21795 (prologue): Use avr_expand_prologue.
21796 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
21797
7bb01996
RB
217982013-01-14 Richard Biener <rguenther@suse.de>
21799
21800 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
21801 verify_location, collect_subblocks): New functions.
21802 (verify_gimple_in_cfg): Verify that locations only reference
21803 BLOCKs in the functions BLOCK tree.
21804
2724573f
RB
218052013-01-14 Richard Biener <rguenther@suse.de>
21806
21807 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
21808 PHI argument.
21809 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
21810 unshare reference.
21811 (insert_out_of_ssa_copy_on_edge): Likewise.
21812 (rewrite_close_phi_out_of_ssa): Likewise.
21813 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
21814 debug expressions.
21815 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
21816 propagated constants.
21817 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
21818 can not be shared.
21819
9a0bbab6
GJL
218202013-01-14 Georg-Johann Lay <avr@gjlay.de>
21821
21822 * config/avr/avr-modes.def: Add GPL copyright notice.
21823
45805f17
UB
218242013-01-13 Uros Bizjak <ubizjak@gmail.com>
21825
21826 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
21827 MEMMODEL_MASK to determine memory model.
21828 (atomic_store<mode>): Ditto from operands[2].
21829 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
21830
9d60be38
JJ
218312013-01-13 Jakub Jelinek <jakub@redhat.com>
21832
21833 PR fortran/55935
45805f17 21834 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
21835 (fold_gimple_assign): Don't call unshare_expr here.
21836 (fold_ctor_reference): Call unshare_expr.
21837
e7f49d92
TG
218382013-01-13 Terry Guo <terry.guo@arm.com>
21839
aaf1e810
EB
21840 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
21841 * doc/fragments.texi: Document MULTILIB_REUSE.
21842 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 21843 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 21844 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
21845 (tmpmultilib4): Ditto.
21846 (multilib_reuse): New multilib argument.
21847
fbd03a27
RS
218482013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
21849
21850 * Makefile.in: Update copyright.
21851
b3681f13
TV
218522013-01-12 Tom de Vries <tom@codesourcery.com>
21853
21854 PR middle-end/55890
21855 * calls.c (expand_call): Check if arg_nr is valid.
21856
3f287e4b
MM
218572013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21858
21859 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
21860 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
21861 documentation. Add missing '__' in front of
21862 __builtin_ia32_packssdw256.
3f287e4b 21863
1abcd5eb
AK
218642013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21865
21866 PR target/55719
21867 * config/s390/s390.c (s390_preferred_reload_class): Do not return
21868 NO_REGS for larl operands.
21869 (s390_reload_larl_operand): Use s390_load_address instead of
21870 emit_move_insn.
21871
980d0812
RB
218722013-01-11 Richard Biener <rguenther@suse.de>
21873
21874 * tree-cfg.c (verify_node_sharing_1): Split out from ...
21875 (verify_node_sharing): ... here.
21876 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
21877
7cb9fd07
EB
218782013-01-11 Eric Botcazou <ebotcazou@adacore.com>
21879
21880 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
21881 Substitute TREECHECKING.
21882 * configure: Regenerate.
21883 * Makefile.in (TREECHECKING): New.
21884
47876a2a 218852013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
21886
21887 PR tree-optimization/44061
21888 * tree-vrp.c (extract_range_basic): Compute zero as
21889 value-range for __builtin_constant_p of function parameters.
21890
d1e082c2
RS
218912013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
21892
45805f17 21893 Update copyright years.
d1e082c2 21894
f85021b0
VM
218952013-01-10 Vladimir Makarov <vmakarov@redhat.com>
21896
9d60be38 21897 PR rtl-optimization/55672
0160442c
VM
21898 * lra-eliminations.c (mark_not_eliminable): Permit addition with
21899 const to be eliminable.
f85021b0 21900
7a8b1ec4
DE
219012013-01-10 David Edelsohn <dje.gcc@gmail.com>
21902
21903 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
21904 * configure: Regenerate.
21905
ad2e5b71
RB
219062013-01-10 Richard Biener <rguenther@suse.de>
21907
ddf9322d 21908 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 21909
ffc5b2bb
RB
219102013-01-10 Richard Biener <rguenther@suse.de>
21911
21912 PR bootstrap/55792
21913 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
21914 locations for virtual PHI arguments.
21915 (rewrite_update_phi_arguments): Likewise.
21916
e1f674e4
JS
219172013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
21918
21919 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
21920 on to assembler.
21921
a57fc743
JJ
219222013-01-10 Jakub Jelinek <jakub@redhat.com>
21923
21924 PR tree-optimization/55921
21925 * tree-complex.c (expand_complex_asm): New function.
21926 (expand_complex_operations_1): Call it for GIMPLE_ASM.
21927
0ff4390d
AK
219282013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21929
21930 PR target/55718
21931 * config/s390/s390.c (s390_symref_operand_p)
21932 (s390_loadrelative_operand_p): Merge the two functions.
21933 (s390_check_qrst_address, print_operand_address): Add parameters
21934 to s390_loadrelative_operand_p invokation.
21935 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
21936 (s390_reload_larl_operand, s390_secondary_reload): Use
21937 s390_loadrelative_operand_p instead of s390_symref_operand_p.
21938 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
21939
6f557e0e
MS
219402013-01-09 Mike Stump <mikestump@comcast.net>
21941
21942 * dse.c (record_store): Remove unnecessary assert.
21943
7770c9e9
JH
219442013-01-09 Jan Hubicka <jh@suse.cz>
21945
21946 PR tree-optimization/55569
21947 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
21948 * cfgloop.h (scale_loop_profile): Likewise.
21949
a19b1432
JH
219502013-01-09 Jan Hubicka <jh@suse.cz>
21951
21952 PR lto/45375
ddf9322d
UB
21953 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
21954 functions.
a19b1432
JH
21955 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
21956
9a002da8
RS
219572013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
21958
21959 PR middle-end/55114
21960 * expr.h (maybe_emit_group_store): Declare.
21961 * expr.c (maybe_emit_group_store): New function.
21962 * builtins.c (expand_builtin_int_roundingfn): Call it.
21963 (expand_builtin_int_roundingfn_2): Likewise.
21964
511dcace
VM
219652013-01-09 Vladimir Makarov <vmakarov@redhat.com>
21966
e1f2b729 21967 PR rtl-optimization/55829
511dcace
VM
21968 * lra-constraints.c (match_reload): Add code for absent output.
21969 (curr_insn_transform): Add code for reloads of matched inputs
21970 without output.
21971
7b0fe4f4
UB
219722013-01-09 Uros Bizjak <ubizjak@gmail.com>
21973
21974 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
21975 attribute of movddup insn to DF.
21976 (*vec_interleave_lowv2df): Ditto.
21977 (vec_dupv2df): Ditto.
21978
870ca331
JH
219792013-01-09 Jan Hubicka <jh@suse.cz>
21980
21981 PR tree-optimiation/55875
21982 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
21983 EVERY_ITERATION parameter.
7b0fe4f4 21984 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
21985 (idx_infer_loop_bounds): Similarly here.
21986 (n_of_executions_at_most): Simplify
21987 to only test for cases where statement is dominated by the
7b0fe4f4 21988 particular bound; handle correctly the "postdominance" test.
870ca331
JH
21989 (scev_probably_wraps_p): Use max loop iterations info
21990 as a global bound first.
21991
6f575fe4 219922013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
21993 Nick Clifton <nickc@redhat.com>
21994
21995 * config/v850/v850.md (cbranchsf4): New pattern.
21996 (cstoresf4): New pattern.
21997 (cbranchdf4): New pattern.
21998 (cstoredf4): New pattern.
21999 (movsicc): Disallow floating point comparisons.
22000 (cmpsf_le_insn): Fix order of operators.
22001 (cmpsf_lt_insn): Likewise.
22002 (cmpsf_eq_insn): Likewise.
22003 (cmpdf_le_insn): Likewise.
22004 (cmpdf_lt_insn): Likewise.
22005 (cmpdf_eq_insn): Likewise.
22006 (cmpsf_ge_insn): Use LE comparison.
22007 (cmpdf_ge_insn): Likewise.
22008 (cmpsf_gt_insn): Use LT comparison.
22009 (cmpdf_gt_insn): Likewise.
22010 (cmpsf_ne_insn): Delete pattern.
22011 (cmpdf_ne_insn): Delete pattern.
22012 * config/v850/v850.c (v850_gen_float_compare): Use
22013 gen_cmpdf_eq_insn for NE comparison.
22014 (v850_float_z_comparison_operator)
22015 (v850_float_nz_comparison_operator): Move from here ...
22016 * config/v850/predicates.md: ... to here. Move GT and GE
22017 comparisons into v850_float_z_comparison_operator.
22018 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
22019 Delete prototype.
22020 (v850_float_nz_comparison_operator): Likewise.
22021
f0d54148
JDA
220222013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22023
22024 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
22025 with calls to gen_insvsi/gen_insvdi.
22026
8f01beca
VK
220272013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22028
22029 * config/i386/i386.c (initial_ix86_tune_features): Set up
22030 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
22031
2aa579ad
JJ
220322013-01-09 Steven Bosscher <steven@gcc.gnu.org>
22033 Jakub Jelinek <jakub@redhat.com>
22034
22035 PR tree-optimization/48189
22036 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
22037 If nitercst is 0, don't predict the exit edge.
22038
6edc3e32 220392013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
22040
22041 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
22042 in asm_fprintf with reg_names.
22043 (aarch64_print_operand_address): Likewise.
22044 (aarch64_return_addr): Likewise.
22045 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
22046
f6f94d94
JDA
220472013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22048
22049 * config/pa/pa.h (VAL_U6_BITS_P): Define.
22050 (INT_U6_BITS): Likewise.
22051 * config/pa/predicates.md (uint6_operand): New predicate.
22052 (shift5_operand, shift6_operand): Likewise.
22053 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
22054 arith32_operand.
22055 (lshrdi3): Use shift6_operand.
22056 (shrpsi4, shrpdi4): New insn patterns.
22057 (extzv): Delete expander.
22058 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
22059 predicates in unamed zero extract patterns. Tighten common constraint.
22060 (extv): Delete expander.
22061 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
22062 predicates in unamed sign extract patterns. Tighten common constraint.
22063 (insv): Delete expander.
22064 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
22065 predicates in unamed insert patterns. Tighten common constraint.
22066 Change uint32_operand predicate to uint6_operand predicate in unamed
22067 DImode pattern to insert constant values of type 1...1xxxx.
22068
36b72910
JH
220692013-01-04 Jan Hubicka <jh@suse.cz>
22070
22071 PR tree-optimization/55823
7b0fe4f4
UB
22072 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
22073 issue.
36b72910 22074
47876a2a 220752013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
22076 Uros Bizjak <ubizjak@gmail.com>
22077
22078 PR rtl-optimization/55845
22079 * df-problems.c (can_move_insns_across): Stop scanning at
22080 volatile_insn_p source instruction or give up if
22081 across_from .. across_to range contains any volatile_insn_p
22082 instructions.
22083
4369c11e
TB
220842013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22085
7b0fe4f4
UB
22086 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
22087 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
22088 Declare.
4369c11e 22089 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 22090 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 22091
aeb7e7c1
JJ
220922013-01-08 Jakub Jelinek <jakub@redhat.com>
22093
22094 PR fortran/55341
22095 * asan.c (asan_clear_shadow): New function.
22096 (asan_emit_stack_protection): Use it.
22097
a02ad1aa
TB
220982013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22099
22100 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
22101 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
22102 with tab instead of space.
22103
f90d87f5
NC
221042013-01-08 Nick Clifton <nickc@redhat.com>
22105
22106 * config/rl78/rl78.c (rl78_expand_prologue): Always select
22107 register bank 0 at the start of an interrupt handler.
83ffd964
NC
22108 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
22109 MDBH registers.
f90d87f5 22110
385eb93d
JG
221112013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22112
22113 * config/aarch64/aarch64-simd.md
22114 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
22115 (aarch64_simd_bsl): Likewise.
22116 (aarch64_vcond_internal<mode>): Likewise.
22117 (vcond<mode><mode>): Likewise.
22118 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
22119 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
22120
4dcd1054
JG
221212013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22122
22123 * config/aarch64/aarch64-builtins.c
22124 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
22125
4267a4a6
MJ
221262013-01-08 Martin Jambor <mjambor@suse.cz>
22127
22128 PR debug/55579
22129 * tree-sra.c (analyze_access_subtree): Return true also after
22130 potentially creating a debug-only replacement.
22131
5f4e6de3
JJ
221322013-01-08 Jakub Jelinek <jakub@redhat.com>
22133
3138f224
JJ
22134 PR middle-end/55890
22135 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
22136
5f4e6de3
JJ
22137 PR tree-optimization/54120
22138 * tree-vrp.c (range_fits_type_p): Don't allow
22139 src_precision < precision from signed vr to unsigned_p
22140 if vr->min or vr->max is negative.
22141 (simplify_float_conversion_using_ranges): Test can_float_p
22142 against CODE_FOR_nothing.
22143
f3ef18ff
JJ
221442013-01-08 Jakub Jelinek <jakub@redhat.com>
22145 Richard Biener <rguenther@suse.de>
22146
22147 PR middle-end/55851
22148 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
22149 types instead of just INTEGER_TYPE types.
22150
25c210f9
MK
221512013-01-07 Mark Kettenis <kettenis@openbsd.org>
22152
22153 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
22154 TF_SIZE): Define.
f90d87f5 22155
81826a7b
SE
221562013-01-07 Steve Ellcey <sellcey@mips.com>
22157
22158 PR target/42661
22159 * config/mips/mips.opt: Change mad to mmad to match documentation.
22160
35678514
GJL
221612013-01-07 Georg-Johann Lay <avr@gjlay.de>
22162
22163 PR target/55897
22164 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
22165 .progmemx.data now.
22166
e5669488
GJL
221672013-01-07 Georg-Johann Lay <avr@gjlay.de>
22168
22169 PR target/55897
22170 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
22171 (avr_addrspace_t): Add .section_name field.
22172 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
22173 array size.
22174 (avr_addrspace): Same. Initialize .section_name. Remove last
22175 NULL entry. Put __memx into .progmemx.data.
22176 (progmem_section_prefix): Remove.
22177 (avr_asm_init_sections): No need to initialize progmem_section.
22178 (avr_asm_named_section): Use avr_addrspace[].section_name to get
22179 section name prefix.
22180 (avr_asm_select_section): Ditto. And use get_unnamed_section to
22181 retrieve the progmem section.
22182 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
22183 boundary to run over avr_addrspace[].
22184 (avr_register_target_pragmas): Ditto.
22185
656e6f37
JJ
221862013-01-06 Jakub Jelinek <jakub@redhat.com>
22187
22188 * varasm.c (output_constant_def_contents): For asan_protect_global
22189 protected strings, adjust DECL_ALIGN if needed, before testing for
22190 anchored symbols.
22191 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
22192 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
22193 normal decls.
22194 (output_object_block): For asan protected decls, emit asan padding
22195 after their contents.
22196 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
22197 (asan_finish_file): Test it here instead.
22198
6edc3e32
UB
221992013-01-07 Nick Clifton <nickc@redhat.com>
22200 Matthias Klose <doko@debian.org>
22201 Doug Kwan <dougkwan@google.com>
22202 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
22203
22204 PR driver/55470
22205 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
22206
22207 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
22208
22209 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
22210
7b0fe4f4 22211 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
22212
22213 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
22214
2a095093
GJL
222152013-01-07 Georg-Johann Lay <avr@gjlay.de>
22216
f3b503f4 22217 PR target/54461
2a095093
GJL
22218 * doc/install.texi (Cross-Compiler-Specific Options): Document
22219 --with-avrlibc.
22220
383f9b34
TB
222212013-01-07 Tejas Belagod <tejas.belagod@arm.com>
22222
22223 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
22224 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
22225 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
22226 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
22227 vqmovun_high_s64): Fix source operand number and update copyright.
22228
3626621a
RB
222292013-01-07 Richard Biener <rguenther@suse.de>
22230
22231 PR middle-end/55890
22232 * gimple.h (gimple_call_builtin_p): New overload.
22233 * gimple.c (validate_call): New function.
22234 (gimple_call_builtin_p): Likewise.
22235 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22236 Use gimple_call_builtin_p.
22237 (find_func_clobbers): Likewise.
22238 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
22239 (strlen_optimize_stmt): Likewise.
22240
8b2ea410
JG
222412013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22242
22243 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
22244 (vld1q_dup_*): Likewise.
22245 (vld1_*): Likewise.
22246 (vld1q_*): Likewise.
22247 (vld1_lane_*): Likewise.
22248 (vld1q_lane_*): Likewise.
22249
9713d329
RB
222502013-01-07 Richard Biener <rguenther@suse.de>
22251
22252 * lto-streamer.h (LTO_minor_version): Bump to 2.
22253
3520f7cc
JG
222542013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22255
22256 * config/aarch64/aarch64-protos.h
22257 (aarch64_const_double_zero_rtx_p): Rename to...
22258 (aarch64_float_const_zero_rtx_p): ...this.
22259 (aarch64_float_const_representable_p): New.
22260 (aarch64_output_simd_mov_immediate): Likewise.
22261 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
22262 move immediate case.
22263 * config/aarch64/aarch64.c
22264 (aarch64_const_double_zero_rtx_p): Rename to...
22265 (aarch64_float_const_zero_rtx_p): ...this.
22266 (aarch64_print_operand): Allow printing of new constants.
22267 (aarch64_valid_floating_const): New.
22268 (aarch64_legitimate_constant_p): Check for valid floating-point
22269 constants.
22270 (aarch64_simd_valid_immediate): Likewise.
22271 (aarch64_vect_float_const_representable_p): New.
22272 (aarch64_float_const_representable_p): Likewise.
22273 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
22274 (aarch64_output_simd_mov_immediate): New.
22275 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
22276 (*movdf_aarch64): Likewise.
22277 * config/aarch64/constraints.md (Ufc): New.
22278 (Y): call aarch64_float_const_zero_rtx.
22279 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
22280
e167c04d
RB
222812013-01-07 Richard Biener <rguenther@suse.de>
22282
22283 PR tree-optimization/55888
22284 PR tree-optimization/55862
22285 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
22286 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
22287 not if it is contained therein.
22288
0139aaab
GJL
222892013-01-07 Georg-Johann Lay <avr@gjlay.de>
22290
22291 * config/avr/t-avr: Typo.
22292
4a176b23
GJL
222932013-01-07 Georg-Johann Lay <avr@gjlay.de>
22294
22295 PR55243
22296 * config/avr/t-avr: Don't automatically rebuild
22297 $(srcdir)/config/avr/t-multilib
22298 $(srcdir)/config/avr/avr-tables.opt
22299 $(srcdir)/doc/avr-mmcu.texi
22300 (avr-mcus): New phony target to build them on request.
22301 (s-avr-mlib, s-avr-mmcu-texi): Remove.
22302 * avr/avr-mcus.def: Adjust comments.
22303
c7afdc98
UB
223042013-01-07 Uros Bizjak <ubizjak@gmail.com>
22305
22306 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
22307
1ab05c31
RS
223082013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22309
22310 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
22311
488e3acc
RS
223122013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22313
22314 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
22315
a89599d2
DE
223162013-01-05 David Edelsohn <dje.gcc@gmail.com>
22317
22318 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
22319 to generate profiling.
22320 * config/rs6000/aix64.h (LIB_SPEC): Same.
22321
70f09188
AP
223222013-01-04 Andrew Pinski <apinski@cavium.com>
22323
22324 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
22325 New function.
22326 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
22327
918d445f
UB
223282013-01-04 Uros Bizjak <ubizjak@gmail.com>
22329
22330 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22331 unconditionally.
22332 (ix86_expand_move): Ditto.
22333 (ix86_zero_extend_to_Pmode): Ditto.
22334 (ix86_expand_call): Ditto.
22335 (ix86_expand_special_args_builtin): Ditto.
22336 (ix86_expand_builtin): Ditto.
22337
361618ec
RB
223382013-01-04 Richard Biener <rguenther@suse.de>
22339
22340 PR tree-optimization/55862
22341 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22342 translating them through PHI nodes.
22343
87eab554
MJ
223442013-01-04 Martin Jambor <mjambor@suse.cz>
22345
22346 PR tree-optimization/55755
22347 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22348 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22349
33879b9f
MP
223502013-01-04 Marek Polacek <polacek@redhat.com>
22351
22352 PR middle-end/55859
22353 * opts.c (default_options_optimization): Clarify error message.
22354
3068819a
RB
223552013-01-04 Richard Biener <rguenther@suse.de>
22356
22357 PR middle-end/55863
22358 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22359 reassociation.
22360
0e4ae794
JDA
223612013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22362
22363 PR target/53789
22364 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22365 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22366 references.
0e4ae794 22367
65c88cef
RH
223682013-01-03 Richard Henderson <rth@redhat.com>
22369
22370 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22371 after eliminating TLS symbols.
22372
8ac16127
MG
223732013-01-03 Marc Glisse <marc.glisse@inria.fr>
22374
22375 PR bootstrap/50167
22376 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22377 * graphite-poly.c (debug_gmp_value): Likewise.
22378
bb664f09
UB
223792013-01-03 Uros Bizjak <ubizjak@gmail.com>
22380
22381 PR target/55712
22382 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22383 selected code model, define __code_mode_small__, __code_model_medium__,
22384 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22385 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22386 xchg temporary register with %k. Declare temporary register as
22387 early clobbered.
22388 [__x86_64__]: For medium and large code models, preserve %rbx register.
22389
bcf1ef00
RB
223902013-01-03 Richard Biener <rguenther@suse.de>
22391
0506634a 22392 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22393 (dump_subscript): Adjust.
22394 (finalize_ddr_dependent): Do not dump redundant info.
22395 (analyze_siv_subscript): Adjust.
22396 (subscript_dependence_tester): Likewise.
22397 (compute_affine_dependence): Likewise.
22398
59fd17e3
RB
223992013-01-03 Richard Biener <rguenther@suse.de>
22400
22401 Revert
22402 2013-01-03 Richard Biener <rguenther@suse.de>
22403
22404 PR tree-optimization/55857
22405 * tree-vect-stmts.c (vectorizable_load): Do not setup
22406 re-alignment for invariant loads.
22407
22408 2013-01-02 Richard Biener <rguenther@suse.de>
22409
22410 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22411 invariant load do not generate a vector load from the scalar location.
59fd17e3 22412
595c2679
RB
224132013-01-03 Richard Biener <rguenther@suse.de>
22414
22415 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22416 for not vectorizing.
22417 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22418 not build INDIRECT_REFs, call get_name once only.
22419 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22420 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22421
90bb7d7a
RB
224222013-01-03 Richard Biener <rguenther@suse.de>
22423
22424 PR tree-optimization/55857
22425 * tree-vect-stmts.c (vectorizable_load): Do not setup
22426 re-alignment for invariant loads.
22427
f09b77ca
RB
224282013-01-03 Richard Biener <rguenther@suse.de>
22429
22430 PR lto/55848
22431 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22432 prefer a built-in decl.
22433
3461a16e
JJ
224342013-01-03 Jakub Jelinek <jakub@redhat.com>
22435
df8e2b4f
JJ
22436 * gcc.c (process_command): Update copyright notice dates.
22437 * gcov.c (print_version): Likewise.
22438 * gcov-dump.c (print_version): Likewise.
22439
3461a16e
JJ
22440 PR rtl-optimization/55838
22441 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22442 iv0.step, iv1.step and step.
22443
8b5546d6
JJ
224442013-01-03 Jakub Jelinek <jakub@redhat.com>
22445 Marc Glisse <marc.glisse@inria.fr>
22446
22447 PR tree-optimization/55832
22448 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22449 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22450 integer_{one,zero}_node.
22451
8ab1d2e9
JJ
224522013-01-03 Jakub Jelinek <jakub@redhat.com>
22453
22454 PR debug/54402
22455 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22456 * var-tracking.c (reverse_op): Don't add reverse ops to
22457 VALUEs that have already
0506634a 22458 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22459
5b9ad1d4
GP
224602013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22461
22462 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22463
e25a6711
TJ
224642013-01-02 Teresa Johnson <tejohnson@google.com>
22465
22466 * dumpfile.c (dump_loc): Print filename with location.
22467 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22468 new location_t parameter to emit complete unroll message with
22469 new dump framework.
22470 (canonicalize_loop_induction_variables): Compute loops location
22471 and pass to try_unroll_loop_completely.
22472 * loop-unroll.c (report_unroll_peel): New function.
22473 (peel_loops_completely): Use new dump format with location
22474 for main dumpfile message, and invoke report_unroll_peel on success.
22475 (decide_unrolling_and_peeling): Ditto.
22476 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22477 by report_unroll_peel.
22478 (decide_peel_completely): Ditto.
22479 (decide_unroll_constant_iterations): Ditto.
22480 (decide_unroll_runtime_iterations): Ditto.
22481 (decide_peel_simple): Ditto.
22482 (decide_unroll_stupid): Ditto.
22483 * cfgloop.c (get_loop_location): New function.
22484 * cfgloop.h (get_loop_location): Declare.
22485
77878621
ST
224862013-01-02 Sriraman Tallam <tmsriram@google.com>
22487
22488 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22489 NULL.
22490
9e65d03e
JDA
224912013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22492
22493 PR middle-end/55198
22494 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22495 BLKmode objects when EXPAND_MEMORY is specified.
22496
6a7da30f
ST
224972013-01-02 Sriraman Tallam <tmsriram@google.com>
22498
22499 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22500 in loop predicate.
22501 (fold_builtin_cpu): Do not share cpu model decls across statements.
22502
e78167f2
JM
225032013-01-02 Jason Merrill <jason@redhat.com>
22504
22505 PR c++/55804
22506 * tree.c (build_array_type_1): Revert earlier change.
22507
8c075fb4
YZ
225082013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22509
22510 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22511 "cortex-a57".
22512 * config/aarch64/aarch64-tune.md: Re-generate.
22513
0682ed3e
RB
225142013-01-02 Richard Biener <rguenther@suse.de>
22515
22516 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22517 invariant load do not generate a vector load from the scalar location.
0682ed3e 22518
b8f6a302
RB
225192013-01-02 Richard Biener <rguenther@suse.de>
22520
22521 PR bootstrap/55784
22522 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22523 * configure: Regenerate.
22524
04b80dbb
RS
225252013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22526
22527 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22528 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22529 (expand_builtin_int_roundingfn_2): Keep the original target around
22530 for the fallback case.
22531
635b0b0c
RS
225322013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22533
22534 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22535 to be clear for sign changes.
22536
42d57399
JH
225372013-01-01 Jan Hubicka <jh@suse.cz>
22538
22539 * ipa-inline-analysis.c: Fix formatting.
22540
5bb6669d
JJ
225412013-01-01 Jakub Jelinek <jakub@redhat.com>
22542
22543 PR tree-optimization/55831
22544 * tree-vect-loop.c (get_initial_def_for_induction): Use
22545 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22546\f
86a2db33 22547Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22548
22549Copying and distribution of this file, with or without modification,
22550are permitted in any medium without royalty provided the copyright
22551notice and this notice are preserved.