]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gengtype.c (file_rules): Added rule for *.cc files.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0078f462
BS
12013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
2
3 * gengtype.c (file_rules): Added rule for *.cc files.
4 (get_output_file_with_visibility): Give fatal message when no
5 rules found.
6
d20e48b0
RL
72013-09-20 Renlin Li <renlin.li@arm.com>
8
9 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
10 (aarch64_expand_epilogue): Likewise.
11 (aarch64_legitimize_reload_address): Likewise.
12
59bb1544
BE
132013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
14
15 PR middle-end/57748
16 * expr.c (expand_assignment): Remove misalignp code path.
17
a5430019
MP
182013-09-20 Marek Polacek <polacek@redhat.com>
19
20 PR sanitizer/58413
21 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
22 TYPE_PRECISION. Add asserts.
23
9fed7f3a
RB
242013-09-20 Richard Biener <rguenther@suse.de>
25
26 PR tree-optimization/58453
27 * tree-loop-distribution.c (distribute_loop): Apply the cost
28 model for -ftree-loop-distribute-patterns, too.
29
a820c834
RB
302013-09-20 Richard Biener <rguenther@suse.de>
31
32 PR middle-end/58473
33 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
34 make type comparison less strict.
35
3cbe17f7
AM
362013-09-20 Alan Modra <amodra@gmail.com>
37
38 * configure: Regenerate.
39 * aclocal.m4: Regenerate.
40
87fccdbb
MP
412013-09-20 Marek Polacek <polacek@redhat.com>
42
43 PR other/58467
44 * doc/extend.texi: Document that attribute used is meant to be used
45 on variables with static storage duration.
46
8928eff3
JJ
472013-09-19 Jakub Jelinek <jakub@redhat.com>
48
49 PR tree-optimization/58472
50 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
51 simd_lane_access set inv_p = false.
52 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
53 the simduid magic VAR_DECL.
54
b7b28c53
JH
552013-09-19 Jan Hubicka <jh@suse.cz>
56
57 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
58
83ae86f5
JL
592013-09-17 Jeff Law <law@redhat.com>
60
61 * tree-ssa-dom.c (record_temporary_equivalences): New function
62 split out of dom_opt_dom_walker::after_dom_children.
63 (dom_opt_dom_walker::thread_across_edge): Move common code
64 in here from dom_opt_dom_walker::after_dom_children.
65 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
66
9d532162
JH
672013-09-19 Jan Hubicka <jh@suse.cz>
68
69 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
70 (TARGET_GENERIC): Use PROCESOR_GENERIC
71 (enum processor_type): Unify generic32 and 64.
72 * i386.md (cpu): Likewise.
73 * x86-tune.def (use_leave): Enable for generic32.
74 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
75 * athlon.md: Change generic64 to generic in all occurences.
76 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
77 (ix86_target_macros_internal): Likewise.
78 * driver-i386.c (host_detect_local_cpu): Likewise.
79 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename to ..
80 (generic_memcpy, generic_memset, generic_cost): This one.
81 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
82 (m_GENERIC32, m_GENERIC64): Remove.
83 (m_GENERIC): Turn into one flag.
84 (processor_target): Unify generic tunnings.
85 (ix86_option_override_internal): Replace generic32/64 by generic.
86 (ix86_issue_rate): Likewise.
87 (ix86_adjust_cost): Likewise.
88
188c7d00
JH
892013-09-19 Jan Hubicka <jh@suse.cz>
90
91 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
92 of speculative flag.
93
4befd127
JJ
942013-09-19 Jakub Jelinek <jakub@redhat.com>
95
96 * omp-low.c (expand_omp_sections): Always pass len - 1 to
97 GOMP_sections_start, even if !exit_reachable.
98
8a26ad39
VM
992013-09-18 Vladimir Makarov <vmakarov@redhat.com>
100
101 * lra-constraints.c (need_for_all_save_p): Use macro
102 HARD_REGNO_CALL_PART_CLOBBERED.
103 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
104 set up pseudo conflict hard regs.
105
09487185
MM
1062013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
107
108 PR target/58452
109 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
110 operands.
111
080cbf9e
VM
1122013-09-18 Vladimir Makarov <vmakarov@redhat.com>
113
114 PR rtl-optimization/58438
115 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
116 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
117 from previous subpasses.
118
a0f70fcb
RE
1192013-09-18 Richard Earnshaw <rearnsha@arm.com>
120
121 * arm.c (arm_get_frame_offsets): Validate architecture supports
122 LDRD/STRD before accepting the tuning preference.
123 (arm_expand_prologue): Likewise.
124 (arm_expand_epilogue): Likewise.
125
0547c9b6
RB
1262013-09-18 Richard Biener <rguenther@suse.de>
127
128 PR tree-optimization/58417
129 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
130 have chrecs with symbols defined in the loop as operands.
131 (chrec_fold_multiply): Likewise.
132 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
133 parameters before folding binary operations.
134 (struct instantiate_cache_entry_hasher): Remove.
135 (struct instantiate_cache_type): Use a pointer-map.
136 (instantiate_cache_type::instantiate_cache_type): New function.
137 (instantiate_cache_type::get): Likewise.
138 (instantiate_cache_type::set): Likewise.
139 (instantiate_cache_type::~instantiate_cache_type): Adjust.
140 (get_instantiated_value_entry): Likewise.
141 (global_cache): New global.
142 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
143 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
144 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
145 (instantiate_scev_name): Adjust.
146 (instantiate_scev): Construct global instead of local cache.
147 (resolve_mixers): Likewise.
148
309dc1aa
DM
1492013-09-18 Daniel Morris <danielm@ecoscentric.com>
150 Paolo Carlini <paolo.carlini@oracle.com>
151
152 PR c++/58458
153 * doc/implement-cxx.texi: Fix references to the C++ standards.
154
995a1b4a
JJ
1552013-09-18 Jakub Jelinek <jakub@redhat.com>
156
157 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
158 * tree-vect-data-refs.c (vect_analyze_data_refs): For
159 simd_lane_access drs, update also DR_ALIGNED_TO.
160
ce6923c5
MP
1612013-09-18 Marek Polacek <polacek@redhat.com>
162
163 PR sanitizer/58411
164 * doc/extend.texi: Document no_sanitize_undefined attribute.
165 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
166 no_sanitize_undefined attribute.
167
d30d00a2
NC
1682013-09-18 Nick Clifton <nickc@redhat.com>
169
170 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
171 (ASM_DECLARE_FUNCTION_NAME): Define.
172
4d9192b5
TS
1732013-09-17 Trevor Saunders <tsaunders@mozilla.com>
174
175 * compare-elim.c (find_comparison_dom_walker): New class
176 (find_comparisons_in_bb): Rename to
177 find_comparison_dom_walker::before_dom_children
178 (find_comparisons): Adjust
179 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
180 adjust.
181 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
182 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
183 (init_walk_dominator_tree): Remove declaration.
184 (fini_walk_dominator_tree): Remove declaration.
185 * fwprop.c (single_def_use_dom_walker): New class
186 (single_def_use_enter_block): Convert to
187 single_def_use_dom_walker::before_dom_children.
188 (single_def_use_leave_block): Convert to
189 single_def_use_dom_walker::after_dom_children.
190 (build_single_def_use_links): Adjust.
191 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
192 class.
193 (find_candidates_in_block): Convert to
194 find_candidates_dom_walker::before_dom_children.
195 (execute_strength_reduction): Adjust.
196 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
197 (sese_dom_walker): New class.
198 (sese_dom_walker::sese_dom_walker): New constructor.
199 (sese_dom_walker::~sese_dom_walker): New destructor.
200 (build_sese_conditions_before): Convert to
201 sese_dom_walker::before_dom_children.
202 (build_sese_conditions_after): Convert to
203 sese_dom_walker::after_dom_children.
204 (build_poly_scop): Adjust
205 * tree-into-ssa.c (rewrite_dom_walker): New class
206 (rewrite_enter_block): Convert to
207 rewrite_dom_walker::before_dom_children.
208 (rewrite_leave_block): Convert to
209 rewrite_dom_walker::after_dom_children.
210 (rewrite_update_dom_walker): New class.
211 (rewrite_update_enter_block): Convert to
212 rewrite_update_dom_walker::before_dom_children.
213 (rewrite_update_leave_block): Convert to
214 rewrite_update_dom_walker::after_dom_children.
215 (rewrite_blocks, rewrite_into_ssa): Adjust.
216 (mark_def_dom_walker): New class.
217 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
218 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
219 (mark_def_sites_blocks): Convert to
220 mark_def_dom_walker::before_dom_children.
221 (mark_def_site_blocks): Remove.
222 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
223 (tree_ssa_dominator_optimize): Adjust.
224 (dom_thread_across_edge): Convert to method
225 dom_opt_dom_walker::thread_across_edge.
226 (dom_opt_enter_block): Convert to member function
227 dom_opt_dom_walker::before_dom_children.
228 (dom_opt_leave_block): Convert to member function
229 dom_opt_dom_walker::after_dom_children.
230 * tree-ssa-dse.c (dse_dom_walker): New class.
231 (dse_enter_block): Convert to member function
232 dse_dom_walker::before_dom_children.
233 (tree_ssa_dse): Adjust.
234 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
235 (determine_invariantness_stmt): Convert to method
236 invariantness_dom_walker::before_dom_children.
237 (determine_invariantness): Remove
238 (move_computations_dom_walker): New class.
239 (move_computations_stmt): Convert to method
240 move_computations_dom_walker::before_dom_children.
241 (move_computations, tree_ssa_lim): Adjust.
242 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
243 (nt_init_block): Make method
244 notrappping_dom_walker::before_dom_children.
245 (nt_fini_block): Make
246 method nontrapping_dom_walker::after_dom_children.
247 (get_non_trapping): Adjust.
248 * tree-ssa-pre.c (eliminate_dom_walker): New class.
249 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
250 (eliminate_leave_block): Make method.
251 eliminate_dom_walker::after_dom_children.
252 (eliminate): Adjust
253 * tree-ssa-strlen.c (strlen_dom_walker): New class.
254 (strlen_enter_block): Make method
255 strlen_dom_walker::before_dom_children.
256 (strlen_leave_block): Make
257 method strlen_dom_walker::after_dom_children.
258 (tree_ssa_strlen): Adjust.
259 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
260 (tree_ssa_uncprop): Adjust.
261 (uncprop_leave_block): Make method
262 uncprop_dom_walker::after_dom_children.
263 (uncprop_leave_block): Make method
264 uncprop_dom_walker::before_dom_children.
265
3b3cc26b
BC
2662013-09-18 Bin Cheng <bin.cheng@arm.com>
267
268 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn
269 before branch in same basic block. Check both src and dest of
270 the move insn.
271
b5ba3a9b
NC
2722013-09-17 Nick Clifton <nickc@redhat.com>
273
274 * config/rl78/rl78-real.md (bf): New pattern.
275 (bt): New pattern.
276 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
277 (rl78_print_operand): Do not put a # before a %B.
278 * config/rl78/rl78.opt: Tweak doc strings.
279
09d5094b
DD
2802013-09-17 DJ Delorie <dj@redhat.com>
281
282 * config/rl78/constraints.md (Wcv): Allow up to $r31.
283 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
284 (rl78_option_override): Likewise, if -mallregs.
285 (is_virtual_register): Likewise.
286 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
287 (REGNO_OK_FOR_BASE_P): Likewise.
288 * config/rl78/rl78.opt (-mallregs): New.
289
2ba1dca1
NC
2902013-09-17 Nick Clifton <nickc@redhat.com>
291
292 * config/rl78/rl78.c (need_to_save): Change return type to bool.
293 For interrupt functions: save all call clobbered registers if the
294 interrupt handler is not a leaf function.
295 (rl78_expand_prologue): Always recompute the frame information.
296 For interrupt functions: only select bank 0 if one of the bank 0
297 registers is going to be psuhed.
298
2e7c3f21
DD
2992013-09-17 DJ Delorie <dj@redhat.com>
300
301 * config/rl78/constraints.md: For each W* constraint, rename to C*
302 and create a W* constraint that checks for an optional ES: prefix
303 pattern also.
304 * config/rl78/rl78.md (UNS_ES_ADDR): New.
305 (es_addr): New. Used to wrap far addresses.
306 * config/rl78/rl78-protos.h (rl78_es_addr): New.
307 (rl78_es_base): New.
308 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
309 wrapped far addresses.
310 (rl78_print_operand_1): Unwrap far addresses before processing.
311 (rl78_lo16): Wrap far addresses in unspecs.
312 (rl78_es_addr): New.
313 (rl78_es_base): New.
314 (insn_ok_now): Check for not-yet-wrapped far addresses.
315 (transcode_memory_rtx): Properly re-wrap far addresses.
316
5c26a69a
SH
3172013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
318
319 * config/sparc/t-rtems: Add leon3 multilibs.
320
181f5f3e
CH
3212013-09-17 Cong Hou <congh@google.com>
322
323 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
324 when checking the dot production pattern. The type of rhs operand
325 of multiply is now checked correctly.
326
8d34e421
JL
3272013-09-17 Jeff Law <law@redhat.com>
328
329 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
330 edge implied equivalences into successor phis.
331 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
332 here from tree-ssa-threadedge.c.
333 (mark_threaded_blocks): When threading through a joiner, if both
334 successors of the joiner's clone reach the same block, verify the
335 PHI arguments are equal. If not, cancel the jump threading request.
336 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
337 tree-ssa-threadupdate.c
338 (thread_across_edge): Don't check PHI argument equality when
339 threading through joiner block here.
340
c152901f
AM
3412013-09-17 Andrew MacLeod <amacleod@redhat.com>
342
343 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
344 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
345 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
346 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
347 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
348 (has_undefined_value_p): New. Pass dependant parts of
349 ssa_undefined_value_p.
350 (uninit_undefined_value_p): Use has_undefined_value_p.
351 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
352 make_pass_early_warn_uninitialized): Move from tree-ssa.c
353 * tree-ssa.h: Adjust prototypes
354
b631d45a
JH
3552013-09-17 Jan Hubicka <jh@suse.cz>
356
357 PR middle-end/58332
358 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
359 * ipa-inline.c (can_inline_edge_p): Do not downgrade
360 FUNCTION_NOT_OPTIMIZED.
361 * ipa-inline-analysis.c (compute_inline_parameters): Function
362 not optimized is not inlinable unless it is alwaysinline.
363 (inline_analyze_function): Force calls in not optimized
364 function not inlinable.
365
5b79657a
JH
3662013-09-17 Jan Hubicka <jh@suse.cz>
367
368 PR middle-end/58329
369 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
370 to return NULL.
371 * ipa.c (function_and_variable_visibility): Likewise.
372 * ipa-profile.c (ipa_profile): Likewise.
373
27442c24
BE
3742013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
375
376 PR ipa/58398
377 * cgraph.c (cgraph_function_body_availability): Check for ifunc
378 attribute, and don't inline the resolver in this case.
379
753b9bc3
TJ
3802013-09-17 Teresa Johnson <tejohnson@google.com>
381
382 * coverage.c (get_coverage_counts): Add missing newline.
383
e3d3cfb4
KT
3842013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
385
386 PR tree-optimization/58088
387 * fold-const.c (mask_with_trailing_zeros): New function.
388 (fold_binary_loc): Make sure we don't recurse infinitely
389 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
390 Use mask_with_trailing_zeros where appropriate.
391
9a0ac98f
YR
3922013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
393
394 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
395 of 'prev' var to get better distance estimation.
396
78bbd765
EB
3972013-09-17 Eric Botcazou <ebotcazou@adacore.com>
398
399 * tree-inline.h (struct copy_body_data): Add transform_parameter.
400 * tree-inline.c (is_parameter_of): New predicate.
401 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
402 a parameter has been remapped.
403 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
404 (optimize_inline_calls): Initialize transform_parameter.
405 (copy_gimple_seq_and_replace_locals): Likewise.
406 (tree_function_versioning): Likewise.
407 (maybe_inline_call_in_expr): Likewise.
408
cad055a4
NC
4092013-09-17 Nick Clifton <nickc@redhat.com>
410
411 * config/msp430/msp430-protos.h: Add prototypes for new functions.
412 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
413 interrupt handlers.
414 (is_attr_func): New function.
415 (msp430_is_interrupt_func): New function.
416 (is_naked_func): New function.
417 (is_reentrant_func): New function.
418 (is_critical_func): New function.
419 (msp430_start_function): Add annotations for function attributes.
420 (msp430_attr): New function.
421 (msp430_attribute_table): New.
422 (msp430_function_section): New function.
423 (TARGET_ASM_FUNCTION_SECTION): Define.
424 (msp430_builtin): New enum.
425 (msp430_init_builtins): New function.
426 (msp430_builtin_devl): New function.
427 (msp430_expand_builtin): New function.
428 (TARGET_INIT_BUILTINS): Define.
429 (TARGET_EXPAND_BUILTINS): Define.
430 (TARGET_BUILTIN_DECL): Define.
431 (msp430_expand_prologue): Add support for naked, interrupt,
432 critical and reentrant functions.
433 (msp430_expand_epilogue): Likewise.
434 (msp430_print_operand): Handle 'O' character.
435 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
436 NO_TRAMPOLINES.
437 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
438 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
439 (pushm): Use a 'n' rather than an 'i' constraint.
440 (msp_return): Add generation of the interrupt return instruction.
441 (disable_interrupts): New pattern.
442 (enable_interrupts): New pattern.
443 (push_intr_state): New pattern.
444 (pop_intr_state): New pattern.
445 (bic_SR): New pattern.
446 (bis_SR): New pattern.
447 * doc/extend.texi: Document MSP430 function attributes and builtin
448 functions.
449
deb6c11a
RB
4502013-09-17 Richard Biener <rguenther@suse.de>
451
452 PR tree-optimization/58432
453 * tree-loop-distribution.c (tree_loop_distribution): Also
454 scan PHIs for outside loop uses and seed a partition from them.
455
c068654b
BC
4562013-09-17 Bin Cheng <bin.cheng@arm.com>
457
458 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
459 (restructure_reference): Call backtrace_base_for_ref.
460
567969e4
AM
4612013-09-17 Alan Modra <amodra@gmail.com>
462
463 PR target/57589
464 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
465
5c0029de
DD
4662013-09-16 DJ Delorie <dj@redhat.com>
467
468 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
469 vregs location for RL78/G10.
470 (rl78_expand_prologue): Avoid SEL on G10.
471 (rl78_expand_epilogue): Likewise.
472 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
473 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
474 __RL78_G10__ when appropriate.
475 (ASM_SPEC): Pass -mg10 along to the assembler.
476 * config/rl78/rl78.md (sel_rb): Disable for G10.
477 * config/rl78/rl78.opt: Add -mg10 option.
478 * config/rl78/t-rl78: Add -mg10 multilib.
479
ea0f3e87
XDL
4802013-09-16 Xinliang David Li <davidxl@google.com>
481
482 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
483 * omp-low.c (omp_max_vf): Ditto.
484 (expand_omp_simd): Ditto.
485 * tree-vectorizer.c (vectorize_loops): Ditto.
486 (gate_vect_slp): Ditto.
487 (gate_increase_alignment): Ditto.
488 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
489 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
490 (gate_tree_vectorize): Name change.
491 (tree_vectorize): Ditto.
492 (pass_vectorize::gate): Call new function.
493 (pass_vectorize::execute): Ditto.
494 opts.c: O3 default setting change.
495 (finish_options): Check new flag.
496 * doc/invoke.texi: Document new flags.
497 * common.opt: New flags.
498
4f3da2e5
AS
4992013-09-16 Andreas Schwab <schwab@linux-m68k.org>
500
501 * doc/tm.texi.in (Cond Exec Macros): Remove node.
502 (Condition Code): Don't reference it.
503 * doc/tm.texi: Regenerate.
504
aa940f7c
VM
5052013-09-16 Vladimir Makarov <vmakarov@redhat.com>
506
507 PR middle-end/58418
508 * lra-constraints.c (undo_optional_reloads): Consider all optional
509 reload even if it did not get a hard reg.
510
e645e942
TJ
5112013-09-16 Teresa Johnson <tejohnson@google.com>
512
513 * dumpfile.c (dump_loc): Remove newline emission.
514 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
515 emission to dump_printf_loc calls where missing.
516 (vect_mark_for_runtime_alias_test): Ditto.
517 (vect_analyze_data_ref_dependence): Ditto.
518 (vect_analyze_data_ref_dependences): Ditto.
519 (vect_slp_analyze_data_ref_dependence): Ditto.
520 (vect_slp_analyze_data_ref_dependences): Ditto.
521 (vect_compute_data_ref_alignment): Ditto.
522 (vect_update_misalignment_for_peel): Ditto.
523 (vect_verify_datarefs_alignment): Ditto.
524 (vector_alignment_reachable_p): Ditto.
525 (vect_get_data_access_cost): Ditto.
526 (vect_enhance_data_refs_alignment): Ditto.
527 (vect_find_same_alignment_drs): Ditto.
528 (vect_analyze_data_refs_alignment): Ditto.
529 (vect_analyze_group_access): Ditto.
530 (vect_analyze_data_ref_access): Ditto.
531 (vect_analyze_data_ref_accesses): Ditto.
532 (vect_prune_runtime_alias_test_list): Ditto.
533 (vect_analyze_data_refs): Ditto.
534 (vect_create_addr_base_for_vector_ref): Ditto.
535 (vect_create_data_ref_ptr): Ditto.
536 (vect_grouped_store_supported): Ditto.
537 (vect_grouped_load_supported): Ditto.
538 * value-prof.c (check_counter): Ditto.
539 (check_ic_target): Ditto.
540 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
541 (vect_recog_widen_mult_pattern): Ditto.
542 (vect_recog_widen_sum_pattern): Ditto.
543 (vect_recog_over_widening_pattern): Ditto.
544 (vect_recog_widen_shift_pattern): Ditto.
545 (vect_recog_rotate_pattern): Ditto.
546 (vect_recog_vector_vector_shift_pattern): Ditto.
547 (vect_recog_divmod_pattern): Ditto.
548 (vect_recog_mixed_size_cond_pattern): Ditto.
549 (vect_recog_bool_pattern): Ditto.
550 (vect_pattern_recog_1): Ditto.
551 (vect_pattern_recog): Ditto.
552 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
553 (vect_is_simple_iv_evolution): Ditto.
554 (vect_analyze_scalar_cycles_1): Ditto.
555 (vect_get_loop_niters): Ditto.
556 (vect_analyze_loop_1): Ditto.
557 (vect_analyze_loop_form): Ditto.
558 (vect_analyze_loop_operations): Ditto.
559 (vect_analyze_loop_2): Ditto.
560 (vect_analyze_loop): Ditto.
561 (report_vect_op): Ditto.
562 (vect_is_slp_reduction): Ditto.
563 (vect_is_simple_reduction_1): Ditto.
564 (vect_get_known_peeling_cost): Ditto.
565 (vect_estimate_min_profitable_iters): Ditto.
566 (vect_model_reduction_cost): Ditto.
567 (vect_model_induction_cost): Ditto.
568 (get_initial_def_for_induction): Ditto.
569 (vect_create_epilog_for_reduction): Ditto.
570 (vectorizable_reduction): Ditto.
571 (vectorizable_induction): Ditto.
572 (vectorizable_live_operation): Ditto.
573 (vect_loop_kill_debug_uses): Ditto.
574 (vect_transform_loop): Ditto.
575 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
576 (vect_stmt_relevant_p): Ditto.
577 (process_use): Ditto.
578 (vect_mark_stmts_to_be_vectorized): Ditto.
579 (vect_model_simple_cost): Ditto.
580 (vect_model_promotion_demotion_cost): Ditto.
581 (vect_model_store_cost): Ditto.
582 (vect_get_store_cost): Ditto.
583 (vect_model_load_cost): Ditto.
584 (vect_get_load_cost): Ditto.
585 (vect_init_vector_1): Ditto.
586 (vect_get_vec_def_for_operand): Ditto.
587 (vect_finish_stmt_generation): Ditto.
588 (vectorizable_call): Ditto.
589 (vectorizable_conversion): Ditto.
590 (vectorizable_assignment): Ditto.
591 (vectorizable_shift): Ditto.
592 (vectorizable_operation): Ditto.
593 (vectorizable_store): Ditto.
594 (vectorizable_load): Ditto.
595 (vectorizable_condition): Ditto.
596 (vect_analyze_stmt): Ditto.
597 (vect_transform_stmt): Ditto.
598 (vect_is_simple_use): Ditto.
599 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
600 (vect_can_advance_ivs_p): Ditto.
601 (vect_update_ivs_after_vectorizer): Ditto.
602 (vect_do_peeling_for_loop_bound): Ditto.
603 (vect_gen_niters_for_prolog_loop): Ditto.
604 (vect_update_inits_of_drs): Ditto.
605 (vect_create_cond_for_alias_checks): Ditto.
606 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
607 (vect_build_slp_tree_1): Ditto.
608 (vect_supported_load_permutation_p): Ditto.
609 (vect_analyze_slp_instance): Ditto.
610 (vect_analyze_slp): Ditto.
611 (vect_make_slp_decision): Ditto.
612 (vect_detect_hybrid_slp): Ditto.
613 (vect_bb_vectorization_profitable_p): Ditto.
614 (vect_slp_analyze_bb_1): Ditto.
615 (vect_update_slp_costs_according_to_vf): Ditto.
616 (vect_get_mask_element): Ditto.
617 (vect_transform_slp_perm_load): Ditto.
618 (vect_schedule_slp_instance): Ditto.
619 (vect_schedule_slp): Ditto.
620 (vect_slp_transform_bb): Ditto.
621 * profile.c (read_profile_edge_counts): Ditto.
622 (compute_branch_probabilities): Ditto.
623 * coverage.c (get_coverage_counts): Ditto.
624
46f851f3
DN
6252013-09-16 Diego Novillo <dnovillo@google.com>
626
627 * tree-core.h: Add missing comment lines from refactoring
628 of tree.h.
629
1632a686
JH
6302013-09-16 Jan Hubicka <jh@suse.cz>
631
632 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
633 abstract functions; for static functions check the presence
634 of body.
635
828e70c1
JG
6362013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
637
638 * config/aarch64/aarch64-simd-builtins.def (fma): New.
639 * config/aarch64/aarch64-simd.md
640 (aarch64_mla_elt<mode>): New.
641 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
642 (aarch64_mls_elt<mode>): Likewise.
643 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
644 (aarch64_fma4_elt<mode>): Likewise.
645 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
646 (aarch64_fma4_elt_to_128v2df): Likewise.
647 (aarch64_fma4_elt_to_64df): Likewise.
648 (fnma<mode>4): Likewise.
649 (aarch64_fnma4_elt<mode>): Likewise.
650 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
651 (aarch64_fnma4_elt_to_128v2df): Likewise.
652 (aarch64_fnma4_elt_to_64df): Likewise.
653 * config/aarch64/iterators.md (VDQSF): New.
654 * config/aarch64/arm_neon.h
655 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
656 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
657
779aea46
JG
6582013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
659
660 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
661 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
662 (aarch64_mul3_elt_to_128df): Likewise.
663 (aarch64_mul3_elt_to_64v2df): Likewise.
664 * config/aarch64/iterators.md (VEL): Also handle DFmode.
665 (VMUL): New.
666 (VMUL_CHANGE_NLANES) Likewise.
667 (h_con): Likewise.
668 (f): Likewise.
669 * config/aarch64/arm_neon.h
670 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
671
a407a750
JG
6722013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
673
674 * config/aarch64/arm_neon.h
675 (vcvtx_high_f32_f64): Fix parameters.
676
f77e2d2d 6772013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 678 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 679
a5bd71fa 680 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 681
36875e8f
RB
6822013-09-16 Richard Biener <rguenther@suse.de>
683
684 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
685 (dot_rdg_1): Handle control_dd.
686 (create_edge_for_control_dependence): New function.
687 (create_rdg_edges): Add control dependences if asked for.
688 (build_rdg): Likewise.
689 (generate_loops_for_partition): If there are not necessary
690 control stmts remove all their dependencies.
691 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
692 (distribute_loop): Pass on control dependences.
693 (tree_loop_distribution): Compute control dependences and remove
694 restriction on number of loop nodes.
695
96e24d49
JJ
6962013-09-16 Jakub Jelinek <jakub@redhat.com>
697
698 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
699 for internal calls.
700
40dbb05c
RS
7012013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
702
703 * cse.c (try_const_anchors): Punt on CC modes.
704
97191ad0
JBG
7052013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
706
707 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
708
403a3fb7
JDA
7092013-09-14 John David Anglin <danglin@gcc.gnu.org>
710
711 PR target/58382
712 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
713 calls to word_mode.
714
fb5610fb
IS
7152013-09-14 Iain Sandoe <iain@codesourcery.com>
716
717 PR target/48094
718 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
719 seen.
720 (darwin_objc1_section): Likewise.
fb5610fb
IS
721 (darwin_file_end): Emit Image Info section when required.
722
afdec9bd
JH
7232013-09-14 Jan Hubicka <jh@suse.cz>
724
725 * tree-into-ssa.c (gate_into_ssa): New.
726 (pass_data_build_ssa): Use it.
727 * cgraph.h (expand_thunk): Update prototype.
728 * cgraphunit.c (analyze_function): Expand thunks early.
729 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
730 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
731 set lowered flag; do not add new function.
732 (assemble_thunks_and_aliases): Update.
733 * tree-ssa.c (gate_init_datastructures): New gate.
734 (pass_data_init_datastructures): Use it.
735
492d1e0a
IS
7362013-09-14 Iain Sandoe <iain@codesourcery.com>
737
738 PR target/58269
f77e2d2d 739 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
740 xmm register set described in the psABI.
741
d13c6b70
EG
7422013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
743
f77e2d2d
JBG
744 * dwarf2out.c (should_emit_struct_debug): Add check
745 for type_decl variable is not NULL.
d13c6b70 746
88b0e79e
JC
7472013-09-13 Jacek Caban <jacek@codeweavers.com>
748
749 * config.gcc: Use new winnt-c.c target hooks
750 * config/t-winnt: New file
751 * config/winnt-c.c: New file
752 * doc/tm.texi.in: Document new hook
753 * doc/tm.texi: Regenerated
754
19ba6aab
JH
7552013-09-13 Jan Hubicka <jh@suse.cz>
756
757 PR middle-end/58094
758 * ipa-inline.c (check_callers): New function.
759 (check_caller_edge): Remove.
760 (want_inline_function_to_all_callers_p): Also permit alises that are
761 called dirrectly.
762 (inline_to_all_callers): Terminate the walk when devirtualization
763 introduce new calls.
764
a93c18c8
JH
7652013-09-13 Jan Hubicka <jh@suse.cz>
766
767 * ipa-inline-analysis.c (struct growth_data): Add node.
768 (do_estimate_growth_1): Fix detection of recursion.
769
f3b331d1
JJ
7702013-09-13 Jakub Jelinek <jakub@redhat.com>
771
772 PR tree-optimization/58392
773 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
774 to avoid shadowing of outer loop variable. If
775 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
776 replace_by_duplicate_decl simduid of loops that have it set and
777 set dest_cfun->has_simduid_loops and/or
778 dest_cfun->has_force_vect_loops.
779 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
780 instead of maybe_lookup_decl.
781 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
782 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
783 call. Copy over force_vect and copy and remap simduid. Set
784 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
785 (copy_cfg_body): Remove blocks_to_copy argument. Use
786 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
787 caller. Don't set cfun->has_simduid_loops and/or
788 cfun->has_force_vect_loops here.
789 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
790 caller.
791 (expand_call_inline, tree_function_versioning): Adjust copy_body
792 callers.
793
ae6d0907
MJ
7942013-09-13 Martin Jambor <mjambor@suse.cz>
795
796 PR bootstrap/58388
797 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
798 the assert if the edge was a speculative one.
799
2fd5894f
RB
8002013-09-13 Richard Biener <rguenther@suse.de>
801
802 * tree-data-ref.h (known_dependences_p): Move here ...
803 * tree-loop-distribution.c (known_dependences_p): ... from here.
804 (dump_rdg_component, debug_rdg_component): Remove.
805 (dump_rdg): Adjust.
806 (generate_loops_for_partition): Use gimple_uid instead of
807 relying on matching stmt visit order.
808 (rdg_build_partitions): Take starting stmt vector.
809 (ldist_gen): Merge into ...
810 (distribute_loop): ... this function. Do not compute starting
811 vertices vector.
812 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
813
86eb4bd7
KT
8142013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
815
816 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
817 Set type attribute correctly. Set predicable_short_it attribute.
818 (cmpsi_shiftsi): Remove %? from output template.
819
83a95546
RB
8202013-09-13 Richard Biener <rguenther@suse.de>
821
822 * tree-loop-distribution.c (struct rdg_component,
823 rdg_defs_used_in_other_loops_p, free_rdg_components,
824 rdg_build_components): Remove.
825 (stmts_from_loop): Do not record virtual PHIs.
826 (generate_loops_for_partition): Skip virtual PHIs.
827 (build_rdg_partition_for_component): Rename to ...
828 (build_rdg_partition_for_vertex): ... this and adjust.
829 (rdg_build_partitions): Take a vector of starting vertices
830 instead of components. Remove unnecessary leftover handling.
831 (ldist_gen): Do not build components or record other stores.
832 (distribute_loop): Do not distribute loops containing stmts
833 with side-effects.
834
c0ecf7f1
CB
8352013-09-13 Christian Bruel <christian.bruel@st.com>
836
837 PR target/58314
838 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
839
34f56efc
KT
8402013-09-13 Kai Tietz <ktietz@redhat.com>
841
740f2bf3
KT
842 * config.gcc: Separate cases for mingw and cygwin targets,
843 and add 64-bit cygwin target case.
844
34f56efc
KT
845 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
846 dll-export inline-functions.
847 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
848
849
8502013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
851
852 PR middle-end/58387
853 Revert:
854 2013-09-06 Jeff Law <law@redhat.com>
855
856 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
857 edge implied equivalences into successor phis.
858
aadb52ad
DD
8592013-09-12 DJ Delorie <dj@redhat.com>
860
861 * config/rl78/rl78-virt.md: Change from | to \; for asm line
862 separators.
863
90ae7019
BM
8642013-09-12 Brooks Moses <bmoses@google.com>
865
866 PR driver/42955
867 * Makefile.in: Do not install driver binaries in $(target)/bin.
868
17b2557c
DD
8692013-09-12 DJ Delorie <dj@redhat.com>
870
c5215a9b
DD
871 * config/rl78/rl78.opt (mrelax): New.
872 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
873 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
874
17b2557c
DD
875 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
876 between SP and FP.
877 (rl78_expand_epilogue): Likewise.
878
ecafcf05
VM
8792013-09-12 Vladimir Makarov <vmakarov@redhat.com>
880
881 PR middle-end/58335
84f6d9fa 882 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
883 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
884 pointer elimination with using remove_reg_equal_offset_note.
885
8369f38a
DD
8862013-09-12 DJ Delorie <dj@redhat.com>
887
f6a83b4a
DD
888 * config/msp430/: New port.
889 * config.gcc (msp430): Added.
890 * doc/invoke.texi: Document MSP430 options.
891 * doc/install.texi: Document msp430-elf
892 * doc/md.texi: Document msp430-elf
893 * doc/contrib.texi: Document msp430-elf
894
8369f38a
DD
895 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
896 PSImode.
897
a854f856
MJ
8982013-09-12 Martin Jambor <mjambor@suse.cz>
899
900 PR ipa/58389
901 * ipa-prop.c (remove_described_reference): Give up if the edge in the
902 reference descriptor is NULL.
903 (ipa_edge_removal_hook): If owning a reference descriptor, set its
904 edge to NULL.
905
b12ebd96
AM
9062013-09-12 Andrew MacLeod <amacleod@redhat.com>
907
908 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
909 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
910 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
911 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
912 make_temp_ssa_name): move to tree-ssanames.h
913 * tree-ssa-alias.h: Move prototype.
914 * tree-ssa.h: Include tree-ssanames.h.
915 * tree-ssanames.c (FREE_SSANAMES): Move to here.
916 * tree-ssanames.h: New. Move items from tree-flow*.h
917 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
918
e1fb4ad3
RB
9192013-09-12 Richard Biener <rguenther@suse.de>
920
921 PR tree-optimization/58404
922 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
923 propagate non-invariant addresses into dereferences wrapped
924 in component references.
925
154c9188
RB
9262013-09-12 Richard Biener <rguenther@suse.de>
927
928 PR tree-optimization/58402
929 * passes.def: Move pass_late_warn_uninitialized later.
930
7a300452
AM
9312013-09-12 Andrew MacLeod <amacleod@redhat.com>
932
933 * tree-ssa.h: New. Move content from tree-flow.h and
934 tree-flow-inline.h.
935 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
936 Move prototypes belonging to tree-ssa.c.
f77e2d2d 937 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
938 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
939 tree-ssa.h.
940 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
941 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
942 to...
943 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
944 * tree.h: Move prototype to tree-ssa.h.
945 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
946 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
947 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
948 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
949 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
950 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
951 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
952 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
953 graphite-blocking.c, graphite-clast-to-gimple.c,
954 graphite-dependences.c, graphite-interchange.c,
955 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
956 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
957 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
958 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
959 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
960 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
961 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
962 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
963 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
964 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
965 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
966 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
967 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
968 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
969 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
970 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
971 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
972 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
973 value-prof.c, var-tracking.c,
974 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
975
97463b2b
RB
9762013-09-12 Richard Biener <rguenther@suse.de>
977
978 PR tree-optimization/58396
979 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
980 (build_rdg): Take a loop-nest parameter, fix memleaks.
981 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
982
80ecd89d
YR
9832013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
984
985 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
986 for SLM.
987
893e85fa
CM
9882013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
989
990 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
991 The FMA instruction names should have a 'v' prefix.
992
174ec470
RB
9932013-09-12 Richard Biener <rguenther@suse.de>
994
995 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
996 (dot_rdg): Use popen instead of system in optional code.
997 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
998 (already_processed_vertex_p): Adjust.
999 (has_anti_or_output_dependence, predecessor_has_mem_write,
1000 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
1001 rdg_flag_uses): Remove.
1002 (rdg_flag_vertex): Simplify.
1003 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
1004 remove recursion.
1005 (build_rdg_partition_for_component): Process the first vertex
1006 of a component only.
1007 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
1008
38c89763
AM
10092013-09-12 Alan Modra <amodra@gmail.com>
1010
1011 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
1012
3e3d9d17
DD
10132013-09-11 DJ Delorie <dj@redhat.com>
1014 Nick Clifton <nickc@redhat.com>
1015
1016 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
1017 (rl78_stack_based_mem): New.
1018 * config/rl78/constraints.md (Iv08): New.
1019 (Iv16): New.
1020 (Iv24): New.
1021 (Is09): New.
1022 (Is17): New.
1023 (Is25): New.
1024 (ISsi): New.
1025 (IShi): New.
1026 (ISqi): New.
1027 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
1028 (movhi): Likewise.
1029 (movsi): Change from expand to insn-and-split.
1030 (ashrsi3): Clobber AX.
1031 (lshrsi3): New.
1032 (ashlsi3): New.
1033 (cbranchsi4): New.
1034 * config/rl78/rl78.md (CC_REG): Fix.
1035 (addsi3): Allow memory and immediate operands.
1036 (addsi3_internal): Split into...
1037 (addsi3_internal_virt): ...new, and ...
1038 (addsi3_internal_real): ...new.
1039 (subsi): New.
1040 (subsi3_internal_virt): New.
1041 (subsi3_internal_real): New.
1042 (mulsi3): Add memory operand.
1043 (mulsi3_rl78): Likewise.
1044 (mulsi3_g13): Likewise.
1045 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
1046 (cbranchqi4_real): Add more constraint options.
1047 (cbranchhi4_real): Expand pattern.
1048 (cbranchhi4_real_signed): New.
1049 (cbranchhi4_real_inverted): New.
1050 (cbranchsi4_real_lt): New.
1051 (cbranchsi4_real_ge): New.
1052 (cbranchsi4_real_signed): New.
1053 (cbranchsi4_real): New.
1054 (peephole2): New.
893e85fa
CM
1055 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
1056 constant shifts.
3e3d9d17
DD
1057 (lshrsi3_virt): Likewise.
1058 (ashlsi3_virt): Likewise.
1059 (cbranchqi4_virt_signed): New.
1060 (cbranchhi4_virt_signed): New.
1061 (cbranchsi4_virt): New.
1062 * config/rl78/rl78.c: Whitespace fixes throughout.
1063 (move_elim_pass): New.
1064 (pass_data_rl78_move_elim): New.
1065 (pass_rl78_move_elim): New.
1066 (make_pass_rl78_move_elim): New.
1067 (rl78_devirt_info): Run devirt earlier.
1068 (rl78_move_elim_info): New.
1069 (rl78_asm_file_start): Register it.
1070 (rl78_split_movsi): New.
1071 (rl78_as_legitimate_address): Allow virtual base registers when
1072 appropriate.
1073 (rl78_addr_space_convert): Remove spurious debug stuff.
1074 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
1075 (rl78_print_operand): More cases for not printing '#'.
1076 (rl78_expand_compare): Remove most of the logic.
1077 (content_memory): New.
1078 (clear_content_memory): New.
1079 (get_content_index): New.
1080 (get_content_name): New.
1081 (display_content_memory): New.
1082 (update_content): New.
1083 (record_content): New.
1084 (already_contains): New.
1085 (insn_ok_now): Re-recog insns with virtual registers.
1086 (add_postponed_content_update): New.
1087 (process_postponed_content_update): New.
1088 (gen_and_emit_move): New.
893e85fa
CM
1089 (transcode_memory_rtx): Record new location content.
1090 Use gen_and_emit_move.
3e3d9d17
DD
1091 (force_into_acc): New.
1092 (move_to_acc): Use gen_and_emit_move.
1093 (move_from_acc): Likewise.
1094 (move_acc_to_reg): Likewise.
1095 (move_to_x): Likewise.
1096 (move_to_hl): Likewise.
1097 (move_to_de): Likewise.
1098 (rl78_alloc_physical_registers_op1): Record location content.
1099 (has_constraint): New.
1100 (rl78_alloc_physical_registers_op2): Record location content.
1101 Optimize use of HL.
1102 (rl78_alloc_physical_registers_ro1): Likewise.
1103 (rl78_alloc_physical_registers_cmp): Likewise.
1104 (rl78_alloc_physical_registers_umul): Likewise.
1105 (rl78_alloc_address_registers_macax): New.
1106 (rl78_alloc_physical_registers): Initialize and set location
1107 content memory as needed.
1108 (rl78_reorg): Make sure split2 is called.
1109 (rl78_rtx_costs): New.
1110
088845a5
RS
11112013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
1112
1113 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
1114 for (not (neg ...)) and (neg (not ...)) cases.
1115
5c2961cf
RB
11162013-09-11 Richard Biener <rguenther@suse.de>
1117
1118 PR middle-end/58377
1119 * passes.def: Split critical edges before late uninit warning passes.
1120 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
1121
427e6a14
JJ
11222013-09-11 Jakub Jelinek <jakub@redhat.com>
1123
1124 PR tree-optimization/58385
1125 * fold-const.c (build_range_check): If both low and high are NULL,
1126 use omit_one_operand_loc to preserve exp side-effects.
1127
df45c0cc
KT
11282013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1129
1130 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
1131
80ab0b19
RB
11322013-09-11 Richard Biener <rguenther@suse.de>
1133
1134 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
1135 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
1136 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
1137 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1138 stmts_from_loop, known_dependences_p, build_empty_rdg,
1139 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
1140 * tree-loop-distribution.c: ... here.
1141 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
1142 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
1143 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
1144 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
1145 * tree-loop-distribution.c: ... here.
1146 * tree-loop-distribution.c: Include gimple-pretty-print.h.
1147 (struct partition_s): Add loops member.
1148 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
1149 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
1150 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
1151
85a77221
AI
11522013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1153 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1154 Sergey Lega <sergey.s.lega@intel.com>
1155 Anna Tikhonova <anna.tikhonova@intel.com>
1156 Ilya Tocar <ilya.tocar@intel.com>
1157 Andrey Turetskiy <andrey.turetskiy@intel.com>
1158 Ilya Verbin <ilya.verbin@intel.com>
1159 Kirill Yukhin <kirill.yukhin@intel.com>
1160 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1161
1162 * config/i386/constraints.md (k): New.
1163 (Yk): Ditto.
1164 * config/i386/i386.c (const regclass_map): Add new mask registers.
1165 (dbx_register_map): Ditto.
1166 (dbx64_register_map): Ditto.
1167 (svr4_dbx_register_map): Ditto.
1168 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
1169 disabled.
1170 (ix86_preferred_reload_class): Disable constants for mask registers.
1171 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
1172 (ix86_hard_regno_mode_ok): Support new mask registers.
1173 (x86_order_regs_for_local_alloc): Ditto.
1174 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
1175 (FIXED_REGISTERS): Add new mask registers.
1176 (CALL_USED_REGISTERS): Ditto.
1177 (REG_ALLOC_ORDER): Ditto.
1178 (VALID_MASK_REG_MODE): New.
1179 (FIRST_MASK_REG): Ditto.
1180 (LAST_MASK_REG): Ditto.
1181 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
1182 (MAYBE_MASK_CLASS_P): New.
1183 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
1184 (REG_CLASS_CONTENTS): Ditto.
1185 (MASK_REGNO_P): New.
1186 (ANY_MASK_REG_P): Ditto.
1187 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
1188 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
1189 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
1190 mask registers.
85a77221
AI
1191 (attribute "type"): Add mskmov, msklog.
1192 (attribute "length_immediate"): Support them.
1193 (attribute "memory"): Ditto.
1194 (attribute "prefix_0f"): Ditto.
1195 (*movhi_internal): Support new mask registers.
1196 (*movqi_internal): Ditto.
1197 (define_split): Split out clobber pattern is a logic
1198 insn on mask registers.
1199 (*k<logic><mode>): New.
1200 (*andhi_1): Extend to support mask regs.
1201 (*andqi_1): Extend to support mask regs.
1202 (kandn<mode>): New.
1203 (define_split): Split and-not to and and not if operands
1204 are not mask regs.
1205 (*<code><mode>_1): Separate HI mode to new pattern...
1206 (*<code>hi_1): This.
1207 (*<code>qi_1): Extend to support mask regs.
1208 (kxnor<mode>): New.
1209 (kortestzhi): Ditto.
1210 (kortestchi): Ditto.
1211 (kunpckhi): Ditto.
1212 (*one_cmpl<mode>2_1): Remove HImode and handle it...
1213 (*one_cmplhi2_1): ...Here, now with mask registers support.
1214 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
1215 (HI/QImode arithmetics splitter): Don't split if mask registers
1216 are used.
85a77221
AI
1217 (HI/QImode not splitter): Ditto.
1218 * config/i386/predicated.md (mask_reg_operand): New.
1219 (general_reg_operand): Ditto.
1220
7e570821
AI
12212013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1222
1223 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
1224 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
1225
9e1376e9
JL
12262013-09-10 Jeff Law <law@redhat.com>
1227
1228 PR tree-optimization/58380
1229 * tree-ssa-threadupdate.c (thread_block): Recognize another case
1230 of threading through a buried loop header.
1231
1232 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
1233 return value for single successor case.
1234
5bbcb888
JH
12352013-09-10 Jan Hubicka <jh@suse.cz>
1236
1237 * ipa-devirt.c (ipa_devirt): Enable with LTO.
1238
d742ff4b
RE
12392013-09-10 Richard Earnshaw <rearnsha@arm.com>
1240
1241 PR target/58361
1242 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
1243 support conditional execution.
1244 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
1245
b0681c9e
VM
12462013-09-10 Vladimir Makarov <vmakarov@redhat.com>
1247
1248 * lra.c (lra): Clear lra_optional_reload_pseudos before every
1249 constraint pass.
f77e2d2d
JBG
1250 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
1251 Check destination too to check move insn.
b0681c9e 1252 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
1253 changed its allocation and the optional reload was inherited on last
1254 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
1255 (lra_undo_inheritance): Add check that inherited pseudo still in
1256 memory.
1257
c9b1c957
JG
12582013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
1259
1260 * config/aarch64/aarch64.md (generic_sched): New.
1261 * config/aarch64/aarch64-generic.md (load): Make conditional
1262 on generic_sched attribute.
1263 (nonload): Likewise.
1264
82d618d3
JH
12652013-09-10 Jan Hubicka <jh@suse.cz>
1266
1267 * lto-cgraph.c: Include ipa-utils.h.
1268 (compute_ltrans_boundary): Also add possible targets into the boundary.
1269
668b6894
JH
12702013-09-10 Jan Hubicka <jh@suse.cz>
1271
1272 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
1273 VAR_DECL of vtable rather than full expression.
1274
4f90d3e0
JH
12752013-09-10 Jan Hubicka <jh@suse.cz>
1276 Paolo Carlini <paolo.carlini@oracle.com>
1277
1278 * cgraphunit.c (analyze_functions): Save input_location, set it
1279 to UNKNOWN_LOCATION and restore it at the end.
1280
39e87baf
MJ
12812013-09-10 Martin Jambor <mjambor@suse.cz>
1282
1283 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
1284 represented by a thunk.
1285
581aedec
JL
12862013-09-10 Jeff Law <law@redhat.com>
1287
1288 PR tree-optimization/58343
1289 * tree-ssa-threadupdate.c (thread_block): Identify and disable
1290 jump threading requests through loop headers buried in the middle
1291 of a jump threading path.
1292
1293 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
1294 in return value/type.
1295
84cf4ab6
JJ
12962013-09-10 Jakub Jelinek <jakub@redhat.com>
1297
1298 PR rtl-optimization/58365
1299 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
1300 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
1301 it differs.
1302
447dd906
RB
13032013-09-10 Richard Biener <rguenther@suse.de>
1304
1305 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
1306 * tree-data-ref.c (create_rdg_vertices): Collect all data
1307 references, signal failure to the caller, use data-ref API.
893e85fa
CM
1308 (build_rdg): Compute data references only once. Maintain lifetime
1309 of data references and data dependences from within RDG.
447dd906
RB
1310 (free_rdg): Free dependence relations.
1311 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
1312 inventing extra dependences.
1313 (distribute_loop): Update for RDG API changes.
1314
f14a7324
KT
13152013-09-10 Kai Tietz <ktietz@redhat.com>
1316
1317 * doc/invoke.texi (fms-extensions): Document changed
1318 behavior for ms-abi targets.
1319 * config/i386/i386.c (ix86_option_override_internal):
1320 Set default value of option -fms-extension for ms-abi targets.
1321
ff131f26
MZ
13222013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1323
1324 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
1325
33115a2c
AM
13262013-09-10 Alan Modra <amodra@gmail.com>
1327
1328 PR target/58330
1329 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
1330
b6872a13
AM
13312013-09-10 Alan Modra <amodra@gmail.com>
1332
1333 * config/rs6000/predicates.md (add_cint_operand): New.
1334 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
1335 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
1336 using add_cint_operand.
1337 (largetoc_high_plus_aix): Likewise.
1338
28fd0ba2
JJ
13392013-09-09 Jakub Jelinek <jakub@redhat.com>
1340
1341 PR tree-optimization/58364
1342 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
1343 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
1344 the current range can't be an unconditional true or false.
1345
552d99fe
JG
13462013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1347
1348 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
1349
f43245d1
UB
13502013-09-09 Uros Bizjak <ubizjak@gmail.com>
1351
1352 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1353
c9b0866a
PC
13542013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1355
1356 PR c++/43452
1357 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1358
78d8b9f0
IB
13592013-09-09 Ian Bolton <ian.bolton@arm.com>
1360
1361 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1362 NO_REGS for immediate that can't be moved directly into FP_REGS.
1363
274b2532
KT
13642013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1365
1366 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1367 comparison with negated operand.
c9b0866a
PC
1368 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1369 RTL form.
274b2532 1370
467a3558
RB
13712013-09-09 Richard Biener <rguenther@suse.de>
1372
1373 PR middle-end/58326
1374 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1375 of a subloop record all its block as affecting loop-closed SSA form.
1376
088c5368
RS
13772013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1378
1379 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1380 of an rtx/bitpos pair.
1381 (store_fixed_bit_field): Update accordingly.
1382
69db2d57
RS
13832013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1384
1385 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1386 GEN_INT.
1387 * builtins.c (expand_errno_check): Likewise.
1388 * dwarf2cfi.c (init_return_column_size): Likewise.
1389 * except.c (sjlj_mark_call_sites): Likewise.
1390 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1391 * lra-constraints.c (emit_inc): Likewise.
1392 * ree.c (combine_set_extension): Likewise.
1393 * regmove.c (fixup_match_2): Likewise.
1394 * reload1.c (inc_for_reload): Likewise.
1395
69a59f0f
RS
13962013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1397
1398 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1399 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1400 Use gen_int_mode with the mode of the associated simplify_* call.
1401 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1402 * expmed.c (expand_shift_1): Likewise.
1403 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1404 * loop-iv.c (iv_number_of_iterations): Likewise.
1405 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1406 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1407
2f1cd2eb
RS
14082013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1409
1410 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1411 of the associated expand_* call.
1412 (asan_emit_stack_protection): Likewise.
1413 * builtins.c (round_trampoline_addr): Likewise.
1414 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1415 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1416 (emit_store_flag): Likewise.
1417 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1418 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1419 Likewise.
1420 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1421 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1422 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1423 * modulo-sched.c (generate_prolog_epilog): Likewise.
1424 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1425 (expand_ctz, expand_ffs, expand_unop): Likewise.
1426
4789c0ce
RS
14272013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1428
1429 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1430 of the associated gen_rtx_* call.
1431 * caller-save.c (init_caller_save): Likewise.
1432 * combine.c (find_split_point, make_extraction): Likewise.
1433 (make_compound_operation): Likewise.
1434 * dwarf2out.c (mem_loc_descriptor): Likewise.
1435 * explow.c (plus_constant, probe_stack_range): Likewise.
1436 * expmed.c (expand_mult_const): Likewise.
1437 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1438 * reload1.c (init_reload): Likewise.
1439 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1440 * var-tracking.c (adjust_mems): Likewise.
1441 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1442 rather than gen_rtx_fmt_ee.
1443
a811f7cb
JH
14442013-09-09 Jan Hubicka <jh@suse.cz>
1445
1446 PR middle-end/58294
1447 * value-prof.c (gimple_ic): Copy also abnormal edges.
1448
dcad1dd3
RS
14492013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1450
1451 * asan.c (asan_shadow_cst): Use gen_int_mode.
1452
daf5c770
JH
14532013-09-08 Jan Hubicka <jh@suse.cz>
1454
1455 * ipa-profile.c: Add toplevel comment.
1456 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1457 (contains_hot_call_p): New function.
1458 (ipa_propagate_frequency): Set frequencies based on counts when
1459 profile is read.
1460 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1461 profile; do not tamper with profile after inlining if it is read.
1462
a12cd2db
JH
14632013-09-08 Jan Hubicka <jh@suse.cz>
1464
1465 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1466 speculative edges.
1467
856a1588
JH
14682013-09-08 Jan Hubicka <jh@suse.cz>
1469
1470 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1471 summary generation.
1472
4f4b0b73
JL
14732013-09-08 Jeff Law <law@redhat.com>
1474
1475 PR bootstrap/58340
1476 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1477 of 'found'.
1478
cc4029ee
AK
14792013-09-08 Andi Kleen <ak@linux.intel.com>
1480
1481 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1482
7b395ddd
JH
14832013-09-08 Jan Hubicka <jh@suse.cz>
1484
1485 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1486
c34c46dd
RS
14872013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1488
1489 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1490 for non-debug insns.
1491 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1492 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1493 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1494 accordingly.
1495
3462aa02
JH
14962013-09-08 Jan Hubicka <jh@suse.cz>
1497
1498 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1499 targets and devirtualize to BUILT_IN_UNREACHABLE.
1500 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1501 * ipa.c (walk_polymorphic_call_targets): New function.
1502 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1503 functions; use the new timevar.
1504 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1505 was removed from the program.
1506 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1507 not consider it in the walk when its vtable is dead.
1508 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1509 record_binfo.
1510 (devirt_variable_node_removal_hook): New function.
1511 (possible_polymorphic_call_targets): Also register
1512 devirt_variable_node_removal_hook.
1513 (ipa_devirt): Do not do non-speculative devirtualization.
1514 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1515
26e5b0fd
JH
15162013-09-08 Jan Hubicka <jh@suse.cz>
1517
1518 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1519 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1520 varpool_remove_variable_insertion_hook): Declare.
1521 * varpool.c (varpool_node_hook_list): New structure.
1522 (first_varpool_node_removal_hook,
1523 first_varpool_variable_insertion_hook): New variables.
1524 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1525 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1526 varpool_remove_variable_insertion_hook,
1527 varpool_call_variable_insertion_hooks): New functions.
1528 (varpool_remove_node): Use it.
1529
97f1f314 15302013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1531
97f1f314
PC
1532 PR c++/54941
1533 * diagnostic.c (diagnostic_build_prefix): When s.file is
1534 "<built-in>" don't output line and column numbers.
6df2ca09 1535
bcb650cb
JH
15362013-09-06 Jan Hubicka <jh@suse.cz>
1537
1538 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1539 * lto-streamer-out.c: Stream thunks, too.
1540 * lto-streamer-in.c (input_function): Pop cfun here
1541 (lto_read_body): Instead of here.
1542
87f3fea8
CT
15432013-09-06 Caroline Tice <cmtice@google.com>
1544
1545 * doc/install.texi: Add documentation for the --enable-vtable-verify
1546 and the --disable-libvtv configure options.
1547
5e8d9b45
JL
15482013-09-06 Jeff Law <law@redhat.com>
1549
1550 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1551 edge implied equivalences into successor phis.
1552
3a001aff
JR
15532013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1554
1555 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1556
15572013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1558
1559 * resource.c (mark_target_live_regs): Compute resources taking
1560 into account if a call is predicated or not.
1561
2c641f8b
EB
15622013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1563
1564 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1565 the compiler in the function names.
1566
a81b0a3d
JH
15672013-09-06 Jan Hubicka <jh@suse.cz>
1568
1569 PR middle-end/58094
1570 * ipa-inline.c (has_caller_p): New function.
1571 (want_inline_function_to_all_callers_p): Use it.
1572 (sum_callers, inline_to_all_callers): Break out from ...
1573 (ipa_inline): ... here.
1574
68e4ca7e
JH
15752013-09-06 Jan Hubicka <jh@suse.cz>
1576
2c641f8b
EB
1577 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1578 only when AVX is enabled.
68e4ca7e 1579
3c73e2fe
JG
15802013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1581
1582 * config/aarch64/aarch64.md
1583 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1584 is fpsimd_<load/store>2.
1585 (load_pair<mode>): Likewise.
1586 (store_pair<mode>): Likewise.
1587
8c48eecd
JG
15882013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1589
1590 * config/arm/types.md (type): Add "mrs" type.
1591 * config/aarch64/aarch64.md
1592 (aarch64_load_tp_hard): Make type "mrs".
1593 * config/arm/arm.md
1594 (load_tp_hard): Make type "mrs".
1595 * config/arm/cortex-a15.md: Update with new attributes.
1596 * config/arm/cortex-a5.md: Update with new attributes.
1597 * config/arm/cortex-a53.md: Update with new attributes.
1598 * config/arm/cortex-a7.md: Update with new attributes.
1599 * config/arm/cortex-a8.md: Update with new attributes.
1600 * config/arm/cortex-a9.md: Update with new attributes.
1601 * config/arm/cortex-m4.md: Update with new attributes.
1602 * config/arm/cortex-r4.md: Update with new attributes.
1603 * config/arm/fa526.md: Update with new attributes.
1604 * config/arm/fa606te.md: Update with new attributes.
1605 * config/arm/fa626te.md: Update with new attributes.
1606 * config/arm/fa726te.md: Update with new attributes.
1607
9ea187a5
JG
16082013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1609
1610 * config/aarch64/aarch64.md
1611 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1612 (*movtf_aarch64): Likewise.
1613 * config/arm/arm.md
1614 (thumb1_movdi_insn): Use "multiple" for type where more than one
1615 instruction is used for a move.
1616 (*arm32_movhf): Likewise.
1617 (*thumb_movdf_insn): Likewise.
1618
292b89b3
JG
16192013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1620
1621 * config/arm/types.md (type): Rename fcpys to fmov.
1622 * config/arm/vfp.md
1623 (*arm_movsi_vfp): Rename type fcpys as fmov.
1624 (*thumb2_movsi_vfp): Likewise
1625 (*movhf_vfp_neon): Likewise
1626 (*movhf_vfp): Likewise
1627 (*movsf_vfp): Likewise
1628 (*thumb2_movsf_vfp): Likewise
1629 (*movsfcc_vfp): Likewise
1630 (*thumb2_movsfcc_vfp): Likewise
1631 * config/aarch64/aarch64-simd.md
1632 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1633 * config/aarch64/aarch64.md
1634 (*movsi_aarch64): Replace type mov_reg with fmovs.
1635 (*movdi_aarch64): Likewise
1636 (*movsf_aarch64): Likewise
1637 (*movdf_aarch64): Likewise
1638 * config/arm/arm.c
1639 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1640 * config/arm/iwmmxt.md
1641 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1642 * config/arm/arm1020e.md: Update with new attributes.
1643 * config/arm/cortex-a15-neon.md: Update with new attributes.
1644 * config/arm/cortex-a5.md: Update with new attributes.
1645 * config/arm/cortex-a53.md: Update with new attributes.
1646 * config/arm/cortex-a7.md: Update with new attributes.
1647 * config/arm/cortex-a8-neon.md: Update with new attributes.
1648 * config/arm/cortex-a9.md: Update with new attributes.
1649 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1650 * config/arm/cortex-r4f.md: Update with new attributes.
1651 * config/arm/marvell-pj4.md: Update with new attributes.
1652 * config/arm/vfp11.md: Update with new attributes.
1653
6a24a83e
JG
16542013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1655
1656 * config/aarch64/aarch64.md
1657 (*madd<mode>): Fix type attribute.
1658 (*maddsi_uxtw): Likewise.
1659 (*msub<mode>): Likewise.
1660 (*msubsi_uxtw): Likewise.
1661 (<su_optab>maddsidi4): Likewise.
1662 (<su_optab>msubsidi4): Likewise.
1663
b86923f0
JG
16642013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1665
1666 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1667 * config/arm/arm.md (core_cycles): Remove fdiv.
1668 * config/arm/vfp.md:
1669 (*sqrtsf2_vfp): Update for attribute changes.
1670 (*sqrtdf2_vfp): Likewise.
1671 * config/aarch64/aarch64.md:
1672 (sqrt<mode>2): Update for attribute changes.
1673 * config/arm/arm1020e.md: Update with new attributes.
1674 * config/arm/cortex-a15-neon.md: Update with new attributes.
1675 * config/arm/cortex-a5.md: Update with new attributes.
1676 * config/arm/cortex-a53.md: Update with new attributes.
1677 * config/arm/cortex-a7.md: Update with new attributes.
1678 * config/arm/cortex-a8-neon.md: Update with new attributes.
1679 * config/arm/cortex-a9.md: Update with new attributes.
1680 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1681 * config/arm/cortex-r4f.md: Update with new attributes.
1682 * config/arm/marvell-pj4.md: Update with new attributes.
1683 * config/arm/vfp11.md: Update with new attributes.
1684
7b49c9e1
JG
16852013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1686
1687 * config/arm/types.md
1688 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
1689 * config/aarch64/aarch64.md
1690 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
1691 new attributes.
1692 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
1693 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
1694 (float<GPI:mode><GPF:mode>2): Likewise.
1695 * config/arm/vfp.md
1696 (*truncsisf2_vfp): Update with new attributes.
1697 (*truncsidf2_vfp): Likewise.
1698 (fixuns_truncsfsi2): Likewise.
1699 (fixuns_truncdfsi2): Likewise.
1700 (*floatsisf2_vfp): Likewise.
1701 (*floatsidf2_vfp): Likewise.
1702 (floatunssisf2): Likewise.
1703 (floatunssidf2): Likewise.
1704 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
1705 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
1706 * config/arm/arm1020e.md: Update with new attributes.
1707 * config/arm/cortex-a15-neon.md: Update with new attributes.
1708 * config/arm/cortex-a5.md: Update with new attributes.
1709 * config/arm/cortex-a53.md: Update with new attributes.
1710 * config/arm/cortex-a7.md: Update with new attributes.
1711 * config/arm/cortex-a8-neon.md: Update with new attributes.
1712 * config/arm/cortex-a9.md: Update with new attributes.
1713 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1714 * config/arm/cortex-r4f.md: Update with new attributes.
1715 * config/arm/marvell-pj4.md: Update with new attributes.
1716 * config/arm/vfp11.md: Update with new attributes.
1717
e7df8af8
JG
17182013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1719
1720 * config/aarch64/arm_neon.h
1721 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
1722 (vqtbx<1,2,3,4><q>_s8): Likewise.
1723
594726e4
JG
17242013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1725
f43245d1
UB
1726 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
1727 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
1728 (add<mode>3): Add type attribute.
1729 (add<mode>3): Likewise.
1730 (usadd<mode>3): Likewise.
1731 (ssadd<mode>3): Likewise.
1732 (sub<mode>3): Likewise.
1733 (sub<mode>3): Likewise.
1734 (ussub<mode>3): Likewise.
1735 (sssub<mode>3): Likewise.
1736 (ssmulsa3): Likewise.
1737 (usmulusa3): Likewise.
1738 (arm_usatsihi): Likewise.
1739 * config/arm/vfp.md
1740 (*movdi_vfp): Add types for all instructions.
1741 (*movdi_vfp_cortexa8): Likewise.
1742 (*movhf_vfp_neon): Likewise.
1743 (*movhf_vfp): Likewise.
1744 (*movdf_vfp): Likewise.
1745 (*thumb2_movdf_vfp): Likewise.
1746 (*thumb2_movdfcc_vfp): Likewise.
1747 * config/arm/arm.md: Add type attribute to all insn patterns.
1748 (*thumb1_adddi3): Add type attribute.
1749 (*arm_adddi3): Likewise.
1750 (*adddi_sesidi_di): Likewise.
1751 (*adddi_zesidi_di): Likewise.
1752 (*thumb1_addsi3): Likewise.
1753 (addsi3_compare0): Likewise.
1754 (*addsi3_compare0_scratch): Likewise.
1755 (*compare_negsi_si): Likewise.
1756 (cmpsi2_addneg): Likewise.
1757 (*addsi3_carryin_<optab>): Likewise.
1758 (*addsi3_carryin_alt2_<optab>): Likewise.
1759 (*addsi3_carryin_clobercc_<optab>): Likewise.
1760 (*subsi3_carryin): Likewise.
1761 (*subsi3_carryin_const): Likewise.
1762 (*subsi3_carryin_compare): Likewise.
1763 (*subsi3_carryin_compare_const): Likewise.
1764 (*arm_subdi3): Likewise.
1765 (*thumb_subdi3): Likewise.
1766 (*subdi_di_zesidi): Likewise.
1767 (*subdi_di_sesidi): Likewise.
1768 (*subdi_zesidi_di): Likewise.
1769 (*subdi_sesidi_di): Likewise.
1770 (*subdi_zesidi_ze): Likewise.
1771 (thumb1_subsi3_insn): Likewise.
1772 (*arm_subsi3_insn): Likewise.
1773 (*anddi3_insn): Likewise.
1774 (*anddi_zesidi_di): Likewise.
1775 (*anddi_sesdi_di): Likewise.
1776 (*ne_zeroextracts): Likewise.
1777 (*ne_zeroextracts): Likewise.
1778 (*ite_ne_zeroextr): Likewise.
1779 (*ite_ne_zeroextr): Likewise.
1780 (*anddi_notdi_di): Likewise.
1781 (*anddi_notzesidi): Likewise.
1782 (*anddi_notsesidi): Likewise.
1783 (andsi_notsi_si): Likewise.
1784 (thumb1_bicsi3): Likewise.
1785 (*iordi3_insn): Likewise.
1786 (*iordi_zesidi_di): Likewise.
1787 (*iordi_sesidi_di): Likewise.
1788 (*thumb1_iorsi3_insn): Likewise.
1789 (*xordi3_insn): Likewise.
1790 (*xordi_zesidi_di): Likewise.
1791 (*xordi_sesidi_di): Likewise.
1792 (*arm_xorsi3): Likewise.
1793 (*andsi_iorsi3_no): Likewise.
1794 (*smax_0): Likewise.
1795 (*smax_m1): Likewise.
1796 (*arm_smax_insn): Likewise.
1797 (*smin_0): Likewise.
1798 (*arm_smin_insn): Likewise.
1799 (*arm_umaxsi3): Likewise.
1800 (*arm_uminsi3): Likewise.
1801 (*minmax_arithsi): Likewise.
1802 (*minmax_arithsi_): Likewise.
1803 (*satsi_<SAT:code>): Likewise.
1804 (arm_ashldi3_1bit): Likewise.
1805 (arm_ashrdi3_1bit): Likewise.
1806 (arm_lshrdi3_1bit): Likewise.
1807 (*arm_negdi2): Likewise.
1808 (*thumb1_negdi2): Likewise.
1809 (*arm_negsi2): Likewise.
1810 (*thumb1_negsi2): Likewise.
1811 (*negdi_extendsid): Likewise.
1812 (*negdi_zero_extend): Likewise.
1813 (*arm_abssi2): Likewise.
1814 (*thumb1_abssi2): Likewise.
1815 (*arm_neg_abssi2): Likewise.
1816 (*thumb1_neg_abss): Likewise.
1817 (one_cmpldi2): Likewise.
1818 (extend<mode>di2): Likewise.
1819 (*compareqi_eq0): Likewise.
1820 (*arm_extendhisi2addsi): Likewise.
1821 (*arm_movdi): Likewise.
1822 (*thumb1_movdi_insn): Likewise.
1823 (*arm_movt): Likewise.
1824 (*thumb1_movsi_insn): Likewise.
1825 (pic_add_dot_plus_four): Likewise.
1826 (pic_add_dot_plus_eight): Likewise.
1827 (tls_load_dot_plus_eight): Likewise.
1828 (*thumb1_movhi_insn): Likewise.
1829 (*thumb1_movsf_insn): Likewise.
1830 (*movdf_soft_insn): Likewise.
1831 (*thumb_movdf_insn): Likewise.
1832 (cbranchsi4_insn): Likewise.
1833 (cbranchsi4_scratch): Likewise.
1834 (*negated_cbranchsi4): Likewise.
1835 (*tbit_cbranch): Likewise.
1836 (*tlobits_cbranch): Likewise.
1837 (*tstsi3_cbranch): Likewise.
1838 (*cbranchne_decr1): Likewise.
1839 (*addsi3_cbranch): Likewise.
1840 (*addsi3_cbranch_scratch): Likewise.
1841 (*arm_cmpdi_insn): Likewise.
1842 (*arm_cmpdi_unsig): Likewise.
1843 (*arm_cmpdi_zero): Likewise.
1844 (*thumb_cmpdi_zero): Likewise.
1845 (*deleted_compare): Likewise.
1846 (*mov_scc): Likewise.
1847 (*mov_negscc): Likewise.
1848 (*mov_notscc): Likewise.
1849 (*cstoresi_eq0_thumb1_insn): Likewise.
1850 (cstoresi_nltu_thumb1): Likewise.
1851 (cstoresi_ltu_thu): Likewise.
1852 (thumb1_addsi3_addgeu): Likewise.
1853 (*arm_jump): Likewise.
1854 (*thumb_jump): Likewise.
1855 (*check_arch2): Likewise.
1856 (arm_casesi_internal): Likewise.
1857 (thumb1_casesi_dispatch): Likewise.
1858 (*arm_indirect_jump): Likewise.
1859 (*thumb1_indirect_jump): Likewise.
1860 (nop): Likewise.
1861 (*and_scc): Likewise.
1862 (*ior_scc): Likewise.
1863 (*compare_scc): Likewise.
1864 (*cond_move): Likewise.
1865 (*cond_arith): Likewise.
1866 (*cond_sub): Likewise.
1867 (*cmp_ite0): Likewise.
1868 (*cmp_ite1): Likewise.
1869 (*cmp_and): Likewise.
1870 (*cmp_ior): Likewise.
1871 (*ior_scc_scc): Likewise.
1872 (*ior_scc_scc_cmp): Likewise.
1873 (*and_scc_scc): Likewise.
1874 (*and_scc_scc_cmp): Likewise.
1875 (*and_scc_scc_nod): Likewise.
1876 (*negscc): Likewise.
1877 (movcond_addsi): Likewise.
1878 (movcond): Likewise.
1879 (*ifcompare_plus_move): Likewise.
1880 (*if_plus_move): Likewise.
1881 (*ifcompare_move_plus): Likewise.
1882 (*if_move_plus): Likewise.
1883 (*ifcompare_arith_arith): Likewise.
1884 (*if_arith_arith): Likewise.
1885 (*ifcompare_arith_move): Likewise.
1886 (*if_arith_move): Likewise.
1887 (*ifcompare_move_arith): Likewise.
1888 (*if_move_arith): Likewise.
1889 (*ifcompare_move_not): Likewise.
1890 (*if_move_not): Likewise.
1891 (*ifcompare_not_move): Likewise.
1892 (*if_not_move): Likewise.
1893 (*ifcompare_shift_move): Likewise.
1894 (*if_shift_move): Likewise.
1895 (*ifcompare_move_shift): Likewise.
1896 (*if_move_shift): Likewise.
1897 (*ifcompare_shift_shift): Likewise.
1898 (*ifcompare_not_arith): Likewise.
1899 (*ifcompare_arith_not): Likewise.
1900 (*if_arith_not): Likewise.
1901 (*ifcompare_neg_move): Likewise.
1902 (*if_neg_move): Likewise.
1903 (*ifcompare_move_neg): Likewise.
1904 (*if_move_neg): Likewise.
1905 (prologue_thumb1_interwork): Likewise.
1906 (*cond_move_not): Likewise.
1907 (*sign_extract_onebit): Likewise.
1908 (*not_signextract_onebit): Likewise.
1909 (stack_tie): Likewise.
1910 (align_4): Likewise.
1911 (align_8): Likewise.
1912 (consttable_end): Likewise.
1913 (consttable_1): Likewise.
1914 (consttable_2): Likewise.
1915 (consttable_4): Likewise.
1916 (consttable_8): Likewise.
1917 (consttable_16): Likewise.
1918 (*thumb1_tablejump): Likewise.
1919 (prefetch): Likewise.
1920 (force_register_use): Likewise.
1921 (thumb_eh_return): Likewise.
1922 (load_tp_hard): Likewise.
1923 (load_tp_soft): Likewise.
1924 (tlscall): Likewise.
1925 (*arm_movtas_ze): Likewise.
1926 (*arm_rev): Likewise.
1927 (*arm_revsh): Likewise.
1928 (*arm_rev16): Likewise.
1929 * config/arm/thumb2.md
1930 (*thumb2_smaxsi3): Likewise.
1931 (*thumb2_sminsi3): Likewise.
1932 (*thumb32_umaxsi3): Likewise.
1933 (*thumb2_uminsi3): Likewise.
1934 (*thumb2_negdi2): Likewise.
1935 (*thumb2_abssi2): Likewise.
1936 (*thumb2_neg_abss): Likewise.
1937 (*thumb2_movsi_insn): Likewise.
1938 (tls_load_dot_plus_four): Likewise.
1939 (*thumb2_movhi_insn): Likewise.
1940 (*thumb2_mov_scc): Likewise.
1941 (*thumb2_mov_negs): Likewise.
1942 (*thumb2_mov_negs): Likewise.
1943 (*thumb2_mov_nots): Likewise.
1944 (*thumb2_mov_nots): Likewise.
1945 (*thumb2_movsicc_): Likewise.
1946 (*thumb2_movsfcc_soft_insn): Likewise.
1947 (*thumb2_indirect_jump): Likewise.
1948 (*thumb2_and_scc): Likewise.
1949 (*thumb2_ior_scc): Likewise.
1950 (*thumb2_ior_scc_strict_it): Likewise.
1951 (*thumb2_cond_move): Likewise.
1952 (*thumb2_cond_arith): Likewise.
1953 (*thumb2_cond_ari): Likewise.
1954 (*thumb2_cond_sub): Likewise.
1955 (*thumb2_negscc): Likewise.
1956 (*thumb2_movcond): Likewise.
1957 (thumb2_casesi_internal): Likewise.
1958 (thumb2_casesi_internal_pic): Likewise.
1959 (*thumb2_alusi3_short): Likewise.
1960 (*thumb2_mov<mode>_shortim): Likewise.
1961 (*thumb2_addsi_short): Likewise.
1962 (*thumb2_subsi_short): Likewise.
1963 (thumb2_addsi3_compare0): Likewise.
1964 (*thumb2_cbz): Likewise.
1965 (*thumb2_cbnz): Likewise.
1966 (*thumb2_one_cmplsi2_short): Likewise.
1967 (*thumb2_negsi2_short): Likewise.
1968 (*orsi_notsi_si): Likewise.
1969 * config/arm/arm1020e.md: Update with new attributes.
1970 * config/arm/arm1026ejs.md: Update with new attributes.
1971 * config/arm/arm1136jfs.md: Update with new attributes.
1972 * config/arm/arm926ejs.md: Update with new attributes.
1973 * config/arm/cortex-a15.md: Update with new attributes.
1974 * config/arm/cortex-a5.md: Update with new attributes.
1975 * config/arm/cortex-a53.md: Update with new attributes.
1976 * config/arm/cortex-a7.md: Update with new attributes.
1977 * config/arm/cortex-a8.md: Update with new attributes.
1978 * config/arm/cortex-a9.md: Update with new attributes.
1979 * config/arm/cortex-m4.md: Update with new attributes.
1980 * config/arm/cortex-r4.md: Update with new attributes.
1981 * config/arm/fa526.md: Update with new attributes.
1982 * config/arm/fa606te.md: Update with new attributes.
1983 * config/arm/fa626te.md: Update with new attributes.
1984 * config/arm/fa726te.md: Update with new attributes.
1985
1c83b673
JG
19862013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1987
1988 * config/aarch64/aarch64-simd.md
1989 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
1990 <vwx> iterator to ensure correct register choice.
1991 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1992 (aarch64_sqdmull_n<mode>): Likewise.
1993 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1994 * config/aarch64/arm_neon.h
1995 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
1996 (vml<as><q>_n_<su>16): Likewise.
1997 (vml<as>l_high_lane<q>_<su>16): Likewise.
1998 (vml<as>l_high_n_<su>16): Likewise.
1999 (vml<as>l_lane<q>_<su>16): Likewise.
2000 (vml<as>l_n_<su>16): Likewise.
2001 (vmul<q>_lane<q>_<su>16): Likewise.
2002 (vmul<q>_n_<su>16): Likewise.
2003 (vmull_lane<q>_<su>16): Likewise.
2004 (vmull_n_<su>16): Likewise.
2005 (vmull_high_lane<q>_<su>16): Likewise.
2006 (vmull_high_n_<su>16): Likewise.
2007 (vqrdmulh<q>_n_s16): Likewise.
2008
bb1ae543
TB
20092013-09-06 Tejas Belagod <tejas.belagod@arm.com>
2010
2011 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
2012 have the correct lane parameter.
2013
f23c0742
RB
20142013-09-06 Richard Biener <rguenther@suse.de>
2015
2016 * cfganal.c (control_dependences::~control_dependences):
2017 Properly free all of the vector.
2018
c1d49770
KY
20192013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
2020
2021 PR target/58269
2022 * config/i386/i386.c (ix86_conditional_register_usage):
2023 Proper initialize extended SSE registers.
2024
6da47f52
JH
20252013-09-06 Jan Hubicka <jh@suse.cz>
2026
2027 PR tree-optimization/58311
2028 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
2029
20302013-09-06 Jan Hubicka <jh@suse.cz>
2031
2032 * Makefile.in (tree-sra.o): Update dependencies.
2033 * tree-sra.c: Include ipa-utils.h
2034 (scan_function): Use recursive_call_p.
2035 (has_caller_p): New function.
2036 (cgraph_for_node_and_aliases): Count also callers of aliases.
2037
fc11f321
JH
20382013-09-06 Jan Hubicka <jh@suse.cz>
2039
2040 PR middle-end/58094
2041 * cgraph.h (symtab_semantically_equivalent_p): Declare.
2042 * tree-tailcall.c: Include ipa-utils.h.
2043 (find_tail_calls): Use it.
2044 * ipa-pure-const.c (check_call): Likewise.
2045 * ipa-utils.c (recursive_call_p): New function.
2046 * ipa-utils.h (recursive_call_p): Dclare.
2047 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
2048 (symtab_semantically_equivalent_p): New function.
2049 * Makefile.in (tree-tailcall.o): Update dependencies.
2050
9a6af450
EB
20512013-09-06 Eric Botcazou <ebotcazou@adacore.com>
2052
2053 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
2054 non-inlinable part.
2055
35f32ad4
RB
20562013-09-06 Richard Biener <rguenther@suse.de>
2057
2058 * lto-streamer.h (lto_global_var_decls): Remove.
2059 * Makefile.in (OBJS): Remove lto-symtab.o.
2060 (lto-symtab.o): Remove.
2061 (GTFILES): Remove lto-symtab.c
2062 * lto-symtab.c: Move to lto/
2063
d12a76f3
AK
20642013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2065
2066 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
2067 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
2068 (UNSPEC_FPINT_RINT): New constant definitions.
2069 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
2070 definition with 2 attributes.
2071 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
2072 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
2073 definitions.
2074
20752013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2076
f43245d1 2077 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
2078 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
2079 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
2080 attribute to "z196_alone".
2081 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
2082 "zEC12_simple".
2083
c8e9d8c3
RB
20842013-09-06 Richard Biener <rguenther@suse.de>
2085
2086 * basic-block.h (class control_dependences): New.
2087 * tree-ssa-dce.c (control_dependence_map): Remove.
2088 (cd): New global.
2089 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
2090 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
2091 find_pdom, find_control_dependence, find_all_control_dependences):
2092 Move to cfganal.c.
f43245d1
UB
2093 (mark_control_dependent_edges_necessary,
2094 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
2095 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
2096 * cfganal.c (set_control_dependence_map_bit,
2097 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
2098 find_all_control_dependences): Move from tree-ssa-dce.c and
2099 implement as methods of control_dependences class.
2100 (control_dependences::control_dependences): New.
2101 (control_dependences::~control_dependences): Likewise.
2102 (control_dependences::get_edges_dependent_on): Likewise.
2103 (control_dependences::get_edge): Likewise.
2104
7d2ba471
JH
21052013-09-04 Jan Hubicka <jh@suse.cz>
2106
2107 * tree.c (types_same_for_odr): Drop overactive check.
2108 * ipa-devirt.c (hash_type_name): Likewise.
2109
e18412fc
JH
21102013-09-04 Jan Hubicka <jh@suse.cz>
2111
2112 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
2113 (analyze_functions): ... here.
2114
d352b245
JH
21152013-09-04 Jan Hubicka <jh@suse.cz>
2116
2117 PR middle-end/58201
2118 * cgraphunit.c (analyze_functions): Clear AUX fields
2119 after processing; initialize assembler name has.
2120
770da076
JL
21212013-09-05 Jeff Law <law@redhat.com>
2122
2123 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
2124 from thread_around_empty_block. Record threading path into PATH.
2125 Recurse if threading through the initial block is successful.
2126 (thread_across_edge): Corresponding changes to slightly simplify.
2127
fe6f68e2
JG
21282013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2129
2130 * config/aarch64/aarch64.md
2131 (type): Remove frecpe, frecps, frecpx.
2132 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
2133 fix to be a TARGET_SIMD instruction.
2134 (aarch64_frecps): Remove.
2135 * config/aarch64/aarch64-simd.md
2136 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
2137 (aarch64_frecps<mode>): Handle all float/vector of float modes.
2138
6e4150e1
JG
21392013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2140 Sofiane Naci <sofiane.naci@arm.com>
2141
f43245d1 2142 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 2143 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
2144 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
2145 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
2146 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
2147 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
2148 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
2149 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
2150 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 2151 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 2152 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
2153 shift* types.
2154 * config/arm/arm-fixed.md: Update for attribute changes
2155 all occurrences of arlo_* types.
2156 * config/arm/thumb2.md: Update for attribute changes all occurrences
2157 of arlo_* types.
2158 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
2159 (cortexa7_older_only): Likewise.
2160 (cortexa7_younger): Likewise.
2161 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2162 (1020alu_shift_op): Likewise.
2163 (1020alu_shift_reg_op): Likewise.
2164 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2165 (alu_shift_op): Likewise.
2166 (alu_shift_reg_op): Likewise.
f43245d1 2167 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
2168 (11_alu_shift_op): Likewise.
2169 (11_alu_shift_reg_op): Likewise.
2170 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2171 (9_alu_shift_reg_op): Likewise.
2172 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
2173 attribute changes.
2174 (cortex_a15_alu_shift): Likewise.
2175 (cortex_a15_alu_shift_reg): Likewise.
2176 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
2177 attribute changes.
2178 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
2179 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
2180 attribute changes.
6e4150e1 2181 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
2182 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
2183 attribute changes.
6e4150e1
JG
2184 (cortex_a7_alu_reg): Likewise.
2185 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
2186 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
2187 attribute changes.
6e4150e1
JG
2188 (cortex_a8_alu_shift): Likewise.
2189 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 2190 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 2191 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
2192 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
2193 attribute changes.
6e4150e1
JG
2194 * config/arm/cortex-r4.md
2195 (cortex_r4_alu): Update for attribute changes.
2196 (cortex_r4_mov): Likewise.
2197 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 2198 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 2199 (526_alu_shift_op): Likewise.
f43245d1
UB
2200 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2201 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 2202 (626te_alu_shift_op): Likewise.
f43245d1 2203 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
2204 (726te_alu_shift_op): Likewise.
2205 (726te_alu_shift_reg_op): Likewise.
2206 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2207 (mp626_alu_shift_op): Likewise.
2208 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
2209 (pj4_alu_conds): Likewise.
2210 (pj4_shift): Likewise.
2211 (pj4_shift_conds): Likewise.
2212 (pj4_alu_shift): Likewise.
2213 (pj4_alu_shift_conds): Likewise.
2214 * config/aarch64/aarch64.md: Update for attribute change
2215 all occurrences of arlo_* and shift* types.
2216
e6523306
MS
22172013-09-05 Mike Stump <mikestump@comcast.net>
2218
2219 * tree.h: Move documentation for tree_function_decl to tree-core.h
2220 with the declaration.
2221
80a18161
PB
22222013-09-05 Peter Bergner <bergner@vnet.ibm.com>
2223
2224 PR target/58139
2225 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
2226 looking for widest mode.
2227
6994430a
EB
22282013-09-05 Eric Botcazou <ebotcazou@adacore.com>
2229
2230 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
2231
e67f39f7
RB
22322013-09-05 Richard Biener <rguenther@suse.de>
2233
2234 PR tree-optimization/58137
2235 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2236 Do not create vectors of pointers.
2237 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
2238 types for the components of the vector initializer.
2239 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
2240 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
2241
568cda29
MJ
22422013-09-05 Martin Jambor <mjambor@suse.cz>
2243
2244 * ipa-prop.c (remove_described_reference): Accept missing references,
2245 return false if that hppens, otherwise return true.
2246 (cgraph_node_for_jfunc): New function.
2247 (try_decrement_rdesc_refcount): Likewise.
2248 (try_make_edge_direct_simple_call): Use them.
2249 (ipa_edge_removal_hook): Remove references from rdescs.
2250 (ipa_edge_duplication_hook): Clone rdescs and their references
2251 when the new edge has the same caller as the old one.
2252 * cgraph.c (cgraph_resolve_speculation): Remove speculative
2253 reference before removing any edges.
2254
5a200acb
RE
22552013-09-05 Richard Earnshaw <rearnsha@arm.com>
2256
2257 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2258 initial store.
2259 * thumb2.md (thumb2_storewb_parisi): New pattern.
2260
5922847b
YZ
22612013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2262
2263 * config/aarch64/aarch64-option-extensions.def: Add
2264 AARCH64_OPT_EXTENSION of 'crc'.
2265 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2266 (AARCH64_ISA_CRC): Ditto.
2267 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2268 description of the CRC extension.
2269
996746aa
AI
22702013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
2271
2272 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
2273 * config/rs6000/linux.h: Ditto.
2274 * alpha/linux.h: Ditto.
2275 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
2276 no_c99_libc_has_function.
2277 * config/c6x/uclinux-elf.h: Ditto.
2278 * config/lm32/uclinux-elf.h: Ditto.
2279 * config/m68k/uclinux.h: Ditto.
2280 * config/moxie/uclinux.h: Ditto.
2281 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
2282 (crisv32-*-linux*, cris-*-linux*): Ditto.
2283 * config/bfin/bfin.c: Include "tm_p.h".
2284
c370d99f
RB
22852013-09-05 Richard Biener <rguenther@suse.de>
2286
2287 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
2288 check for a definition without a basic-block.
2289
003bb7f3
JG
22902013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2291 Sofiane Naci <sofiane.naci@arm.com>
2292
2293 * config/aarch64/aarch64.md
2294 (*movti_aarch64): Rename r_2_f and f_2_r.
2295 (*movsf_aarch64): Likewise.
2296 (*movdf_aarch64): Likewise.
2297 (*movtf_aarch64): Likewise.
2298 (aarch64_movdi_<mode>low): Likewise.
2299 (aarch64_movdi_<mode>high): Likewise.
2300 (aarch64_mov<mode>high_di): Likewise.
2301 (aarch64_mov<mode>low_di): Likewise.
2302 (aarch64_movtilow_tilow): Likewise.
2303 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
2304 values to config/arm/types.md
2305 (attribute "conds"): Update for attribute change.
2306 (anddi3_insn): Likewise.
2307 (iordi3_insn): Likewise.
2308 (xordi3_insn): Likewise.
2309 (one_cmpldi2): Likewise.
2310 * config/arm/types.md (type): Add Neon types.
2311 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
2312 use "type" attribute.
2313 (movmisalign<mode>_neon_store): Likewise.
2314 (movmisalign<mode>_neon_load): Likewise.
2315 (vec_set<mode>_internal): Likewise.
2316 (vec_setv2di_internal): Likewise.
2317 (vec_extract<mode>): Likewise.
2318 (vec_extractv2di): Likewise.
2319 (add<mode>3_neon): Likewise.
2320 (adddi3_neon): Likewise.
2321 (sub<mode>3_neon): Likewise.
2322 (subdi3_neon): Likewise.
2323 (mul<mode>3_neon): Likewise.
2324 (mul<mode>3add<mode>_neon): Likewise.
2325 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2326 (fma<VCVTF:mode>4)): Likewise.
2327 (fma<VCVTF:mode>4_intrinsic): Likewise.
2328 (fmsub<VCVTF:mode>4)): Likewise.
2329 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
2330 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
2331 (ior<mode>3): Likewise.
2332 (and<mode>3): Likewise.
2333 (anddi3_neon): Likewise.
2334 (orn<mode>3_neon): Likewise.
2335 (orndi3_neon): Likewise.
2336 (bic<mode>3_neon): Likewise.
2337 (bicdi3_neon): Likewise.
2338 (xor<mode>3): Likewise.
2339 (one_cmpl<mode>2): Likewise.
2340 (abs<mode>2): Likewise.
2341 (neg<mode>2): Likewise.
2342 (umin<mode>3_neon): Likewise.
2343 (umax<mode>3_neon): Likewise.
2344 (smin<mode>3_neon): Likewise.
2345 (smax<mode>3_neon): Likewise.
2346 (vashl<mode>3): Likewise.
2347 (vashr<mode>3_imm): Likewise.
2348 (vlshr<mode>3_imm): Likewise.
2349 (ashl<mode>3_signed): Likewise.
2350 (ashl<mode>3_unsigned): Likewise.
2351 (neon_load_count): Likewise.
2352 (ashldi3_neon_noclobber): Likewise.
2353 (signed_shift_di3_neon): Likewise.
2354 (unsigned_shift_di3_neon): Likewise.
2355 (ashrdi3_neon_imm_noclobber): Likewise.
2356 (lshrdi3_neon_imm_noclobber): Likewise.
2357 (widen_ssum<mode>3): Likewise.
2358 (widen_usum<mode>3): Likewise.
2359 (quad_halves_<code>v4si): Likewise.
2360 (quad_halves_<code>v4sf): Likewise.
2361 (quad_halves_<code>v8hi): Likewise.
2362 (quad_halves_<code>v16qi): Likewise.
2363 (reduc_splus_v2di): Likewise.
2364 (neon_vpadd_internal<mode>): Likewise.
2365 (neon_vpsmin<mode>): Likewise.
2366 (neon_vpsmax<mode>): Likewise.
2367 (neon_vpumin<mode>): Likewise.
2368 (neon_vpumax<mode>): Likewise.
2369 (ss_add<mode>_neon): Likewise.
2370 (us_add<mode>_neon): Likewise.
2371 (ss_sub<mode>_neon): Likewise.
2372 (us_sub<mode>_neon): Likewise.
2373 (neon_vadd<mode>_unspec): Likewise.
2374 (neon_vaddl<mode>): Likewise.
2375 (neon_vaddw<mode>): Likewise.
2376 (neon_vhadd<mode>): Likewise.
2377 (neon_vqadd<mode>): Likewise.
2378 (neon_vaddhn<mode>): Likewise.
2379 (neon_vmul<mode>): Likewise.
2380 (neon_vmla<mode>): Likewise.
2381 (neon_vmlal<mode>): Likewise.
2382 (neon_vmls<mode>): Likewise.
2383 (neon_vmlsl<mode>): Likewise.
2384 (neon_vqdmulh<mode>): Likewise.
2385 (neon_vqdmlal<mode>): Likewise.
2386 (neon_vqdmlsl<mode>): Likewise.
2387 (neon_vmull<mode>): Likewise.
2388 (neon_vqdmull<mode>): Likewise.
2389 (neon_vsub<mode>_unspec): Likewise.
2390 (neon_vsubl<mode>): Likewise.
2391 (neon_vsubw<mode>): Likewise.
2392 (neon_vqsub<mode>): Likewise.
2393 (neon_vhsub<mode>): Likewise.
2394 (neon_vsubhn<mode>): Likewise.
2395 (neon_vceq<mode>): Likewise.
2396 (neon_vcge<mode>): Likewise.
2397 (neon_vcgeu<mode>): Likewise.
2398 (neon_vcgt<mode>): Likewise.
2399 (neon_vcgtu<mode>): Likewise.
2400 (neon_vcle<mode>): Likewise.
2401 (neon_vclt<mode>): Likewise.
2402 (neon_vcage<mode>): Likewise.
2403 (neon_vcagt<mode>): Likewise.
2404 (neon_vtst<mode>): Likewise.
2405 (neon_vabd<mode>): Likewise.
2406 (neon_vabdl<mode>): Likewise.
2407 (neon_vaba<mode>): Likewise.
2408 (neon_vabal<mode>): Likewise.
2409 (neon_vmax<mode>): Likewise.
2410 (neon_vmin<mode>): Likewise.
2411 (neon_vpaddl<mode>): Likewise.
2412 (neon_vpadal<mode>): Likewise.
2413 (neon_vpmax<mode>): Likewise.
2414 (neon_vpmin<mode>): Likewise.
2415 (neon_vrecps<mode>): Likewise.
2416 (neon_vrsqrts<mode>): Likewise.
2417 (neon_vqabs<mode>): Likewise.
2418 (neon_vqneg<mode>): Likewise.
2419 (neon_vcls<mode>): Likewise.
2420 (clz<mode>2): Likewise.
2421 (popcount<mode>2): Likewise.
2422 (neon_vrecpe): Likewise.
2423 (neon_vrsqrte): Likewise.
2424 (neon_vget_lane<mode>_sext_internal): Likewise.
2425 (neon_vget_lane<mode>_zext_internal): Likewise.
2426 (neon_vdup_n<mode>): Likewise.
2427 (neon_vdup_nv2di): Likewise.
2428 (neon_vdpu_lane<mode>_internal): Likewise.
2429 (neon_vswp<mode>): Likewise.
2430 (float<mode><V_cvtto>2): Likewise.
2431 (floatuns<mode><V_cvtto>2): Likewise.
2432 (fix_trunc<mode><V_cvtto>)2): Likewise
2433 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2434 (neon_vcvt<mode>): Likewise.
2435 (neon_vcvtv4sfv4hf): Likewise.
2436 (neon_vcvtv4hfv4sf): Likewise.
2437 (neon_vcvt_n<mode>): Likewise.
2438 (neon_vmovn<mode>): Likewise.
2439 (neon_vqmovn<mode>): Likewise.
2440 (neon_vqmovun<mode>): Likewise.
2441 (neon_vmovl<mode>): Likewise.
2442 (neon_vmul_lane<mode>): Likewise.
2443 (neon_vmull_lane<mode>): Likewise.
2444 (neon_vqdmull_lane<mode>): Likewise.
2445 (neon_vqdmulh_lane<mode>): Likewise.
2446 (neon_vmla_lane<mode>): Likewise.
2447 (neon_vmlal_lane<mode>): Likewise.
2448 (neon_vqdmlal_lane<mode>): Likewise.
2449 (neon_vmls_lane<mode>): Likewise.
2450 (neon_vmlsl_lane<mode>): Likewise.
2451 (neon_vqdmlsl_lane<mode>): Likewise.
2452 (neon_vext<mode>): Likewise.
2453 (neon_vrev64<mode>): Likewise.
2454 (neon_vrev32<mode>): Likewise.
2455 (neon_vrev16<mode>): Likewise.
2456 (neon_vbsl<mode>_internal): Likewise.
2457 (neon_vshl<mode>): Likewise.
2458 (neon_vqshl<mode>): Likewise.
2459 (neon_vshr_n<mode>): Likewise.
2460 (neon_vshrn_n<mode>): Likewise.
2461 (neon_vqshrn_n<mode>): Likewise.
2462 (neon_vqshrun_n<mode>): Likewise.
2463 (neon_vshl_n<mode>): Likewise.
2464 (neon_vqshl_n<mode>): Likewise.
2465 (neon_vqshlu_n<mode>): Likewise.
2466 (neon_vshll_n<mode>): Likewise.
2467 (neon_vsra_n<mode>): Likewise.
2468 (neon_vsri_n<mode>): Likewise.
2469 (neon_vsli_n<mode>): Likewise.
2470 (neon_vtbl1v8qi): Likewise.
2471 (neon_vtbl2v8qi): Likewise.
2472 (neon_vtbl3v8qi): Likewise.
2473 (neon_vtbl4v8qi): Likewise.
2474 (neon_vtbx1v8qi): Likewise.
2475 (neon_vtbx2v8qi): Likewise.
2476 (neon_vtbx3v8qi): Likewise.
2477 (neon_vtbx4v8qi): Likewise.
2478 (neon_vtrn<mode>_internal): Likewise.
2479 (neon_vzip<mode>_internal): Likewise.
2480 (neon_vuzp<mode>_internal): Likewise.
2481 (neon_vld1<mode>): Likewise.
2482 (neon_vld1_lane<mode>): Likewise.
2483 (neon_vld1_dup<mode>): Likewise.
2484 (neon_vld1_dupv2di): Likewise.
2485 (neon_vst1<mode>): Likewise.
2486 (neon_vst1_lane<mode>): Likewise.
2487 (neon_vld2<mode>): Likewise.
2488 (neon_vld2_lane<mode>): Likewise.
2489 (neon_vld2_dup<mode>): Likewise.
2490 (neon_vst2<mode>): Likewise.
2491 (neon_vst2_lane<mode>): Likewise.
2492 (neon_vld3<mode>): Likewise.
2493 (neon_vld3qa<mode>): Likewise.
2494 (neon_vld3qb<mode>): Likewise.
2495 (neon_vld3_lane<mode>): Likewise.
2496 (neon_vld3_dup<mode>): Likewise.
2497 (neon_vst3<mode>): Likewise.
2498 (neon_vst3qa<mode>): Likewise.
2499 (neon_vst3qb<mode>): Likewise.
2500 (neon_vst3_lane<mode>): Likewise.
2501 (neon_vld4<mode>): Likewise.
2502 (neon_vld4qa<mode>): Likewise.
2503 (neon_vld4qb<mode>): Likewise.
2504 (neon_vld4_lane<mode>): Likewise.
2505 (neon_vld4_dup<mode>): Likewise.
2506 (neon_vst4<mode>): Likewise.
2507 (neon_vst4qa<mode>): Likewise.
2508 (neon_vst4qb<mode>): Likewise.
2509 (neon_vst4_lane<mode>): Likewise.
2510 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2511 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2512 (neon_vec_<US>mult_lo_<mode>): Likewise.
2513 (neon_vec_<US>mult_hi_<mode>): Likewise.
2514 (neon_vec_<US>shiftl_<mode>): Likewise.
2515 (neon_unpack<US>_<mode>): Likewise.
2516 (neon_vec_<US>mult_<mode>): Likewise.
2517 (vec_pack_trunc_<mode>): Likewise.
2518 (neon_vec_pack_trunk_<mode>): Likewise.
2519 (neon_vabd<mode>_2): Likewise.
2520 (neon_vabd<mode>_3): Likewise.
2521 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2522 (thumb2_movsi_vfp): Likewise.
2523 (movdi_vfp): Likewise.
2524 (movdi_vfp_cortexa8): Likewise.
2525 (movhf_vfp_neon): Likewise.
2526 (movhf_vfp): Likewiwse.
2527 (movsf_vfp): Likewiwse.
2528 (thumb2_movsf_vfp): Likewiwse.
2529 (movdf_vfp): Likewise.
2530 (thumb2_movdf_vfp): Likewise.
2531 (movsfcc_vfp): Likewise.
2532 (thumb2_movsfcc_vfp): Likewise.
2533 (movdfcc_vfp): Likewise.
2534 (thumb2_movdfcc_vfp): Likewise.
2535 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2536 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2537 (v10_v2c): Likewise.
2538 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2539 attribute change.
2540 (cortex_a15_neon_int_2): Likewise.
2541 (cortex_a15_neon_int_3): Likewise.
2542 (cortex_a15_neon_int_4): Likewise.
2543 (cortex_a15_neon_int_5): Likewise.
2544 (cortex_a15_neon_vqneg_vqabs): Likewise.
2545 (cortex_a15_neon_vmov): Likewise.
2546 (cortex_a15_neon_vaba): Likewise.
2547 (cortex_a15_neon_vaba_qqq): Likewise.
2548 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2549 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2550 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2551 scalar_64_32_long_scalar): Likewise.
2552 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2553 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2554 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2555 lotype_qdd_64_32_long): Likewise.
2556 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2557 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2558 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2559 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2560 (cortex_a15_neon_shift_1): Likewise.
2561 (cortex_a15_neon_shift_2): Likewise.
2562 (cortex_a15_neon_shift_3): Likewise.
2563 (cortex_a15_neon_vshl_ddd): Likewise.
2564 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2565 (cortex_a15_neon_vsra_vrsra): Likewise.
2566 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2567 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2568 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2569 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2570 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2571 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2572 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2573 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2574 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2575 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2576 (cortex_a15_neon_bp_simple): Likewise.
2577 (cortex_a15_neon_bp_2cycle): Likewise.
2578 (cortex_a15_neon_bp_3cycle): Likewise.
2579 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2580 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2581 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2582 (cortex_a15_neon_vld2_4_regs): Likewise.
2583 (cortex_a15_neon_vld3_vld4): Likewise.
2584 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2585 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2586 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2587 (cortex_a15_neon_vst3_vst4): Likewise.
2588 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2589 (cortex_a15_neon_vld3_vld4_lane" 10
2590 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2591 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2592 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2593 (cortex_a15_neon_ldm_2): Likewise.0
2594 (cortex_a15_neon_stm_2): Likewise.
2595 (cortex_a15_neon_mcr): Likewise.
2596 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2597 (cortex_a15_neon_mrc): Likewise.
2598 (cortex_a15_neon_mrrc): Likewise.
2599 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2600 change.
2601 (cortex_a15_alu_shift): Likewise.
2602 (cortex_a15_alu_shift_reg): Likewise.
2603 (cortex_a15_mult32): Likewise.
2604 (cortex_a15_mult64): Likewise.
2605 (cortex_a15_block): Likewise.
2606 (cortex_a15_branch): Likewise.
2607 (cortex_a15_load1): Likewise.
2608 (cortex_a15_load3): Likewise.
2609 (cortex_a15_store1): Likewise.
2610 (cortex_a15_store3): Likewise.
2611 (cortex_a15_call): Likewise.
f43245d1 2612 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2613 (cortex_a5_f2r): Likewise.
2614 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2615 change.
2616 (cortex_a53_f2r): Likewise.
2617 * config/arm/cortex-a7.md
2618 (cortex_a7_branch): Update for attribute change.
2619 (cortex_a7_call): Likewise.
2620 (cortex_a7_alu_imm): Likewise.
2621 (cortex_a7_alu_reg): Likewise.
2622 (cortex_a7_alu_shift): Likewise.
2623 (cortex_a7_mul): Likewise.
2624 (cortex_a7_load1): Likewise.
2625 (cortex_a7_store1): Likewise.
2626 (cortex_a7_load2): Likewise.
2627 (cortex_a7_store2): Likewise.
2628 (cortex_a7_load3): Likewise.
2629 (cortex_a7_store3): Likewise.
2630 (cortex_a7_load4): Likewise.
2631 (cortex_a7_store4): Likewise.
2632 (cortex_a7_fpalu): Likewise.
2633 (cortex_a7_fconst): Likewise.
2634 (cortex_a7_fpmuls): Likewise.
2635 (cortex_a7_neon_mul): Likewise.
2636 (cortex_a7_fpmacs): Likewise.
2637 (cortex_a7_neon_mla: Likewise.
2638 (cortex_a7_fpmuld: Likewise.
2639 (cortex_a7_fpmacd: Likewise.
2640 (cortex_a7_fpfmad: Likewise.
2641 (cortex_a7_fdivs: Likewise.
2642 (cortex_a7_fdivd: Likewise.
2643 (cortex_a7_r2f: Likewise.
2644 (cortex_a7_f2r: Likewise.
2645 (cortex_a7_f_flags: Likewise.
2646 (cortex_a7_f_loads: Likewise.
2647 (cortex_a7_f_loadd: Likewise.
2648 (cortex_a7_f_stores: Likewise.
2649 (cortex_a7_f_stored: Likewise.
2650 (cortex_a7_neon): Likewise.
2651 * config/arm/cortex-a8-neon.md
2652 (cortex_a8_neon_mrc): Update for attribute change.
2653 (cortex_a8_neon_mrrc): Likewise.
2654 (cortex_a8_neon_int_1): Likewise.
2655 (cortex_a8_neon_int_2): Likewise.
2656 (cortex_a8_neon_int_3): Likewise.
2657 (cortex_a8_neon_int_4): Likewise.
2658 (cortex_a8_neon_int_5): Likewise.
2659 (cortex_a8_neon_vqneg_vqabs): Likewise.
2660 (cortex_a8_neon_vmov): Likewise.
2661 (cortex_a8_neon_vaba): Likewise.
2662 (cortex_a8_neon_vaba_qqq): Likewise.
2663 (cortex_a8_neon_vsma): Likewise.
2664 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2665 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2666 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2667 long_scalar): Likewise.
003bb7f3
JG
2668 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2669 (cortex_a8_neon_mla_qqq_8_16): Likewise.
2670 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2671 long_scalar_qdd_64_32_long): Likewise.
2672 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2673 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2674 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
2675 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2676 (cortex_a8_neon_shift_1): Likewise.
2677 (cortex_a8_neon_shift_2): Likewise.
2678 (cortex_a8_neon_shift_3): Likewise.
2679 (cortex_a8_neon_vshl_ddd): Likewise.
2680 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2681 (cortex_a8_neon_vsra_vrsra): Likewise.
2682 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
2683 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
2684 (cortex_a8_neon_fp_vsum): Likewise.
2685 (cortex_a8_neon_fp_vmul_ddd): Likewise.
2686 (cortex_a8_neon_fp_vmul_qqd): Likewise.
2687 (cortex_a8_neon_fp_vmla_ddd): Likewise.
2688 (cortex_a8_neon_fp_vmla_qqq): Likewise.
2689 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
2690 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
2691 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2692 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2693 (cortex_a8_neon_bp_simple): Likewise.
2694 (cortex_a8_neon_bp_2cycle): Likewise.
2695 (cortex_a8_neon_bp_3cycle): Likewise.
2696 (cortex_a8_neon_ldr): Likewise.
2697 (cortex_a8_neon_str): Likewise.
2698 (cortex_a8_neon_vld1_1_2_regs): Likewise.
2699 (cortex_a8_neon_vld1_3_4_regs): Likewise.
2700 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2701 (cortex_a8_neon_vld2_4_regs): Likewise.
2702 (cortex_a8_neon_vld3_vld4): Likewise.
2703 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2704 (cortex_a8_neon_vst1_3_4_regs): Likewise.
2705 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
2706 (cortex_a8_neon_vst3_vst4): Likewise.
2707 (cortex_a8_neon_vld1_vld2_lane): Likewise.
2708 (cortex_a8_neon_vld3_vld4_lane): Likewise.
2709 (cortex_a8_neon_vst1_vst2_lane): Likewise.
2710 (cortex_a8_neon_vst3_vst4_lane): Likewise.
2711 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
2712 (cortex_a8_neon_mcr): Likewise.
2713 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 2714 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
2715 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
2716 change.
2717 (ca9_neon_mrrc): Likewise.
2718 (cortex_a9_neon_int_1): Likewise.
2719 (cortex_a9_neon_int_2): Likewise.
2720 (cortex_a9_neon_int_3): Likewise.
2721 (cortex_a9_neon_int_4): Likewise.
2722 (cortex_a9_neon_int_5): Likewise.
2723 (cortex_a9_neon_vqneg_vqabs): Likewise.
2724 (cortex_a9_neon_vmov): Likewise.
2725 (cortex_a9_neon_vaba): Likewise.
2726 (cortex_a9_neon_vaba_qqq): Likewise.
2727 (cortex_a9_neon_vsma): Likewise.
2728 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2729 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2730 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2731 long_scalar): Likewise.
003bb7f3
JG
2732 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2733 (cortex_a9_neon_mla_qqq_8_16): Likewise.
2734 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2735 long_scalar_qdd_64_32_long): Likewise.
2736 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2737 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2738 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
2739 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2740 (cortex_a9_neon_shift_1): Likewise.
2741 (cortex_a9_neon_shift_2): Likewise.
2742 (cortex_a9_neon_shift_3): Likewise.
2743 (cortex_a9_neon_vshl_ddd): Likewise.
2744 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2745 (cortex_a9_neon_vsra_vrsra): Likewise.
2746 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
2747 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
2748 (cortex_a9_neon_fp_vsum): Likewise.
2749 (cortex_a9_neon_fp_vmul_ddd): Likewise.
2750 (cortex_a9_neon_fp_vmul_qqd): Likewise.
2751 (cortex_a9_neon_fp_vmla_ddd): Likewise.
2752 (cortex_a9_neon_fp_vmla_qqq): Likewise.
2753 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
2754 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
2755 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2756 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2757 (cortex_a9_neon_bp_simple): Likewise.
2758 (cortex_a9_neon_bp_2cycle): Likewise.
2759 (cortex_a9_neon_bp_3cycle): Likewise.
2760 (cortex_a9_neon_ldr): Likewise.
2761 (cortex_a9_neon_str): Likewise.
2762 (cortex_a9_neon_vld1_1_2_regs): Likewise.
2763 (cortex_a9_neon_vld1_3_4_regs): Likewise.
2764 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2765 (cortex_a9_neon_vld2_4_regs): Likewise.
2766 (cortex_a9_neon_vld3_vld4): Likewise.
2767 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2768 (cortex_a9_neon_vst1_3_4_regs): Likewise.
2769 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
2770 (cortex_a9_neon_vst3_vst4): Likewise.
2771 (cortex_a9_neon_vld1_vld2_lane): Likewise.
2772 (cortex_a9_neon_vld3_vld4_lane): Likewise.
2773 (cortex_a9_neon_vst1_vst2_lane): Likewise.
2774 (cortex_a9_neon_vst3_vst4_lane): Likewise.
2775 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
2776 (cortex_a9_neon_mcr): Likewise.
2777 (cortex_a9_neon_mcr_2_mcrr): Likewise.
2778 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
2779 (cortex_a9_fps): Likewise.
2780 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
2781 change.
2782 (cortex_m4_fmuls): Likewise.
2783 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2784 change.
2785 (cortex_r4_mrc): Likewise.
2786 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 2787 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 2788 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
2789 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
2790 attribute change.
003bb7f3
JG
2791 (pj4_core_to_vfp): Likewise.
2792 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
2793 attribute change.
2794 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
2795 (vfp_fstore): Likewise.
2796 * doc/md.texi: Change references to neon_type to refer to type.
2797
fbe0dc78
DS
27982013-09-04 Dodji Seketeli <dodji@redhat.com>
2799
2800 * tree.h (DECL_BUILT_IN): Fix typo in comment.
2801
c167bc5b
DE
28022013-09-04 David Edelsohn <dje.gcc@gmail.com>
2803
2804 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
2805 lglobl if not weak.
2806
035cb59f
ER
28072013-09-04 Easwaran Raman <eraman@google.com>
2808
2809 PR middle-end/57370
2810 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
2811 (build_and_add_sum): Use it.
2812 (appears_later_in_bb): Simplify code.
2813
71191083
TJ
28142013-09-04 Teresa Johnson <tejohnson@google.com>
2815
2816 * dumpfile.c (dump_finish): Don't close stderr/stdout.
2817
0c488213
JG
28182013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
2819
2820 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
2821
61a74079
JH
28222013-09-04 Jan Hubicka <jh@suse.cz>
2823
2824 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
2825 * ipa-devirt.c: Include diganostic.h
2826 (odr_type_d): Add types and types_set.
2827 (hash_type_name): Work for types with vtables during LTO.
2828 (odr_hasher::remove): Fix comment; destroy types_set.
2829 (add_type_duplicate): New function,
2830 (get_odr_type): Use it.
2831 (dump_type_inheritance_graph): Dump type duplicates.
2832 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
2833 graph.
2834 * tree.c (types_same_for_odr): Give exact answers on types with
2835 virtual tables.
2836
24ba8195
DS
28372013-09-04 Dodji Seketeli <dodji@redhat.com>
2838
2839 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
2840 explaining their differences.
2841
0a04869e
SKS
28422013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
2843
2844 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
2845
3b18bc42
JL
28462013-09-03 Jeff Law <law@redhat.com>
2847
2848 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
2849 when not threading through a joiner block. Pass joiner/no joiner
2850 state to register_jump_thread.
2851 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
2852 state from argument rather than implying on path length.
2853 Dump the entire jump thread path into debugging dump.
2854 * tree-flow.h (register_jump_thread): Update prototype.
2855
ae84e151
XDL
28562013-08-29 Xinliang David Li <davidxl@google.com>
2857
2858 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2859 Remove a trivial gcc_assert.
2860
c716e67f
XDL
28612013-08-29 Xinliang David Li <davidxl@google.com>
2862
2863 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
2864 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
2865 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2866 Delay base decl alignment adjustment.
2867 * tree-vectorizer.c (vect_destroy_datarefs): New function.
2868 * tree-vectorizer.h: New data structure.
2869 (set_dr_misalignment): New function.
2870 (dr_misalignment): Ditto.
2871 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
2872 (vectorizable_load): Ditto.
2873 (ensure_base_align): New function.
2874 (vectorize_loops): Add dbg_cnt support.
2875 (execute_vect_slp): Ditto.
2876 * dbgcnt.def: New debug counter.
2877 * Makefile: New dependency.
2878
db8800bc
MI
28792013-09-03 Meador Inge <meadori@codesourcery.com>
2880
2881 Revert:
2882
2883 2013-08-30 Meador Inge <meadori@codesourcery.com>
2884
2885 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2886
0d9b4f5c
DE
28872013-09-03 David Edelsohn <dje.gcc@gmail.com>
2888
2889 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
2890 function descriptor.
2891
29e810b9
RB
28922013-09-03 Richard Biener <rguenther@suse.de>
2893
2894 * tree-affine.c (add_elt_to_tree): Fix association issue,
2895 avoid useless converts and make sure to always return a
2896 properly typed result.
2897
dbfc2894
RB
28982013-09-03 Richard Biener <rguenther@suse.de>
2899
2900 PR middle-end/57656
2901 * fold-const.c (negate_expr_p): Fix division case.
2902 (negate_expr): Likewise.
2903
fa3bf4ce
RB
29042013-09-03 Richard Biener <rguenther@suse.de>
2905
2906 PR lto/58285
2907 * tree-streamer-out.c: Include tm.h.
2908 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
2909
a64bbb3f
JH
29102013-09-03 Jan Hubicka <jh@suse.cz>
2911
2912 * tree-profile.c (tree_profiling): Cleanup CFG when done.
2913
93ed07e2
AM
29142013-09-03 Alan Modra <amodra@gmail.com>
2915
2916 * config.gcc (powerpc*-*-linux*): Add support for little-endian
2917 multilibs to big-endian target and vice versa.
2918 * config/rs6000/t-linux64: Use := assignment on all vars.
2919 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2920 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2921 * config/rs6000/t-linux64le: New file.
2922 * config/rs6000/t-linux64bele: New file.
2923 * config/rs6000/t-linux64lebe: New file.
2924
07d6cd64
JH
29252013-09-02 Jan Hubicka <jh@suse.cz>
2926
2927 * ipa-inline-transform.c (inline_transform): Do not
2928 optimize_inline_calls when not optimizing.
2929
8e4c9a10
JH
29302013-09-02 Jan Hubicka <jh@suse.cz>
2931
2932 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
2933 duplicated nodes for assembler names.
2934 * symtab.c (symtab_unregister_node): Do not attempt to unlink
2935 hard registers from assembler name hash.
2936
c91061e6
JH
29372013-09-02 Jan Hubicka <jh@suse.cz>
2938
2939 * ipa-split.c (execute_split_functions): Split externally visible
2940 functions called once.
2941
2fd0985c
MJ
29422013-09-02 Martin Jambor <mjambor@suse.cz>
2943
2944 PR ipa/58106
2945 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
2946 linked list. When finding the correct duplicate, also consider also
2947 the caller in additon to its inlined_to node.
2948
91bd4114
JG
29492013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
2950
2951 * config/aarch64/aarch64-simd-builtins.def
2952 (dup_lane_scalar): Remove.
2953 * config/aarch64/aarch64-simd.md
2954 (aarch64_simd_dup): Add 'w->w' alternative.
2955 (aarch64_dup_lane<mode>): Allow for VALL.
2956 (aarch64_dup_lane_scalar<mode>): Remove.
2957 (aarch64_dup_lane_<vswap_width_name><mode>): New.
2958 (aarch64_get_lane_signed<mode>): Add w->w altenative.
2959 (aarch64_get_lane_unsigned<mode>): Likewise.
2960 (aarch64_get_lane<mode>): Likewise.
2961 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
2962 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
2963 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
2964 (VCON): Change container of V2SF.
2965 (vswap_width_name): Likewise.
2966 * config/aarch64/arm_neon.h
2967 (__aarch64_vdup_lane_any): New.
2968 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2969 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
2970 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2971
d617d2d8
EB
29722013-09-02 Eric Botcazou <ebotcazou@adacore.com>
2973
2974 PR middle-end/56382
2975 * expr.c (emit_move_complex): Do not move complex FP values as parts if
2976 the source or the destination is a single hard register.
2977
63fdb7be
RB
29782013-09-02 Richard Biener <rguenther@suse.de>
2979
2980 PR middle-end/57511
2981 * tree-scalar-evolution.c (instantiate_scev_name): Allow
2982 non-linear SCEVs.
2983
78de2333
RB
29842013-09-02 Richard Biener <rguenther@suse.de>
2985
2986 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
2987 arithmetic to sizetype.
2988
85ff4ec6
BC
29892013-09-02 Bin Cheng <bin.cheng@arm.com>
2990
2991 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2992 Find auto-increment use both before and after candidate.
2993
576016fe
MP
29942013-09-02 Marek Polacek <polacek@redhat.com>
2995
2996 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2997
08f835dc
JH
29982013-09-01 Jan Hubicka <jh@suse.cz>
2999
3000 * Makefile.in: Add ipa-profile.o
3001 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
3002 * cgraph.c (struct cgraph_propagate_frequency_data,
3003 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
3004 ipa-profile.c; replace cgraph_ by ipa_ prefix.
3005 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
3006 * ipa-inline-analysis.c: Include ipa-utils.h;
3007 drop duplicated cfgloop.h.
08f835dc
JH
3008 (inline_update_callee_summaries): Update.
3009 * ipa-profile.c: New file.
3010 * ipa-utils.h (ipa_propagate_frequency): Declare.
3011 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 3012 data-streamer.h, value-prof.h.
08f835dc
JH
3013 (symtab_remove_unreachable_nodes): Update profile.
3014 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
3015 account_time_size, cmp_counts, dump_histogram,
3016 ipa_profile_generate_summary, ipa_profile_write_summary,
3017 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
3018 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 3019 Move to ipa-profile.c.
08f835dc 3020
cec8583c
JDA
30212013-09-01 John David Anglin <danglin@gcc.gnu.org>
3022
3023 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
3024
bbc9396b
JH
30252013-09-01 Jan Hubicka <jh@suse.cz>
3026
3027 * common.opt (fdevirtualize-speculatively): New function.
3028 * invoke.texi (fdevirtualize-speculatively): Document.
3029 * ipa-devirt.c: Include ipa-inline.h
3030 (likely_target_p): New function.
3031 (ipa_devirt): New function.
3032 (gate_ipa_devirt): New function.
3033 (pass_data_ipa_devirt): New static var.
3034 (pass_ipa_devirt): Likewise.
3035 (make_pass_ipa_devirt): New function.
3036 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
3037 (common_handle_option): Disable devirtualization when
3038 value range profiling is available.
3039 * passes.def (pass_ipa_devirt): Add.
3040 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 3041 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 3042
0cea211e
IS
30432013-09-01 Iain Sandoe <iain@codesourcery.com>
3044
3045 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
3046 include sanitize(undefined).
3047
5e351e96
DN
30482013-08-31 Diego Novillo <dnovillo@google.com>
3049
3050 * Makefile.in (TREE_CORE_H): Define.
3051 (TREE_H): Use.
3052 (GTFILES): Add tree-core.h.
3053 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
3054 size the array.
3055 * tree-core.h: New file.
3056 Move all data structures, enum, typedefs, global
3057 declarations and constants from ...
3058 * tree.h: ... here.
3059
63bf9a90
JH
30602013-08-31 Jan Hubicka <jh@suse.cz>
3061
3062 * bulitins.c (expand_builtin): Do not early exit for gcov
3063 instrumented functions.
3064
5c0abd6a
MP
30652013-08-31 Marek Polacek <polacek@redhat.com>
3066
3067 * ubsan.c: Include tm_p.h.
3068
4843f032
JH
30692013-08-31 Jan Hubicka <jh@suse.cz>
3070
8356c89c
JH
3071 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
3072 warning.
3073
4843f032
JH
3074 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
3075 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 3076 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
3077 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
3078 (ipa_merge_profiles): New function.
3079 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
3080 (lto_input_function_body): Likewise.
5e581212
JH
3081 * ipa-utils.h (ipa_merge_profiles): Declare.
3082 * lto-streamer.h (lto_input_function_body): Update prototype.
3083 (emit_label_in_global_context_p): Remove.
3084 * lto-symtab.c: Include ipa-utils.h
3085 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 3086
57292ce9
JH
30872013-08-31 Jan Hubicka <jh@suse.cz>
3088
3089 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
3090
b9cbfeeb
JH
30912013-08-31 Jan Hubicka <jh@suse.cz>
3092
3093 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
3094
41dedebd
UB
30952013-08-31 Uros Bizjak <ubizjak@gmail.com>
3096
3097 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
3098 "cmp" RTX before signed_comparison_operator check to account
3099 for "code" changes.
3100
06d65050
JH
31012013-08-30 Jan Hubicka <jh@suse.cz>
3102
41dedebd 3103 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
3104 (detect_type_change_1): Rename to ...
3105 (detect_type_change): ... this one; early return on non-polymorphic
3106 types.
41dedebd 3107 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
3108 use of detect_type_change.
3109 (compute_complex_assign_jump_func): Add param_type parameter;
3110 update use of detect_type_change_ssa.
3111 (compute_complex_ancestor_jump_func): Likewise.
3112 (ipa_get_callee_param_type): New function.
3113 (ipa_compute_jump_functions_for_edge): Compute parameter type;
3114 update calls to the jump function computation functions.
3115
600b5b1d
TJ
31162013-08-30 Teresa Johnson <tejohnson@google.com>
3117 Steven Bosscher <steven@gcc.gnu.org>
3118
3119 * cfgrtl.c (fixup_new_cold_bb): New routine.
3120 (commit_edge_insertions): Invoke fixup_partitions.
3121 (find_partition_fixes): New routine.
3122 (fixup_partitions): Ditto.
3123 (verify_hot_cold_block_grouping): Update comments.
3124 (rtl_verify_edges): Invoke find_partition_fixes.
3125 (rtl_verify_bb_pointers): Update comments.
3126 (rtl_verify_bb_layout): Ditto.
3127 * basic-block.h (probably_never_executed_edge_p): Declare.
3128 (fixup_partitions): Ditto.
3129 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
3130 * bb-reorder.c (sanitize_hot_paths): New function.
3131 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
3132 sanitize_hot_paths.
3133 * predict.c (probably_never_executed_edge_p): New routine.
3134 * cfg.c (check_bb_profile): Add partition insanity warnings.
3135
0a6ea5c9
MI
31362013-08-30 Meador Inge <meadori@codesourcery.com>
3137
3138 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3139
de5a5fa1
MP
31402013-08-30 Marek Polacek <polacek@redhat.com>
3141
3142 * Makefile.in (ubsan.o): Add.
3143 (c-family/c-ubsan.o): Add.
3144 (builtins.o): Add ubsan.h dependency.
3145 * ubsan.h: New file.
3146 * ubsan.c: New file.
3147 * common.opt: Add -fsanitize=undefined option.
3148 (flag_sanitize): Add variable.
3149 (fsanitize=): Add option. Add Driver.
3150 (fsanitize=thread): Remove option.
3151 (fsanitize=address): Likewise.
3152 (static-libubsan): New option.
3153 * doc/invoke.texi: Document the new flag and -static-libubsan.
3154 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
3155 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
3156 * builtin-attrs.def (ATTR_COLD): Define.
3157 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3158 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
3159 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
3160 * flag-types.h (sanitize_code): New enum.
3161 * opts.c (common_handle_option): Parse command line arguments
3162 of -fsanitize=. Add -fsanitize=unreachable option.
3163 * varasm.c (get_variable_section): Adjust.
3164 (assemble_noswitch_variable): Likewise.
3165 (assemble_variable): Likewise.
3166 (output_constant_def_contents): Likewise.
3167 (categorize_decl_for_section): Likewise.
3168 (place_block_symbol): Likewise.
3169 (output_object_block): Likewise.
3170 * builtins.def: Likewise.
3171 * toplev.c (compile_file): Likewise.
3172 (process_options): Likewise.
3173 * cppbuiltin.c: Likewise.
3174 * tsan.c (tsan_pass): Likewise.
3175 (tsan_gate): Likewise.
3176 (tsan_gate_O0): Likewise.
3177 * cfgexpand.c (partition_stack_vars): Likewise.
3178 (expand_stack_vars): Likewise.
3179 (defer_stack_allocation): Likewise.
3180 (expand_used_vars): Likewise.
3181 * cfgcleanup.c (old_insns_match_p): Likewise.
3182 * asan.c (asan_finish_file): Likewise.
3183 (asan_instrument): Likewise.
3184 (gate_asan): Likewise.
3185 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
3186 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3187 (asan_global_struct): Use pointer_sized_int_node instead
3188 calling build_nonstandard_integer_type.
3189 (initialize_sanitizer_builtins): Likewise.
3190 (asan_finish_file): Likewise.
3191 * gcc.c: Document %{%:function(args):X}.
3192 (static_spec_functions): Add sanitize.
3193 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
3194 store funcval != NULL there.
3195 (do_spec_1): Adjust handle_spec_function caller.
3196 (handle_braces): Allow %:function(args) as condition.
3197 (sanitize_spec_function): New function.
3198 (ADD_STATIC_LIBUBSAN_LIBS): Define.
3199 (LIBUBSAN_SPEC): Likewise.
3200 (LIBUBSAN_EARLY_SPEC): Likewise.
3201 (SANITIZER_SPEC): Handle libubsan.
3202 (SANITIZER_EARLY_SPEC): Likewise.
3203 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
3204 instead of fsanitize=address.
3205 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
3206 instead of fsanitize=address*.
3207 * builtins.c: Include ubsan.h.
3208 (fold_builtin_0): Instrument __builtin_unreachable.
3209 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
3210 instead of flag_asan.
3211 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
3212 (pointer_sized_int_node): Define.
41dedebd 3213 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 3214
f07f30cf
MS
32152013-08-30 Mike Stump <mikestump@comcast.net>
3216
3217 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
3218 with RE patterns.
3219
8a41354f
JH
32202013-08-29 Jan Hubicka <jh@suse.cz>
3221
3222 * cgraph.c (cgraph_function_body_availability): Handle weakref
3223 correctly.
3224 * passes.def: Remove pass_fixup_cfg.
3225 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
3226 track when we need to remove functions.
3227 (gate_ipa_inline): Execute inlining always; add comment why.
3228 (pass_data_ipa_inline): Remove TODO_remove_functions.
3229 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
3230 do not produce summaries.
3231 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
3232 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
3233 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
3234 constant pool and vtable.
3235
dc8d7a0f
TB
32362013-08-30 Tejas Belagod <tejas.belagod@arm.com>
3237
41dedebd
UB
3238 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
3239 New arm_neon.h's internal macros to specify 64-bit constants.
3240 Avoid using stdint.h's macros.
dc8d7a0f 3241
ac7eacd2
JR
32422013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
3243
3244 * recog.c (verify_changes): Verify that changes[i].old is non-zero
3245 before applying REG_P.
3246
8b29fd4e
JJ
32472013-08-30 Jakub Jelinek <jakub@redhat.com>
3248
3249 PR tree-optimization/58277
3250 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
3251 after seeing too many stmts with vdef in between dombb and current
3252 bb, invalidate everything.
3253
26d75703
RB
32542013-08-30 Richard Biener <rguenther@suse.de>
3255
3256 * fold-const.c (fold_single_bit_test): Fix overflow test.
3257
f7e088e7
EB
32582013-08-30 Eric Botcazou <ebotcazou@adacore.com>
3259
3260 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
3261 and which can live in a register, always retrieve the value on entry.
3262 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
3263 passed by invisible reference specially.
3264 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
3265 (vt_add_function_parameter): Correctly deal with a parameter passed by
3266 invisible reference.
3267
32682013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
3269
3270 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
3271
6e8dad05
RB
32722013-08-30 Richard Biener <rguenther@suse.de>
3273
3274 PR tree-optimization/58228
3275 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
3276 allow invariant loads in nested loop vectorization.
3277
062ef2c8
RB
32782013-08-30 Richard Biener <rguenther@suse.de>
3279
3280 PR tree-optimization/58223
3281 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
3282 (has_anti_or_output_dependence): ... this and adjust to also
3283 look for output dependences.
3284 (mark_nodes_having_upstream_mem_writes): Adjust.
3285 (rdg_flag_uses): Likewise.
3286
7a764c60
RB
32872013-08-30 Richard Biener <rguenther@suse.de>
3288
3289 PR tree-optimization/58010
3290 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3291 assert that we have a loop-closed PHI.
3292
82e9d642
JH
32932013-08-29 Jan Hubicka <jh@suse.cz>
3294
3295 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
3296 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
3297 * lto-section-in.c (lto_free_function_in_decl_state): New function.
3298 (lto_free_function_in_decl_state_for_node): New function.
3299
9cc1fb4b
XDL
33002013-08-29 Xinliang David Li <davidxl@google.com>
3301
41dedebd 3302 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
3303 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
3304 Emit alignment peeling message with default -fopt-info.
3305 (vect_loop_versioning): Emit loop version info message.
41dedebd 3306 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
3307 (execute_vect_slp): Ditto.
3308
440a5082
EB
33092013-08-29 Eric Botcazou <ebotcazou@adacore.com>
3310
3311 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
3312 of the clone from the DECL_NAME of the original function.
3313
3fa3690d
OE
33142013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
3315
3316 * passes.c (register_pass): Add overload.
3317 * tree-pass.h (register_pass): Forward declare it. Add comment.
3318
0170f33c
JH
33192013-08-29 Jan Hubicka <jh@suse.cz>
3320
41dedebd
UB
3321 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
3322 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
3323 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
3324 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3325 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
3326 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 3327 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3328 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
3329
103ff0d6
TJ
33302013-08-29 Teresa Johnson <tejohnson@google.com>
3331
3332 * dumpfile.c (dump_loc): Output column number.
3333 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
3334 * doc/invoke.texi: Document optall -fopt-info flag.
3335 * profile.c (read_profile_edge_counts): Use new dump framework.
3336 (compute_branch_probabilities): Ditto.
3337 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
3338 when pass not in any opt group.
3339 * pass_manager.h (pass_manager::get_pass_profile): New method.
3340 * value-prof.c (check_counter): Use new dump framework.
3341 (check_ic_target): Ditto.
3342 * coverage.c (get_coverage_counts): Ditto.
3343 (coverage_init): Setup new dump framework.
3344
301bbc16
RB
33452013-08-29 Richard Biener <rguenther@suse.de>
3346
3347 PR tree-optimization/58246
3348 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
3349 handle the dominance check inside a basic-block.
3350
1b275000
RB
33512013-08-29 Richard Biener <rguenther@suse.de>
3352
3353 PR middle-end/57287
3354 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3355 of default defs that appear in abnormal PHI nodes.
3356
6b1184ba
RB
33572013-08-29 Richard Biener <rguenther@suse.de>
3358
3359 PR tree-optimization/57685
3360 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3361 single-use operands to avoid exponential complexity.
3362
1b08b734
DC
33632013-08-28 Dehao Chen <dehao@google.com>
3364
3365 * ipa-inline.c (edge_badness): Fix integer underflow.
3366
48a3fa69
UB
33672013-08-28 Uros Bizjak <ubizjak@gmail.com>
3368
3369 * gtm-builtins.def (_ITM_free): Declare leaf.
3370
215f73e6
JJ
33712013-08-28 Jakub Jelinek <jakub@redhat.com>
3372
3373 PR target/58067
3374 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3375 (*tls_local_dynamic_base_64_largepic): Likewise.
3376 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3377 Remove predicate from call operand.
3378 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3379 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3380
34554d1a
JL
33812013-08-28 Jeff Law <law@redhat.com>
3382
3383 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3384 checks for the number of predecessors and successors allowed.
3385 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3386 which require copying a joiner block if there is a request which
3387 is a subpath that requires no joiner block copying.
3388
c01c111b
JH
33892013-08-28 Jan Hubicka <jh@suse.cz>
3390
3391 * lto-streamer-out.c (DFS_write_tree_body): Drop
3392 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3393 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3394 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3395 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3396 Do not read DECL_ERROR_ISSUED.
3397 (unpack_ts_decl_with_vis_value_fields): Do not read
3398 DECL_DEFER_OUTPUT.
48a3fa69
UB
3399 (lto_input_ts_binfo_tree_pointers): Do not read
3400 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3401 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3402 write DECL_ERROR_ISSUED..
3403 (pack_ts_decl_with_vis_value_fields): Do not write
3404 DECL_DEFER_OUTPUT.
3405 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3406 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3407 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3408 * tree.h (tree_decl_common): Update comment.
3409 (DECL_ERROR_ISSUED): Remove.
3410
4b128ece
JJ
34112013-08-28 Jakub Jelinek <jakub@redhat.com>
3412
3413 PR middle-end/58257
3414 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3415
12211b99 34162013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3417
3418 * builtins.def (free): Declare leaf.
3419
8dce4dbc
DM
34202013-08-27 David Malcolm <dmalcolm@redhat.com>
3421
3422 * gdbhooks.py: New.
3423 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3424 * configure: Regenerate.
3425
b8f6e610
MJ
34262013-08-27 Martin Jambor <mjambor@suse.cz>
3427
3428 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3429 (ipa_ancestor_jf_data): Likewise.
3430 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3431 (ipa_get_jf_pass_through_type_preserved): New function.
3432 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3433 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3434 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3435 (ipa_get_jf_ancestor_result): Likewise.
3436 (propagate_vals_accross_pass_through): Use
3437 ipa_get_jf_pass_through_result to do all the value mappings.
3438 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3439 type_preserved flag.
3440 (ipa_set_jf_cst_copy): New function.
3441 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3442 (ipa_set_jf_arith_pass_through): Likewise.
3443 (ipa_set_ancestor_jf): Likewise.
3444 (compute_complex_assign_jump_func): Set type_preserved instead of
3445 punting.
3446 (ipa_compute_jump_functions_for_edge): Likewise.
3447 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3448 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3449 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3450 (ipa_write_jump_function): Stream the type_preserved flags.
3451 (ipa_read_jump_function): Likewise.
3452
74bf76ed
JJ
34532013-08-27 Jakub Jelinek <jakub@redhat.com>
3454 Aldy Hernandez <aldyh@redhat.com>
3455
3456 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3457 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3458 * function.h (struct function): Add has_force_vect_loops and
3459 has_simduid_loops.
12211b99 3460 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3461 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3462 handle it.
3463 * gimple.def: Update CLAUSES comments.
3464 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3465 (gimple_build_omp_for): Add argument to prototype.
3466 (gimple_omp_for_kind): New.
3467 (gimple_omp_for_set_kind): New.
3468 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3469 GOVD_DATA_SHARE_CLASS.
3470 (enum omp_region_type): Add ORT_SIMD.
3471 (gimple_add_tmp_var): Handle ORT_SIMD.
3472 (gimplify_var_or_parm_decl): Same.
3473 (is_gimple_stmt): Same.
3474 (omp_firstprivatize_variable): Same.
3475 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3476 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3477 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3478 (omp_check_private): Handle ORT_SIMD.
3479 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3480 OMP_CLAUSE_SAFELEN.
3481 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3482 Handle OMP_CLAUSE_LASTPRIVATE.
3483 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3484 OMP_CLAUSE_SAFELEN.
3485 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3486 (gimplify_expr): Handle OMP_SIMD.
3487 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3488 (expand_GOMP_SIMD_VF): New.
3489 (expand_GOMP_SIMD_LAST_LANE): New.
3490 * internal-fn.def (GOMP_SIMD_LANE): New.
3491 (GOMP_SIMD_VF): New.
3492 (GOMP_SIMD_LAST_LANE): New.
3493 * omp-low.c: Include target.h.
3494 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3495 OMP_CLAUSE_SAFELEN.
3496 (check_omp_nesting_restrictions): Same.
3497 (omp_max_vf): New.
3498 (lower_rec_simd_input_clauses): New.
3499 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3500 OMP_CLAUSE_LINEAR.
3501 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3502 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3503 (expand_omp_build_assign): New.
3504 (expand_omp_for_init_counts): New.
3505 (expand_omp_for_init_vars): New.
3506 (extract_omp_for_update_vars): New.
3507 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3508 and rewrite accordingly.
3509 (expand_omp_simd): New.
3510 (expand_omp_for): Use expand_omp_simd.
3511 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3512 (lower_omp_for): Do not lower the body.
3513 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3514 in their own loops.
3515 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3516 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3517 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3518 (gate_tree_if_conversion): Similarly.
3519 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3520 gimple_build_omp_for.
3521 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3522 * tree-parloops (create_parallel_loop): Pass kind argument to
3523 gimple_build_omp_for.
3524 * tree-pretty-print.c (dump_omp_clause): Add cases for
3525 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3526 OMP_CLAUSE__SIMDUID_.
3527 (dump_generic_node): Handle OMP_SIMD.
3528 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3529 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3530 unroll OMP_SIMD loops here.
12211b99 3531 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3532 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3533 loop->safelen.
74bf76ed
JJ
3534 (vect_analyze_data_refs): Handle simd loops.
3535 * tree-vect-loop.c (vectorizable_live_operation): Handle
3536 IFN_GOMP_SIMD*.
12211b99 3537 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3538 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3539 (vectorizable_load): Same.
12211b99 3540 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3541 (struct simduid_to_vf): New.
3542 (simduid_to_vf::hash): New.
3543 (simduid_to-vf::equal): New.
3544 (struct simd_array_to_simduid): New.
3545 (simd_array_to_simduid::hash): New.
3546 (simd_array_to_simduid::equal): New.
3547 (adjust_simduid_builtins): New.
3548 (struct note_simd_array_uses_struct): New.
3549 (note_simd_array_uses_cb): New.
3550 (note_simd_array_uses): New.
3551 (vectorize_loops): Handle simd hints and adjust simd builtins
3552 accordingly.
3553 * tree-vectorizer.h (struct _stmt_vec_info): Add
3554 simd_lane_access_p field.
3555 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3556 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3557 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3558 (omp_clause_code_name): Same.
3559 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3560 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3561 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3562 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3563 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3564 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3565 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3566 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3567 (OMP_CLAUSE_LINEAR_STEP): New.
3568 (OMP_CLAUSE_SAFELEN_EXPR): New.
3569 (OMP_CLAUSE__SIMDUID__DECL): New.
3570 (find_omp_clause): New prototype.
3571
d0cf4e84
L
35722013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3573
3574 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3575 Haswell processor detection.
3576
992592ec
CW
35772013-08-27 Christian Widmer <shadow@umbrox.de>
3578
3579 PR target/57927
3580 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3581 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3582 AVX2 capable processors.
3583
9116eb22
TB
35842013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3585
3586 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3587 of vget_low_* with implementations in terms of other intrinsics.
3588
1c5abb53
MG
35892013-08-27 Marc Glisse <marc.glisse@inria.fr>
3590
3591 PR middle-end/57219
3592 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3593 values to -1, 0 and 1.
3594
2e100703
VP
35952013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3596
3597 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3598 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3599 (<optab><mode>3_insn): Remove.
3600 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3601 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3602 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3603 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3604 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3605 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3606 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3607 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3608 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3609 (ror<mode>3_insn): Likewise.
3610 * config/aarch64/predicates.md (aarch64_simd_register): New.
3611
4ded8276
RB
36122013-08-27 Richard Biener <rguenther@suse.de>
3613
3614 PR tree-optimization/57521
3615 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3616 one edge is non-critical.
3617 (find_phi_replacement_condition): Make sure to use a non-critical
3618 edge. Cleanup and remove old bug workarounds.
3619 (bb_postdominates_preds): Remove.
3620 (if_convertible_loop_p_1): Do not compute post-dominators.
3621 (combine_blocks): Do not free post-dominators.
3622 (main_tree_if_conversion): Likewise.
3623 (pass_data_if_conversion): Add TODO_verify_ssa.
3624
5aa11061
DD
36252013-08-27 DJ Delorie <dj@redhat.com>
3626
3627 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3628
fd91cfe3
YZ
36292013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3630
3631 * function.c (assign_parm_find_data_types): Set passed_mode and
3632 nominal_mode to the TYPE_MODE of nominal_type for the built
3633 pointer type in case of the struct-pass-by-reference.
3634
907555ce
JR
36352013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3636
3637 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
3638 (UINT16_TYPE): Change default to "unsigned int".
3639
67518c93
JR
3640 * config/avr/avr.opt (mfract-convert-truncate): New option.
3641 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
3642 is set, round negative fractional integers according to n1169
3643 when converting to integer types.
3644
d6d989fc
JH
36452013-08-26 Jan Hubicka <jh@suse.cz>
3646
3647 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
3648 methods can not be called indirectly when their address is not taken.
3649
2aa3da06
JH
36502013-08-26 Jan Hubicka <jh@suse.cz>
3651
12211b99
UB
3652 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
3653 ctor_for_folding.
2aa3da06 3654
0987ffe7
JH
36552013-08-26 Jan Hubicka <jh@suse.cz>
3656
3657 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
3658 can be unshared.
3659
befe8647
JR
36602013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3661
3662 * reload.c (find_valid_class): Allow classes that do not include
3663 FIRST_PSEUDO_REGISTER - 1.
3664
a21e735e
JH
36652013-08-26 Jan Hubicka <jh@suse.cz>
3666
3667 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
3668 fix edge count/frequency when speculation failed; fix type check
3669 for the direct call.
3670
e067bd43
JH
36712013-08-26 Jan Hubicka <jh@suse.cz>
3672
3673 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
3674
e8aec975
JH
36752013-08-26 Jan Hubicka <jh@suse.cz>
3676
3677 * ipa-inline-transform.c (inline_transform): Be ready for basic block
3678 to be changed by edge redirection.
3679
d0b66480
JH
36802013-08-26 Jan Hubicka <jh@suse.cz>
3681
12211b99
UB
3682 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
3683 formating; add sanity check.
d0b66480
JH
3684 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
3685 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
3686 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
3687 (resolve_noninline_speculation): Update callee keys, too.
3688
0f9aaac7
JH
36892013-08-26 Jan Hubicka <jh@suse.cz>
3690
3691 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
3692 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
3693
4b37444e
JR
36942013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3695
3696 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
3697 into proper place.
3698
5339fc0c
UB
36992013-08-26 Uros Bizjak <ubizjak@gmail.com>
3700
3701 * config/i386/i386.c (ix86_debug_options): Remove prototype.
3702 (x86_64_elf_select_section): Ditto.
3703 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
3704 arguments.
3705 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
3706 (output_set_got): Ditto.
3707 (ix86_unary_operator_ok): Ditto.
3708 (ix86_expand_builtin): Ditto.
3709
d5c3d3ef
JH
37102013-08-23 Jan Hubicka <jh@suse.cz>
3711
5339fc0c 3712 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 3713
5b1e7435
JH
37142013-08-23 Jan Hubicka <jh@suse.cz>
3715
3716 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
3717 (tree_decl_with_vis): Add FINAL field.
3718
ead69dac
JL
37192013-08-23 Jeff Law <law@redhat.com>
3720
3721 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
3722 the debugging dump when the expression is fully redundant.
3723
025311c4
GDR
37242013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3725
3726 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
3727 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
3728 * pretty-print.c (pp_formatted_text_data): Likewise.
3729 (pp_write_text_to_stream): Likewise.
3730 (pp_write_text_as_dot_label_to_stream): Likewise.
3731 (pp_append_r): Likewise.
3732 (pp_format): Likewise.
3733 (pp_flush): Likewise.
3734 (pp_clear_output_area): Likewise.
3735 (pp_append_text): Likewise.
3736 (pp_formatted_text): Likewise.
3737 (pp_remaining_character_count_for_line): Likewise.
3738 (pp_newline): Likewise.
3739 (pp_character): Likewise.
3740 (output_buffer::~output_buffer): Define.
3741 (pretty_printer::~pretty_printer): Destruct output buffer.
3742 * pretty-print.h (output_buffer::~output_buffer): Declare.
3743 (pretty_printer::~pretty_printer): Declare virtual.
3744
0cadbfaa
MG
37452013-08-24 Marc Glisse <marc.glisse@inria.fr>
3746
3747 PR other/57324
3748 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
3749 HOST_WIDE_INT_M1U): New macros.
3750 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
3751 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
3752 unsigned -1 for lshift.
3753 * cse.c (cse_insn): Likewise.
3754 * double-int.c (rshift_double, lshift_double): Likewise.
3755 * builtins.c (fold_builtin_bitop): Likewise.
3756 * combine.c (force_to_mode): Likewise.
3757 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
3758 * simplify-rtx.c (simplify_const_unary_operation,
3759 simplify_const_binary_operation): Likewise.
3760 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
3761 check_va_list_escapes): Likewise.
3762 * rtlanal.c (nonzero_bits1): Likewise.
3763 * expmed.c (expand_smod_pow2): Likewise.
3764 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
3765
009e5353
JH
37662013-08-23 Jan Hubicka <jh@suse.cz>
3767
3768 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
3769 as having address taken.
3770
c4be6568
JH
37712013-08-23 Jan Hubicka <jh@suse.cz>
3772
64cbf23d
JH
3773 * ipa-utils.h (method_class_type): Declare.
3774 * ipa-devirt.c (method_class_type): Export.
3775
c4be6568
JH
3776 * cgraphunit.c (analyze_functions): Do basic devirtualization;
3777 do not walk base classes of anonymous types.
3778
97aba8e9
KK
37792013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
3780
3781 PR rtl-optimization/58220
3782 PR regression/58221
3783 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
3784 handle SEQUENCE insns properly.
3785
0fc80001
GDR
37862013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3787
3788 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
3789 definition.
3790 (pp_newline_and_indent): Likewise.
3791 (pp_separate_with): Likewise.
3792 * pretty-print.c (pp_newline_and_flush): Define.
3793 (pp_newline_and_indent): Likewise.
3794 (pp_separate_with): Likewise.
3795
520a5868
JJ
37962013-08-23 Jakub Jelinek <jakub@redhat.com>
3797
3798 PR target/58218
3799 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
3800 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
3801
e500c62a
KY
38022013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
3803
f43245d1
UB
3804 * config/i386/predicates.md (ext_sse_reg_operand): New.
3805 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
3806 predicate to determine if EVEX is needed.
3807 (*movsi_internal): Ditto.
3808 (*movdf_internal): Ditto.
3809 (*movsf_internal): Ditto.
f43245d1 3810 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 3811
6b00d7dd
JJ
38122013-08-23 Jakub Jelinek <jakub@redhat.com>
3813
3814 PR tree-optimization/58209
3815 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
3816 (find_tail_calls): Give up for pointer result types if m is non-NULL.
3817 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
3818 emit POINTER_PLUS_EXPR.
3819 (create_tailcall_accumulator): For pointer result type accumulate in
3820 sizetype type.
3821
4f2a9f90
PC
38222013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
3823
3824 * configure.ac: Add backslashes missing from the last change.
3825 * configure: Regenerate.
3826
7bf4274e
JH
38272013-08-22 Jan Hubicka <jh@susue.cz>
3828
4f2a9f90
PC
3829 * ipa.c (function_and_variable_visibility): First remember function
3830 was global and then make it local.
7bf4274e 3831
1bea243d
JB
38322013-08-22 Julian Brown <julian@codesourcery.com>
3833
3834 * configure.ac: Add aarch64 to list of arches which use "nop" in
3835 debug_line test.
3836 * configure: Regenerate.
3837
bcba7ecc
AK
38382013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3839
3840 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
3841 gnu_libc_has_function.
3842 * config/s390/tpf.h: Likewise.
3843
4c495b0d
JH
38442013-08-22 Jan Hubicka <jh@susue.cz>
3845
3846 * timevar.c (validate_phases): Add cast.
3847
5e302bca
JH
38482013-08-22 Jan Hubicka <jh@susue.cz>
3849
3850 * timevar.c (validate_phases): Use size_t for memory.
3851 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
3852
da6ca2b5
GDR
38532013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3854
3855 * pretty-print.h (output_buffer::output_buffer): Declare.
3856 (pretty_printer::pretty_printer): Likewise.
3857 (pp_construct): Remove.
3858 * pretty-print.c (output_buffer::output_buffer): Define.
3859 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
3860 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
3861 (print_gimple_expr): Likewise.
3862 (print_gimple_seq): Likewise.
3863 (gimple_dump_bb): Likewise.
3864 * sched-vis.c (dump_value_slim): Likewise.
3865 (dump_insn_slim): Likewise.
3866 (dump_rtl_slim): Likewise.
3867 (str_pattern_slim): Likewise.
3868 * tree-mudflap.c (mf_varname_tree): Likewise.
3869 * graph.c (print_graph_cfg): Likewise.
3870 (start_graph_dump): Likewise.
3871 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
3872 placement-new.
3873 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
3874 pretty printer initialization.
3875 * coretypes.h (diagnostic_context): Remove superflous type alias
3876 declaration.
3877 (pretty_printer): Likewise. Declare directly as a class.
3878 (pretty_print_info): Remove declaration as class.
3879 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
3880 and pp_clear_output_area.
3881 (asan_add_global): Likewise.
3882
0e1474e5
JH
38832013-08-22 Jan Hubicka <jh@suse.cz>
3884
3885 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
3886 * ipa-utils.h (update_type_inheritance_graph): Declare.
3887 (possible_polymorphic_call_target_p): Declare.
3888 (possible_polymorphic_call_target_p): New.
3889 * ipa-devirt.c: Update toplevel comments.
3890 (cached_polymorphic_call_targets): Move up.
3891 (odr_type_d): Move ID down.
3892 (polymorphic_type_binfo_p): Update comment.
3893 (odr_hasher::remove): Likewise;
3894 (get_odr_type): Set anonymous_namespace.
3895 (dump_odr_type): Dump it.
3896 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
3897 (maybe_record_node): Record node in cached_polymorphic_call_targets.
3898 (record_binfo): Add comment.
5339fc0c
UB
3899 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
3900 built.
0e1474e5
JH
3901 (devirt_node_removal_hook): Do not iCE when cache is freed.
3902 (possible_polymorphic_call_target_p): New predicate.
3903 (update_type_inheritance_graph): New function.
3904
3f97cb0b
AI
39052013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
3906 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3907 Sergey Lega <sergey.s.lega@intel.com>
3908 Anna Tikhonova <anna.tikhonova@intel.com>
3909 Ilya Tocar <ilya.tocar@intel.com>
3910 Andrey Turetskiy <andrey.turetskiy@intel.com>
3911 Ilya Verbin <ilya.verbin@intel.com>
3912 Kirill Yukhin <kirill.yukhin@intel.com>
3913 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3914
3915 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
3916 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
3917 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
3918 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
3919 (OPTION_MASK_ISA_AVX2_UNSET): Update.
3920 (OPTION_MASK_ISA_AVX512F_UNSET): New.
3921 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
3922 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
3923 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
3924 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
3925 OPT_mavx512pf, OPT_mavx512er cases.
3926 * config/i386/constraints.md (v): New constraint.
3927 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
3928 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
3929 (bit_AVX512CD): New.
3930 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3931 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
3932 * config/i386/i386-c.c (ix86_target_macros_internal):
3933 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
3934 __AVX512PF__.
3935 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
3936 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
3937 * config/i386/i386.c (regclass_map, dbx_register_map)
3938 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
3939 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
3940 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
3941 -mavx512pf options.
3942 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
3943 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
3944 -mavx512pf options. Fix formatting.
3945 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
3946 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
3947 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
3948 -mavx512cd, -mavx512pf options.
3949 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
3950 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
3951 (ix86_preferred_output_reload_class): Replace SSE_REGS with
3952 ALL_SSE_REGS.
3953 (ix86_hard_regno_mode_ok): Support 512-bit registers.
3954 (ix86_set_reg_reg_cost): Ditto.
3955 (x86_order_regs_for_local_alloc): Ditto.
3956 (MAX_VECT_LEN): Extend to 64-byte.
3957 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
3958 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
3959 (TARGET_AVX512ER, TARGET_AVX512CD): New.
3960 (BIGGEST_ALIGNMENT): Extend to 512-bits.
3961 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
3962 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
3963 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
3964 (SSE_REG_MODE_P): Support new modes.
3965 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
3966 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
3967 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
3968 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
3969 (REG_CLASS_CONTENTS): Add new registers.
3970 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
3971 (EXT_REX_SSE_REGNO_P): New.
3972 (HI_REGISTER_NAMES): Add new registers.
3973 * config/i386/i386.md: Define constants for new registers.
3974 (mode): Add new 512-bit modes.
3975 (prefix): Support evex prefix.
3976 (isa): Support avx512f, noavx512f, fma_avx512f.
3977 (ssemodesuffix): Add new 512-bit modes.
3978 (movxi): New.
3979 (*movxi_internal_avx512f): Ditto.
3980 (*movdi_internal): Replace constraint "x" with the new constraint "v".
3981 Support MODE_XI.
3982 (*movsi_internal): Likewise.
3983 (*movdf_internal): Likewise.
3984 (*movsf_internal): Likewise.
3985 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
3986 (<code><mode>3): Likewise.
5339fc0c
UB
3987 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
3988 New.
3f97cb0b
AI
3989 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
3990 with the new constraint "v".
3991 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
3992 modes.
3993 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
3994 with the new constraint "v".
3995 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
3996 (<sse2>_storedqu<avxsizesuffix>): Likewise.
3997 (*<plusminus_insn><mode>3): Likewise.
3998 (<sse>_vm<plusminus_insn><mode>3): Likewise.
3999 (*mul<mode>3): Likewise.
4000 (<sse>_vmmul<mode>3): Likewise.
4001 (<sse>_div<mode>3): Likewise.
4002 (<sse>_vmdiv<mode>3): Likewise.
4003 (<sse>_sqrt<mode>2): Likewise.
4004 (<sse>_vmsqrt<mode>2): Likewise.
4005 (*<code><mode>3_finite): Likewise.
4006 (*<code><mode>3) <smaxmin>: Likewise.
4007 (<sse>_vm<code><mode>3): Likewise.
4008 (*<code><mode>3) <any_logic>: Likewise.
4009 (*fma_fmadd_<mode>): Likewise.
4010 (*fma_fmsub_<mode>): Likewise.
4011 (*fma_fnmadd_<mode>): Likewise.
4012 (*fma_fnmsub_<mode>): Likewise.
4013 (*fma_fmaddsub_<mode>): Likewise.
4014 (*fma_fmsubadd_<mode>): Likewise.
4015 (*fmai_fmadd_<mode>): Likewise.
4016 (*fmai_fmsub_<mode>): Likewise.
4017 (*fmai_fnmadd_<mode>): Likewise.
4018 (*fmai_fnmsub_<mode>): Likewise.
4019 (sse_cvtsi2ss): Likewise.
4020 (sse_cvtsi2ssq): Likewise.
4021 (sse_cvtss2si): Likewise.
4022 (sse_cvtss2si_2): Likewise.
4023 (sse_cvtss2siq): Likewise.
4024 (sse_cvtss2siq_2): Likewise.
4025 (sse_cvttss2si): Likewise.
4026 (sse_cvtss2siq_2): Likewise.
4027 (float<sseintvecmodelower><mode>2): Likewise.
4028 (sse2_cvtsd2si_2): Likewise.
4029 (sse2_cvtsd2siq_2): Likewise.
4030 (*<plusminus_insn><mode>3): Likewise.
4031 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
4032 (*<sse4_1_avx2>_mul<mode>3): Likewise.
4033 (ashr<mode>3): Likewise.
4034 (<shift_insn><mode>3): Likewise.
4035 (avx2_<code><mode>3): Likewise.
4036 (*avx2_<code><mode>3): Likewise.
4037 (*andnot<mode>3): Likewise.
4038 (*<code><mode>3) <any_logic>: Likewise.
4039 (abs<mode>2): Likewise.
4040 (avx2_permvar<mode>): Likewise.
4041 (avx2_perm<mode>_1): Likewise.
4042 (*avx_vpermilp<mode>): Likewise.
4043 (avx_vpermilvar<mode>3): Likewise.
4044 (avx2_ashrv<mode>): Likewise.
4045 (avx2_<shift_insn>v<mode>): Likewise.
4046 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
4047 -mavx512cd.
4048 * doc/rtl.texi: Document XImode.
4049
dd5e8423
JL
40502013-08-21 Jeff Law <law@redhat.com>
4051
b9ebee5d
JL
4052 * tree-flow.h (register_jump_thread): Pass vector of edges
4053 instead of each important edge.
4054 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
4055 thread path into a vector and pass that to register_jump_thread.
4056 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
4057 passed in edge vector to the current 3-edge form.
4058
dd5e8423
JL
4059 Revert:
4060 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4061
9bb6628e 4062 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
4063 delete_unmarked_insns removed anything.
4064
445dc8df
JR
40652013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
4066
4067 * reload.h (struct reg_equivs): Rename to ..
4068 (struct reg_equivs_s): .. this.
4069
e0df53dd
ML
40702013-08-20 Martin Liska <marxin.liska@gmail.com>
4071
4072 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
4073
e7d1d3eb
RO
40742013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4075
5339fc0c 4076 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 4077
5562e26e
JL
40782013-08-21 Jeff Law <law@redhat.com>
4079
4080 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
4081 simplify assignments too. If the RHS collapses to a singleton
4082 range, then return the value for the range.
4083
c7ecdec6
KY
40842013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
4085
4086 * config/i386/sse.md (V16): Rename to...
4087 (VMOVE): this.
4088 (mov<mode>): Update iterator name.
4089 (*mov<mode>_internal): Ditto.
4090 (push<mode>1): Ditto.
4091 (movmisalign<mode>): Ditto.
4092
bfa3b50a
JH
40932013-08-20 Jan Hubicka <jh@suse.cz>
4094
4095 PR bootstrap/58186
4096 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
4097 entry for direct edges.
4098 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
4099
6cd4d135
DM
41002013-08-20 David Malcolm <dmalcolm@redhat.com>
4101
4102 Revert my last two changes, r201865 and r201864:
4103
4104 Revert r201865:
4105 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4106
4107 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4108 instances can own GC refs.
4109
4110 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4111 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4112 (gcc::context::gt_pch_nx): Likewise.
4113 (gcc::context::gt_pch_nx): Likewise.
4114 * ggc.h (gt_ggc_mx <T>): New.
4115 (gt_pch_nx_with_op <T>): New.
4116 (gt_pch_nx <T>): New.
4117 * passes.c (opt_pass::gt_ggc_mx): New.
4118 (opt_pass::gt_pch_nx): New.
4119 (opt_pass::gt_pch_nx_with_op): New.
4120 (pass_manager::gt_ggc_mx): New.
4121 (pass_manager::gt_pch_nx): New.
4122 (pass_manager::gt_pch_nx_with_op): New.
4123 (pass_manager::operator new): Use
4124 ggc_internal_cleared_alloc_stat rather than xcalloc.
4125 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4126 (pass_manager::gt_ggc_mx): New.
4127 (pass_manager::gt_pch_nx): New.
4128 (pass_manager::gt_pch_nx_with_op): New.
4129 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4130 (opt_pass::operator new): New.
4131 (opt_pass::gt_ggc_mx): New.
4132 (opt_pass::gt_pch_nx): New.
4133 (opt_pass::gt_pch_nx_with_op): New.
4134
4135 Revert r201864:
4136 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4137
4138 * Makefile.in (GTFILES): Add context.h.
4139 * context.c (gcc::context::operator new): New.
4140 (gcc::context::gt_ggc_mx): New.
4141 (gcc::context::gt_pch_nx): New.
4142 (gcc::context::gt_pch_nx): New.
4143 * context.h (gcc::context): Add GTY((user)) marking.
4144 (gcc::context::operator new): New.
4145 (gcc::context::gt_ggc_mx): New.
4146 (gcc::context::gt_pch_nx): New.
4147 (gcc::context::gt_pch_nx): New.
4148 (g): Add GTY marking.
4149 (gt_ggc_mx (gcc::context *)): New.
4150 (gt_pch_nx (gcc::context *)): New.
4151 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4152 void *cookie)): New.
4153 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4154
a046136a
AM
41552013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4156
4157 * dce.c (fini_dce): Call df_analyze again just in case
4158 delete_unmarked_insns removed anything.
4159
67598720
TJ
41602013-08-20 Teresa Johnson <tejohnson@google.com>
4161
4162 PR rtl-optimizations/57451
4163 * final.c (reemit_insn_block_notes): Prevent lexical blocks
4164 from crossing split section boundaries.
4165
f8693faf
MGD
41662013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4167
4168 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
4169 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
4170 with MULTLIB_DEFAULTS.
4171
7d0b9a9c
NC
41722013-08-20 Nick Clifton <nickc@redhat.com>
4173
4174 * target.def (narrow_volatile_bitfield): Note that the default
4175 value is false, not !TARGET_STRICT_ALIGN.
4176 * doc/tm.texi: Regenerate.
4177
8edb8dc8
PC
41782013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
4179
4180 Fix LIB_SPEC for systems without libpthread.
4181
4182 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
4183 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
4184 for Android.
4185 * config/i386/linux-common.h: Likewise.
4186 * config/mips/linux-common.h: Likewise.
4187
12211b99 41882013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
4189
4190 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
4191 checks.
4192
e42c64cb
DM
41932013-08-20 David Malcolm <dmalcolm@redhat.com>
4194
4195 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4196 instances can own GC refs.
4197
4198 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4199 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4200 (gcc::context::gt_pch_nx): Likewise.
4201 (gcc::context::gt_pch_nx): Likewise.
4202 * ggc.h (gt_ggc_mx <T>): New.
4203 (gt_pch_nx_with_op <T>): New.
4204 (gt_pch_nx <T>): New.
4205 * passes.c (opt_pass::gt_ggc_mx): New.
4206 (opt_pass::gt_pch_nx): New.
4207 (opt_pass::gt_pch_nx_with_op): New.
4208 (pass_manager::gt_ggc_mx): New.
4209 (pass_manager::gt_pch_nx): New.
4210 (pass_manager::gt_pch_nx_with_op): New.
4211 (pass_manager::operator new): Use
4212 ggc_internal_cleared_alloc_stat rather than xcalloc.
4213 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4214 (pass_manager::gt_ggc_mx): New.
4215 (pass_manager::gt_pch_nx): New.
4216 (pass_manager::gt_pch_nx_with_op): New.
4217 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4218 (opt_pass::operator new): New.
4219 (opt_pass::gt_ggc_mx): New.
4220 (opt_pass::gt_pch_nx): New.
4221 (opt_pass::gt_pch_nx_with_op): New.
4222
910c02a0
DM
42232013-08-20 David Malcolm <dmalcolm@redhat.com>
4224
4225 * Makefile.in (GTFILES): Add context.h.
4226 * context.c (gcc::context::operator new): New.
4227 (gcc::context::gt_ggc_mx): New.
4228 (gcc::context::gt_pch_nx): New.
4229 (gcc::context::gt_pch_nx): New.
4230 * context.h (gcc::context): Add GTY((user)) marking.
4231 (gcc::context::operator new): New.
4232 (gcc::context::gt_ggc_mx): New.
4233 (gcc::context::gt_pch_nx): New.
4234 (gcc::context::gt_pch_nx): New.
4235 (g): Add GTY marking.
4236 (gt_ggc_mx (gcc::context *)): New.
4237 (gt_pch_nx (gcc::context *)): New.
4238 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4239 void *cookie)): New.
4240 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4241
af4b4236
AM
42422013-08-20 Alan Modra <amodra@gmail.com>
4243
4244 PR target/57865
4245 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
4246 (rs6000_emit_epilogue): Likewise.
4247
12211b99 42482013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
4249
4250 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4251
e2323f5b
PB
42522013-08-19 Peter Bergner <bergner@vnet.ibm.com>
4253 Jakub Jelinek <jakub@redhat.com>
4254
4255 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
4256 (BUILT_IN_FABSD64): Likewise.
4257 (BUILT_IN_FABSD128): Likewise.
4258 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
4259 (fold_builtin_1): Likewise.
5339fc0c
UB
4260 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
4261 destination and source operands.
e2323f5b
PB
4262 (*abstd2_fpr): Likewise.
4263 (*nabstd2_fpr): Likewise.
4264
cfbf3ee8
RS
42652013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
4266
4267 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
4268 JUMP_P and INSN_P.
4269
d3136aeb
AH
42702013-08-19 Aldy Hernandez <aldyh@redhat.com>
4271
4272 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
4273 incomplete.
4274
d33d9e47
AI
42752013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
4276
4277 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
4278 * builtins.c (default_libc_has_function): New.
4279 (gnu_libc_has_function): Ditto.
4280 (no_c99_libc_has_function): Ditto.
4281 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
4282 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
4283 (fold_builtin_sincos): Likewise.
4284 (fold_builtin_cexp): Likewise.
4285 * builtins.def (DEF_C94_BUILTIN): Likewise.
4286 (DEF_C99_BUILTIN): Likewise.
4287 (DEF_C99_C90RES_BUILTIN): Likewise.
4288 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
4289 definitions to using this define.
4290 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 4291 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
4292 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
4293 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
4294 * config/darwin.h: Ditto.
4295 * config/elfos.h: Ditto.
4296 * config/freebsd.h: Ditto.
4297 * config/i386/cygming.h: Ditto.
4298 * config/i386/djgpp.h: Ditto.
4299 * config/i386/i386-interix.h: Ditto.
4300 * config/microblaze/microblaze.h: Ditto.
4301 * config/mmix/mmix.h: Ditto.
4302 * config/gnu-user.h: Ditto.
4303 * config/ia64/hpux.h: Ditto.
4304 * config/pa/pa-hpux.h: Ditto.
4305 * config/pdp11/pdp11.h: Ditto.
4306 * config/picochip/picochip.h: Ditto.
4307 * config/linux.h: Ditto.
4308 * config/netbsd.h: Ditto.
4309 * config/openbsd.h: Ditto.
4310 * config/rs6000/aix43.h: Ditto.
4311 * config/rs6000/aix51.h: Ditto.
4312 * config/rs6000/aix52.h: Ditto.
4313 * config/rs6000/aix53.h: Ditto.
4314 * config/rs6000/aix61.h: Ditto.
4315 * config/rs6000/darwin.h: Ditto.
4316 * config/rs6000/linux.h: Ditto.
4317 * config/rs6000/linux64.h: Ditto.
4318 * config/s390/tpf.h: Ditto.
4319 * config/sol2-10.h: Ditto.
4320 * config/sol2.h: Ditto.
4321 * config/vms/vms.h: Ditto.
4322 * config/vxworks.h: Ditto.
4323 * config/linux-android.c (linux_android_libc_has_function):
4324 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
4325 * config/linux-protos.h (linux_android_libc_has_function):
4326 New declaration.
4327 * config/i386/i386.c (ix86_libc_has_function): New.
4328 * config/i386/i386-protos.h
4329 (ix86_libc_has_function): New declaration.
4330 * config/i386/i386.md
4331 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
4332 ("isinf<mode>2): Likewise.
4333 * convert.c (convert_to_integer): Using new target hook
4334 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
4335 TARGET_C99_FUNCTIONS.
4336 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
4337 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
4338 * coretypes.h (function_class): New enum for different
4339 classes of functions.
4340 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
4341 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
4342 (TARGET_HAS_SINCOS): Likewise.
4343 (TARGET_LIBC_HAS_FUNCTION): New.
4344 * doc/tm.texi: Regenerated.
4345 * targhooks.h (default_libc_has_function): New declaration.
4346 (no_c99_libc_has_function): Ditto.
4347 (gnu_libc_has_function): Ditto.
4348 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
4349 and TARGET_HAS_SINCOS.
4350
eefe9a99
JH
43512013-08-18 Jan Hubicka <jh@suse.cz>
4352
4353 * Makeifle-in (ipa-devirt.o): New.
4354 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4355 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4356 (analyze_functions): Look into possible targets of polymorphic call.
4357 * dumpfile.c (dump_files): Add type-inheritance dump.
4358 * dumpfile.h (TDI_inheritance): New.
4359 * ipa-devirt.c: New file.
4360 * ipa-utils.h (odr_type_d): Forward declare.
4361 (odr_type): New type.
4362 (build_type_inheritance_graph): Declare.
4363 (possible_polymorphic_call_targets): Declare and introduce inline
4364 variant when only edge is pased.
4365 (dump_possible_polymorphic_call_targets): Likewise.
4366 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4367 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4368 (types_same_for_odr): ... here.
4369 * tree.h (type_in_anonymous_namespace_p): Declare.
4370
29b89442
JJ
43712013-08-18 Jakub Jelinek <jakub@redhat.com>
4372
4373 PR tree-optimization/58006
4374 * tree-parloops.c (take_address_of): Don't ICE if get_name
4375 returns NULL.
4376 (eliminate_local_variables_stmt): Remove clobber stmts.
4377
4f219961
EB
43782013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4379
4380 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4381 error message is issued for an alias to undefined symbol.
4382
1d5755ef
JH
43832013-08-18 Jan Hubicka <jh@suse.cz>
4384
4385 * cgraph.c (cgraph_create_indirect_edge): Discover
4386 polymorphic calls and record basic info into indirect_info.
4387 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4388 devirtualization, ignore objc function calls.
4389 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4390 call with no parm index info.
4391 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4392 * tree.c (virtual_method_call_p): New function.
4393 * tree.h (virtual_method_call_p): Declare.
4394
5945bebf
JH
43952013-08-16 Jan Hubicka <jh@suse.cz>
4396
4397 PR middle-end/58179
4398 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4399
47fa5d23
DE
44002013-08-16 David Edelsohn <dje.gcc@gmail.com>
4401
4402 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4403 attribute.
4404
c74f54a0
DM
44052013-08-16 David Malcolm <dmalcolm@redhat.com>
4406
4407 * gengtype.c (type_for_name): Add special-case support for
4408 locating types within the "gcc::" namespace.
4409 (open_base_files): Emit a "using namespace gcc" directive.
4410
f758f299
MM
44112013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4412
4413 PR target/58160
4414 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4415 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4416
4417 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4418 array instead of each individual operand as a separate argument.
4419 (emit_fusion_gpr_load): Likewise.
4420 (expand_fusion_gpr_load): Add new function declaration.
4421
4422 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4423 signature to have the operands passed as an array, instead of as
4424 separate arguments. Allow ZERO_EXTEND to be in the memory
4425 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4426 depend on the register live/dead flags when peepholes are run.
4427 (expand_fusion_gpr_load): New function to be called from the
4428 peephole2 pass, to change the register that addis sets to be the
4429 target register.
4430 (emit_fusion_gpr_load): Change the calling signature to have the
4431 operands passed as an array, instead of as separate arguments.
4432 Allow ZERO_EXTEND to be in the memory address, and also
4433 SIGN_EXTEND if -mpower8-fusion-sign.
4434
4435 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4436 unspec enumeration.
4437 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4438 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4439 depend on the register live/dead state when the peephole pass is done.
f758f299 4440
158f4e4f
DM
44412013-08-16 David Malcolm <dmalcolm@redhat.com>
4442
4443 * gengtype.c (create_user_defined_type): Ensure that the kind
4444 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4445 declaration is seen before the GTY((user)) marking.
4446
22f8cea5
BE
44472013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4448
4449 PR target/58105
4450 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4451
c49bdb2e
JH
44522013-08-16 Jan Hubicka <jh@suse.cz>
4453
4454 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4455 arugment expected_type.
4456 (gimple_fold_call): Use it.
4457 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4458 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4459 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4460 (try_make_edge_direct_virtual_call): Likewise.
4461 * tree.c (obj_type_ref_class): New.
4462 * tree.h (obj_type_ref_class): Use it.
4463
4042dca9
GDR
44642013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4465
4466 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4467 (rtl_slim_pp): Likewise.
4468 (init_rtl_slim_pretty_print): Likewise.
4469 (dump_value_slim): Don't call it. Use local pretty printer.
4470 (dump_insn_slim): Likewise.
4471 (dump_rtl_slim): Likewise.
4472 (str_pattern_slim): Likewise.
4473 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4474 Simplify.
4475
7a460594
JJ
44762013-08-16 Jakub Jelinek <jakub@redhat.com>
4477
639dc669
JJ
4478 PR tree-optimization/58164
4479 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4480 walk gimple_goto_dest of GIMPLE_GOTO.
4481
7a460594
JJ
4482 PR tree-optimization/58165
4483 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4484 bi_call must be the last stmt in a bb, don't split_block, instead
4485 use fallthru edge from it and give up if there is none.
4486 Release conds vector when returning early.
4487
e3c02cc7
XDL
44882013-08-14 Xinliang David Li <davidxl@google.com>
4489
4490 * config/i386/i386.c (ix86_option_override_internal):
4491 Remove unused variable and field.
4492
6469da2c
BS
44932013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4494
4495 PR target/57949
22f8cea5 4496 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4497 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4498 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4499 and Linux, correct BLKmode alignment when 128-bit alignment is
4500 required and compatibility flag is not set.
22f8cea5
BE
4501 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4502 for zero-size arguments when compatibility flag is not set.
6469da2c 4503
4ca890e2
JJ
45042013-08-14 Jakub Jelinek <jakub@redhat.com>
4505
4506 PR tree-optimization/58145
4507 * tree-sra.c (build_ref_for_offset): If prev_base has
4508 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4509
daec1759 45102013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4511
daec1759 4512 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4513 Fix uninitialized variable error.
daec1759 4514
3ad20bd4
XDL
45152013-08-14 Xinliang David Li <davidxl@google.com>
4516
4517 * config/i386/i386.opt: Define two new options.
4518 * config/i386/x86-tune.def: Add arch selector field in macros.
4519 * config/i386/i386.h: Adjust macro definition.
4520 * config/i386/i386.c (ix86_option_override_internal):
4521 Refactor the code.
4522 (parse_mtune_ctrl_str): New function.
4523 (set_ix86_tune_features): New function.
4524 (ix86_function_specific_restore): Call the new helper function.
4525
e839e2a9
AB
45262013-08-14 Andrey Belevantsev <abel@ispras.ru>
4527
4528 PR rtl-optimization/57662
4529 * sel-sched.c (code_motion_process_successors): When the current insn
4530 is removed after the recursive traversal, break from the loop.
4531 Add comments and debug printouts.
4532
27ed665f
JJ
45332013-08-14 Jakub Jelinek <jakub@redhat.com>
4534 Alexandre Oliva <aoliva@redhat.com>
4535
4536 PR target/58067
4537 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4538 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4539 there also UNSPEC_PLTOFF.
4540
61c1a609
MP
45412013-08-14 Marek Polacek <polacek@redhat.com>
4542
4543 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4544 NUM_CONDITIONS bit positions.
4545
0e901c67
CC
45462013-08-13 Cary Coutant <ccoutant@google.com>
4547
4548 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4549 (attr_checksum): Hash vector contents instead of pointer.
4550 (attr_checksum_ordered): Likewise.
4551
061eff6d
UB
45522013-08-13 Uros Bizjak <ubizjak@gmail.com>
4553
4554 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4555 when Pmode != word_mode. Add length_address attribute.
4556 (sse3_monitor_<mode>): Merge from sse3_monitor and
4557 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4558 Pmode != word_mode. Update insn length attribute.
4559 * config/i386/i386.c (ix86_option_override_internal): Update
4560 ix86_gen_monitor selection for merged sse3_monitor insn.
4561
8ec9249b
JB
45622013-08-13 Julian Brown <julian@codesourcery.com>
4563
4564 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4565 perform invalid legitimization on greater-than-word-size modes for
4566 TARGET_E500_DOUBLE.
4567
761a8eb7
VM
45682013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4569
4570 * ira.c (setup_class_translate_array): Use aclass instead of cl
4571 for classes not fully covered by allocno classes.
4572
99c2bd54
JJ
45732013-08-13 Jakub Jelinek <jakub@redhat.com>
4574
4029a5e0
JJ
4575 PR tree-optimization/57661
4576 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4577 * tree-inline.c (tree_function_versioning): Initialize it.
4578 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4579 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4580 that is not being copied.
4581
99c2bd54
JJ
4582 PR sanitizer/56417
4583 * asan.c (instrument_strlen_call): Fix typo in comment.
4584 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4585
b5f8f063
SE
45862013-08-13 Steve Ellcey <sellcey@mips.com>
4587
4588 * config/mips/mips.md (prefetch): Use lw instead of ld on
4589 loongson in 32bit mode.
4590
4de80584
NC
45912013-08-13 Nick Clifton <nickc@redhat.com>
4592
4593 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4594
09ce3660
JH
45952013-08-13 Jan Hubicka <jh@suse.cz>
4596
4597 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4598 introduced edge; fix typo in sanity check.
4599 (cgraph_resolve_speculation): Export; improve diagnostic.
4600 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4601 speculation at type mismatch.
4602 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4603 (cgraph_resolve_speculation): Declare.
4604 (symtab_can_be_discarded): New function.
4605 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4606 * ipa-inline-transform.c (speculation_removed): New global var.
4607 (clone_inlined_nodes): See if speculation can be removed.
4608 (inline_call): If speculations was removed, we growths may not match.
4609 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4610 (speculation_useful_p): New function.
4611 (resolve_noninline_speculation): New function.
4612 (inline_small_functions): Resolve useless speculations.
4613 * ipa-inline.h (speculation_useful_p): Declare
4614 * ipa.c (can_replace_by_local_alias): Simplify.
4615 (ipa_profile): Produce speculative calls in non-lto, too;
4616 add simple cost model; produce local aliases.
4617
f971dc24
DM
46182013-08-13 David Malcolm <dmalcolm@redhat.com>
4619
4620 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4621 PASS_MANAGER_H.
f971dc24 4622
2e507b9a
PC
46232013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4624
4625 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4626
c97fd4b8
UB
46272013-08-12 Uros Bizjak <ubizjak@gmail.com>
4628
4629 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4630 iterator instead of X87MODEF.
4631
46322013-08-12 Perez Read <netfirewall@gmail.com>
4633
4634 PR target/58132
4635 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
4636 operand 0 for intel asm alternative.
4637 (*movabs<mode>_2): Ditto for operand 1.
4638
f4f4204c
JG
46392013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
4640
4641 * config/aarch64/arm_none.h
4642 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
4643
133b1a8e
NC
46442013-08-12 Nick Clifton <nickc@redhat.com>
4645
4646 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
4647
15dd8b3a
YR
46482013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4649
4650 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
4651 expand for QI/HImode operand to produce more effictive code for
4652 unsigned char(short) --> float(double) conversion.
4653
94109a6a
AM
46542013-08-12 Alexander Monakov <amonakov@ispras.ru>
4655
4656 * doc/invoke.texi: Mention that -ftls-model does not force the final
4657 model.
4658
4e115102
MP
46592013-08-12 Marek Polacek <polacek@redhat.com>
4660 Marc Glisse <marc.glisse@inria.fr>
4661
4662 PR tree-optimization/57980
4663 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
4664 when creating -1 constant.
4665
748d71f3
JH
46662013-08-10 Jan Hubicka <jh@suse.cz>
4667
1f97e193 4668 Workaround binutils PR14342.
748d71f3
JH
4669 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
4670 (gimple_init_edge_profiler): Likewise.
4671 (gimple_gen_ic_func_profiler): Likewise.
4672
5979aa54
JH
46732013-08-09 Jan Hubicka <jh@suse.cz>
4674
4675 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
4676
ad83025e
XDL
46772013-08-09 Xinliang David Li <davidxl@google.com>
4678
4679 * config/i386/stringop.def: New file.
4680 * config/i386/stringop.opt: New file.
4681 * config/i386/i386-opts.h: Include stringopt.def.
4682 * config/i386/i386.opt: Include stringopt.opt.
4683 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 4684 Override default size based stringop inline strategies with options.
ad83025e
XDL
4685 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
4686 New function.
4687
e59df5fd
JH
46882013-08-09 Jan Hubicka <jh@suse.cz>
4689
c97fd4b8 4690 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 4691
634ab819
JH
46922013-08-09 Jan Hubicka <jh@suse.cz>
4693
4694 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
4695 CGRAPH_FREQ_MAX.
4696 (dump_cgraph_node): Dump profile-id.
4697 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
4698 and common_target_probability.
4699 * lto-cgraph.c (lto_output_edge): Stream common targets.
4700 (lto_output_node): Stream profile ids.
4701 (input_node): Stream profile ids.
4702 (input_edge): Stream common targets.
4703 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
4704 * ipa.c: Include value-prof.h
4705 (ipa_profile_generate_summary): Turn indirect call statement histograms
4706 into common targets.
4707 (ipa_profile): Turn common targets into speculative edges.
4708
2fa3d31b
JH
47092013-08-09 Jan Hubicka <jh@suse.cz>
4710
4711 * cgraph.h (cgraph_node): Add profile_id.
4712 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 4713 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
4714 (del_node_map): Update.
4715 (find_func_by_funcdef_no): Replace by ...
4716 (find_func_by_profile_id): ... this one.
4717 (gimple_ic_transform): Do not remove useful histograms when
4718 speculation is not done; dump info when indirect call removal
4719 can happen at LTO.
4720 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
4721 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
4722 (__gcov_indirect_call_profiler_v2): .. this one.
4723 * profile.h (init_node_map): Update.
4724 * coverage.c (coverage_compute_profile_id): New function.
4725 * coverage.h (coverage_compute_profile_id): Declare.
4726 * tree-profile.c (init_ic_make_global_vars): Make
4727 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
4728 (gimple_init_edge_profiler): Update prototype of
4729 __gcov_indirect_call_profiler.
4730 (gimple_gen_ic_func_profiler): Simplify.
4731 (tree_profiling): Use init_node_map
4732
042ae7d2
JH
47332013-08-09 Jan Hubicka <jh@suse.cz>
4734
c97fd4b8
UB
4735 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
4736 non-speculative refs.
042ae7d2
JH
4737 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
4738 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
4739 (cgraph_set_call_stmt): Likewise.
4740 (cgraph_create_edge_1): Fix release checking compilatoin;
4741 clear lto_stmt_uid.
4742 (cgraph_free_edge): Free indirect info.
4743 (cgraph_turn_edge_to_speculative): New function.
4744 (cgraph_speculative_call_info): New function.
4745 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 4746 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
4747 (dump_cgraph_node): Dump speculation.
4748 (verify_edge_count_and_frequency): Accept speculative edges.
4749 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
4750 (verify_cgraph_node): Handle speculation.
4751 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
4752 (cgraph_set_call_stmt): Update prototype.
4753 (cgraph_make_edge_direct): Update prototype.
4754 (cgraph_speculative_call_info): Declare.
4755 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
4756 to change; update call of ipa_find_references.
4757 * ipa-ref.c (ipa_record_reference): Fix return value; clear
4758 lto_stmt_uid and speculative flags.
4759 (ipa_dump_references): Dump speculation.
4760 (ipa_clone_references): Clone speculative flag.
4761 (ipa_clone_referring): Likewise.
4762 (ipa_clone_ref): New function.
4763 (ipa_find_reference): Look into lto_stmt_uids
4764 (ipa_clear_stmts_in_references): Do not clear speculative calls.
4765 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
4766 (ipa_find_reference): Update declaration.
4767 (ipa_clone_ref): Declare.
4768 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
4769 stream speculative flag.
4770 (lto_output_ref): Stream statements uids and speculation.
4771 (input_ref): Likewise.
4772 (input_edge): Stream speuclation.
4773 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
4774 (cgraph_set_call_stmt_including_clones): Handle speculation.
4775 * ipa-inline.c (heap_edge_removal_hook): New function.
4776 (inline_small_functions): Register it.
4777 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
4778 also initialize refs.
4779 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
4780 edge to change.
4781 (try_make_edge_direct_simple_call): Likewise.
4782 (try_make_edge_direct_simple_call): Likewise.
4783 (update_indirect_edges_after_inlining): Likewise.
4784 (remove_described_reference): Look proper lto_stmt_uid.
4785 (propagate_controlled_uses): Likewise.
4786 (propagate_controlled_uses): Liekwise.
4787 * tree-inline.c (copy_bb): Copy speculative edges.
4788 (redirect_all_calls): New function.
c97fd4b8
UB
4789 (copy_cfg_body): Do redirection after loop info is updated.
4790 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 4791
aa1e10cc
JH
47922013-08-09 Jan Hubicka <jh@suse.cz>
4793
4794 * lto-streamer-out.c (output_function): Renumber PHIs.
4795 * lto-streamer-in.c (input_function): Likewise.
4796
66adb8eb
JG
47972013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
4798
4799 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
4800 (get_lane_unsigned): Likewise.
4801 (dup_lane_scalar): Likewise.
4802 (get_lane): enable for VALL.
4803 * config/aarch64/aarch64-simd.md
4804 (aarch64_dup_lane_scalar<mode>): Remove.
4805 (aarch64_get_lane_signed<mode>): Likewise.
4806 (aarch64_get_lane_unsigned<mode>): Likewise.
4807 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
4808 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
4809 (aarch64_get_lane<mode>): Enable for all vector modes.
4810 (aarch64_get_lanedi): Remove misleading constraints.
4811 * config/aarch64/arm_neon.h
4812 (__aarch64_vget_lane_any): Define.
4813 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
4814 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
4815 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
4816 * config/aarch64/iterators.md (VDQQH): New.
4817 (VDQQHS): Likewise.
4818 (vwcore): Likewise.
4819
1f65ae7a
EB
48202013-08-09 Eric Botcazou <ebotcazou@adacore.com>
4821
4822 * configure.ac: Add GAS check for LEON instructions on SPARC.
4823 * configure: Regenerate.
4824 * config.in: Likewise.
4825 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
4826 sparc*-*-* block.
4827 * config/sparc/sparc.opt (LEON, LEON3): New masks.
4828 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
4829 for LEON or LEON3.
4830 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
4831 (AS_LEON_FLAG): New macro.
4832 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
4833 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
4834 Deal with LEON and LEON3 for the memory model.
23a6cb78 4835 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
4836 (atomic_compare_and_swap<mode>_1): Likewise.
4837 (*atomic_compare_and_swap<mode>_1): Likewise.
4838
ff522f7f
ZC
48392013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4840
4841 * config/arm/neon.md (vcond): Fix floating-point vector
4842 comparisons against 0.
4843
cb1cca12
VM
48442013-08-08 Vladimir Makarov <vmakarov@redhat.com>
4845
4846 * lra-constraints.c (emit_spill_move): Remove assert.
4847 (process_alt_operands): Add more debugging
4848 output. Increase reject for spilling into memory. Decrease
4849 reject for reloading scratch.
4850 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
4851
a3719e31
SE
48522013-08-08 Steve Ellcey <sellcey@mips.com>
4853
4854 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
4855 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
4856 micromips incompatible. Add nan2008.
4857 (MULTILIB_DIRNAMES): Add nan2008.
4858 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4859 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
4860 and micromips incompatible. Add nan2008.
4861 (MULTILIB_DIRNAMES): Add nan2008.
4862 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4863
f40423e2
RS
48642013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4865
4866 PR rtl-optimization/58079
4867 * combine.c (combine_simplify_rtx): Avoid using SUBST if
4868 simplify_comparison has widened a comparison with an integer.
4869
869b9125
KT
48702013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4871
4872 * config/arm/neon.md (movmisalign<mode>): Disable when we
4873 don't allow unaligned accesses.
4874 (*movmisalign<mode>_neon_store): Likewise.
4875 (*movmisalign<mode>_neon_load): Likewise.
4876 (*movmisalign<mode>_neon_store): Likewise.
4877 (*movmisalign<mode>_neon_load): Likewise.
4878
71cafea9
JH
48792013-08-08 Jan Hubicka <jh@suse.cz>
4880
4881 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
4882 (make_pass_rebuild_cgraph_edges): Also clear references.
4883 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
4884 * ipa-inline-transform.c (inline_transform): Remove all references
4885 after inlining.
c97fd4b8
UB
4886 * cgraphunit.c (expand_function): Remove all references after
4887 expansion.
71cafea9
JH
4888 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
4889 (ipa_find_reference): Rewrite to iterator.
4890 (remove_stmt_references): Likewise.
4891 (ipa_clear_stmts_in_references): New function.
4892 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
4893 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
4894 clear references.
71cafea9
JH
4895 * ipa-split.c (split_function): Remove references in split function.
4896
27d2e612
RE
48972013-08-08 Richard Earnshaw <rearnsha@arm.com>
4898
4899 PR target/57431
1f65ae7a 4900 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
4901 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
4902
5efc661c
RE
49032013-08-08 Richard Earnshaw <rearnsha@arm.com>
4904
4905 PR target/56979
1f65ae7a 4906 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
4907 suggested mode for the assignment isn't compatible with the
4908 registers required.
4909
f276d31d
BE
49102013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4911
4912 PR target/58065
4913 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
4914
4b8bc035
XDL
49152013-08-07 Xinliang David Li <davidxl@google.com>
4916
4917 * config/i386/i386.opt: New option -mtune-ctrl=.
4918 * config/i386/x86-tune.def: New file.
4919 * config/i386/i386.h: include x86-tune.def.
4920 * config/i386/i386.c (ix86_option_override_internal):
4921 Parsing -mtune-ctrl= option and set tune features.
4922
12211b99 49232013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
4924
4925 PR other/12081
03b0ee0a 4926 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
4927 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
4928 to gen_2arg_fn_t.
4929
5cf6635b
EB
49302013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4931
4932 * rtl.h (update_alignments): Declare.
4933 * final.c (grow_label_align): New function extracted from...
4934 (shorten_branches): ...here. Call it.
4935 (update_alignments): New function.
4936 * reorg.c (sibling_labels): New variable.
4937 (get_label_before): Add SIBLING parameter. If it is non-zero, push
4938 the new label along with it onto the sibling_labels vector.
4939 (fill_simple_delay_slots): Adjust call to get_label_before.
4940 (fill_slots_from_thread): Likewise.
4941 (relax_delay_slots): Likewise.
4942 (make_return_insns): Likewise.
4943 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
4944
3c8ca1ab
EB
49452013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4946
4947 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
4948 document its semantics.
4949 (diagnostic_report_diagnostic): Adjust accordingly.
4950
5ee5b32c
DM
49512013-08-07 David Malcolm <dmalcolm@redhat.com>
4952
03b0ee0a 4953 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
4954 (sparc_option_override): ...and port to new C++ pass API.
4955 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
4956
abd566fa
PB
49572013-08-07 Peter Bergner <bergner@vnet.ibm.com>
4958
4959 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
4960
2077db1b
CT
49612013-08-06 Caroline Tice <cmtice@google.com>
4962
4963 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
4964 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
4965 * tree-pass.h: Add pass_vtable_verify.
4966 * varasm.c (assemble_variable): Add code to properly set the comdat
4967 section and name for the .vtable_map_vars section.
4968 (assemble_vtyv_preinit_initializer): New function.
4969 (default_sectin_type_flags): Make sure .vtable_map_vars section has
4970 LINK_ONCE flag.
4971 * output.h: Add function decl for assemble_vtv_preinit_initializer.
4972 * vtable-verify.c: New file.
4973 * vtable-verify.h: New file.
4974 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
4975 initialiation levels.
4976 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
4977 * passes.def: Insert pass_vtable_verify.
4978 * aclocal.m4: Reorder includes.
4979 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
4980 -fvtv-counts options.
4981 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
4982 as appropriate, if -fvtable-verify=... is used.
4983 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
4984 -fvtable-verify=... is used.
4985 * Makefile.in (OBJS): Add vtable-verify.o to list.
4986 (vtable-verify.o): Add new build rule.
4987 (GTFILES): Add vtable-verify.c to list.
4988 * common.opt (fvtable-verify=): New flag.
4989 (vtv_priority): Values for fvtable-verify= flag.
4990 (fvtv-counts): New flag.
4991 (fvtv-debug): New flag.
4992 * tree.h (save_vtable_map_decl): New extern function decl.
4993
03085d1c
DM
49942013-08-07 David Malcolm <dmalcolm@redhat.com>
4995
4996 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
4997 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
4998 (pass_data_rl78_devirt): ...new pass_data instance and...
4999 (make_pass_rl78_devirt): ...new function.
5000 (rl78_asm_file_start): Port pass registration to new C++ API.
5001
05555c4a
DM
50022013-08-07 David Malcolm <dmalcolm@redhat.com>
5003
5004 * coretypes.h (rtl_opt_pass): Add.
5005 (gcc::context): Add.
5006 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
5007 (epiphany_init): Port to new C++ pass API.
5008 (epiphany_optimize_mode_switching): Likewise.
5009 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
5010 (pass_manager::get_pass_mode_switching): New.
5011 (pass_manager::get_pass_peephole2): New.
5012 * mode-switching.c (pass_mode_switching): Add clone method.
5013 * recog.c (pass_peephole2): Add clone method.
5014 (pass_split_all_insns): Add clone method.
5015
c5a12e26
DM
50162013-08-06 David Malcolm <dmalcolm@redhat.com>
5017
03b0ee0a
UB
5018 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
5019 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 5020
a2e2a668
JH
50212013-08-06 Jan Hubicka <jh@suse.cz>
5022
5023 * cgraph.c (cgraph_get_body): New function based on lto.c
5024 implementation.
5025 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
5026 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
5027 LTO paths.
a2e2a668
JH
5028 * cgraphunit.c (expand_function): Get body prior expanding.
5029 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
5030 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
5031 really need.
a2e2a668
JH
5032 * passes.c (do_per_function_toporder): Get body.
5033 * tree-inline.c (expand_call_inline): Get body prior inlining it.
5034 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
5035
15682f24
MJ
50362013-08-06 Martin Jambor <mjambor@suse.cz>
5037
5038 PR fortran/57987
5039 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
5040 is not re-finalized. Rename second parameter to no_collect.
5041
78f6dd68
MJ
50422013-08-06 Martin Jambor <mjambor@suse.cz>
5043
5044 PR middle-end/58041
5045 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
5046 MEM_REF has proper alignment information.
5047
12211b99 50482013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
5049
5050 PR other/12081
5051 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
5052 class insn_gen_fn.
5053 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
5054 rtx (*) (rtx, ...) with insn_gen_fn.
5055 * genoutput.c (output_insn_data): Cast gen_? function pointers to
5056 insn_gen_fn::stored_funcptr. Add initializer braces.
5057
8ac69a6c
DM
50582013-08-05 David Malcolm <dmalcolm@redhat.com>
5059
5060 Rewrite how instances of passes are cloned to remove assumptions
5061 about their sizes (thus allowing pass subclasses to have
5062 additional data fields, albeit non-GC-managed ones at this point).
5063
5064 * passes.c (make_pass_instance): Now that passes have clone
5065 methods, rewrite this function to eliminate XNEW and memcpy
5066 calls that used hardcoded sizes. Since this function no longer
5067 creates pass instances, rename it to...
03b0ee0a
UB
5068 (add_pass_instance): ...this. Document the old way that passes were
5069 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
5070 (next_pass_1): Add an initial_pass argument for use by
5071 add_pass_instance.
5072 (position_pass): When adding multiple instances of a pass, use
5073 the pass's clone method, rather than relying on the XNEW/memcpy
5074 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
5075 (pass_manager::pass_manager): When invoking next_pass_1, also supply
5076 the initial instance of the current pass within the pass manager.
8ac69a6c 5077
27a4cd48
DM
50782013-08-05 David Malcolm <dmalcolm@redhat.com>
5079
5080 This is the automated part of the conversion of passes from C
5081 structs to C++ classes.
5082
5083 Patch autogenerated by refactor_passes.py from
5084 https://github.com/davidmalcolm/gcc-refactoring-scripts
5085 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
5086
5087 * asan.c (pass_asan): Convert from a global struct to a subclass of
5088 gimple_opt_pass along with...
5089 (pass_data_asan): ...new pass_data instance and...
5090 (make_pass_asan): ...new function.
5091 (pass_asan_O0): Convert from a global struct to a subclass of
5092 gimple_opt_pass along with...
5093 (pass_data_asan_O0): ...new pass_data instance and...
5094 (make_pass_asan_O0): ...new function.
5095 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
5096 subclass of rtl_opt_pass along with...
5097 (pass_data_inc_dec): ...new pass_data instance and...
5098 (make_pass_inc_dec): ...new function.
5099 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
5100 a subclass of rtl_opt_pass along with...
5101 (pass_data_reorder_blocks): ...new pass_data instance and...
5102 (make_pass_reorder_blocks): ...new function.
5103 (pass_duplicate_computed_gotos): Convert from a global struct to a
5104 subclass of rtl_opt_pass along with...
5105 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
5106 (make_pass_duplicate_computed_gotos): ...new function.
5107 (pass_partition_blocks): Convert from a global struct to a subclass of
5108 rtl_opt_pass along with...
5109 (pass_data_partition_blocks): ...new pass_data instance and...
5110 (make_pass_partition_blocks): ...new function.
5111 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
5112 struct to a subclass of rtl_opt_pass along with...
5113 (pass_data_branch_target_load_optimize1): ...new pass_data instance
5114 and...
5115 (make_pass_branch_target_load_optimize1): ...new function.
5116 (pass_branch_target_load_optimize2): Convert from a global struct to a
5117 subclass of rtl_opt_pass along with...
5118 (pass_data_branch_target_load_optimize2): ...new pass_data instance
5119 and...
5120 (make_pass_branch_target_load_optimize2): ...new function.
5121 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
5122 of rtl_opt_pass along with...
5123 (pass_data_jump): ...new pass_data instance and...
5124 (make_pass_jump): ...new function.
5125 (pass_jump2): Convert from a global struct to a subclass of
5126 rtl_opt_pass along with...
5127 (pass_data_jump2): ...new pass_data instance and...
5128 (make_pass_jump2): ...new function.
5129 * cfgexpand.c (pass_expand): Convert from a global struct to a
5130 subclass of rtl_opt_pass along with...
5131 (pass_data_expand): ...new pass_data instance and...
5132 (make_pass_expand): ...new function.
5133 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
5134 of rtl_opt_pass along with...
5135 (pass_data_free_cfg): ...new pass_data instance and...
5136 (make_pass_free_cfg): ...new function.
5137 (pass_into_cfg_layout_mode): Convert from a global struct to a
5138 subclass of rtl_opt_pass along with...
5139 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
5140 (make_pass_into_cfg_layout_mode): ...new function.
5141 (pass_outof_cfg_layout_mode): Convert from a global struct to a
5142 subclass of rtl_opt_pass along with...
5143 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
5144 (make_pass_outof_cfg_layout_mode): ...new function.
5145 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
5146 struct to a subclass of gimple_opt_pass along with...
5147 (pass_data_build_cgraph_edges): ...new pass_data instance and...
5148 (make_pass_build_cgraph_edges): ...new function.
5149 (pass_rebuild_cgraph_edges): Convert from a global struct to a
5150 subclass of gimple_opt_pass along with...
5151 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
5152 (make_pass_rebuild_cgraph_edges): ...new function.
5153 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
5154 subclass of gimple_opt_pass along with...
5155 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
5156 and...
5157 (make_pass_remove_cgraph_callee_edges): ...new function.
5158 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
5159 struct to a subclass of rtl_opt_pass along with...
5160 (pass_data_stack_adjustments): ...new pass_data instance and...
5161 (make_pass_stack_adjustments): ...new function.
5162 * combine.c (pass_combine): Convert from a global struct to a subclass
5163 of rtl_opt_pass along with...
5164 (pass_data_combine): ...new pass_data instance and...
5165 (make_pass_combine): ...new function.
5166 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
5167 global struct to a subclass of rtl_opt_pass along with...
5168 (pass_data_compare_elim_after_reload): ...new pass_data instance
5169 and...
5170 (make_pass_compare_elim_after_reload): ...new function.
5171 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
5172 of rtl_opt_pass along with...
5173 (pass_data_rtl_cprop): ...new pass_data instance and...
5174 (make_pass_rtl_cprop): ...new function.
5175 * cse.c (pass_cse): Convert from a global struct to a subclass of
5176 rtl_opt_pass along with...
5177 (pass_data_cse): ...new pass_data instance and...
5178 (make_pass_cse): ...new function.
5179 (pass_cse2): Convert from a global struct to a subclass of
5180 rtl_opt_pass along with...
5181 (pass_data_cse2): ...new pass_data instance and...
5182 (make_pass_cse2): ...new function.
5183 (pass_cse_after_global_opts): Convert from a global struct to a
5184 subclass of rtl_opt_pass along with...
5185 (pass_data_cse_after_global_opts): ...new pass_data instance and...
5186 (make_pass_cse_after_global_opts): ...new function.
5187 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
5188 of rtl_opt_pass along with...
5189 (pass_data_ud_rtl_dce): ...new pass_data instance and...
5190 (make_pass_ud_rtl_dce): ...new function.
5191 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
5192 rtl_opt_pass along with...
5193 (pass_data_fast_rtl_dce): ...new pass_data instance and...
5194 (make_pass_fast_rtl_dce): ...new function.
5195 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
5196 a subclass of rtl_opt_pass along with...
5197 (pass_data_df_initialize_opt): ...new pass_data instance and...
5198 (make_pass_df_initialize_opt): ...new function.
5199 (pass_df_initialize_no_opt): Convert from a global struct to a
5200 subclass of rtl_opt_pass along with...
5201 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
5202 (make_pass_df_initialize_no_opt): ...new function.
5203 (pass_df_finish): Convert from a global struct to a subclass of
5204 rtl_opt_pass along with...
5205 (pass_data_df_finish): ...new pass_data instance and...
5206 (make_pass_df_finish): ...new function.
5207 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
5208 rtl_opt_pass along with...
5209 (pass_data_rtl_dse1): ...new pass_data instance and...
5210 (make_pass_rtl_dse1): ...new function.
5211 (pass_rtl_dse2): Convert from a global struct to a subclass of
5212 rtl_opt_pass along with...
5213 (pass_data_rtl_dse2): ...new pass_data instance and...
5214 (make_pass_rtl_dse2): ...new function.
5215 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
5216 subclass of rtl_opt_pass along with...
5217 (pass_data_dwarf2_frame): ...new pass_data instance and...
5218 (make_pass_dwarf2_frame): ...new function.
5219 * except.c (pass_set_nothrow_function_flags): Convert from a global
5220 struct to a subclass of rtl_opt_pass along with...
5221 (pass_data_set_nothrow_function_flags): ...new pass_data instance
5222 and...
5223 (make_pass_set_nothrow_function_flags): ...new function.
5224 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
5225 subclass of rtl_opt_pass along with...
5226 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
5227 and...
5228 (make_pass_convert_to_eh_region_ranges): ...new function.
5229 * final.c (pass_compute_alignments): Convert from a global struct to a
5230 subclass of rtl_opt_pass along with...
5231 (pass_data_compute_alignments): ...new pass_data instance and...
5232 (make_pass_compute_alignments): ...new function.
5233 (pass_final): Convert from a global struct to a subclass of
5234 rtl_opt_pass along with...
5235 (pass_data_final): ...new pass_data instance and...
5236 (make_pass_final): ...new function.
5237 (pass_shorten_branches): Convert from a global struct to a subclass of
5238 rtl_opt_pass along with...
5239 (pass_data_shorten_branches): ...new pass_data instance and...
5240 (make_pass_shorten_branches): ...new function.
5241 (pass_clean_state): Convert from a global struct to a subclass of
5242 rtl_opt_pass along with...
5243 (pass_data_clean_state): ...new pass_data instance and...
5244 (make_pass_clean_state): ...new function.
5245 * function.c (pass_instantiate_virtual_regs): Convert from a global
5246 struct to a subclass of rtl_opt_pass along with...
5247 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
5248 (make_pass_instantiate_virtual_regs): ...new function.
5249 (pass_leaf_regs): Convert from a global struct to a subclass of
5250 rtl_opt_pass along with...
5251 (pass_data_leaf_regs): ...new pass_data instance and...
5252 (make_pass_leaf_regs): ...new function.
5253 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
5254 subclass of rtl_opt_pass along with...
5255 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
5256 and...
5257 (make_pass_thread_prologue_and_epilogue): ...new function.
5258 (pass_match_asm_constraints): Convert from a global struct to a
5259 subclass of rtl_opt_pass along with...
5260 (pass_data_match_asm_constraints): ...new pass_data instance and...
5261 (make_pass_match_asm_constraints): ...new function.
5262 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
5263 subclass of rtl_opt_pass along with...
5264 (pass_data_rtl_fwprop): ...new pass_data instance and...
5265 (make_pass_rtl_fwprop): ...new function.
5266 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
5267 rtl_opt_pass along with...
5268 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
5269 (make_pass_rtl_fwprop_addr): ...new function.
5270 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
5271 rtl_opt_pass along with...
5272 (pass_data_rtl_pre): ...new pass_data instance and...
5273 (make_pass_rtl_pre): ...new function.
5274 (pass_rtl_hoist): Convert from a global struct to a subclass of
5275 rtl_opt_pass along with...
5276 (pass_data_rtl_hoist): ...new pass_data instance and...
5277 (make_pass_rtl_hoist): ...new function.
5278 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
5279 subclass of gimple_opt_pass along with...
5280 (pass_data_lower_cf): ...new pass_data instance and...
5281 (make_pass_lower_cf): ...new function.
5282 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
5283 from a global struct to a subclass of gimple_opt_pass along with...
5284 (pass_data_strength_reduction): ...new pass_data instance and...
5285 (make_pass_strength_reduction): ...new function.
5286 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
5287 of rtl_opt_pass along with...
5288 (pass_data_rtl_ifcvt): ...new pass_data instance and...
5289 (make_pass_rtl_ifcvt): ...new function.
5290 (pass_if_after_combine): Convert from a global struct to a subclass of
5291 rtl_opt_pass along with...
5292 (pass_data_if_after_combine): ...new pass_data instance and...
5293 (make_pass_if_after_combine): ...new function.
5294 (pass_if_after_reload): Convert from a global struct to a subclass of
5295 rtl_opt_pass along with...
5296 (pass_data_if_after_reload): ...new pass_data instance and...
5297 (make_pass_if_after_reload): ...new function.
5298 * init-regs.c (pass_initialize_regs): Convert from a global struct to
5299 a subclass of rtl_opt_pass along with...
5300 (pass_data_initialize_regs): ...new pass_data instance and...
5301 (make_pass_initialize_regs): ...new function.
5302 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
5303 of ipa_opt_pass_d along with...
5304 (pass_data_ipa_cp): ...new pass_data instance and...
5305 (make_pass_ipa_cp): ...new function.
5306 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
5307 global struct to a subclass of gimple_opt_pass along with...
5308 (pass_data_inline_parameters): ...new pass_data instance and...
5309 (make_pass_inline_parameters): ...new function.
5310 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
5311 subclass of gimple_opt_pass along with...
5312 (pass_data_early_inline): ...new pass_data instance and...
5313 (make_pass_early_inline): ...new function.
5314 (pass_ipa_inline): Convert from a global struct to a subclass of
5315 ipa_opt_pass_d along with...
5316 (pass_data_ipa_inline): ...new pass_data instance and...
5317 (make_pass_ipa_inline): ...new function.
5318 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
5319 struct to a subclass of gimple_opt_pass along with...
5320 (pass_data_local_pure_const): ...new pass_data instance and...
5321 (make_pass_local_pure_const): ...new function.
5322 (pass_ipa_pure_const): Convert from a global struct to a subclass of
5323 ipa_opt_pass_d along with...
5324 (pass_data_ipa_pure_const): ...new pass_data instance and...
5325 (make_pass_ipa_pure_const): ...new function.
5326 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
5327 to a subclass of ipa_opt_pass_d along with...
5328 (pass_data_ipa_reference): ...new pass_data instance and...
5329 (make_pass_ipa_reference): ...new function.
5330 * ipa-split.c (pass_split_functions): Convert from a global struct to
5331 a subclass of gimple_opt_pass along with...
5332 (pass_data_split_functions): ...new pass_data instance and...
5333 (make_pass_split_functions): ...new function.
5334 (pass_feedback_split_functions): Convert from a global struct to a
5335 subclass of gimple_opt_pass along with...
5336 (pass_data_feedback_split_functions): ...new pass_data instance and...
5337 (make_pass_feedback_split_functions): ...new function.
5338 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
5339 global struct to a subclass of simple_ipa_opt_pass along with...
5340 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
5341 instance and...
5342 (make_pass_ipa_function_and_variable_visibility): ...new function.
5343 (pass_ipa_free_inline_summary): Convert from a global struct to a
5344 subclass of simple_ipa_opt_pass along with...
5345 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
5346 (make_pass_ipa_free_inline_summary): ...new function.
5347 (pass_ipa_whole_program_visibility): Convert from a global struct to a
5348 subclass of ipa_opt_pass_d along with...
5349 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
5350 and...
5351 (make_pass_ipa_whole_program_visibility): ...new function.
5352 (pass_ipa_profile): Convert from a global struct to a subclass of
5353 ipa_opt_pass_d along with...
5354 (pass_data_ipa_profile): ...new pass_data instance and...
5355 (make_pass_ipa_profile): ...new function.
5356 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5357 ipa_opt_pass_d along with...
5358 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5359 (make_pass_ipa_cdtor_merge): ...new function.
5360 * ira.c (pass_ira): Convert from a global struct to a subclass of
5361 rtl_opt_pass along with...
5362 (pass_data_ira): ...new pass_data instance and...
5363 (make_pass_ira): ...new function.
5364 (pass_reload): Convert from a global struct to a subclass of
5365 rtl_opt_pass along with...
5366 (pass_data_reload): ...new pass_data instance and...
5367 (make_pass_reload): ...new function.
5368 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5369 subclass of rtl_opt_pass along with...
5370 (pass_data_cleanup_barriers): ...new pass_data instance and...
5371 (make_pass_cleanup_barriers): ...new function.
5372 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5373 of rtl_opt_pass along with...
5374 (pass_data_loop2): ...new pass_data instance and...
5375 (make_pass_loop2): ...new function.
5376 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5377 rtl_opt_pass along with...
5378 (pass_data_rtl_loop_init): ...new pass_data instance and...
5379 (make_pass_rtl_loop_init): ...new function.
5380 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5381 rtl_opt_pass along with...
5382 (pass_data_rtl_loop_done): ...new pass_data instance and...
5383 (make_pass_rtl_loop_done): ...new function.
5384 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5385 subclass of rtl_opt_pass along with...
5386 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5387 (make_pass_rtl_move_loop_invariants): ...new function.
5388 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5389 rtl_opt_pass along with...
5390 (pass_data_rtl_unswitch): ...new pass_data instance and...
5391 (make_pass_rtl_unswitch): ...new function.
5392 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5393 subclass of rtl_opt_pass along with...
5394 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5395 and...
5396 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5397 (pass_rtl_doloop): Convert from a global struct to a subclass of
5398 rtl_opt_pass along with...
5399 (pass_data_rtl_doloop): ...new pass_data instance and...
5400 (make_pass_rtl_doloop): ...new function.
5401 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5402 a subclass of rtl_opt_pass along with...
5403 (pass_data_lower_subreg): ...new pass_data instance and...
5404 (make_pass_lower_subreg): ...new function.
5405 (pass_lower_subreg2): Convert from a global struct to a subclass of
5406 rtl_opt_pass along with...
5407 (pass_data_lower_subreg2): ...new pass_data instance and...
5408 (make_pass_lower_subreg2): ...new function.
5409 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5410 struct to a subclass of ipa_opt_pass_d along with...
5411 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5412 (make_pass_ipa_lto_gimple_out): ...new function.
5413 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5414 of ipa_opt_pass_d along with...
5415 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5416 (make_pass_ipa_lto_finish_out): ...new function.
5417 * mode-switching.c (pass_mode_switching): Convert from a global struct
5418 to a subclass of rtl_opt_pass along with...
5419 (pass_data_mode_switching): ...new pass_data instance and...
5420 (make_pass_mode_switching): ...new function.
5421 * modulo-sched.c (pass_sms): Convert from a global struct to a
5422 subclass of rtl_opt_pass along with...
5423 (pass_data_sms): ...new pass_data instance and...
5424 (make_pass_sms): ...new function.
5425 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5426 subclass of gimple_opt_pass along with...
5427 (pass_data_expand_omp): ...new pass_data instance and...
5428 (make_pass_expand_omp): ...new function.
5429 (pass_lower_omp): Convert from a global struct to a subclass of
5430 gimple_opt_pass along with...
5431 (pass_data_lower_omp): ...new pass_data instance and...
5432 (make_pass_lower_omp): ...new function.
5433 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5434 of gimple_opt_pass along with...
5435 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5436 (make_pass_diagnose_omp_blocks): ...new function.
5437 * passes.c (pass_early_local_passes): Convert from a global struct to
5438 a subclass of simple_ipa_opt_pass along with...
5439 (pass_data_early_local_passes): ...new pass_data instance and...
5440 (make_pass_early_local_passes): ...new function.
5441 (pass_all_early_optimizations): Convert from a global struct to a
5442 subclass of gimple_opt_pass along with...
5443 (pass_data_all_early_optimizations): ...new pass_data instance and...
5444 (make_pass_all_early_optimizations): ...new function.
5445 (pass_all_optimizations): Convert from a global struct to a subclass
5446 of gimple_opt_pass along with...
5447 (pass_data_all_optimizations): ...new pass_data instance and...
5448 (make_pass_all_optimizations): ...new function.
5449 (pass_all_optimizations_g): Convert from a global struct to a subclass
5450 of gimple_opt_pass along with...
5451 (pass_data_all_optimizations_g): ...new pass_data instance and...
5452 (make_pass_all_optimizations_g): ...new function.
5453 (pass_rest_of_compilation): Convert from a global struct to a subclass
5454 of rtl_opt_pass along with...
5455 (pass_data_rest_of_compilation): ...new pass_data instance and...
5456 (make_pass_rest_of_compilation): ...new function.
5457 (pass_postreload): Convert from a global struct to a subclass of
5458 rtl_opt_pass along with...
5459 (pass_data_postreload): ...new pass_data instance and...
5460 (make_pass_postreload): ...new function.
5461 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5462 subclass of rtl_opt_pass along with...
5463 (pass_data_gcse2): ...new pass_data instance and...
5464 (make_pass_gcse2): ...new function.
5465 * postreload.c (pass_postreload_cse): Convert from a global struct to
5466 a subclass of rtl_opt_pass along with...
5467 (pass_data_postreload_cse): ...new pass_data instance and...
5468 (make_pass_postreload_cse): ...new function.
5469 * predict.c (pass_profile): Convert from a global struct to a subclass
5470 of gimple_opt_pass along with...
5471 (pass_data_profile): ...new pass_data instance and...
5472 (make_pass_profile): ...new function.
5473 (pass_strip_predict_hints): Convert from a global struct to a subclass
5474 of gimple_opt_pass along with...
5475 (pass_data_strip_predict_hints): ...new pass_data instance and...
5476 (make_pass_strip_predict_hints): ...new function.
5477 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5478 of rtl_opt_pass along with...
5479 (pass_data_peephole2): ...new pass_data instance and...
5480 (make_pass_peephole2): ...new function.
5481 (pass_split_all_insns): Convert from a global struct to a subclass of
5482 rtl_opt_pass along with...
5483 (pass_data_split_all_insns): ...new pass_data instance and...
5484 (make_pass_split_all_insns): ...new function.
5485 (pass_split_after_reload): Convert from a global struct to a subclass
5486 of rtl_opt_pass along with...
5487 (pass_data_split_after_reload): ...new pass_data instance and...
5488 (make_pass_split_after_reload): ...new function.
5489 (pass_split_before_regstack): Convert from a global struct to a
5490 subclass of rtl_opt_pass along with...
5491 (pass_data_split_before_regstack): ...new pass_data instance and...
5492 (make_pass_split_before_regstack): ...new function.
5493 (pass_split_before_sched2): Convert from a global struct to a subclass
5494 of rtl_opt_pass along with...
5495 (pass_data_split_before_sched2): ...new pass_data instance and...
5496 (make_pass_split_before_sched2): ...new function.
5497 (pass_split_for_shorten_branches): Convert from a global struct to a
5498 subclass of rtl_opt_pass along with...
5499 (pass_data_split_for_shorten_branches): ...new pass_data instance
5500 and...
5501 (make_pass_split_for_shorten_branches): ...new function.
5502 * ree.c (pass_ree): Convert from a global struct to a subclass of
5503 rtl_opt_pass along with...
5504 (pass_data_ree): ...new pass_data instance and...
5505 (make_pass_ree): ...new function.
5506 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5507 subclass of rtl_opt_pass along with...
5508 (pass_data_stack_regs): ...new pass_data instance and...
5509 (make_pass_stack_regs): ...new function.
5510 (pass_stack_regs_run): Convert from a global struct to a subclass of
5511 rtl_opt_pass along with...
5512 (pass_data_stack_regs_run): ...new pass_data instance and...
5513 (make_pass_stack_regs_run): ...new function.
5514 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5515 subclass of rtl_opt_pass along with...
5516 (pass_data_cprop_hardreg): ...new pass_data instance and...
5517 (make_pass_cprop_hardreg): ...new function.
5518 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5519 subclass of rtl_opt_pass along with...
5520 (pass_data_reginfo_init): ...new pass_data instance and...
5521 (make_pass_reginfo_init): ...new function.
5522 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5523 of rtl_opt_pass along with...
5524 (pass_data_regmove): ...new pass_data instance and...
5525 (make_pass_regmove): ...new function.
5526 * regrename.c (pass_regrename): Convert from a global struct to a
5527 subclass of rtl_opt_pass along with...
5528 (pass_data_regrename): ...new pass_data instance and...
5529 (make_pass_regrename): ...new function.
5530 * reorg.c (pass_delay_slots): Convert from a global struct to a
5531 subclass of rtl_opt_pass along with...
5532 (pass_data_delay_slots): ...new pass_data instance and...
5533 (make_pass_delay_slots): ...new function.
5534 (pass_machine_reorg): Convert from a global struct to a subclass of
5535 rtl_opt_pass along with...
5536 (pass_data_machine_reorg): ...new pass_data instance and...
5537 (make_pass_machine_reorg): ...new function.
5538 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5539 of rtl_opt_pass along with...
5540 (pass_data_sched): ...new pass_data instance and...
5541 (make_pass_sched): ...new function.
5542 (pass_sched2): Convert from a global struct to a subclass of
5543 rtl_opt_pass along with...
5544 (pass_data_sched2): ...new pass_data instance and...
5545 (make_pass_sched2): ...new function.
5546 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5547 to a subclass of rtl_opt_pass along with...
5548 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5549 (make_pass_stack_ptr_mod): ...new function.
5550 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5551 to a subclass of rtl_opt_pass along with...
5552 (pass_data_rtl_store_motion): ...new pass_data instance and...
5553 (make_pass_rtl_store_motion): ...new function.
5554 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5555 of gimple_opt_pass along with...
5556 (pass_data_tracer): ...new pass_data instance and...
5557 (make_pass_tracer): ...new function.
5558 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5559 to a subclass of gimple_opt_pass along with...
5560 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5561 (make_pass_diagnose_tm_blocks): ...new function.
5562 (pass_lower_tm): Convert from a global struct to a subclass of
5563 gimple_opt_pass along with...
5564 (pass_data_lower_tm): ...new pass_data instance and...
5565 (make_pass_lower_tm): ...new function.
5566 (pass_tm_init): Convert from a global struct to a subclass of
5567 gimple_opt_pass along with...
5568 (pass_data_tm_init): ...new pass_data instance and...
5569 (make_pass_tm_init): ...new function.
5570 (pass_tm_mark): Convert from a global struct to a subclass of
5571 gimple_opt_pass along with...
5572 (pass_data_tm_mark): ...new pass_data instance and...
5573 (make_pass_tm_mark): ...new function.
5574 (pass_tm_edges): Convert from a global struct to a subclass of
5575 gimple_opt_pass along with...
5576 (pass_data_tm_edges): ...new pass_data instance and...
5577 (make_pass_tm_edges): ...new function.
5578 (pass_tm_memopt): Convert from a global struct to a subclass of
5579 gimple_opt_pass along with...
5580 (pass_data_tm_memopt): ...new pass_data instance and...
5581 (make_pass_tm_memopt): ...new function.
5582 (pass_ipa_tm): Convert from a global struct to a subclass of
5583 simple_ipa_opt_pass along with...
5584 (pass_data_ipa_tm): ...new pass_data instance and...
5585 (make_pass_ipa_tm): ...new function.
5586 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5587 subclass of gimple_opt_pass along with...
5588 (pass_data_call_cdce): ...new pass_data instance and...
5589 (make_pass_call_cdce): ...new function.
5590 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5591 subclass of gimple_opt_pass along with...
5592 (pass_data_build_cfg): ...new pass_data instance and...
5593 (make_pass_build_cfg): ...new function.
5594 (pass_split_crit_edges): Convert from a global struct to a subclass of
5595 gimple_opt_pass along with...
5596 (pass_data_split_crit_edges): ...new pass_data instance and...
5597 (make_pass_split_crit_edges): ...new function.
5598 (pass_warn_function_return): Convert from a global struct to a
5599 subclass of gimple_opt_pass along with...
5600 (pass_data_warn_function_return): ...new pass_data instance and...
5601 (make_pass_warn_function_return): ...new function.
5602 (pass_warn_function_noreturn): Convert from a global struct to a
5603 subclass of gimple_opt_pass along with...
5604 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5605 (make_pass_warn_function_noreturn): ...new function.
5606 (pass_warn_unused_result): Convert from a global struct to a subclass
5607 of gimple_opt_pass along with...
5608 (pass_data_warn_unused_result): ...new pass_data instance and...
5609 (make_pass_warn_unused_result): ...new function.
5610 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5611 a subclass of gimple_opt_pass along with...
5612 (pass_data_merge_phi): ...new pass_data instance and...
5613 (make_pass_merge_phi): ...new function.
5614 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5615 a subclass of gimple_opt_pass along with...
5616 (pass_data_lower_complex): ...new pass_data instance and...
5617 (make_pass_lower_complex): ...new function.
5618 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5619 gimple_opt_pass along with...
5620 (pass_data_lower_complex_O0): ...new pass_data instance and...
5621 (make_pass_lower_complex_O0): ...new function.
5622 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5623 subclass of gimple_opt_pass along with...
5624 (pass_data_lower_eh): ...new pass_data instance and...
5625 (make_pass_lower_eh): ...new function.
5626 (pass_refactor_eh): Convert from a global struct to a subclass of
5627 gimple_opt_pass along with...
5628 (pass_data_refactor_eh): ...new pass_data instance and...
5629 (make_pass_refactor_eh): ...new function.
5630 (pass_lower_resx): Convert from a global struct to a subclass of
5631 gimple_opt_pass along with...
5632 (pass_data_lower_resx): ...new pass_data instance and...
5633 (make_pass_lower_resx): ...new function.
5634 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5635 of gimple_opt_pass along with...
5636 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
5637 (make_pass_lower_eh_dispatch): ...new function.
5638 (pass_cleanup_eh): Convert from a global struct to a subclass of
5639 gimple_opt_pass along with...
5640 (pass_data_cleanup_eh): ...new pass_data instance and...
5641 (make_pass_cleanup_eh): ...new function.
5642 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
5643 to a subclass of simple_ipa_opt_pass along with...
5644 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
5645 (make_pass_ipa_lower_emutls): ...new function.
5646 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
5647 a subclass of gimple_opt_pass along with...
5648 (pass_data_if_conversion): ...new pass_data instance and...
5649 (make_pass_if_conversion): ...new function.
5650 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
5651 subclass of gimple_opt_pass along with...
5652 (pass_data_build_ssa): ...new pass_data instance and...
5653 (make_pass_build_ssa): ...new function.
5654 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
5655 global struct to a subclass of gimple_opt_pass along with...
5656 (pass_data_loop_distribution): ...new pass_data instance and...
5657 (make_pass_loop_distribution): ...new function.
5658 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
5659 subclass of gimple_opt_pass along with...
5660 (pass_data_mudflap_1): ...new pass_data instance and...
5661 (make_pass_mudflap_1): ...new function.
5662 (pass_mudflap_2): Convert from a global struct to a subclass of
5663 gimple_opt_pass along with...
5664 (pass_data_mudflap_2): ...new pass_data instance and...
5665 (make_pass_mudflap_2): ...new function.
5666 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
5667 subclass of gimple_opt_pass along with...
5668 (pass_data_mudflap_1): ...new pass_data instance and...
5669 (make_pass_mudflap_1): ...new function.
5670 (pass_mudflap_2): Convert from a global struct to a subclass of
5671 gimple_opt_pass along with...
5672 (pass_data_mudflap_2): ...new pass_data instance and...
5673 (make_pass_mudflap_2): ...new function.
5674 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
5675 gimple_opt_pass along with...
5676 (pass_data_nrv): ...new pass_data instance and...
5677 (make_pass_nrv): ...new function.
5678 (pass_return_slot): Convert from a global struct to a subclass of
5679 gimple_opt_pass along with...
5680 (pass_data_return_slot): ...new pass_data instance and...
5681 (make_pass_return_slot): ...new function.
5682 * tree-object-size.c (pass_object_sizes): Convert from a global struct
5683 to a subclass of gimple_opt_pass along with...
5684 (pass_data_object_sizes): ...new pass_data instance and...
5685 (make_pass_object_sizes): ...new function.
5686 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
5687 global struct to a subclass of gimple_opt_pass along with...
5688 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
5689 and...
5690 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5691 (pass_fixup_cfg): Convert from a global struct to a subclass of
5692 gimple_opt_pass along with...
5693 (pass_data_fixup_cfg): ...new pass_data instance and...
5694 (make_pass_fixup_cfg): ...new function.
5695 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
5696 (make_pass_mudflap_1): ...new function.
5697 (pass_mudflap_2): Replace declaration with that of...
5698 (make_pass_mudflap_2): ...new function.
5699 (pass_asan): Replace declaration with that of...
5700 (make_pass_asan): ...new function.
5701 (pass_asan_O0): Replace declaration with that of...
5702 (make_pass_asan_O0): ...new function.
5703 (pass_tsan): Replace declaration with that of...
5704 (make_pass_tsan): ...new function.
5705 (pass_tsan_O0): Replace declaration with that of...
5706 (make_pass_tsan_O0): ...new function.
5707 (pass_lower_cf): Replace declaration with that of...
5708 (make_pass_lower_cf): ...new function.
5709 (pass_refactor_eh): Replace declaration with that of...
5710 (make_pass_refactor_eh): ...new function.
5711 (pass_lower_eh): Replace declaration with that of...
5712 (make_pass_lower_eh): ...new function.
5713 (pass_lower_eh_dispatch): Replace declaration with that of...
5714 (make_pass_lower_eh_dispatch): ...new function.
5715 (pass_lower_resx): Replace declaration with that of...
5716 (make_pass_lower_resx): ...new function.
5717 (pass_build_cfg): Replace declaration with that of...
5718 (make_pass_build_cfg): ...new function.
5719 (pass_early_tree_profile): Replace declaration with that of...
5720 (make_pass_early_tree_profile): ...new function.
5721 (pass_cleanup_eh): Replace declaration with that of...
5722 (make_pass_cleanup_eh): ...new function.
5723 (pass_sra): Replace declaration with that of...
5724 (make_pass_sra): ...new function.
5725 (pass_sra_early): Replace declaration with that of...
5726 (make_pass_sra_early): ...new function.
5727 (pass_early_ipa_sra): Replace declaration with that of...
5728 (make_pass_early_ipa_sra): ...new function.
5729 (pass_tail_recursion): Replace declaration with that of...
5730 (make_pass_tail_recursion): ...new function.
5731 (pass_tail_calls): Replace declaration with that of...
5732 (make_pass_tail_calls): ...new function.
5733 (pass_tree_loop): Replace declaration with that of...
5734 (make_pass_tree_loop): ...new function.
5735 (pass_tree_loop_init): Replace declaration with that of...
5736 (make_pass_tree_loop_init): ...new function.
5737 (pass_lim): Replace declaration with that of...
5738 (make_pass_lim): ...new function.
5739 (pass_tree_unswitch): Replace declaration with that of...
5740 (make_pass_tree_unswitch): ...new function.
5741 (pass_predcom): Replace declaration with that of...
5742 (make_pass_predcom): ...new function.
5743 (pass_iv_canon): Replace declaration with that of...
5744 (make_pass_iv_canon): ...new function.
5745 (pass_scev_cprop): Replace declaration with that of...
5746 (make_pass_scev_cprop): ...new function.
5747 (pass_empty_loop): Replace declaration with that of...
5748 (make_pass_empty_loop): ...new function.
5749 (pass_record_bounds): Replace declaration with that of...
5750 (make_pass_record_bounds): ...new function.
5751 (pass_graphite): Replace declaration with that of...
5752 (make_pass_graphite): ...new function.
5753 (pass_graphite_transforms): Replace declaration with that of...
5754 (make_pass_graphite_transforms): ...new function.
5755 (pass_if_conversion): Replace declaration with that of...
5756 (make_pass_if_conversion): ...new function.
5757 (pass_loop_distribution): Replace declaration with that of...
5758 (make_pass_loop_distribution): ...new function.
5759 (pass_vectorize): Replace declaration with that of...
5760 (make_pass_vectorize): ...new function.
5761 (pass_slp_vectorize): Replace declaration with that of...
5762 (make_pass_slp_vectorize): ...new function.
5763 (pass_complete_unroll): Replace declaration with that of...
5764 (make_pass_complete_unroll): ...new function.
5765 (pass_complete_unrolli): Replace declaration with that of...
5766 (make_pass_complete_unrolli): ...new function.
5767 (pass_parallelize_loops): Replace declaration with that of...
5768 (make_pass_parallelize_loops): ...new function.
5769 (pass_loop_prefetch): Replace declaration with that of...
5770 (make_pass_loop_prefetch): ...new function.
5771 (pass_iv_optimize): Replace declaration with that of...
5772 (make_pass_iv_optimize): ...new function.
5773 (pass_tree_loop_done): Replace declaration with that of...
5774 (make_pass_tree_loop_done): ...new function.
5775 (pass_ch): Replace declaration with that of...
5776 (make_pass_ch): ...new function.
5777 (pass_ccp): Replace declaration with that of...
5778 (make_pass_ccp): ...new function.
5779 (pass_phi_only_cprop): Replace declaration with that of...
5780 (make_pass_phi_only_cprop): ...new function.
5781 (pass_build_ssa): Replace declaration with that of...
5782 (make_pass_build_ssa): ...new function.
5783 (pass_build_alias): Replace declaration with that of...
5784 (make_pass_build_alias): ...new function.
5785 (pass_build_ealias): Replace declaration with that of...
5786 (make_pass_build_ealias): ...new function.
5787 (pass_dominator): Replace declaration with that of...
5788 (make_pass_dominator): ...new function.
5789 (pass_dce): Replace declaration with that of...
5790 (make_pass_dce): ...new function.
5791 (pass_dce_loop): Replace declaration with that of...
5792 (make_pass_dce_loop): ...new function.
5793 (pass_cd_dce): Replace declaration with that of...
5794 (make_pass_cd_dce): ...new function.
5795 (pass_call_cdce): Replace declaration with that of...
5796 (make_pass_call_cdce): ...new function.
5797 (pass_merge_phi): Replace declaration with that of...
5798 (make_pass_merge_phi): ...new function.
5799 (pass_split_crit_edges): Replace declaration with that of...
5800 (make_pass_split_crit_edges): ...new function.
5801 (pass_pre): Replace declaration with that of...
5802 (make_pass_pre): ...new function.
5803 (pass_profile): Replace declaration with that of...
5804 (make_pass_profile): ...new function.
5805 (pass_strip_predict_hints): Replace declaration with that of...
5806 (make_pass_strip_predict_hints): ...new function.
5807 (pass_lower_complex_O0): Replace declaration with that of...
5808 (make_pass_lower_complex_O0): ...new function.
5809 (pass_lower_complex): Replace declaration with that of...
5810 (make_pass_lower_complex): ...new function.
5811 (pass_lower_vector): Replace declaration with that of...
5812 (make_pass_lower_vector): ...new function.
5813 (pass_lower_vector_ssa): Replace declaration with that of...
5814 (make_pass_lower_vector_ssa): ...new function.
5815 (pass_lower_omp): Replace declaration with that of...
5816 (make_pass_lower_omp): ...new function.
5817 (pass_diagnose_omp_blocks): Replace declaration with that of...
5818 (make_pass_diagnose_omp_blocks): ...new function.
5819 (pass_expand_omp): Replace declaration with that of...
5820 (make_pass_expand_omp): ...new function.
5821 (pass_expand_omp_ssa): Replace declaration with that of...
5822 (make_pass_expand_omp_ssa): ...new function.
5823 (pass_object_sizes): Replace declaration with that of...
5824 (make_pass_object_sizes): ...new function.
5825 (pass_strlen): Replace declaration with that of...
5826 (make_pass_strlen): ...new function.
5827 (pass_fold_builtins): Replace declaration with that of...
5828 (make_pass_fold_builtins): ...new function.
5829 (pass_stdarg): Replace declaration with that of...
5830 (make_pass_stdarg): ...new function.
5831 (pass_early_warn_uninitialized): Replace declaration with that of...
5832 (make_pass_early_warn_uninitialized): ...new function.
5833 (pass_late_warn_uninitialized): Replace declaration with that of...
5834 (make_pass_late_warn_uninitialized): ...new function.
5835 (pass_cse_reciprocals): Replace declaration with that of...
5836 (make_pass_cse_reciprocals): ...new function.
5837 (pass_cse_sincos): Replace declaration with that of...
5838 (make_pass_cse_sincos): ...new function.
5839 (pass_optimize_bswap): Replace declaration with that of...
5840 (make_pass_optimize_bswap): ...new function.
5841 (pass_optimize_widening_mul): Replace declaration with that of...
5842 (make_pass_optimize_widening_mul): ...new function.
5843 (pass_warn_function_return): Replace declaration with that of...
5844 (make_pass_warn_function_return): ...new function.
5845 (pass_warn_function_noreturn): Replace declaration with that of...
5846 (make_pass_warn_function_noreturn): ...new function.
5847 (pass_cselim): Replace declaration with that of...
5848 (make_pass_cselim): ...new function.
5849 (pass_phiopt): Replace declaration with that of...
5850 (make_pass_phiopt): ...new function.
5851 (pass_forwprop): Replace declaration with that of...
5852 (make_pass_forwprop): ...new function.
5853 (pass_phiprop): Replace declaration with that of...
5854 (make_pass_phiprop): ...new function.
5855 (pass_tree_ifcombine): Replace declaration with that of...
5856 (make_pass_tree_ifcombine): ...new function.
5857 (pass_dse): Replace declaration with that of...
5858 (make_pass_dse): ...new function.
5859 (pass_nrv): Replace declaration with that of...
5860 (make_pass_nrv): ...new function.
5861 (pass_rename_ssa_copies): Replace declaration with that of...
5862 (make_pass_rename_ssa_copies): ...new function.
5863 (pass_sink_code): Replace declaration with that of...
5864 (make_pass_sink_code): ...new function.
5865 (pass_fre): Replace declaration with that of...
5866 (make_pass_fre): ...new function.
5867 (pass_check_data_deps): Replace declaration with that of...
5868 (make_pass_check_data_deps): ...new function.
5869 (pass_copy_prop): Replace declaration with that of...
5870 (make_pass_copy_prop): ...new function.
5871 (pass_vrp): Replace declaration with that of...
5872 (make_pass_vrp): ...new function.
5873 (pass_uncprop): Replace declaration with that of...
5874 (make_pass_uncprop): ...new function.
5875 (pass_return_slot): Replace declaration with that of...
5876 (make_pass_return_slot): ...new function.
5877 (pass_reassoc): Replace declaration with that of...
5878 (make_pass_reassoc): ...new function.
5879 (pass_rebuild_cgraph_edges): Replace declaration with that of...
5880 (make_pass_rebuild_cgraph_edges): ...new function.
5881 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
5882 (make_pass_remove_cgraph_callee_edges): ...new function.
5883 (pass_build_cgraph_edges): Replace declaration with that of...
5884 (make_pass_build_cgraph_edges): ...new function.
5885 (pass_local_pure_const): Replace declaration with that of...
5886 (make_pass_local_pure_const): ...new function.
5887 (pass_tracer): Replace declaration with that of...
5888 (make_pass_tracer): ...new function.
5889 (pass_warn_unused_result): Replace declaration with that of...
5890 (make_pass_warn_unused_result): ...new function.
5891 (pass_diagnose_tm_blocks): Replace declaration with that of...
5892 (make_pass_diagnose_tm_blocks): ...new function.
5893 (pass_lower_tm): Replace declaration with that of...
5894 (make_pass_lower_tm): ...new function.
5895 (pass_tm_init): Replace declaration with that of...
5896 (make_pass_tm_init): ...new function.
5897 (pass_tm_mark): Replace declaration with that of...
5898 (make_pass_tm_mark): ...new function.
5899 (pass_tm_memopt): Replace declaration with that of...
5900 (make_pass_tm_memopt): ...new function.
5901 (pass_tm_edges): Replace declaration with that of...
5902 (make_pass_tm_edges): ...new function.
5903 (pass_split_functions): Replace declaration with that of...
5904 (make_pass_split_functions): ...new function.
5905 (pass_feedback_split_functions): Replace declaration with that of...
5906 (make_pass_feedback_split_functions): ...new function.
5907 (pass_strength_reduction): Replace declaration with that of...
5908 (make_pass_strength_reduction): ...new function.
5909 (pass_ipa_lower_emutls): Replace declaration with that of...
5910 (make_pass_ipa_lower_emutls): ...new function.
5911 (pass_ipa_function_and_variable_visibility): Replace declaration with
5912 that of...
5913 (make_pass_ipa_function_and_variable_visibility): ...new function.
5914 (pass_ipa_tree_profile): Replace declaration with that of...
5915 (make_pass_ipa_tree_profile): ...new function.
5916 (pass_early_local_passes): Replace declaration with that of...
5917 (make_pass_early_local_passes): ...new function.
5918 (pass_ipa_whole_program_visibility): Replace declaration with that
5919 of...
5920 (make_pass_ipa_whole_program_visibility): ...new function.
5921 (pass_ipa_lto_gimple_out): Replace declaration with that of...
5922 (make_pass_ipa_lto_gimple_out): ...new function.
5923 (pass_ipa_increase_alignment): Replace declaration with that of...
5924 (make_pass_ipa_increase_alignment): ...new function.
5925 (pass_ipa_inline): Replace declaration with that of...
5926 (make_pass_ipa_inline): ...new function.
5927 (pass_ipa_free_lang_data): Replace declaration with that of...
5928 (make_pass_ipa_free_lang_data): ...new function.
5929 (pass_ipa_free_inline_summary): Replace declaration with that of...
5930 (make_pass_ipa_free_inline_summary): ...new function.
5931 (pass_ipa_cp): Replace declaration with that of...
5932 (make_pass_ipa_cp): ...new function.
5933 (pass_ipa_reference): Replace declaration with that of...
5934 (make_pass_ipa_reference): ...new function.
5935 (pass_ipa_pure_const): Replace declaration with that of...
5936 (make_pass_ipa_pure_const): ...new function.
5937 (pass_ipa_pta): Replace declaration with that of...
5938 (make_pass_ipa_pta): ...new function.
5939 (pass_ipa_lto_finish_out): Replace declaration with that of...
5940 (make_pass_ipa_lto_finish_out): ...new function.
5941 (pass_ipa_tm): Replace declaration with that of...
5942 (make_pass_ipa_tm): ...new function.
5943 (pass_ipa_profile): Replace declaration with that of...
5944 (make_pass_ipa_profile): ...new function.
5945 (pass_ipa_cdtor_merge): Replace declaration with that of...
5946 (make_pass_ipa_cdtor_merge): ...new function.
5947 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
5948 of...
5949 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5950 (pass_init_datastructures): Replace declaration with that of...
5951 (make_pass_init_datastructures): ...new function.
5952 (pass_fixup_cfg): Replace declaration with that of...
5953 (make_pass_fixup_cfg): ...new function.
5954 (pass_expand): Replace declaration with that of...
5955 (make_pass_expand): ...new function.
5956 (pass_instantiate_virtual_regs): Replace declaration with that of...
5957 (make_pass_instantiate_virtual_regs): ...new function.
5958 (pass_rtl_fwprop): Replace declaration with that of...
5959 (make_pass_rtl_fwprop): ...new function.
5960 (pass_rtl_fwprop_addr): Replace declaration with that of...
5961 (make_pass_rtl_fwprop_addr): ...new function.
5962 (pass_jump): Replace declaration with that of...
5963 (make_pass_jump): ...new function.
5964 (pass_jump2): Replace declaration with that of...
5965 (make_pass_jump2): ...new function.
5966 (pass_lower_subreg): Replace declaration with that of...
5967 (make_pass_lower_subreg): ...new function.
5968 (pass_cse): Replace declaration with that of...
5969 (make_pass_cse): ...new function.
5970 (pass_fast_rtl_dce): Replace declaration with that of...
5971 (make_pass_fast_rtl_dce): ...new function.
5972 (pass_ud_rtl_dce): Replace declaration with that of...
5973 (make_pass_ud_rtl_dce): ...new function.
5974 (pass_rtl_dce): Replace declaration with that of...
5975 (make_pass_rtl_dce): ...new function.
5976 (pass_rtl_dse1): Replace declaration with that of...
5977 (make_pass_rtl_dse1): ...new function.
5978 (pass_rtl_dse2): Replace declaration with that of...
5979 (make_pass_rtl_dse2): ...new function.
5980 (pass_rtl_dse3): Replace declaration with that of...
5981 (make_pass_rtl_dse3): ...new function.
5982 (pass_rtl_cprop): Replace declaration with that of...
5983 (make_pass_rtl_cprop): ...new function.
5984 (pass_rtl_pre): Replace declaration with that of...
5985 (make_pass_rtl_pre): ...new function.
5986 (pass_rtl_hoist): Replace declaration with that of...
5987 (make_pass_rtl_hoist): ...new function.
5988 (pass_rtl_store_motion): Replace declaration with that of...
5989 (make_pass_rtl_store_motion): ...new function.
5990 (pass_cse_after_global_opts): Replace declaration with that of...
5991 (make_pass_cse_after_global_opts): ...new function.
5992 (pass_rtl_ifcvt): Replace declaration with that of...
5993 (make_pass_rtl_ifcvt): ...new function.
5994 (pass_into_cfg_layout_mode): Replace declaration with that of...
5995 (make_pass_into_cfg_layout_mode): ...new function.
5996 (pass_outof_cfg_layout_mode): Replace declaration with that of...
5997 (make_pass_outof_cfg_layout_mode): ...new function.
5998 (pass_loop2): Replace declaration with that of...
5999 (make_pass_loop2): ...new function.
6000 (pass_rtl_loop_init): Replace declaration with that of...
6001 (make_pass_rtl_loop_init): ...new function.
6002 (pass_rtl_move_loop_invariants): Replace declaration with that of...
6003 (make_pass_rtl_move_loop_invariants): ...new function.
6004 (pass_rtl_unswitch): Replace declaration with that of...
6005 (make_pass_rtl_unswitch): ...new function.
6006 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
6007 (make_pass_rtl_unroll_and_peel_loops): ...new function.
6008 (pass_rtl_doloop): Replace declaration with that of...
6009 (make_pass_rtl_doloop): ...new function.
6010 (pass_rtl_loop_done): Replace declaration with that of...
6011 (make_pass_rtl_loop_done): ...new function.
6012 (pass_web): Replace declaration with that of...
6013 (make_pass_web): ...new function.
6014 (pass_cse2): Replace declaration with that of...
6015 (make_pass_cse2): ...new function.
6016 (pass_df_initialize_opt): Replace declaration with that of...
6017 (make_pass_df_initialize_opt): ...new function.
6018 (pass_df_initialize_no_opt): Replace declaration with that of...
6019 (make_pass_df_initialize_no_opt): ...new function.
6020 (pass_reginfo_init): Replace declaration with that of...
6021 (make_pass_reginfo_init): ...new function.
6022 (pass_inc_dec): Replace declaration with that of...
6023 (make_pass_inc_dec): ...new function.
6024 (pass_stack_ptr_mod): Replace declaration with that of...
6025 (make_pass_stack_ptr_mod): ...new function.
6026 (pass_initialize_regs): Replace declaration with that of...
6027 (make_pass_initialize_regs): ...new function.
6028 (pass_combine): Replace declaration with that of...
6029 (make_pass_combine): ...new function.
6030 (pass_if_after_combine): Replace declaration with that of...
6031 (make_pass_if_after_combine): ...new function.
6032 (pass_ree): Replace declaration with that of...
6033 (make_pass_ree): ...new function.
6034 (pass_partition_blocks): Replace declaration with that of...
6035 (make_pass_partition_blocks): ...new function.
6036 (pass_match_asm_constraints): Replace declaration with that of...
6037 (make_pass_match_asm_constraints): ...new function.
6038 (pass_regmove): Replace declaration with that of...
6039 (make_pass_regmove): ...new function.
6040 (pass_split_all_insns): Replace declaration with that of...
6041 (make_pass_split_all_insns): ...new function.
6042 (pass_fast_rtl_byte_dce): Replace declaration with that of...
6043 (make_pass_fast_rtl_byte_dce): ...new function.
6044 (pass_lower_subreg2): Replace declaration with that of...
6045 (make_pass_lower_subreg2): ...new function.
6046 (pass_mode_switching): Replace declaration with that of...
6047 (make_pass_mode_switching): ...new function.
6048 (pass_sms): Replace declaration with that of...
6049 (make_pass_sms): ...new function.
6050 (pass_sched): Replace declaration with that of...
6051 (make_pass_sched): ...new function.
6052 (pass_ira): Replace declaration with that of...
6053 (make_pass_ira): ...new function.
6054 (pass_reload): Replace declaration with that of...
6055 (make_pass_reload): ...new function.
6056 (pass_clean_state): Replace declaration with that of...
6057 (make_pass_clean_state): ...new function.
6058 (pass_branch_prob): Replace declaration with that of...
6059 (make_pass_branch_prob): ...new function.
6060 (pass_value_profile_transformations): Replace declaration with that
6061 of...
6062 (make_pass_value_profile_transformations): ...new function.
6063 (pass_postreload_cse): Replace declaration with that of...
6064 (make_pass_postreload_cse): ...new function.
6065 (pass_gcse2): Replace declaration with that of...
6066 (make_pass_gcse2): ...new function.
6067 (pass_split_after_reload): Replace declaration with that of...
6068 (make_pass_split_after_reload): ...new function.
6069 (pass_branch_target_load_optimize1): Replace declaration with that
6070 of...
6071 (make_pass_branch_target_load_optimize1): ...new function.
6072 (pass_thread_prologue_and_epilogue): Replace declaration with that
6073 of...
6074 (make_pass_thread_prologue_and_epilogue): ...new function.
6075 (pass_stack_adjustments): Replace declaration with that of...
6076 (make_pass_stack_adjustments): ...new function.
6077 (pass_peephole2): Replace declaration with that of...
6078 (make_pass_peephole2): ...new function.
6079 (pass_if_after_reload): Replace declaration with that of...
6080 (make_pass_if_after_reload): ...new function.
6081 (pass_regrename): Replace declaration with that of...
6082 (make_pass_regrename): ...new function.
6083 (pass_cprop_hardreg): Replace declaration with that of...
6084 (make_pass_cprop_hardreg): ...new function.
6085 (pass_reorder_blocks): Replace declaration with that of...
6086 (make_pass_reorder_blocks): ...new function.
6087 (pass_branch_target_load_optimize2): Replace declaration with that
6088 of...
6089 (make_pass_branch_target_load_optimize2): ...new function.
6090 (pass_leaf_regs): Replace declaration with that of...
6091 (make_pass_leaf_regs): ...new function.
6092 (pass_split_before_sched2): Replace declaration with that of...
6093 (make_pass_split_before_sched2): ...new function.
6094 (pass_compare_elim_after_reload): Replace declaration with that of...
6095 (make_pass_compare_elim_after_reload): ...new function.
6096 (pass_sched2): Replace declaration with that of...
6097 (make_pass_sched2): ...new function.
6098 (pass_stack_regs): Replace declaration with that of...
6099 (make_pass_stack_regs): ...new function.
6100 (pass_stack_regs_run): Replace declaration with that of...
6101 (make_pass_stack_regs_run): ...new function.
6102 (pass_df_finish): Replace declaration with that of...
6103 (make_pass_df_finish): ...new function.
6104 (pass_compute_alignments): Replace declaration with that of...
6105 (make_pass_compute_alignments): ...new function.
6106 (pass_duplicate_computed_gotos): Replace declaration with that of...
6107 (make_pass_duplicate_computed_gotos): ...new function.
6108 (pass_variable_tracking): Replace declaration with that of...
6109 (make_pass_variable_tracking): ...new function.
6110 (pass_free_cfg): Replace declaration with that of...
6111 (make_pass_free_cfg): ...new function.
6112 (pass_machine_reorg): Replace declaration with that of...
6113 (make_pass_machine_reorg): ...new function.
6114 (pass_cleanup_barriers): Replace declaration with that of...
6115 (make_pass_cleanup_barriers): ...new function.
6116 (pass_delay_slots): Replace declaration with that of...
6117 (make_pass_delay_slots): ...new function.
6118 (pass_split_for_shorten_branches): Replace declaration with that of...
6119 (make_pass_split_for_shorten_branches): ...new function.
6120 (pass_split_before_regstack): Replace declaration with that of...
6121 (make_pass_split_before_regstack): ...new function.
6122 (pass_convert_to_eh_region_ranges): Replace declaration with that
6123 of...
6124 (make_pass_convert_to_eh_region_ranges): ...new function.
6125 (pass_shorten_branches): Replace declaration with that of...
6126 (make_pass_shorten_branches): ...new function.
6127 (pass_set_nothrow_function_flags): Replace declaration with that of...
6128 (make_pass_set_nothrow_function_flags): ...new function.
6129 (pass_dwarf2_frame): Replace declaration with that of...
6130 (make_pass_dwarf2_frame): ...new function.
6131 (pass_final): Replace declaration with that of...
6132 (make_pass_final): ...new function.
6133 (pass_rtl_seqabstr): Replace declaration with that of...
6134 (make_pass_rtl_seqabstr): ...new function.
6135 (pass_release_ssa_names): Replace declaration with that of...
6136 (make_pass_release_ssa_names): ...new function.
6137 (pass_early_inline): Replace declaration with that of...
6138 (make_pass_early_inline): ...new function.
6139 (pass_inline_parameters): Replace declaration with that of...
6140 (make_pass_inline_parameters): ...new function.
6141 (pass_update_address_taken): Replace declaration with that of...
6142 (make_pass_update_address_taken): ...new function.
6143 (pass_convert_switch): Replace declaration with that of...
6144 (make_pass_convert_switch): ...new function.
6145 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
6146 to a subclass of simple_ipa_opt_pass along with...
6147 (pass_data_ipa_tree_profile): ...new pass_data instance and...
6148 (make_pass_ipa_tree_profile): ...new function.
6149 * tree-sra.c (pass_sra_early): Convert from a global struct to a
6150 subclass of gimple_opt_pass along with...
6151 (pass_data_sra_early): ...new pass_data instance and...
6152 (make_pass_sra_early): ...new function.
6153 (pass_sra): Convert from a global struct to a subclass of
6154 gimple_opt_pass along with...
6155 (pass_data_sra): ...new pass_data instance and...
6156 (make_pass_sra): ...new function.
6157 (pass_early_ipa_sra): Convert from a global struct to a subclass of
6158 gimple_opt_pass along with...
6159 (pass_data_early_ipa_sra): ...new pass_data instance and...
6160 (make_pass_early_ipa_sra): ...new function.
6161 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
6162 subclass of gimple_opt_pass along with...
6163 (pass_data_ccp): ...new pass_data instance and...
6164 (make_pass_ccp): ...new function.
6165 (pass_fold_builtins): Convert from a global struct to a subclass of
6166 gimple_opt_pass along with...
6167 (pass_data_fold_builtins): ...new pass_data instance and...
6168 (make_pass_fold_builtins): ...new function.
6169 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
6170 subclass of gimple_opt_pass along with...
6171 (pass_data_copy_prop): ...new pass_data instance and...
6172 (make_pass_copy_prop): ...new function.
6173 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
6174 global struct to a subclass of gimple_opt_pass along with...
6175 (pass_data_rename_ssa_copies): ...new pass_data instance and...
6176 (make_pass_rename_ssa_copies): ...new function.
6177 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
6178 subclass of gimple_opt_pass along with...
6179 (pass_data_dce): ...new pass_data instance and...
6180 (make_pass_dce): ...new function.
6181 (pass_dce_loop): Convert from a global struct to a subclass of
6182 gimple_opt_pass along with...
6183 (pass_data_dce_loop): ...new pass_data instance and...
6184 (make_pass_dce_loop): ...new function.
6185 (pass_cd_dce): Convert from a global struct to a subclass of
6186 gimple_opt_pass along with...
6187 (pass_data_cd_dce): ...new pass_data instance and...
6188 (make_pass_cd_dce): ...new function.
6189 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
6190 subclass of gimple_opt_pass along with...
6191 (pass_data_dominator): ...new pass_data instance and...
6192 (make_pass_dominator): ...new function.
6193 (pass_phi_only_cprop): Convert from a global struct to a subclass of
6194 gimple_opt_pass along with...
6195 (pass_data_phi_only_cprop): ...new pass_data instance and...
6196 (make_pass_phi_only_cprop): ...new function.
6197 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
6198 subclass of gimple_opt_pass along with...
6199 (pass_data_dse): ...new pass_data instance and...
6200 (make_pass_dse): ...new function.
6201 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
6202 a subclass of gimple_opt_pass along with...
6203 (pass_data_forwprop): ...new pass_data instance and...
6204 (make_pass_forwprop): ...new function.
6205 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
6206 struct to a subclass of gimple_opt_pass along with...
6207 (pass_data_tree_ifcombine): ...new pass_data instance and...
6208 (make_pass_tree_ifcombine): ...new function.
6209 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
6210 subclass of gimple_opt_pass along with...
6211 (pass_data_ch): ...new pass_data instance and...
6212 (make_pass_ch): ...new function.
6213 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
6214 subclass of gimple_opt_pass along with...
6215 (pass_data_tree_loop): ...new pass_data instance and...
6216 (make_pass_tree_loop): ...new function.
6217 (pass_tree_loop_init): Convert from a global struct to a subclass of
6218 gimple_opt_pass along with...
6219 (pass_data_tree_loop_init): ...new pass_data instance and...
6220 (make_pass_tree_loop_init): ...new function.
6221 (pass_lim): Convert from a global struct to a subclass of
6222 gimple_opt_pass along with...
6223 (pass_data_lim): ...new pass_data instance and...
6224 (make_pass_lim): ...new function.
6225 (pass_tree_unswitch): Convert from a global struct to a subclass of
6226 gimple_opt_pass along with...
6227 (pass_data_tree_unswitch): ...new pass_data instance and...
6228 (make_pass_tree_unswitch): ...new function.
6229 (pass_predcom): Convert from a global struct to a subclass of
6230 gimple_opt_pass along with...
6231 (pass_data_predcom): ...new pass_data instance and...
6232 (make_pass_predcom): ...new function.
6233 (pass_vectorize): Convert from a global struct to a subclass of
6234 gimple_opt_pass along with...
6235 (pass_data_vectorize): ...new pass_data instance and...
6236 (make_pass_vectorize): ...new function.
6237 (pass_graphite): Convert from a global struct to a subclass of
6238 gimple_opt_pass along with...
6239 (pass_data_graphite): ...new pass_data instance and...
6240 (make_pass_graphite): ...new function.
6241 (pass_graphite_transforms): Convert from a global struct to a subclass
6242 of gimple_opt_pass along with...
6243 (pass_data_graphite_transforms): ...new pass_data instance and...
6244 (make_pass_graphite_transforms): ...new function.
6245 (pass_check_data_deps): Convert from a global struct to a subclass of
6246 gimple_opt_pass along with...
6247 (pass_data_check_data_deps): ...new pass_data instance and...
6248 (make_pass_check_data_deps): ...new function.
6249 (pass_iv_canon): Convert from a global struct to a subclass of
6250 gimple_opt_pass along with...
6251 (pass_data_iv_canon): ...new pass_data instance and...
6252 (make_pass_iv_canon): ...new function.
6253 (pass_scev_cprop): Convert from a global struct to a subclass of
6254 gimple_opt_pass along with...
6255 (pass_data_scev_cprop): ...new pass_data instance and...
6256 (make_pass_scev_cprop): ...new function.
6257 (pass_record_bounds): Convert from a global struct to a subclass of
6258 gimple_opt_pass along with...
6259 (pass_data_record_bounds): ...new pass_data instance and...
6260 (make_pass_record_bounds): ...new function.
6261 (pass_complete_unroll): Convert from a global struct to a subclass of
6262 gimple_opt_pass along with...
6263 (pass_data_complete_unroll): ...new pass_data instance and...
6264 (make_pass_complete_unroll): ...new function.
6265 (pass_complete_unrolli): Convert from a global struct to a subclass of
6266 gimple_opt_pass along with...
6267 (pass_data_complete_unrolli): ...new pass_data instance and...
6268 (make_pass_complete_unrolli): ...new function.
6269 (pass_parallelize_loops): Convert from a global struct to a subclass
6270 of gimple_opt_pass along with...
6271 (pass_data_parallelize_loops): ...new pass_data instance and...
6272 (make_pass_parallelize_loops): ...new function.
6273 (pass_loop_prefetch): Convert from a global struct to a subclass of
6274 gimple_opt_pass along with...
6275 (pass_data_loop_prefetch): ...new pass_data instance and...
6276 (make_pass_loop_prefetch): ...new function.
6277 (pass_iv_optimize): Convert from a global struct to a subclass of
6278 gimple_opt_pass along with...
6279 (pass_data_iv_optimize): ...new pass_data instance and...
6280 (make_pass_iv_optimize): ...new function.
6281 (pass_tree_loop_done): Convert from a global struct to a subclass of
6282 gimple_opt_pass along with...
6283 (pass_data_tree_loop_done): ...new pass_data instance and...
6284 (make_pass_tree_loop_done): ...new function.
6285 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
6286 struct to a subclass of gimple_opt_pass along with...
6287 (pass_data_cse_reciprocals): ...new pass_data instance and...
6288 (make_pass_cse_reciprocals): ...new function.
6289 (pass_cse_sincos): Convert from a global struct to a subclass of
6290 gimple_opt_pass along with...
6291 (pass_data_cse_sincos): ...new pass_data instance and...
6292 (make_pass_cse_sincos): ...new function.
6293 (pass_optimize_bswap): Convert from a global struct to a subclass of
6294 gimple_opt_pass along with...
6295 (pass_data_optimize_bswap): ...new pass_data instance and...
6296 (make_pass_optimize_bswap): ...new function.
6297 (pass_optimize_widening_mul): Convert from a global struct to a
6298 subclass of gimple_opt_pass along with...
6299 (pass_data_optimize_widening_mul): ...new pass_data instance and...
6300 (make_pass_optimize_widening_mul): ...new function.
6301 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
6302 subclass of gimple_opt_pass along with...
6303 (pass_data_phiopt): ...new pass_data instance and...
6304 (make_pass_phiopt): ...new function.
6305 (pass_cselim): Convert from a global struct to a subclass of
6306 gimple_opt_pass along with...
6307 (pass_data_cselim): ...new pass_data instance and...
6308 (make_pass_cselim): ...new function.
6309 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
6310 subclass of gimple_opt_pass along with...
6311 (pass_data_phiprop): ...new pass_data instance and...
6312 (make_pass_phiprop): ...new function.
6313 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
6314 subclass of gimple_opt_pass along with...
6315 (pass_data_pre): ...new pass_data instance and...
6316 (make_pass_pre): ...new function.
6317 (pass_fre): Convert from a global struct to a subclass of
6318 gimple_opt_pass along with...
6319 (pass_data_fre): ...new pass_data instance and...
6320 (make_pass_fre): ...new function.
6321 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
6322 subclass of gimple_opt_pass along with...
6323 (pass_data_reassoc): ...new pass_data instance and...
6324 (make_pass_reassoc): ...new function.
6325 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
6326 subclass of gimple_opt_pass along with...
6327 (pass_data_sink_code): ...new pass_data instance and...
6328 (make_pass_sink_code): ...new function.
6329 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
6330 subclass of gimple_opt_pass along with...
6331 (pass_data_strlen): ...new pass_data instance and...
6332 (make_pass_strlen): ...new function.
6333 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
6334 struct to a subclass of gimple_opt_pass along with...
6335 (pass_data_build_alias): ...new pass_data instance and...
6336 (make_pass_build_alias): ...new function.
6337 (pass_build_ealias): Convert from a global struct to a subclass of
6338 gimple_opt_pass along with...
6339 (pass_data_build_ealias): ...new pass_data instance and...
6340 (make_pass_build_ealias): ...new function.
6341 (pass_ipa_pta): Convert from a global struct to a subclass of
6342 simple_ipa_opt_pass along with...
6343 (pass_data_ipa_pta): ...new pass_data instance and...
6344 (make_pass_ipa_pta): ...new function.
6345 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
6346 subclass of gimple_opt_pass along with...
6347 (pass_data_uncprop): ...new pass_data instance and...
6348 (make_pass_uncprop): ...new function.
6349 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
6350 global struct to a subclass of gimple_opt_pass along with...
6351 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6352 (make_pass_late_warn_uninitialized): ...new function.
6353 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6354 to a subclass of gimple_opt_pass along with...
6355 (pass_data_init_datastructures): ...new pass_data instance and...
6356 (make_pass_init_datastructures): ...new function.
6357 (pass_early_warn_uninitialized): Convert from a global struct to a
6358 subclass of gimple_opt_pass along with...
6359 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6360 (make_pass_early_warn_uninitialized): ...new function.
6361 (pass_update_address_taken): Convert from a global struct to a
6362 subclass of gimple_opt_pass along with...
6363 (pass_data_update_address_taken): ...new pass_data instance and...
6364 (make_pass_update_address_taken): ...new function.
6365 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6366 struct to a subclass of gimple_opt_pass along with...
6367 (pass_data_release_ssa_names): ...new pass_data instance and...
6368 (make_pass_release_ssa_names): ...new function.
6369 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6370 subclass of gimple_opt_pass along with...
6371 (pass_data_stdarg): ...new pass_data instance and...
6372 (make_pass_stdarg): ...new function.
6373 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6374 global struct to a subclass of gimple_opt_pass along with...
6375 (pass_data_convert_switch): ...new pass_data instance and...
6376 (make_pass_convert_switch): ...new function.
6377 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6378 to a subclass of gimple_opt_pass along with...
6379 (pass_data_tail_recursion): ...new pass_data instance and...
6380 (make_pass_tail_recursion): ...new function.
6381 (pass_tail_calls): Convert from a global struct to a subclass of
6382 gimple_opt_pass along with...
6383 (pass_data_tail_calls): ...new pass_data instance and...
6384 (make_pass_tail_calls): ...new function.
6385 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6386 struct to a subclass of gimple_opt_pass along with...
6387 (pass_data_lower_vector): ...new pass_data instance and...
6388 (make_pass_lower_vector): ...new function.
6389 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6390 gimple_opt_pass along with...
6391 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6392 (make_pass_lower_vector_ssa): ...new function.
6393 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6394 to a subclass of gimple_opt_pass along with...
6395 (pass_data_slp_vectorize): ...new pass_data instance and...
6396 (make_pass_slp_vectorize): ...new function.
6397 (pass_ipa_increase_alignment): Convert from a global struct to a
6398 subclass of simple_ipa_opt_pass along with...
6399 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6400 (make_pass_ipa_increase_alignment): ...new function.
6401 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6402 gimple_opt_pass along with...
6403 (pass_data_vrp): ...new pass_data instance and...
6404 (make_pass_vrp): ...new function.
6405 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6406 subclass of simple_ipa_opt_pass along with...
6407 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6408 (make_pass_ipa_free_lang_data): ...new function.
6409 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6410 gimple_opt_pass along with...
6411 (pass_data_tsan): ...new pass_data instance and...
6412 (make_pass_tsan): ...new function.
6413 (pass_tsan_O0): Convert from a global struct to a subclass of
6414 gimple_opt_pass along with...
6415 (pass_data_tsan_O0): ...new pass_data instance and...
6416 (make_pass_tsan_O0): ...new function.
6417 * var-tracking.c (pass_variable_tracking): Convert from a global
6418 struct to a subclass of rtl_opt_pass along with...
6419 (pass_data_variable_tracking): ...new pass_data instance and...
6420 (make_pass_variable_tracking): ...new function.
6421 * web.c (pass_web): Convert from a global struct to a subclass of
6422 rtl_opt_pass along with...
6423 (pass_data_web): ...new pass_data instance and...
6424 (make_pass_web): ...new function.
6425 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6426 declaration with that of...
6427 (make_pass_mode_switch_use): ...new function.
6428 (pass_resolve_sw_modes): Replace declaration with that of...
6429 (make_pass_resolve_sw_modes): ...new function.
6430 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6431 from a global struct to a subclass of rtl_opt_pass along with...
6432 (pass_data_mode_switch_use): ...new pass_data instance and...
6433 (make_pass_mode_switch_use): ...new function.
6434 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6435 from a global struct to a subclass of rtl_opt_pass along with...
6436 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6437 (make_pass_resolve_sw_modes): ...new function.
6438 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6439 struct to a subclass of rtl_opt_pass along with...
6440 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6441 (make_pass_insert_vzeroupper): ...new function.
6442 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6443 global struct to a subclass of rtl_opt_pass along with...
6444 (pass_data_work_around_errata): ...new pass_data instance and...
6445 (make_pass_work_around_errata): ...new function.
6446 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6447 struct to a subclass of rtl_opt_pass along with...
6448 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6449 (make_pass_mips_machine_reorg2): ...new function.
6450
6a389ed5
DM
64512013-08-05 David Malcolm <dmalcolm@redhat.com>
6452
6453 * passes.c (pass_manager::operator new): New.
6454
f7695dbf
DM
64552013-08-05 David Malcolm <dmalcolm@redhat.com>
6456
6457 Handwritten part of conversion of passes to C++ classes.
6458
6459 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6460 (toplev.o): Add dep on PASS_MANAGER_H.
6461 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6462 of early local pases to reflect this moving from a global to a
6463 member of gcc::pass_manager.
6464 (cgraph_add_new_function): Likewise.
6465 * lto-cgraph.c (lto_output_node): Update for conversion of
6466 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6467 * passes.c (opt_pass::clone): New.
6468 (opt_pass::gate): New.
6469 (opt_pass::execute): New.
6470 (opt_pass::opt_pass): New.
6471 (pass_manager::execute_early_local_passes): New.
6472 (pass_manager::execute_pass_mode_switching): new.
6473 (finish_optimization_passes): Convert to...
6474 (pass_manager::finish_optimization_passes): ...this.
6475 (finish_optimization_passes): Update for conversion of passes to
6476 C++ classes.
6477 (register_dump_files_1): Use has_gate since we cannot portably
6478 check a vtable entry against NULL.
6479 (dump_one_pass): Likewise.
6480 (ipa_write_summaries_2): Likewise.
6481 (ipa_write_optimization_summaries_1): Likewise.
6482 (ipa_read_summaries_1): Likewise.
6483 (ipa_read_optimization_summaries_1): Likewise.
6484 (execute_ipa_stmt_fixups): Likewise.
6485 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6486 pass-creation functions rather than wiring up globals, and
6487 storing the results in fields of pass_manager generated using
6488 pass-instances.def.
6489 (pass_manager::dump_profile_report): Update for conversion of
6490 passes to C++ classes.
6491 (pass_manager::execute_ipa_summary_passes): Likewise.
6492 (execute_one_ipa_transform_pass): Likewise.
6493 (execute_one_pass): Use has_gate and has_execute since we cannot
6494 portably check a vtable entry against NULL.
6495 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6496 (pass_manager): Use pass-instances.def to add fields for the
6497 various pass instances.
6498 * toplev.c (finalize): Update for move of
6499 finish_optimization_passes to a method of gcc::pass_manager.
6500 * toplev.h (finish_optimization_passes): Move to method of class
6501 pass_manager.
6502 * tree-pass.h (struct pass_data): New.
03b0ee0a 6503 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6504 (opt_pass::gate): Convert to virtual function.
6505 (opt_pass::~opt_pass): New.
6506 (opt_pass::clone): New.
6507 (opt_pass::execute): Convert to virtual function.
6508 (opt_pass::opt_pass): New.
6509 (opt_pass::ctxt_): new.
6510 (gimple_opt_pass): Convert to subclass of opt_pass.
6511 (gimple_opt_pass::gimple_opt_pass): New.
6512 (rtl_opt_pass): Convert to subclass of opt_pass.
6513 (rtl_opt_pass::rtl_opt_pass): New.
6514 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6515 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6516 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6517 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6518 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6519 invocation of pass_mode_switching to reflect this moving from a
6520 global to a member of gcc::pass_manager.
6521 (ix86_option_override): Rework how pass_insert_vzeroupper is
6522 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6523 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6524
d0b2f831
RE
65252013-08-05 Richard Earnshaw <rearnsha@arm.com>
6526
6527 PR rtl-optimization/57708
6528 * recog.c (peep2_find_free_register): Validate all regs in a
6529 multi-reg mode.
6530
51a5c0c2
JH
65312013-08-05 Jan Hubicka <jh@suse.cz>
6532
6533 PR lto/57602
03b0ee0a
UB
6534 * cgraph.c (verify_cgraph_node): Accept local flags from other
6535 partitions.
51a5c0c2
JH
6536 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6537 (function_and_variable_visibility): Likewise.
6538 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6539
65f0a120
GDR
65402013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6541
6542 * graph.c (init_graph_slim_pretty_print): Remove.
6543 (print_graph_cfg): Do not call it. Use local pretty printer.
6544 (start_graph_dump): Likewise.
6545
b3f80694
GDR
65462013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6547
6548 * gimple-pretty-print.c (buffer): Remove.
6549 (initialized): Likewise.
6550 (maybe_init_pretty_print): Likewise.
6551 (print_gimple_stmt): Do not call it. Use non-static local
6552 pretty_printer variable.
6553 (print_gimple_expr): Likewise.
6554 (print_gimple_seq): Likewise.
6555 (gimple_dump_bb): Likewise.
6556
11a877b3
GDR
65572013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6558
6559 * asan.c (asan_pp): Remove.
6560 (asan_pp_initialized): Likewise.
6561 (asan_pp_initialize): Likewise.
6562 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6563 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6564 (asan_add_global): Likewise.
6565
b066401f
GDR
65662013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6567
6568 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6569 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6570 * pretty-print.c (pp_formatted_text_data): Likewise.
6571 (pp_indent): Rename from pp_base_indent.
6572 (pp_format): Rename from pp_base_format.
6573 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6574 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6575 (pp_flush): Rename from pp_base_flush.
6576 (pp_set_line_maximum_length): Rename from
6577 pp_base_set_line_maximum_length.
6578 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6579 (pp_set_prefix): Rename from pp_base_set_prefix.
6580 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6581 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6582 (pp_append_text): Rename from pp_base_append_text.
6583 (pp_formatted_text): Rename from pp_base_formatted_text.
6584 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6585 (pp_remaining_character_count_for_line): Rename from
6586 pp_base_remaining_character_count_for_line.
6587 (pp_newline): Rename from pp_base_newline.
6588 (pp_character): Rename from pp_base_character.
6589 (pp_string): Rename from pp_base_string.
6590 (pp_maybe_space): Rename from pp_base_maybe_space.
6591 * asan.c (asan_pp_string): Adjust.
6592 (asan_emit_stack_protection): Likewise.
6593 (asan_add_global): Likewise.
6594 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6595 * tree-mudflap.c (mf_varname_tree): Likewise.
6596 * tree-pretty-print.c (pp_tree_identifier): Rename from
6597 pp_base_tree_identifier.
6598 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6599 Declare as function.
6600
137a1a27
GDR
66012013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6602
6603 * pretty-print.h (pp_bar_bar): New.
6604 (pp_ampersand_ampersand): Likewise.
6605 (pp_less_equal): Likewise.
6606 (pp_greater_equal): Likewise.
6607 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6608 printer functions instead of pp_string or operators and punctuators.
6609 (dump_gimple_call): Likewise.
6610 (dump_gimple_omp_for): Likewise.
6611 (dump_gimple_transaction): Likewise.
6612 (dump_gimple_phi): Likewise.
6613 (pp_gimple_stmt_1): Likewise.
6614 * sched-vis.c (print_insn): Likewise.
6615 * tree-mudflap.c (mf_varname_tree): Likewise.
6616 * tree-pretty-print.c (dump_block_node): Likewise.
6617 (dump_generic_node): Likewise.
6618
815effe1
JH
66192013-08-02 Jan Hubicka <jh@suse.cz>
6620
6621 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6622 boundaries.
6623 * lto-streamer-out.c (tree_is_indexable): Results decls and
6624 parm decls are not indexable.
6625 (DFS_write_tree_body): Do not follow args and results.
6626 (hash_tree): Likewise.
6627 (output_functions): Rearrange so struct function is needed
6628 only when real body is output; be able to also ouptut abstract
6629 functions; output DECL_ARGUMENTS and DECL_RESULT.
6630 (lto_output): When not in WPA, ale store abstract functions.
6631 (write_symbol): Do not care about RESULT_DECL.
6632 (output_symbol_p): Handle correctly sbtract decls.
6633 * lto-streamer-in.c (input_function): Rearrange so struct
6634 function can be NULL at entry; allow streaming of
6635 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
6636 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
6637 sanity check during LTO.
6638 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
6639 RESULT_DECl and DECL_ARGUMENTS.
6640 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
6641 Likewise.
6642
07838b13
GDR
66432013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6644
6645 * pretty-print.h (pp_underscore): New.
6646 (pp_comma): Tidy.
6647 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
6648 printer functions instead of pp_character.
6649 (dump_binary_rhs): Likewise.
6650 (dump_ternary_rhs): Likewise.
6651 (dump_gimple_call_args): Likewise.
6652 (pp_points_to_solution): Likewise.
6653 (dump_gimple_call): Likewise.
6654 (dump_gimple_switch): Likewise.
6655 (dump_gimple_cond): Likewise.
6656 (dump_gimple_bind): Likewise.
6657 (dump_gimple_try): Likewise.
6658 (dump_gimple_omp_for): Likewise.
6659 (dump_gimple_omp_continue): Likewise.
6660 (dump_gimple_omp_single): Likewise.
6661 (dump_gimple_omp_sections): Likewise.
6662 (dump_gimple_omp_block): Likewise.
6663 (dump_gimple_omp_critical): Likewise.
6664 (dump_gimple_transaction): Likewise.
6665 (dump_gimple_asm): Likewise.
6666 (dump_gimple_phi): Likewise.
6667 (dump_gimple_omp_parallel): Likewise.
6668 (dump_gimple_omp_task): Likewise.
6669 (dump_gimple_omp_atomic_load): Likewise.
6670 (dump_gimple_omp_atomic_store): Likewise.
6671 (dump_gimple_mem_ops): Likewise.
6672 (pp_gimple_stmt_1): Likewise.
6673 (pp_cfg_jump): Likewise.
6674 (dump_implicit_edges): Likewise.
6675 (gimple_dump_bb_for_graph): Likewise.
6676 * graph.c (draw_cfg_node): Likewise.
6677 * langhooks.c (lhd_print_error_function): Likewise.
6678 * sched-vis.c (print_exp): Likewise.
6679 (print_value): Likewise.
6680 (print_pattern): Likewise.
6681 (print_insn): Likewise.
6682 (rtl_dump_bb_for_graph): Likewise.
6683 * tree-pretty-print.c (dump_function_declaration): Likewise.
6684 (dump_array_domain): Likewise.
6685 (dump_omp_clause): Likewise.
6686 (dump_location): Likewise.
6687 (dump_generic_node): Likewise.
6688 (print_struct_decl): Likewise.
6689 * diagnostic.c (diagnostic_show_locus): Use pp_space.
6690
bb0d2039
BS
66912013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6692
6693 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
6694 candidate table when replacing a candidate statement.
6695 (replace_rhs_if_not_dup): Likewise.
6696 (replace_one_candidate): Likewise.
6697
bc0ec027 66982013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 6699 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
6700
6701 * cgraphunit.c (add_new_function): Fix logic when adding from
6702 late IPA pass.
6703 (assemble_thunk): Rename to ...
03b0ee0a
UB
6704 (expand_thunk); .. this one; export; get it working with
6705 general functions; make produced gimple valid.
bc0ec027
JH
6706 * cgraph.h (expand_thunk): Declare.
6707
0e8853ee
JH
67082013-08-02 Jan Hubicka <jh@suse.cz>
6709
03b0ee0a
UB
6710 * ipa-cp.c (gather_context_independent_values): Use
6711 ipa_get_param_move_cost.
6712 (get_replacement_map): Remove PARAM; move parameter folding
6713 into tree-inline.c
0e8853ee
JH
6714 (create_specialized_node): Update.
6715 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
6716 assert that we have gimple body; update move_cost.
6717 (count_formal_params): Assert that we have gimple body.
6718 (ipa_dump_param): New function.
6719 (ipa_alloc_node_params): Break out from ...
6720 (ipa_initialize_node_params): ... here.
6721 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
6722 (ipa_write_node_info): Stream move costs.
6723 (ipa_read_node_info): Read move costs.
6724 (ipa_update_after_lto_read): Do not recompute node params.
6725 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
6726 (ipa_get_param): Check we are not in WPA.
6727 (ipa_get_param_move_cost): New.
6728 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
6729 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
6730 parm numbers to be present.
6731
ecee672b
VM
67322013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6733
6734 PR rtl-optimization/58048
6735 * lra-constraints.c (process_alt_operands): Don't check asm
6736 operand on register.
6737
13ec0527
EB
67382013-08-02 Eric Botcazou <ebotcazou@adacore.com>
6739
6740 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6741 the implied StoreLoad barrier for atomic operations if before.
6742
af15184a
JH
67432013-08-02 Jan Hubicka <jh@suse.cz>
6744 Martin Liska <marxin.liska@gmail.com>
6745
03b0ee0a
UB
6746 * cgraph.c (cgraph_function_body_availability): Do not check
6747 cgraph flags.
af15184a
JH
6748 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
6749 symtab_node_availability): Declare.
6750 * ipa.c (can_replace_by_local_alias): New.
6751 (function_and_variable_visibility): Use it.
03b0ee0a
UB
6752 * symtab.c (symtab_for_node_and_aliases,
6753 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 6754
01e54ef8
VM
67552013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6756
6757 PR rtl-optimization/57963
03b0ee0a 6758 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
6759 (lra_constraints): Use them.
6760
e2fd7ca7
SN
67612013-08-02 Sofiane Naci <sofiane.naci@arm.com>
6762
03b0ee0a
UB
6763 * config/arm/types.md (define_attr "type"): Add "load_acq"
6764 and "store_rel".
e2fd7ca7
SN
6765 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
6766 changes.
6767 (cortex_a53_store1): Likewise.
6768
0dcc26c3
JH
67692013-08-01 Jan Hubicka <jh@suse.cz>
6770
03b0ee0a
UB
6771 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
6772 partitions are not needed.
0dcc26c3 6773
0bd72901
UB
67742013-08-01 Uros Bizjak <ubizjak@gmail.com>
6775
6776 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
6777 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
6778 MAYBE_NON_Q_CLASS_P where appropriate.
6779
12123452
JH
67802013-08-01 Jan Hubicka <jh@suse.cz>
6781
6782 * cgraph.h (release_function_body): Declare.
6783 * tree.c (free_lang_data_in_decl): Free, parameters and return values
6784 of unused delcarations.
6785
ce852f9c
KT
67862013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6787
03b0ee0a
UB
6788 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
6789 RTL form when subtracting a constant.
ce852f9c 6790
c743b246
KT
67912013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6792
6793 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
6794 Generate canonical plus rtx with negated immediate instead of minus
6795 where appropriate.
6796 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
6797
c0c123ef
JH
67982013-08-01 Jan Hubicka <jh@suse.cz>
6799
6800 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
6801 (cgraph_release_function_body): Likewise.
6802 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
6803 * cgraph.h (cgrpah_node): Rename abstract_and_needed
6804 to used_as_abstract_origin.
6805 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
6806 symbols used as abstract origins.
6807 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
6808 * ipa.c (symtab_remove_unreachable_nodes): Recompute
6809 used_as_abstract_origin.
c0c123ef 6810 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
6811 used_as_abstract_origin; be ready for DECL_RESULT and
6812 DECL_ARGUMENTS to be NULL.
c0c123ef 6813
0bd72901
UB
6814 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
6815 for abstract functions.
6816 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
6817 real symbols.
c0c123ef 6818
1f029433
JH
68192013-08-01 Jan Hubicka <jh@suse.cz>
6820
6821 * profile.c (compute_value_histograms): Fix thinko.
6822
c451f4d6
SN
68232013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6824
6825 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
6826 aarch-common-protos.h to extra_headers.
6827 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6828 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
6829 * config/aarch64/t-aarch64 (aarch-common.o): Define.
6830
34b512f5
SN
68312013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6832
6833 * config/aarch64/aarch64.md (define_attr "type"): Delete.
6834 Include "../arm/types.md". Define "type" attribute for all patterns.
6835 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
6836 attribute changes.
6837
d86e633a
MM
68382013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6839
6840 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
6841 to support power8 load fusion.
6842 (fusion_gpr_mem_load): Likewise.
6843
6844 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
6845
6846 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
6847 declarations for power8 load fusion.
6848 (emit_fusion_gpr_load): Likewise.
6849
6850 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
6851 tuning for power8, turn on fusion mode by default. Turn on sign
6852 extending fusion mode if normal fusion mode is on, and we are at
6853 -O2 or -O3.
6854 (fusion_gpr_load_p): New function, return true if we can fuse an
6855 addis instruction with a dependent load to a GPR.
6856 (emit_fusion_gpr_load): Emit the instructions for power8 load
6857 fusion to GPRs.
6858
0bd72901 6859 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
6860 (VSX load fusion peepholes): New peepholes to fuse together an
6861 addi instruction with a VSX load instruction.
6862
6863 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
6864 peepholes to fuse an addis instruction with a load to a GPR base
6865 register. If we are supporting sign extending fusions, convert
6866 sign extending loads to zero extending loads and add an explicit
6867 sign extension.
6868
c3f35647
SN
68692013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6870
6871 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
6872 aarch-common-protos.h to extra_headers.
6873 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6874 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
6875 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6876 (arm_no_early_alu_shift_dep): Likewise.
6877 (arm_no_early_alu_shift_value_dep): Likewise.
6878 (arm_no_early_mul_dep): Likewise.
6879 (arm_no_early_store_addr_dep): Likewise.
6880 (arm_mac_accumulator_is_mul_result): Likewise.
6881 (arm_mac_accumulator_is_result): Likewise.
c3f35647 6882 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
6883 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
6884 here to ...
c3f35647 6885 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6886 (arm_no_early_alu_shift_dep): Likewise.
6887 (arm_no_early_alu_shift_value_dep): Likewise.
6888 (arm_no_early_mul_dep): Likewise.
6889 (arm_no_early_store_addr_dep): Likewise.
6890 (arm_mac_accumulator_is_mul_result): Likewise.
6891 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
6892 * config/arm/aarch-common-protos.h: ... here. New file.
6893 * config/arm/t-arm (aarch-common.o): Define.
6894
68952013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6896
6897 * config/arm/arm.md: Include new file "types.md".
6898 (define_attr "type"): Move from here to ...
6899 (define_attr "mul32"): Likewise.
6900 (define_attr "mul64"): Likewise.
6901 * config/arm/types.md: ... here. New file.
6902
228c1313
SH
69032013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6904
6905 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6906 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6907
d6e9046d 69082013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
6909
6910 * gen-pass-instances.awk: Fix offset of substr().
6911
a167b052
DM
69122013-07-31 David Malcolm <dmalcolm@redhat.com>
6913
6914 * Makefile.in (pass-instances.def): New.
6915 (passes.o): Replace dependency on passes.def with one on
6916 pass-instances.def
6917
6918 * gen-pass-instances.awk: New.
6919
6920 * passes.c (pass_manager::pass_manager): Use pass-instances.def
6921 rather than passes.def, updating local definition of NEXT_PASS
6922 macro to add an extra NUM parameter (currently unused).
6923
315f8c0e
DM
69242013-07-30 David Malcolm <dmalcolm@redhat.com>
6925
6926 * Makefile.in (PASS_MANAGER_H): New.
6927 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
6928 (passes.o): Likewise.
6929 (statistics.o): Likewise.
6930 (cgraphunit.o): Likewise.
6931 (context.o): Depend on PASS_MANAGER_H.
6932
6933 * pass_manager.h: New.
6934
6935 * cgraphunit.c (cgraph_add_new_function): Update for moves
6936 of globals to fields of pass_manager.
6937 (analyze_function): Likewise.
6938 (expand_function): Likewise.
6939 (ipa_passes): Likewise.
6940 (compile): Likewise.
6941
6942 * context.c (context::context): New.
6943 * context.h (context::context): New.
6944 (context::get_passes): New.
6945 (context::passes_): New.
6946
6947 * lto-cgraph.c (input_node): Update for moves of globals to
6948 fields of pass_manager.
6949
6950 * passes.c (all_passes): Remove, in favor of a field of the
6951 same name within the new class pass_manager.
6952 (all_small_ipa_passes): Likewise.
6953 (all_lowering_passes): Likewise.
6954 (all_regular_ipa_passes): Likewise.
6955 (all_late_ipa_passes): Likewise.
6956 (all_lto_gen_passes): Likewise.
6957 (passes_by_id): Likewise.
6958 (passes_by_id_size): Likewise.
6959 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6960 the new class pass_manager.
6961 (set_pass_for_id): Convert to...
6962 (pass_manager::set_pass_for_id): ...method.
6963 (get_pass_for_id): Convert to...
6964 (pass_manager::get_pass_for_id): ...method.
6965 (register_one_dump_file): Move body of implementation into...
6966 (pass_manager::register_one_dump_file): ...here.
6967 (register_dump_files_1): Convert to...
6968 (pass_manager::register_dump_files_1): ...method.
6969 (register_dump_files): Convert to...
6970 (pass_manager::register_dump_files): ...method.
6971 (create_pass_tab): Update for moves of globals to fields of
6972 pass_manager.
6973 (dump_passes): Move body of implementation into...
6974 (pass_manager::dump_passes): ...here.
6975 (register_pass): Move body of implementation into...
6976 (pass_manager::register_pass): ...here.
6977 (init_optimization_passes): Convert into...
6978 (pass_manager::pass_manager): ...constructor for new
6979 pass_manager class, and initialize the pass_lists array.
6980 (check_profile_consistency): Update for moves of globals to
6981 fields of pass_manager.
6982 (dump_profile_report): Move body of implementation into...
6983 (pass_manager::dump_profile_report): ...here.
6984 (ipa_write_summaries_1): Update for moves of pass lists from
6985 being globals to fields of pass_manager.
6986 (ipa_write_optimization_summaries): Likewise.
6987 (ipa_read_summaries): Likewise.
6988 (ipa_read_optimization_summaries): Likewise.
6989 (execute_all_ipa_stmt_fixups): Likewise.
6990
6991 * statistics.c (statistics_fini): Update for moves of globals to
6992 fields of pass_manager.
6993
6994 * toplev.c (general_init): Replace call to
6995 init_optimization_passes with construction of the pass_manager
6996 instance.
6997
6998 * tree-pass.h (all_passes): Remove, in favor of a field of the
6999 same name within the new class pass_manager.
7000 (all_small_ipa_passes): Likewise.
7001 (all_lowering_passes): Likewise.
7002 (all_regular_ipa_passes): Likewise.
7003 (all_lto_gen_passes): Likewise.
7004 (all_late_ipa_passes): Likewise.
7005 (passes_by_id): Likewise.
7006 (passes_by_id_size): Likewise.
7007 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
7008 the new class pass_manager.
7009 (get_pass_for_id): Remove.
7010
02cab1c1
RE
70112013-07-30 Richard Earnshaw <rearnsha@arm.com>
7012
7013 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
7014 configs.
7015
b2d3f886
RE
70162013-07-30 Richard Earnshaw <rearnsha@arm.com>
7017
7018 * arm.md (mulhi3): New expand pattern.
7019
605e86fa
JH
70202013-07-30 Jan Hubicka <jh@suse.cz>
7021 Martin Liska <marxin.liska@gmail.com>
7022
7023 * profile.c (compute_value_histograms): Do not ICE when
7024 there is mismatch only on some counters.
7025
14a87636
ZC
70262013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7027
7028 PR rtl-optimization/57637
7029 * function.c (move_insn_for_shrink_wrap): Also check the
7030 GEN set of the LIVE problem for the liveness analysis
7031 if it exists, otherwise give up.
7032
0100cd3f
BS
70332013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7034
7035 PR tree-optimization/57993
7036 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
7037 replaced statement in the candidate table.
7038 (phi_add_costs): Return infinite cost when the hidden basis does
7039 not dominate all phis on which the candidate is dependent.
7040 (replace_one_candidate): Record replaced statement in the
7041 candidate table.
7042
f0d811f7
JR
70432013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
7044
7045 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
7046 (ashlv2si3): New expander.
7047 (*ashlv2si3_i): New define_insn_and_split.
7048 * predicates.md (float_operation): Allow patterns with three
7049 basic sub-patterns.
7050
bba33211
JR
7051 PR rtl-optimization/58021
7052 * mode-switching.c (create_pre_exit): Always split off preceding
7053 insns if we are not at the basic block head.
7054
ff3f3951
MR
70552013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
7056
7057 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
7058 (UCLIBC_DYNAMIC_LINKER): New macro.
7059 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
7060 `-mnan=2008'.
7061 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
7062 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
7063 `-mnan=2008'.
7064 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
7065 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
7066 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
7067 for SF and DF modes. Use ieee_quad_format for TF mode.
7068 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
7069 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
7070 (mips_option_override): Handle `-mnan=legacy'.
7071 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
7072 `-mabs=2008' and `-mnan=2008'.
7073 (OPTION_DEFAULT_SPECS): Add "nan" default.
7074 (ASM_SPEC): Handle `-mnan='.
7075 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
7076 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
7077 comment accordingly.
7078 (neg<mode>2): Likewise.
7079 * config/mips/mips.opt (mabs, mnan): New options.
7080 * doc/install.texi (Configuration): Document `--with-nan=' option.
7081 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
7082 `-mnan=' options.
7083 (MIPS Options): Document them.
7084 * config.gcc <mips*-*-*>: Handle `--with-nan='.
7085 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
7086 * configure: Regenerate.
7087 * config.in: Regenerate.
7088
576e2f37
UB
70892013-07-29 Uros Bizjak <ubizjak@gmail.com>
7090
7091 * config/i386/i386.md (float post-reload splitters): Do not check
7092 for subregs of SSE registers.
7093
70942013-07-29 Uros Bizjak <ubizjak@gmail.com>
7095 H.J. Lu <hongjiu.lu@intel.com>
7096
7097 PR target/57954
7098 PR target/57988
7099 * config/i386/i386.md (post-reload splitter
7100 to avoid partial SSE reg dependency stalls): New pattern.
7101
a71f0749
DV
71022013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
7103
7104 * config/s390/s390.md ("movcc"): Swap load and store instructions.
7105
4c97f1cc
JR
71062013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
7107
7108 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
7109 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
7110
b0c733d8
CC
71112013-07-26 Cary Coutant <ccoutant@google.com>
7112
7113 * dwarf2out.c (die_checksum_ordered): Don't include template
7114 instantiations in signature.
7115 (is_template_parameter): New function.
7116 (is_template_instantiation): New function.
7117 (generate_skeleton_bottom_up): Don't include template instantiations
7118 in type unit DIE.
7119 (generate_skeleton): Likewise.
7120 (break_out_comdat_types): Move recursive call to break out nested
7121 types earlier.
7122 (prune_unused_types_mark_generic_parms_dies): Call
7123 is_template_parameter.
7124
040d8a1c
IB
71252013-07-26 Ian Bolton <ian.bolton@arm.com>
7126
7127 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
7128 uses vector registers.
89fdc743 7129 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 7130
85bd4ac6 71312013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 7132 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
7133
7134 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 7135 where appropriate.
85bd4ac6
KT
7136 * config/arm/arm.md (movcond_addsi): New splitter.
7137
b6051207
SA
71382013-07-25 Sterling Augustine <saugustine@google.com>
7139
7140 * dwarf2out.c (size_of_pubnames): Move code to...
7141 (include_pubname_in_output): ...here. New.
7142 (want_pubnames): Rearrange.
7143 (output_pubnames): Call include_pubname_in_output. Move assertion.
7144
41a7c215
CM
71452013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7146
7147 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
7148
71492013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7150
7151 PR target/38836
7152 * doc/extend.texi: Remove obsolete builtins. Fix
7153 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
7154
49bde175
JH
71552013-07-25 Jan Hubicka <jh@suse.cz>
7156
7157 * cgraph.c (release_function_body): Break out from ...
7158 (cgraph_release_function_body): ... this one; also release DECL_RESULT
7159 and DECL_ARGUMENTS.
7160 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
7161 old_tree in the map.
7162 (create_specialized_node): Update.
7163 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
7164 into index.
41a7c215
CM
7165 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
7166 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
7167 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
7168 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
7169 DECL_RESULT.
7170
4870352d
KT
71712013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7172
7173 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
7174 addsi3_carryin_alt2_<optab>): Correct output template.
7175
1d6aee1c
KT
71762013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7177
7178 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
7179 Adjust for arm_restrict_it.
7180 Remove trailing whitespace.
7181
c7cafd75
MK
71822013-07-25  Mark Kettenis  <kettenis@openbsd.org>
7183
017d38f5
MK
7184 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
7185 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
7186
c7cafd75
MK
7187 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
7188
00b7527b
VM
71892013-07-25 Vladimir Makarov <vmakarov@redhat.com>
7190
7191 PR rtl-optimization/57960
7192 * lra-constraints.c (process_alt_operands): Use the right mode
7193 when checking strict_low.
7194
4f63dfc6
JH
71952013-07-25 Jan Hubicka <jh@suse.cz>
7196
7197 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
7198 * cgraph.c (cgraph_remove_node): Do not release function body
7199 when in cgraph streaming.
7200 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
7201 in other partitions are not considered reachable; fix handling of
7202 clones.
4f63dfc6 7203
e6dcfa18
RR
72042013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7205
7206 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
7207
0b93d3b6
RR
72082013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7209
7210 PR target/19599
7211 PR target/57731
bb80c2eb 7212 PR target/57837
e6dcfa18 7213 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 7214 Ss with US. Adjust output for v5 and v4t.
41a7c215 7215 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 7216
0b93d3b6
RR
7217 * config/arm/constraints.md ("Ss"): Rename to US.
7218
690688b3
TG
72192013-07-25 Terry Guo <terry.guo@arm.com>
7220
7221 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7222 shift_add/shift_sub0/shift_sub1 RTXs.
7223
a4ad093b 72242013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 7225 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
7226
7227 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
7228 (altivec_vpks<VI_char>ss): Likewise.
7229 (altivec_vpks<VI_char>us): Likewise.
7230 (altivec_vpku<VI_char>us): Likewise.
7231 (altivec_vpku<VI_char>um): Likewise.
7232
8c5005ce
DM
72332013-07-24 David Malcolm <dmalcolm@redhat.com>
7234
7235 Introduce context class.
7236
7237 * Makefile.in (CONTEXT_H): New.
7238 (OBJS): Add context.o.
7239 (toplev.o): Add CONTEXT_H to dependencies.
7240 (context.o): New.
7241
41a7c215 7242 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
7243
7244 * context.c: New.
7245
7246 * context.h: New.
7247
ce4a9422
JR
72482013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
7249
7250 PR rtl-optimization/57968
7251 * mode-switching.c (create_pre_exit): Allow instructions that
7252 don't set a return register to need a non-exit mode.
7253
493f4c9e 72542013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7255 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 7256
b5860fd3
WS
7257 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
7258 operands to vperm for little endian.
7259 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
7260 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 7261
73792b92 72622013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7263 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
7264
7265 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7266 two operands for little-endian.
7267
14c21302
SE
72682013-07-23 Steve Ellcey <sellcey@mips.com>
7269
7270 * config/mips/mips.c (mips_case_values_threshold): New.
7271 (TARGET_CASE_VALUES_THRESHOLD): Define.
7272
a6056198 72732013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7274 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
7275
7276 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
7277 selection of field for vector splat in little endian mode.
7278
dd7a40e1
MM
72792013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7280
7281 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
7282 expanders to rs6000.md.
7283 (ior<mode>3): Likewise.
7284 (and<mode>3): Likewise.
7285 (one_cmpl<mode>2): Likewise.
7286 (nor<mode>3): Likewise.
7287 (andc<mode>3): Likewise.
7288 (eqv<mode>3): Likewise.
7289 (nand<mode>3): Likewise.
7290 (orc<mode>3): Likewise.
7291
7292 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
7293 declaration.
7294
7295 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
7296 to split multi-word logical operations.
7297 (rs6000_split_logical_di): Likewise.
7298 (rs6000_split_logical): Likewise.
7299
7300 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
7301 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
7302 and allow TImode operations in 32-bit.
7303 (vsx_and<mode>3_64bit): Likewise.
7304 (vsx_ior<mode>3_32bit): Likewise.
7305 (vsx_ior<mode>3_64bit): Likewise.
7306 (vsx_xor<mode>3_32bit): Likewise.
7307 (vsx_xor<mode>3_64bit): Likewise.
7308 (vsx_one_cmpl<mode>2_32bit): Likewise.
7309 (vsx_one_cmpl<mode>2_64bit): Likewise.
7310 (vsx_nor<mode>3_32bit): Likewise.
7311 (vsx_nor<mode>3_64bit): Likewise.
7312 (vsx_andc<mode>3_32bit): Likewise.
7313 (vsx_andc<mode>3_64bit): Likewise.
7314 (vsx_eqv<mode>3_32bit): Likewise.
7315 (vsx_eqv<mode>3_64bit): Likewise.
7316 (vsx_nand<mode>3_32bit): Likewise.
7317 (vsx_nand<mode>3_64bit): Likewise.
7318 (vsx_orc<mode>3_32bit): Likewise.
7319 (vsx_orc<mode>3_64bit): Likewise.
7320
7321 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
7322 logical types in GPRs.
7323
7324 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
7325 logical insns to rs6000.md, and allow TImode operations in
7326 32-bit.
7327 (altivec_ior<mode>3): Likewise.
7328 (altivec_xor<mode>3): Likewise.
7329 (altivec_one_cmpl<mode>2): Likewise.
7330 (altivec_nor<mode>3): Likewise.
7331 (altivec_andc<mode>3): Likewise.
7332
7333 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
7334 attributes for moving the 128-bit logical operations into
7335 rs6000.md.
7336 (BOOL_REGS_OUTPUT): Likewise.
7337 (BOOL_REGS_OP1): Likewise.
7338 (BOOL_REGS_OP2): Likewise.
7339 (BOOL_REGS_UNARY): Likewise.
7340 (BOOL_REGS_AND_CR0): Likewise.
7341 (one_cmpl<mode>2): Add support for DI logical operations on
7342 32-bit, splitting the operations to 32-bit.
7343 (anddi3): Likewise.
7344 (iordi3): Likewise.
7345 (xordi3): Likewise.
7346 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
7347 changes to combine the 32/64-bit code, allow logical operations on
7348 TI mode in 32-bit, and to use similar match_operator patterns like
7349 scalar mode uses. Combine the Altivec and VSX code for logical
7350 operations, and move it here.
7351 (ior<mode>3, 128-bit types): Likewise.
7352 (xor<mode>3, 128-bit types): Likewise.
7353 (one_cmpl<mode>3, 128-bit types): Likewise.
7354 (nor<mode>3, 128-bit types): Likewise.
7355 (andc<mode>3, 128-bit types): Likewise.
7356 (eqv<mode>3, 128-bit types): Likewise.
7357 (nand<mode>3, 128-bit types): Likewise.
7358 (orc<mode>3, 128-bit types): Likewise.
7359 (and<mode>3_internal): Likewise.
7360 (bool<mode>3_internal): Likewise.
7361 (boolc<mode>3_internal1): Likewise.
7362 (boolc<mode>3_internal2): Likewise.
7363 (boolcc<mode>3_internal1): Likewise.
7364 (boolcc<mode>3_internal2): Likewise.
7365 (eqv<mode>3_internal1): Likewise.
7366 (eqv<mode>3_internal2): Likewise.
7367 (one_cmpl1<mode>3_internal): Likewise.
7368
12211b99 73692013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7370
7371 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7372 Rename flag_stack_usage to flag_stack_usage_info.
7373
12211b99 73742013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7375
a5f257fd
ME
7376 * config/microblaze/sync.md: New file.
7377 * config/microblaze/microblaze.md: Include sync.md
7378 * config/microblaze/microblaze.c: Add print_operand 'y'.
7379 * config/microblaze/constraints.md: Add memory_contraint
7380 'Q' which is a single register.
450b0ebb 7381
49fba14f
EB
73822013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7383
7384 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7385
c7b3b99f
PCC
73862013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7387
7388 * reload.c (find_reloads): Exit loop once we find this operand
7389 cannot be reloaded somehow for this alternative.
7390
7391 * reload.c (find_reloads): Exit loop once we find a hard register.
7392
7393 * rtlanal.c (computed_jump_p): Exit loop once we find label
7394 reference is used.
7395
7396 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7397
7398 * cfgloopmanip.c (remove_path): Exit loop after setting
7399 irred_invalidated.
7400
7401 * gensupport.c (subst_dup): Avoid loop if code is not
7402 MATCH_DUP nor MATCH_OP_DUP.
7403
c8fbf1fa
NBJ
74042013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7405
7406 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7407
9259db42
YZ
74082013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7409
7410 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7411 true for SP_REGNUM if mode == ptr_mode.
7412 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7413 with value R0_REGNUM + 31.
7414
00edcfbe
YZ
74152013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7416
7417 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7418 pad pointer-typed argument downward.
7419
43be9a95
YZ
74202013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7421
7422 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7423 and __ILP32__ when the ILP32 model is in use.
7424
28514dda
YZ
74252013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7426
7427 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7428 (aarch64_load_symref_appropriately): In the case of
7429 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7430 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7431 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7432 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7433 if 'mode' doesn't equal to 'ptr_mode'.
7434 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7435 'vcall_offset'; change to call aarch64_emit_move differently depending
7436 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7437 to calculate the upper bound of 'vcall_offset'.
7438 (aarch64_cannot_force_const_mem): Change to also return true if
7439 mode != ptr_mode.
7440 (aarch64_legitimize_reload_address): In the case of large
7441 displacements, add new local variable 'xmode' and an assertion
7442 based on it; change to use 'xmode' to generate the new rtx and
7443 reload.
7444 (aarch64_asm_trampoline_template): Change to generate the template
7445 differently depending on TARGET_ILP32 or not; change to use
7446 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7447 (aarch64_trampoline_size): Removed.
7448 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7449 and replace immediate literals with it. Change to use 'ptr_mode'
7450 instead of 'DImode' and call convert_memory_address if the mode
7451 of 'fnaddr' doesn't equal to 'ptr_mode'.
7452 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7453 to output symbol.
7454 (aarch64_elf_asm_destructor): Likewise.
7455 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7456 on TARGET_ILP32 instead of aarch64_trampoline_size.
7457 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7458 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7459 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7460 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7461 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7462 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7463 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7464 depending on the value of 'mode'.
7465 (add_losym_<mode>): New.
7466 (ldr_got_small_<mode>): New, based on ldr_got_small.
7467 (ldr_got_small): Remove.
7468 (ldr_got_small_sidi): New.
7469 * config/aarch64/iterators.md (P): New.
7470 (PTR): Change to 'ptr_mode' in the condition.
7471
17a819cb
YZ
74722013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7473
7474 * config.gcc (aarch64*-*-*): Support --with-abi.
7475 (aarch64*-*-elf): Support --with-multilib-list.
7476 (aarch64*-*-linux*): Likewise.
7477 (supported_defaults): Add abi to aarch64*-*-*.
7478 * configure.ac: Mention AArch64 for --with-multilib-list.
7479 * configure: Re-generated.
7480 * config/aarch64/biarchilp32.h: New file.
7481 * config/aarch64/biarchlp64.h: New file.
7482 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7483 (ABI_SPEC): Ditto.
7484 (MULTILIB_DEFAULTS): Ditto.
7485 (DRIVER_SELF_SPECS): Ditto.
7486 (ASM_SPEC): Update to also substitute -mabi.
7487 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7488 file whose name depends on -mabi= and -mbig-endian.
7489 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7490 TARGET_ILP32.
7491 (POINTER_SIZE): New define.
7492 (POINTERS_EXTEND_UNSIGNED): Ditto.
7493 (enum aarch64_abi_type): New enumeration tag.
7494 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7495 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7496 (TARGET_ILP32): New define.
7497 * config/aarch64/aarch64.opt (mabi): New.
7498 (aarch64_abi): New.
7499 (ilp32, lp64): New values for -mabi.
7500 * config/aarch64/t-aarch64 (comma): New define.
7501 (MULTILIB_OPTIONS): Ditto.
7502 (MULTILIB_DIRNAMES): Ditto.
7503 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7504 * doc/invoke.texi: Document -mabi for AArch64.
7505
9f9cbdce
GJL
75062013-07-23 Georg-Johann Lay <avr@gjlay.de>
7507
7508 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7509
7061977b 75102013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7511 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7512
7513 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7514 endianness when selecting field to splat.
7515
75a41878
EC
75162013-07-22 Eric Christopher <echristo@gmail.com>
7517
7518 * dwarf2out.c (die_odr_checksum): New function to use
7519 CHECKSUM_ macros and ULEB128 for DIE tag.
7520 (generate_type_signature): Use.
41a7c215 7521
38ae58ca
EB
75222013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7523
7524 * config.gcc (sparc*-*-*): Accept leon3 processor.
7525 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7526 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7527 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7528 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7529 (mfix-ut699): Adjust comment.
7530 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7531 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7532 (CPP_CPU_SPEC): Likewise.
7533 (ASM_CPU_SPEC): Likewise.
7534 * config/sparc/sparc.c (leon3_cost): New constant.
7535 (sparc_option_override): Add leon3 support.
7536 (mem_ref): New function.
7537 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7538 (sparc_do_work_around_errata): Look into the instruction in the delay
7539 slot and adjust accordingly. Add fix for the data cache nullify issues
7540 of the UT699. Change insertion position for the NOP.
7541 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7542 (leon3_load): New reservation.
7543 (leon_store): Bump latency to 2.
7544 (grfpu): New automaton.
7545 (grfpu_alu): New unit.
7546 (grfpu_ds): Likewise.
7547 (leon_fp_alu): Adjust.
7548 (leon_fp_mult): Delete.
7549 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7550 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7551 * config/sparc/sparc.md (cpu): Add leon3.
7552 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7553 (swapsi): Likewise.
7554 (atomic_test_and_set): Likewise.
7555 (ldstub): Likewise.
7556
04dfc6df
JU
75572013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7558
7559 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7560 default for R5900 targets.
7561 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7562 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7563 * config/mips/mips.c (mips_option_override): Report an error for
7564 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7565 for -march=r5900 -mhard-float.
7566
c7b3b99f 75672013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7568
7569 * df-problems.c (can_move_insns_across): Exit loop once we
7570 find a non-fixed, non-global register.
7571
7572 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7573 setting can_throw.
7574
7575 * omega.c (omega_eliminate_red): Break after setting red_found.
7576 (omega_problem_has_red_equations): Similarly after setting found.
7577 (omega_query_variable): Similarly after setting coupled.
7578
9b6e6981
MP
75792013-07-22 Marek Polacek <polacek@redhat.com>
7580
7581 * gimplify.c: Don't include gimple.h twice.
7582
5e5f7673
KT
75832013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7584
7585 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7586 instead of TARGET_THUMB1.
7587 (Pz): New constraint.
7588 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7589 encodings.
7590 (compare_negsi_si): Likewise.
7591 (compare_addsi2_op0): Likewise.
7592 (compare_addsi2_op1): Likewise.
7593 (addsi3_carryin_<optab>): Likewise.
7594 (addsi3_carryin_alt2_<optab>): Likewise.
7595 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7596 for arm_restrict_it.
7597 (subsi3_carryin): Likewise.
7598 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7599 (minmax_arithsi): Disable for arm_restrict_it.
7600 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7601 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7602 (satsi_<SAT:code>_shift): Likewise.
7603 (arm_shiftsi3): Add alternative for 16-bit encoding.
7604 (arm32_movhf): Disable for arm_restrict_it.
7605 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7606 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7607
859abddd
SN
76082013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7609
7610 * config/arm/arm.md (attribute "insn"): Delete.
7611 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7612 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7613 (not_shiftsi): Update for attribute change.
7614 (not_shiftsi_compare0): Likewise.
7615 (not_shiftsi_compare0_scratch): Likewise.
7616 (arm_one_cmplsi2): Likewise.
7617 (thumb1_one_cmplsi2): Likewise.
7618 (notsi_compare0): Likewise.
7619 (notsi_compare0_scratch): Likewise.
7620 (thumb1_movdi_insn): Likewise.
7621 (arm_movsi_insn): Likewise.
7622 (movhi_insn_arch4): Likewise.
7623 (movhi_bytes): Likewise.
7624 (arm_movqi_insn): Likewise.
7625 (thumb1_movqi_insn): Likewise.
7626 (arm32_movhf): Likewise.
7627 (thumb1_movhf): Likewise.
7628 (arm_movsf_soft_insn): Likewise.
7629 (thumb1_movsf_insn): Likewise.
7630 (thumb_movdf_insn): Likewise.
7631 (movsicc_insn): Likewise.
7632 (movsfcc_soft_insn): Likewise.
7633 (and_scc): Likewise.
7634 (cond_move): Likewise.
7635 (if_move_not): Likewise.
7636 (if_not_move): Likewise.
7637 (if_shift_move): Likewise.
7638 (if_move_shift): Likewise.
7639 (if_shift_shift): Likewise.
7640 (if_not_arith): Likewise.
7641 (if_arith_not): Likewise.
7642 (cond_move_not): Likewise.
7643 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
7644 (neon_mov<mode>): Likewise.
7645 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
7646 (thumb2_movsi_vfp): Likewise.
7647 (movsf_vfp): Likewise.
7648 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
7649 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7650 change.
859abddd
SN
7651 (cortexa7_older_only): Likewise.
7652 (cortexa7_younger): Likewise.
7653 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
7654 (1020alu_shift_op): Likewise.
7655 (1020alu_shift_reg_op): Likewise.
7656 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
7657 (alu_shift_op): Likewise.
7658 (alu_shift_reg_op): Likewise.
7659 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
7660 (11_alu_shift_op): Likewise.
7661 (11_alu_shift_reg_op): Likewise.
7662 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
7663 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7664 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7665 change.
859abddd
SN
7666 (cortex_a15_alu_shift): Likewise.
7667 (cortex_a15_alu_shift_reg): Likewise.
7668 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
7669 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
7670 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
7671 change.
859abddd 7672 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
7673 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7674 change.
859abddd
SN
7675 (cortex_a7_alu_reg): Likewise.
7676 (cortex_a7_alu_shift): Likewise.
7677 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7678 (cortex_a8_alu_shift): Likewise.
7679 (cortex_a8_alu_shift_reg): Likewise.
7680 (cortex_a8_mov): Likewise.
7681 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7682 (cortex_a9_dp_shift): Likewise.
7683 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
7684 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
7685 (cortex_r4_mov): Likewise.
7686 (cortex_r4_alu_shift): Likewise.
7687 (cortex_r4_alu_shift_reg): Likewise.
7688 * config/arm/fa526.md (526_alu_op): Update for attribute change.
7689 (526_alu_shift_op): Likewise.
7690 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
7691 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
7692 (626te_alu_shift_op): Likewise.
7693 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
7694 (726te_alu_op): Likewise.
7695 (726te_alu_shift_op): Likewise.
7696 (726te_alu_shift_reg_op): Likewise.
7697 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
7698 (mp626_alu_shift_op): Likewise.
7699 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
7700 (pj4_alu_e1_conds): Likewise.
7701 (pj4_alu): Likewise.
7702 (pj4_alu_conds): Likewise.
7703 (pj4_shift): Likewise.
7704 (pj4_shift_conds): Likewise.
7705 (pj4_alu_shift): Likewise.
7706 (pj4_alu_shift_conds): Likewise.
7707
95b97fac
KT
77082013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7709
7710 * config/arm/predicates.md (shiftable_operator_strict_it):
7711 New predicate.
7712 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
7713 Disable cond_exec version for arm_restrict_it.
7714 (thumb2_smaxsi3): Convert to generate cond_exec.
7715 (thumb2_sminsi3): Likewise.
7716 (thumb32_umaxsi3): Likewise.
7717 (thumb2_uminsi3): Likewise.
7718 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
7719 (thumb2_neg_abssi2): Likewise.
7720 (thumb2_mov_scc): Add alternative for 16-bit encoding.
7721 (thumb2_movsicc_insn): Adjust alternatives.
7722 (thumb2_mov_negscc): Disable for arm_restrict_it.
7723 (thumb2_mov_negscc_strict_it): New pattern.
7724 (thumb2_mov_notscc_strict_it): New pattern.
7725 (thumb2_mov_notscc): Disable for arm_restrict_it.
7726 (thumb2_ior_scc): Likewise.
7727 (thumb2_ior_scc_strict_it): New pattern.
7728 (thumb2_cond_move): Adjust for arm_restrict_it.
7729 (thumb2_cond_arith): Disable for arm_restrict_it.
7730 (thumb2_cond_arith_strict_it): New pattern.
7731 (thumb2_cond_sub): Adjust for arm_restrict_it.
7732 (thumb2_movcond): Likewise.
7733 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
7734 (thumb2_zero_extendhisi2_v6): Likewise.
7735 (thumb2_zero_extendqisi2_v6): Likewise.
7736 (orsi_notsi_si): Likewise.
7737 (orsi_not_shiftsi_si): Likewise.
7738
d5a6ef82
GJL
77392013-07-22 Georg-Johann Lay <avr@gjlay.de>
7740
7741 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
7742 instruction sequence is 1 byte shorter.
7743
d9e71154
UB
77442013-07-22 Uros Bizjak <ubizjak@gmail.com>
7745
7746 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7747 it is not needed after split.
7748
8c6381ec
IS
77492013-07-20 Iain Sandoe <iain@codesourcery.com>
7750
7751 PR target/51784
7752 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7753 second label for nonlocal goto receivers. Don't output pic base labels
7754 unless we're producing PIC; mark that action unreachable().
7755 (ix86_save_reg): If the function contains a nonlocal label, save the
7756 PIC base reg.
7757 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 7758 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
7759 (update_pic_label_number_if_needed): New.
7760 (machopic_output_function_base_name): Adjust for nonlocal receiver
7761 case.
7762 (machopic_should_output_picbase_label): New.
7763 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7764 (nonlocal_goto_receiver): New insn and split.
7765
d05d0709
JG
77662013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
7767
7768 * config/aarch64/aarch64-builtins.c
7769 (aarch64_fold_builtin): Fold abs in all modes.
7770 * config/aarch64/aarch64-simd-builtins.def
7771 (abs): Enable for all modes.
7772 * config/aarch64/arm_neon.h
7773 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
7774 (vabs_f64): Add missing intrinsic.
7775
ba590e63
IB
77762013-07-19 Ian Bolton <ian.bolton@arm.com>
7777
7778 * config/aarch64/arm_neon.h (vabs_s64): New function
7779
02371798
GJL
77802013-07-19 Georg-Johann Lay <avr@gjlay.de>
7781
7782 PR target/57516
7783 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7784 * config/avr/avr.md (adjust_len): Add `round'.
7785 * config/avr/avr-protos.h (avr_out_round): New prototype.
7786 (avr_out_plus): Add `out_label' argument.
7787 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7788 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7789 Handle the case where `insn' is just a pattern.
7790 (avr_out_bitop): Handle the case where `insn' is just a pattern.
7791 (avr_out_round): New function.
7792 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7793
12211b99 77942013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
7795
7796 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7797 Add check for flag_stack_usage to handle -fstack-usage support
7798
12211b99 77992013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
7800
7801 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
7802 interaction for new Power8 flags and VSX.
7803
df9dda2d
ST
78042013-07-18 Sriraman Tallam <tmsriram@google.com>
7805
7806 PR middle-end/57698
7807 * tree-inline.c (expand_call_inline): Emit errors during
7808 early_inlining only if optimization is not turned on.
7809
0f9cdef4
DM
78102013-07-18 David Malcolm <dmalcolm@redhat.com>
7811
7812 * passes.def: New.
7813
7814 * passes.c (init_optimization_passes): Move the construction of
7815 the pass hierarchy into a new passes.def file.
7816
7817 * Makefile.in (passes.o): Add dependency on passes.def.
7818
2efa4087
DM
78192013-07-18 David Malcolm <dmalcolm@redhat.com>
7820
7821 * passes.c (init_optimization_passes): Introduce macros for
7822 constructing the tree of passes (INSERT_PASSES_AFTER,
7823 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
7824 TERMINATE_PASS_LIST).
7825
bc404e1b
VM
78262013-07-18 Vladimir Makarov <vmakarov@redhat.com>
7827 Wei Mi <wmi@google.com>
7828
7829 PR rtl-optimization/57878
7830 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7831 top.
7832 (reload_pseudo_compare_func): Check nregs first for reload
7833 pseudos.
7834
d675843f
DM
78352013-07-18 David Malcolm <dmalcolm@redhat.com>
7836
7837 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
7838
c7b3b99f 78392013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
7840
7841 * read-rtl.c (validate_const_int): Once an invalid character is
7842 seen, quit the loop.
7843
7844 * gengtype.c (write_roots): Similarly once we find the "deletable"
7845 or "if_marked" option.
7846
52fceb44
SN
78472013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7848
7849 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
7850 "xtab" and "sat". Move value "clz" from here to ...
7851 (attriubte "type"): ... here.
7852 (satsi_<SAT:code>): Delete "insn" attribute.
7853 (satsi_<SAT:code>_shift): Likewise.
7854 (arm_zero_extendqisi2addsi): Likewise.
7855 (arm_extendqisi2addsi): Likewise.
7856 (clzsi2): Update for attribute changes.
7857 (rbitsi2): Likewise.
371e77e3
UB
7858 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
7859 attribute.
52fceb44
SN
7860 (arm_usatsihi): Likewise.
7861 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7862
006bd006
SN
78632013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7864
7865 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
7866 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
7867 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
7868 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
7869 in alphabetical order.
7870 (attribute "core_cycles"): Update for attribute changes.
7871 (arm_addsi3): Likewise.
7872 (addsi3_compare0): Likewise.
7873 (addsi3_compare0_scratch): Likewise.
7874 (addsi3_compare_op1): Likewise.
7875 (addsi3_compare_op2): Likewise.
7876 (compare_addsi2_op0): Likewise.
7877 (compare_addsi2_op1): Likewise.
7878 (addsi3_carryin_shift_<optab>): Likewise.
7879 (subsi3_carryin_shift): Likewise.
7880 (rsbsi3_carryin_shift): Likewise.
7881 (arm_subsi3_insn): Likewise.
7882 (subsi3_compare0): Likewise.
7883 (subsi3_compare): Likewise.
7884 (arm_andsi3_insn): Likewise.
7885 (thumb1_andsi3_insn): Likewise.
7886 (andsi3_compare0): Likewise.
7887 (andsi3_compare0_scratch): Likewise.
7888 (zeroextractsi_compare0_scratch
7889 (andsi_not_shiftsi_si): Likewise.
7890 (iorsi3_insn): Likewise.
7891 (iorsi3_compare0): Likewise.
7892 (iorsi3_compare0_scratch): Likewise.
7893 (arm_xorsi3): Likewise.
7894 (thumb1_xorsi3_insn): Likewise.
7895 (xorsi3_compare0): Likewise.
7896 (xorsi3_compare0_scratch): Likewise.
7897 (satsi_<SAT:code>_shift): Likewise.
7898 (rrx): Likewise.
7899 (arm_shiftsi3): Likewise.
7900 (shiftsi3_compare0): Likewise.
7901 (not_shiftsi): Likewise.
7902 (not_shiftsi_compare0): Likewise.
7903 (not_shiftsi_compare0_scratch): Likewise.
7904 (arm_one_cmplsi2): Likewise.
7905 (thumb_one_complsi2): Likewise.
7906 (notsi_compare0): Likewise.
7907 (notsi_compare0_scratch): Likewise.
7908 (thumb1_zero_extendhisi2): Likewise.
7909 (arm_zero_extendhisi2): Likewise.
7910 (arm_zero_extendhisi2_v6): Likewise.
7911 (arm_zero_extendhisi2addsi): Likewise.
7912 (thumb1_zero_extendqisi2): Likewise.
7913 (thumb1_zero_extendqisi2_v6): Likewise.
7914 (arm_zero_extendqisi2): Likewise.
7915 (arm_zero_extendqisi2_v6): Likewise.
7916 (arm_zero_extendqisi2addsi): Likewise.
7917 (thumb1_extendhisi2): Likewise.
7918 (arm_extendhisi2): Likewise.
7919 (arm_extendhisi2_v6): Likewise.
7920 (arm_extendqisi): Likewise.
7921 (arm_extendqisi_v6): Likewise.
7922 (arm_extendqisi2addsi): Likewise.
7923 (thumb1_extendqisi2): Likewise.
7924 (thumb1_movdi_insn): Likewise.
7925 (arm_movsi_insn): Likewise.
7926 (movsi_compare0): Likewise.
7927 (movhi_insn_arch4): Likewise.
7928 (movhi_bytes): Likewise.
7929 (arm_movqi_insn): Likewise.
7930 (thumb1_movqi_insn): Likewise.
7931 (arm32_movhf): Likewise.
7932 (thumb1_movhf): Likewise.
7933 (arm_movsf_soft_insn): Likewise.
7934 (thumb1_movsf_insn): Likewise.
7935 (movdf_soft_insn): Likewise.
7936 (thumb_movdf_insn): Likewise.
7937 (arm_cmpsi_insn): Likewise.
7938 (cmpsi_shiftsi): Likewise.
7939 (cmpsi_shiftsi_swp): Likewise.
7940 (arm_cmpsi_negshiftsi_si): Likewise.
7941 (movsicc_insn): Likewise.
7942 (movsfcc_soft_insn): Likewise.
7943 (arith_shiftsi): Likewise.
7944 (arith_shiftsi_compare0
7945 (arith_shiftsi_compare0_scratch
7946 (sub_shiftsi): Likewise.
7947 (sub_shiftsi_compare0
7948 (sub_shiftsi_compare0_scratch
7949 (and_scc): Likewise.
7950 (cond_move): Likewise.
7951 (if_plus_move): Likewise.
7952 (if_move_plus): Likewise.
7953 (if_move_not): Likewise.
7954 (if_not_move): Likewise.
7955 (if_shift_move): Likewise.
7956 (if_move_shift): Likewise.
7957 (if_shift_shift): Likewise.
7958 (if_not_arith): Likewise.
7959 (if_arith_not): Likewise.
7960 (cond_move_not): Likewise.
7961 (thumb1_ashlsi3): Set type attribute.
7962 (thumb1_ashrsi3): Likewise.
7963 (thumb1_lshrsi3): Likewise.
7964 (thumb1_rotrsi3): Likewise.
7965 (shiftsi3_compare0_scratch): Likewise.
7966 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
7967 (neon_mov<mode>): Likewise.
371e77e3
UB
7968 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
7969 attribute changes.
006bd006
SN
7970 (thumb2_movsi_insn): Likewise.
7971 (thumb2_cmpsi_neg_shiftsi): Likewise.
7972 (thumb2_extendqisi_v6): Likewise.
7973 (thumb2_zero_extendhisi2_v6): Likewise.
7974 (thumb2_zero_extendqisi2_v6): Likewise.
7975 (thumb2_shiftsi3_short): Likewise.
7976 (thumb2_addsi3_compare0_scratch): Likewise.
7977 (orsi_not_shiftsi_si): Likewise.
7978 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7979 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
7980 changes.
7981 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
7982 (1020alu_shift_op): Likewise.
7983 (1020alu_shift_reg_op): Likewise.
7984 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
7985 (alu_shift_op): Likewise.
7986 (alu_shift_reg_op): Likewise.
7987 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
7988 (11_alu_shift_op): Likewise.
7989 (11_alu_shift_reg_op): Likewise.
7990 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
7991 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7992 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7993 changes.
006bd006
SN
7994 (cortex_a15_alu_shift): Likewise.
7995 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
7996 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
7997 changes.
006bd006
SN
7998 (cortex_a5_alu_shift): Likewise.
7999 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
8000 changes.
8001 (cortex_a53_alu_shift): Likewise.
8002 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
8003 changes.
8004 (cortex_a7_alu_reg): Likewise.
8005 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
8006 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
8007 changes.
006bd006
SN
8008 (cortex_a8_alu_shift): Likewise.
8009 (cortex_a8_alu_shift_reg): Likewise.
8010 (cortex_a8_mov): Likewise.
8011 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
8012 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
8013 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
8014 changes.
8015 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
8016 changes.
006bd006
SN
8017 (cortex_r4_mov): Likewise.
8018 (cortex_r4_alu_shift): Likewise.
8019 (cortex_r4_alu_shift_reg): Likewise.
8020 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
8021 (526_alu_shift_op): Likewise.
8022 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
8023 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
8024 (626te_alu_shift_op): Likewise.
8025 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
8026 (726te_alu_op): Likewise.
8027 (726te_alu_shift_op): Likewise.
8028 (726te_alu_shift_reg_op): Likewise.
8029 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
8030 (mp626_alu_shift_op): Likewise.
8031 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
8032 (pj4_alu_e1_conds): Likewise.
8033 (pj4_alu): Likewise.
8034 (pj4_alu_conds): Likewise.
8035 (pj4_shift): Likewise.
8036 (pj4_shift_conds): Likewise.
8037 (pj4_alu_shift): Likewise.
8038 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
8039 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
8040 changes.
006bd006
SN
8041 (cortexa7_older_only): Likewise.
8042 (cortexa7_younger): Likewise.
8043
651df1b2
DM
80442013-07-18 David Malcolm <dmalcolm@redhat.com>
8045
8046 * ipa-pure-const.c (generate_summary): Rename to...
8047 (pure_const_generate_summary): ... this.
8048
ea717bd7
IS
80492013-07-17 Iain Sandoe <iain@codesourcery.com>
8050
8051 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
8052
a1259a13
YR
80532013-07-17 Yvan Roux <yvan.roux@linaro.org>
8054
8055 PR target/57909
8056 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
8057 usage in HI mode.
8058
167f68ed
AK
80592013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8060
8061 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
8062 enabled without -march=zEC12.
8063 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
8064 flags to be set.
8065
f900a982
MR
80662013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8067
8068 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
8069 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
8070 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
8071 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
8072 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
8073 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
8074 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
8075 ISA_HAS_FP4.
8076 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
8077 and ISA_HAS_NMADD3_NMSUB3.
8078 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
8079 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
8080 (nmsub4<mode>, nmsub3<mode>): Likewise.
8081 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
8082
d4ed27eb
MR
80832013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8084
8085 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
8086 TARGET_MIPS5400 checking.
8087
7a5add18
PB
80882013-07-16 Jakub Jelinek <jakub@redhat.com>
8089 Peter Bergner <bergner@vnet.ibm.com>
8090
8091 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
8092 registers in the comment.
8093 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
8094 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
8095 rather than FIRST_PSEUDO_REGISTERS.
8096
80972013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
8098
8099 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8100 enable extra ISA flags with TARGET_HTM.
8101
d2ab0929
MR
81022013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
8103
8104 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
8105 Fix comment typos.
8106
839c74bc
CH
81072013-07-15 Cong Hou <congh@google.com>
8108
8109 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
8110 in compare function for sorting.
8111
7a5add18 81122013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
8113
8114 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
8115 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
8116 * config/rs6000/rs6000.opt: Add -mhtm option.
8117 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
8118 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
8119 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8120 __HTM__ if the HTM instructions are available.
8121 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
8122 htm_spr_reg_operand): New define_predicates.
8123 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
8124 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
8125 Include htm.md.
8126 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
8127 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
8128 HTM builtin functions.
8129 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
8130 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
8131 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
8132 (rs6000_builtin_mask_calculate): Likewise.
8133 (rs6000_option_override_internal): Likewise.
8134 (bdesc_htm): Add new HTM builtin support.
8135 (htm_spr_num): New function.
8136 (htm_spr_regno): Likewise.
8137 (rs6000_htm_spr_icode): Likewise.
8138 (htm_expand_builtin): Likewise.
8139 (htm_init_builtins): Likewise.
8140 (rs6000_expand_builtin): Add support for HTM builtin functions.
8141 (rs6000_init_builtins): Likewise.
371e77e3
UB
8142 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
8143 option.
0258b6e4
PB
8144 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
8145 (TARGET_HTM, MASK_HTM): Define macros.
8146 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
8147 (FIXED_REGISTERS): Likewise.
8148 (CALL_USED_REGISTERS): Likewise.
8149 (CALL_REALLY_USED_REGISTERS): Likewise.
8150 (REG_ALLOC_ORDER): Likewise.
8151 (enum reg_class): Likewise.
8152 (REG_CLASS_NAMES): Likewise.
8153 (REG_CLASS_CONTENTS): Likewise.
8154 (REGISTER_NAMES): Likewise.
8155 (ADDITIONAL_REGISTER_NAMES): Likewise.
8156 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
8157 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
8158 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
8159 * config/rs6000/htm.md: New file.
8160 * config/rs6000/htmintrin.h: New file.
8161 * config/rs6000/htmxlintrin.h: New file.
8162
87dd8ab0
MS
81632013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
8164
8165 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8166 Define SYMBOL_TINY_GOT, update comment.
8167 * config/aarch64/aarch64.c
8168 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
8169 (aarch64_expand_mov_immediate): Likewise.
8170 (aarch64_print_operand): Likewise.
8171 (aarch64_classify_symbol): Likewise.
8172 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
8173 (ldr_got_tiny): Define.
8174
52d676b6
TG
81752013-07-13 Tobias Grosser <tobias@grosser.es>
8176
8177 PR tree-optimization/54094
8178 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
8179 scheduling dimension for the parallelism check from the polyhedral
8180 information in the AST.
8181 * graphite-dependences.c (carries_deps): Do not assume the schedule is
8182 in 2D + 1 form.
8183
286e8fc1
JM
81842013-07-13 Jason Merrill <jason@redhat.com>
8185
8186 * print-tree.c (debug_vec_tree): Use debug_raw.
8187 (debug_raw (vec<tree, va_gc> &)): New.
8188 (debug_raw (vec<tree, va_gc> *)): New.
8189 * tree.h: Declare them.
8190
e43257e8
BC
81912013-07-13 Bin Cheng <bin.cheng@arm.com>
8192
8193 * ifcvt.c (ifcvt_after_combine): New static variable.
8194 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
8195 for size.
8196 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
8197 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
8198 rest_of_handle_if_after_reload): Pass new argument for if_convert.
8199
da582d46
MR
82002013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
8201
8202 * config/mips/mips.c (mips_expand_call): Remove empty statement.
8203
18b0ea8f
MM
82042013-07-12 Michael Matz <matz@suse.de>
8205
8206 PR middle-end/55771
8207 * convert.c (convert_to_real): Reject non-float inner types.
8208
e4f0f84d
TB
82092013-07-12 Tejas Belagod <tejas.belagod@arm.com>
8210
8211 * config/aarch64/aarch64-protos.h
8212 (aarch64_simd_immediate_valid_for_move): Remove.
8213 * config/aarch64/aarch64.c (simd_immediate_info): New member.
8214 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
8215 cases.
8216 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
8217
76500022
SE
82182013-07-11 Steve Ellcey <sellcey@mips.com>
8219
8220 * config/mips/mips.c (mips_conditional_register_usage): Do not
8221 use t[0-7] registers in MIPS16 mode when optimizing for size.
8222
78039734
ST
82232013-07-11 Sriraman Tallam <tmsriram@google.com>
8224
8225 * config/i386/i386.c (dispatch_function_versions): Fix array
8226 indexing of function_version_info to match actual_versions.
8227
7b24b675
TJ
82282013-07-11 Teresa Johnson <tejohnson@google.com>
8229
8230 * vec.h (struct va_gc): Move release out-of-line.
8231 (va_gc::release): Call ggc_free on released vec.
8232
85d4cbb8
UW
82332013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8234
8235 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
8236 Require GOT register as additional operand in UNSPEC.
8237 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
8238 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8239 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8240 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
8241 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
8242 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
8243 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
8244
52b3f9e2
GJL
82452013-07-11 Georg-Johann Lay <avr@gjlay.de>
8246
8247 PR target/57631
8248 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
8249 name seen by assembler/linker rather if available.
8250
3f3e266e
AS
82512013-07-11 Andreas Schwab <schwab@suse.de>
8252
8253 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
8254
21231ca6
VM
82552013-07-10 Vladimir Makarov <vmakarov@redhat.com>
8256
371e77e3 8257 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 8258
d331d374
JM
82592013-07-10 Joseph Myers <joseph@codesourcery.com>
8260
673c2f63
JM
8261 * doc/tm.texi.in: Move hook documentation to ....
8262 * target.def: ... here.
8263
d331d374
JM
8264 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
8265 text on @hook line.
8266 * doc/tm.texi: Regenerate.
8267
dfeadaa0
PC
82682013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
8269
8270 PR c++/57869
8271 * doc/invoke.texi: Document -Wconditionally-supported.
8272
bb6f2bac
GJL
82732013-07-10 Georg-Johann Lay <avr@gjlay.de>
8274
8275 PR target/57844
8276 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
8277 of my_fp.
8278
5219b232
GJL
82792013-07-10 Georg-Johann Lay <avr@gjlay.de>
8280
8281 PR target/57506
8282 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
8283 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
8284 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
8285 Remove duplicate devices.
8286 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
8287 * config/avr/t-multilib: Regenerate.
8288 * config/avr/avr-tables.opt: Regenerate.
8289 * doc/avr-mmcu.texi: Regenerate.
8290
283045c0
GJL
82912013-07-10 Georg-Johann Lay <avr@gjlay.de>
8292
8293 PR target/56987
8294 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
8295
ceb2d59f 82962013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 8297
ceb2d59f
GS
8298 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
8299 the cost of MULT when optimizing for size.
8300
055e0a99
JBG
83012013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8302
8303 * config/cr16/cr16-protos.h: Don't include target.h.
8304
ef43e868
JM
83052013-07-09 Joseph Myers <joseph@codesourcery.com>
8306
8307 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
8308 adjust register size for TDmode and TFmode for VSX registers.
8309
4a283fdf
KT
83102013-07-08 Kai Tietz <ktietz@redhat.com>
8311
8312 PR target/56892
8313 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
8314 hook_bool_const_tree_true.
8315
2cf4c39e
AK
83162013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8317
8318 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
8319 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
8320 * config/s390/s390.md: Define FPR*_REGNUM constants.
8321 Fix FPR2_REGNUM constant (18 -> 17).
8322 ("*trunc<BFP:mode><DFP_ALL:mode>2")
8323 ("*trunc<DFP_ALL:mode><BFP:mode>2")
8324 ("trunc<BFP:mode><DFP_ALL:mode>2")
8325 ("trunc<DFP_ALL:mode><BFP:mode>2")
8326 ("*extend<BFP:mode><DFP_ALL:mode>2")
8327 ("*extend<DFP_ALL:mode><BFP:mode>2")
8328 ("extend<BFP:mode><DFP_ALL:mode>2")
8329 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
8330 FPR4_REGNUM.
8331
e6ac0270 83322013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 8333
6a2fa4b2 8334 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 8335
b89b22fc
AK
83362013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8337
8338 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
8339 and cfun_fpr_bit_p to cfun_fpr_save_p.
8340 (s390_frame_area, s390_register_info, s390_frame_info)
8341 (s390_emit_prologue, s390_emit_epilogue)
8342 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
8343 register numbers.
8344 * config/s390/s390.h: Define *_REGNUM macros for floating point
8345 register numbers.
8346
07f398aa
EB
83472013-07-08 Eric Botcazou <ebotcazou@adacore.com>
8348
8349 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
8350
75fefa91
PCC
83512013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8352
8353 PR rtl-optimization/57786
8354 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8355 and break out of the loop when it is set to false.
8356
046f1eee
JJ
83572013-07-08 Jakub Jelinek <jakub@redhat.com>
8358
8140c065
JJ
8359 PR target/57819
8360 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8361 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8362 (const_int 63)) 0)).
8363 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8364 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8365 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8366
046f1eee
JJ
8367 PR rtl-optimization/57829
8368 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8369 mask bits outside of mode are just sign-extension from mode to HWI.
8370
930b700b
MZ
83712013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8372
8373 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8374 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8375 adjust_address instead of change_address to keep info about alignment.
8376 (emit_strmov): Remove.
8377 (emit_memmov): New function.
8378 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8379 (expand_movmem_epilogue): Likewise and return updated rtx for
8380 destination.
8381 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8382 destination and source.
8383 (decide_alignment): Refactor, handle vector_loop.
8384 (ix86_expand_movmem): Likewise.
8385 (ix86_expand_setmem): Likewise.
8386 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8387
7b9d1bd8
UB
83882013-07-07 Uros Bizjak <ubizjak@gmail.com>
8389
8390 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8391 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8392
eabb5f48
UB
83932013-07-06 Uros Bizjak <ubizjak@gmail.com>
8394
8395 * config/i386/sse.md (sse_movlhps): Change alternative 3
8396 of operand 2 to "m".
8397
83982013-07-06 Uros Bizjak <ubizjak@gmail.com>
8399
8400 PR target/57807
8401 * config/i386/sse.md (iptr): New mode attribute.
8402 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8403 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8404 (<sse>_vmmul<mode>3): Ditto.
8405 (<sse>_vmdiv<mode>3): Ditto.
8406 (sse_vmrcpv4sf2): Ditto.
8407 (<sse>_vmsqrt<mode>2): Ditto.
8408 (sse_vmrsqrtv4sf2): Ditto.
8409 (<sse>_vm<code><mode>3): Ditto.
8410 (avx_vmcmp<mode>3): Ditto.
8411 (<sse>_vmmaskcmp<mode>3): Ditto.
8412 (<sse>_comi): Ditto.
8413 (<sse>_ucomi): Ditto.
8414 (*xop_vmfrcz_<mode>): Ditto.
8415 (*fmai_fmadd_<mode>): Ditto.
8416 (*fmai_fmsub_<mode>): Ditto.
8417 (*fmai_fnmadd_<mode>): Ditto.
8418 (*fmai_fnmsub_<mode>): Ditto.
8419 (*fma4i_vmfmadd_<mode>): Ditto.
8420 (*fma4i_vmfmsub_<mode>): Ditto.
8421 (*fma4i_vmfnmadd_<mode>): Ditto.
8422 (*fma4i_vmfnmsub_<mode>): Ditto.
8423 (*xop_vmfrcz_<mode>): Ditto.
8424 (sse_cvtps2pi): Ditto.
8425 (sse_cvttps2pi): Ditto.
8426 (sse_cvtss2si): Ditto.
8427 (sse_cvtss2si_2): Ditto.
8428 (sse_cvtss2siq_2): Ditto.
8429 (sse_cvttss2si): Ditto.
8430 (sse_cvttss2siq): Ditto.
8431 (sse_cvtsd2si): Ditto.
8432 (sse_cvtsd2si_2): Ditto.
8433 (sse_cvtsd2siq_2): Ditto.
8434 (sse_cvttsd2si): Ditto.
8435 (sse_cvttsd2siq): Ditto.
8436 (sse_cvtsd2ss): Ditto.
8437 (sse_cvtss2sd): Ditto.
8438 (avx2_pbroadcast<mode>): Ditto.
8439 (avx2_pbroadcast<mode>_1): Ditto.
8440 (*avx_vperm_broadcast_v4sf): Ditto.
8441
8442 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8443 (sse_movlhps): Ditto.
8444 (sse_storehps): Ditto.
8445 (sse_loadhps): Ditto.
8446 (sse_storelps): Ditto.
8447 (sse_loadlps): Ditto.
8448 (*vec_concatv4sf): Ditto.
8449 (*vec_interleave_highv2df): Ditto.
8450 (*vec_interleave_lowv2df): Ditto.
8451 (*vec_extractv2df_1_sse): Ditto.
8452 (*vec_extractv2df_0_sse): Ditto.
8453 (sse2_storelpd): Ditto.
8454 (sse2_loadlpd): Ditto.
8455 (sse2_movsd): Ditto.
8456 (*vec_concatv4si): Ditto.
8457 (vec_concatv2di): Ditto.
8458
8459 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8460 for Intel asm dialect.
8461 (mmx_punpcklwd): Ditto.
8462 (mmx_punpckldq): Ditto.
8463
8464 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8465 for intel assembler dialect.
8466
1f6eac90
JJ
84672013-07-06 Jakub Jelinek <jakub@redhat.com>
8468
8469 PR target/29776
8470 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8471 for BUILT_IN_C{LZ,LRSB}*.
8472 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8473 * tree-vrp.c (extract_range_basic): Handle
8474 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8475 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8476 fall thru to code calling set_value*.
8477 * builtins.c (expand_builtin): Remove *IMAX cases.
8478 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8479 if width is bigger than 2*HWI.
8480
2b778c9d
VM
84812013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8482
8483 PR rtl-optimization/55342
8484 * lra-int.h (lra_subreg_reload_pseudos): New.
8485 * lra.c: Add undoing optional reloads to the block diagram.
8486 (lra_subreg_reload_pseudos): New.
8487 (lra_optional_reload_pseudos): Change comments.
8488 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8489 lra_optional_reload_pseudos after undo transformations.
8490 * lra-assigns.c (pseudo_prefix_title): New.
8491 (lra_setup_reg_renumber): Use it.
8492 (spill_for): Ditto. Check subreg reload pseudos too.
8493 (assign_by_spills): Consider subreg reload pseudos too.
8494 * lra-constraints.c (simplify_operand_subreg): Use
8495 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8496 (curr_insn_transform): Recognize and do optional reloads.
8497 (undo_optional_reloads): New.
8498 (lra_undo_inheritance): Call undo_optional_reloads.
8499
207156e4
TQ
85002013-07-05 Thomas Quinot <quinot@adacore.com>
8501
8502 * tree-complex.c (expand_complex_operations_1): Fix typo.
8503
8990e73a
TB
85042013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8505
8506 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8507 (tune_params): New member 'const vec_costs'.
8508 * config/aarch64/aarch64.c (generic_vector_cost): New.
8509 (generic_tunings): New member 'generic_vector_cost'.
8510 (aarch64_builtin_vectorization_cost): New.
8511 (aarch64_add_stmt_cost): New.
8512 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8513 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8514
f7bc421d
JJ
85152013-07-03 Jakub Jelinek <jakub@redhat.com>
8516
8517 PR target/57777
8518 * config/i386/predicates.md (vsib_address_operand): Disallow
8519 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8520
e90d1568
HPN
85212013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8522
8523 PR middle-end/55030
8524 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8525 expand_builtin_setjmp_receiver.
8526 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8527 with NULL for the label parameter.
8528 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8529 the frame-pointer. Adjust comments.
8530 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8531 only if LABEL is non-NULL.
8532
cbd7413b
YZ
85332013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8534
8535 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8536 (ARM_ABI_AAPCS64): Ditto.
8537 (arm_abi): Ditto.
8538 (ARM_DEFAULT_ABI): Ditto.
8539
dec11868
JG
85402013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8541
8542 * config/aarch64/aarch64-builtins.c
8543 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8544 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8545 (st1): Likewise.
8546 * config/aarch64/aarch64-simd.md
8547 (aarch64_ld1<VALL:mode>): New.
8548 (aarch64_st1<VALL:mode>): Likewise.
8549 * config/aarch64/arm_neon.h
8550 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8551
786fb9b6
ST
85522013-07-02 Sriraman Tallam <tmsriram@google.com>
8553
0ba6aff3
UB
8554 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8555 target ISA is AVX.
786fb9b6
ST
8556 (ix86_option_override_internal):Turn on all -mavx target flags by
8557 default as they are dependent on AVX anyway.
8558
4b043553
CC
85592013-07-02 Cary Coutant <ccoutant@google.com>
8560
8561 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8562 deterministic hash.
8563 (loc_checksum_ordered): Likewise.
8564 (hash_loc_operands): Remove inline keyword.
8565
c4e87a13
JJ
85662013-07-02 Jakub Jelinek <jakub@redhat.com>
8567
8568 PR tree-optimization/57741
8569 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8570 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8571 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8572 Allow REAL_CST step_exprs if flag_associative_math.
8573 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8574
26366d28
IB
85752013-07-02 Ian Bolton <ian.bolton@arm.com>
8576
0ba6aff3 8577 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8578
2879bb2b
IB
85792013-07-02 Ian Bolton <ian.bolton@arm.com>
8580
8581 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8582
afc5e8a6
KT
85832013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8584
8585 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8586 encoding.
8587 (iorsi3_insn): Likewise.
8588 (arm_xorsi3): Likewise.
8589
31f8442b
SN
85902013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8591
8592 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8593 to ...
8594 (attribute "type"): ... here, and prefix with "wmmx_".
8595 (attribute "core_cycles"): Update for attribute changes.
8596 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8597 (tbcstv4hi): Likewise.
8598 (tbcstv2si): Likewise.
8599 (iwmmxt_iordi3): Likewise.
8600 (iwmmxt_xordi3): Likewise.
8601 (iwmmxt_anddi3): Likewise.
8602 (iwmmxt_nanddi3): Likewise.
8603 (iwmmxt_arm_movdi): Likewise.
8604 (iwmmxt_movsi_insn): Likewise.
8605 (mov<mode>_internal): Likewise.
8606 (and<mode>3_iwmmxt): Likewise.
8607 (ior<mode>3_iwmmxt): Likewise.
8608 (xor<mode>3_iwmmxt): Likewise.
8609 (add<mode>3_iwmmxt): Likewise.
8610 (ssaddv8qi3): Likewise.
8611 (ssaddv4hi3): Likewise.
8612 (ssaddv2si3): Likewise.
8613 (usaddv8qi3): Likewise.
8614 (usaddv4hi3): Likewise.
8615 (usaddv2si3): Likewise.
8616 (sub<mode>3_iwmmxt): Likewise.
8617 (sssubv8qi3): Likewise.
8618 (sssubv4hi3): Likewise.
8619 (sssubv2si3): Likewise.
8620 (ussubv8qi3): Likewise.
8621 (ussubv4hi3): Likewise.
8622 (ussubv2si3): Likewise.
8623 (mulv4hi3_iwmmxt): Likewise.
8624 (smulv4hi3_highpart): Likewise.
8625 (umulv4hi3_highpart): Likewise.
8626 (iwmmxt_wmacs): Likewise.
8627 (iwmmxt_wmacsz): Likewise.
8628 (iwmmxt_wmacu): Likewise.
8629 (iwmmxt_wmacuz): Likewise.
8630 (iwmmxt_clrdi): Likewise.
8631 (iwmmxt_clrv8qi): Likewise.
8632 (iwmmxt_clr4hi): Likewise.
8633 (iwmmxt_clr2si): Likewise.
8634 (iwmmxt_uavgrndv8qi3): Likewise.
8635 (iwmmxt_uavgrndv4hi3): Likewise.
8636 (iwmmxt_uavgv8qi3): Likewise.
8637 (iwmmxt_uavgv4hi3): Likewise.
8638 (iwmmxt_tinsrb): Likewise.
8639 (iwmmxt_tinsrh): Likewise.
8640 (iwmmxt_tinsrw): Likewise.
8641 (iwmmxt_textrmub): Likewise.
8642 (iwmmxt_textrmsb): Likewise.
8643 (iwmmxt_textrmuh): Likewise.
8644 (iwmmxt_textrmsh): Likewise.
8645 (iwmmxt_textrmw): Likewise.
8646 (iwmxxt_wshufh): Likewise.
8647 (eqv8qi3): Likewise.
8648 (eqv4hi3): Likewise.
8649 (eqv2si3): Likewise.
8650 (gtuv8qi3): Likewise.
8651 (gtuv4hi3): Likewise.
8652 (gtuv2si3): Likewise.
8653 (gtv8qi3): Likewise.
8654 (gtv4hi3): Likewise.
8655 (gtv2si3): Likewise.
8656 (smax<mode>3_iwmmxt): Likewise.
8657 (umax<mode>3_iwmmxt): Likewise.
8658 (smin<mode>3_iwmmxt): Likewise.
8659 (umin<mode>3_iwmmxt): Likewise.
8660 (iwmmxt_wpackhss): Likewise.
8661 (iwmmxt_wpackwss): Likewise.
8662 (iwmmxt_wpackdss): Likewise.
8663 (iwmmxt_wpackhus): Likewise.
8664 (iwmmxt_wpackwus): Likewise.
8665 (iwmmxt_wpackdus): Likewise.
8666 (iwmmxt_wunpckihb): Likewise.
8667 (iwmmxt_wunpckihh): Likewise.
8668 (iwmmxt_wunpckihw): Likewise.
8669 (iwmmxt_wunpckilb): Likewise.
8670 (iwmmxt_wunpckilh): Likewise.
8671 (iwmmxt_wunpckilw): Likewise.
8672 (iwmmxt_wunpckehub): Likewise.
8673 (iwmmxt_wunpckehuh): Likewise.
8674 (iwmmxt_wunpckehuw): Likewise.
8675 (iwmmxt_wunpckehsb): Likewise.
8676 (iwmmxt_wunpckehsh): Likewise.
8677 (iwmmxt_wunpckehsw): Likewise.
8678 (iwmmxt_wunpckelub): Likewise.
8679 (iwmmxt_wunpckeluh): Likewise.
8680 (iwmmxt_wunpckeluw): Likewise.
8681 (iwmmxt_wunpckelsb): Likewise.
8682 (iwmmxt_wunpckelsh): Likewise.
8683 (iwmmxt_wunpckelsw): Likewise.
8684 (ror<mode>3): Likewise.
8685 (ashr<mode>3_iwmmxt): Likewise.
8686 (lshr<mode>3_iwmmxt): Likewise.
8687 (ashl<mode>3_iwmmxt): Likewise.
8688 (ror<mode>3_di): Likewise.
8689 (ashr<mode>3_di): Likewise.
8690 (lshr<mode>3_di): Likewise.
8691 (ashl<mode>3_di): Likewise.
8692 (iwmmxt_wmadds): Likewise.
8693 (iwmmxt_wmaddu): Likewise.
8694 (iwmmxt_tmia): Likewise.
8695 (iwmmxt_tmiaph): Likewise.
8696 (iwmmxt_tmiabb): Likewise.
8697 (iwmmxt_tmiatb): Likewise.
8698 (iwmmxt_tmiabt): Likewise.
8699 (iwmmxt_tmiatt): Likewise.
8700 (iwmmxt_tmovmskb): Likewise.
8701 (iwmmxt_tmovmskh): Likewise.
8702 (iwmmxt_tmovmskw): Likewise.
8703 (iwmmxt_waccb): Likewise.
8704 (iwmmxt_wacch): Likewise.
8705 (iwmmxt_waccw): Likewise.
8706 (iwmmxt_waligni): Likewise.
8707 (iwmmxt_walignr): Likewise.
8708 (iwmmxt_walignr0): Likewise.
8709 (iwmmxt_walignr1): Likewise.
8710 (iwmmxt_walignr2): Likewise.
8711 (iwmmxt_walignr3): Likewise.
8712 (iwmmxt_wsadb): Likewise.
8713 (iwmmxt_wsadh): Likewise.
8714 (iwmmxt_wsadbz): Likewise.
8715 (iwmmxt_wsadhz): Likewise.
8716 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
8717 (iwmmxt_wabsdiffb): Likewise.
8718 (iwmmxt_wabsdiffh): Likewise.
8719 (iwmmxt_wabsdiffw): Likewise.
8720 (iwmmxt_waddsubhx): Likewise
8721 (iwmmxt_wsubaddhx): Likewise.
8722 (addc<mode>3): Likewise.
8723 (iwmmxt_avg4): Likewise.
8724 (iwmmxt_avg4r): Likewise.
8725 (iwmmxt_wmaddsx): Likewise.
8726 (iwmmxt_wmaddux): Likewise.
8727 (iwmmxt_wmaddsn): Likewise.
8728 (iwmmxt_wmaddun): Likewise.
8729 (iwmmxt_wmulwsm): Likewise.
8730 (iwmmxt_wmulwum): Likewise.
8731 (iwmmxt_wmulsmr): Likewise.
8732 (iwmmxt_wmulumr): Likewise.
8733 (iwmmxt_wmulwsmr): Likewise.
8734 (iwmmxt_wmulwumr): Likewise.
8735 (iwmmxt_wmulwl): Likewise.
8736 (iwmmxt_wqmulm): Likewise.
8737 (iwmmxt_wqmulwm): Likewise.
8738 (iwmmxt_wqmulmr): Likewise.
8739 (iwmmxt_wqmulwmr): Likewise.
8740 (iwmmxt_waddbhusm): Likewise.
8741 (iwmmxt_waddbhusl): Likewise.
8742 (iwmmxt_wqmiabb): Likewise.
8743 (iwmmxt_wqmiabt): Likewise.
8744 (iwmmxt_wqmiatb): Likewise.
8745 (iwmmxt_wqmiatt): Likewise.
8746 (iwmmxt_wqmiabbn): Likewise.
8747 (iwmmxt_wqmiabtn): Likewise.
8748 (iwmmxt_wqmiatbn): Likewise.
8749 (iwmmxt_wqmiattn): Likewise.
8750 (iwmmxt_wmiabb): Likewise.
8751 (iwmmxt_wmiabt): Likewise.
8752 (iwmmxt_wmiatb): Likewise.
8753 (iwmmxt_wmiatt): Likewise.
8754 (iwmmxt_wmiabbn): Likewise.
8755 (iwmmxt_wmiabtn): Likewise.
8756 (iwmmxt_wmiatbn): Likewise.
8757 (iwmmxt_wmiattn): Likewise.
8758 (iwmmxt_wmiawbb): Likewise.
8759 (iwmmxt_wmiawbt): Likewise.
8760 (iwmmxt_wmiawtb): Likewise.
8761 (iwmmxt_wmiawtt): Likewise.
8762 (iwmmxt_wmiawbbn): Likewise.
8763 (iwmmxt_wmiawbtn): Likewise.
8764 (iwmmxt_wmiawtbn): Likewise.
8765 (iwmmxt_wmiawttn): Likewise.
8766 (iwmmxt_wmerge): Likewise.
8767 (iwmmxt_tandc<mode>3): Likewise.
8768 (iwmmxt_torc<mode>3): Likewise.
8769 (iwmmxt_torvsc<mode>3): Likewise.
8770 (iwmmxt_textrc<mode>3): Likewise.
8771 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
8772 (wmmxt_pack): Likewise.
8773 (wmmxt_mult_c1): Likewise.
8774 (wmmxt_mult_c2): Likewise.
8775 (wmmxt_alu_c1): Likewise.
8776 (wmmxt_alu_c2): Likewise.
8777 (wmmxt_alu_c3): Likewise.
8778 (wmmxt_transfer_c1): Likewise.
8779 (wmmxt_transfer_c2): Likewise.
8780 (wmmxt_transfer_c3): Likewise.
8781 (marvell_f_iwmmxt_wstr): Likewise.
8782 (marvell_f_iwmmxt_wldr): Likewise.
8783
bdb7bf8a
YZ
87842013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
8785
0ba6aff3 8786 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 8787
e6631d38
VM
87882013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8789
8790 Revert:
8791 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8792 * lra-constraints.c (need_for_split_p): Check call used hard regs
8793 living through calls.
8794
8795 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
8796 call used regs for call insn.
8797
53c1275b
JJ
87982013-06-28 Jakub Jelinek <jakub@redhat.com>
8799
8800 PR target/57736
0ba6aff3
UB
8801 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
8802 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 8803
1141ed3f
BI
88042013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
8805
8806 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 8807
e32e4c4a
VM
88082013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8809
8810 * lra-constraints.c (need_for_split_p): Check call used hard regs
8811 living through calls.
8812
f161bfd3
MM
88132013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
8814
8815 PR target/57744
8816 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
8817 to tie with any other modes. Eliminate Altivec vector mode tests,
8818 since these are a subset of ALTIVEC or VSX vector modes. Simplify
8819 code, to return 0 if testing MODE2 for a condition, if we've
8820 already tested MODE1 for the same condition.
8821
7eda14e1
MS
88222013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8823
8824 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
8825 layout.
8826
c822f852
MS
88272013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8828
8829 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8830 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
8831
da4f13a4
MS
88322013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8833
0ba6aff3
UB
8834 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
8835 Define.
da4f13a4
MS
8836 (aarch64_symbolic_constant_p): Remove.
8837 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
8838 static. Fix line length and white space.
8839 (aarch64_symbolic_constant_p): Remove.
8840 * config/aarch64/predicates.md (aarch64_valid_symref):
8841 Use aarch64_classify_symbol_expression.
8842
956a95a5
KT
88432013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8844
8845 * config/arm/constraints.md (Ts): New constraint.
8846 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
8847 16-bit encodings.
8848 (compare_scc): Use "Ts" constraint for operand 0.
8849 (ior_scc_scc): Likewise.
8850 (and_scc_scc): Likewise.
8851 (and_scc_scc_nodom): Likewise.
8852 (ior_scc_scc_cmp): Likewise for operand 7.
8853 (and_scc_scc_cmp): Likewise.
8854 * config/arm/thumb2.md (thumb2_movsi_insn):
8855 Add alternatives for 16-bit encodings.
8856 (thumb2_movhi_insn): Likewise.
8857 (thumb2_movsicc_insn): Likewise.
8858 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
8859 (thumb2_negscc): Use "Ts" constraint.
8860 Move mvn instruction outside cond_exec block.
8861 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
8862 for 16-bit encodings.
8863
31dfce10
KT
88642013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8865
8866 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
8867 encoding.
8868 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
8869 (mulsi3subsi): Likewise.
8870 (mulsidi3adddi): Likewise.
8871 (mulsidi3_v6): Likewise.
8872 (umulsidi3_v6): Likewise.
8873 (umulsidi3adddi_v6): Likewise.
8874 (smulsi3_highpart_v6): Likewise.
8875 (umulsi3_highpart_v6): Likewise.
8876 (mulhisi3tb): Likewise.
8877 (mulhisi3bt): Likewise.
8878 (mulhisi3tt): Likewise.
8879 (maddhisi4): Likewise.
8880 (maddhisi4tb): Likewise.
8881 (maddhisi4tt): Likewise.
8882 (maddhidi4): Likewise.
8883 (maddhidi4tb): Likewise.
8884 (maddhidi4tt): Likewise.
8885 (zeroextractsi_compare0_scratch): Likewise.
8886 (insv_zero): Likewise.
8887 (insv_t2): Likewise.
8888 (anddi_notzesidi_di): Likewise.
8889 (anddi_notsesidi_di): Likewise.
8890 (andsi_notsi_si): Likewise.
8891 (iordi_zesidi_di): Likewise.
8892 (xordi_zesidi_di): Likewise.
8893 (andsi_iorsi3_notsi): Likewise.
8894 (smax_0): Likewise.
8895 (smax_m1): Likewise.
8896 (smin_0): Likewise.
8897 (not_shiftsi): Likewise.
8898 (unaligned_loadsi): Likewise.
8899 (unaligned_loadhis): Likewise.
8900 (unaligned_loadhiu): Likewise.
8901 (unaligned_storesi): Likewise.
8902 (unaligned_storehi): Likewise.
8903 (extv_reg): Likewise.
8904 (extzv_t2): Likewise.
8905 (divsi3): Likewise.
8906 (udivsi3): Likewise.
8907 (arm_zero_extendhisi2addsi): Likewise.
8908 (arm_zero_extendqisi2addsi): Likewise.
8909 (compareqi_eq0): Likewise.
8910 (arm_extendhisi2_v6): Likewise.
8911 (arm_extendqisi2addsi): Likewise.
8912 (arm_movt): Likewise.
8913 (thumb2_ldrd): Likewise.
8914 (thumb2_ldrd_base): Likewise.
8915 (thumb2_ldrd_base_neg): Likewise.
8916 (thumb2_strd): Likewise.
8917 (thumb2_strd_base): Likewise.
8918 (thumb2_strd_base_neg): Likewise.
8919 (arm_negsi2): Add alternative for 16-bit encoding.
8920 (arm_one_cmplsi2): Likewise.
8921
1572e697
KT
89222013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8923
8924 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
8925 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
8926 (movdfcc): Likewise.
8927 * config/arm/vfp.md (*thumb2_movsf_vfp):
8928 Disable predication for arm_restrict_it.
8929 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
8930 (*thumb2_movdfcc_vfp): Likewise.
8931 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
8932 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
8933 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
8934 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
8935 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
8936 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
8937 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
8938 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
8939 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
8940 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
8941 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
8942 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
8943 Disable predication for arm_restrict_it.
8944
ebf8f0ea
KY
89452013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
8946
8947 * config/i386/bmiintrin.h (_bextr_u32): New.
8948 (_bextr_u64): Ditto.
8949
a290fcda
RS
89502013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
8951
8952 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
8953 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
8954 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
8955 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
8956 * config/mips/n32-elf.h: ...this new file.
8957
ea169996
MG
89582013-06-27 Marc Glisse <marc.glisse@inria.fr>
8959
8960 PR target/57224
8961 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
8962 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
8963
12211b99 89642013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
8965
8966 * config/mips/mips-tables.opt: Regenerate.
8967 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 8968 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 8969 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 8970
2444244e
JJ
89712013-06-27 Jakub Jelinek <jakub@redhat.com>
8972
cd06d2a2
JJ
8973 PR target/57623
8974 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
8975 constraints of operand 1 and 2.
8976
2444244e
JJ
8977 PR target/57623
8978 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
8979 to match RTL canonicalization. Swap predicates and
8980 constraints of operand 1 and 2.
8981
2f259720
VM
89822013-06-27 Vladimir Makarov <vmakarov@redhat.com>
8983
0ba6aff3
UB
8984 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
8985 Process OP_INOUT regs for splitting too.
2f259720 8986
fef4d2b3
JJ
89872013-06-27 Jakub Jelinek <jakub@redhat.com>
8988
8989 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
8990 decl before the loop, initialize to NULL.
8991 (vectorizable_load): Initialize ptr_incr to NULL.
8992
79ee9826
MJ
89932013-06-27 Martin Jambor <mjambor@suse.cz>
8994
8995 PR lto/57208
8996 * ipa-ref.h (ipa_maybe_record_reference): Declare.
8997 * ipa-ref.c (ipa_maybe_record_reference): New function.
8998 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
8999 * ipa-cp.c (create_specialized_node): Record potential references from
9000 aggvals.
9001 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
9002
e18b4a81
YZ
90032013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9004
9005 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
9006 parameter 'mode' of type 'enum machine_mode mode'; change to pass
9007 'mode' to force_reg.
9008 (aarch64_add_offset): Update calls to aarch64_force_temporary.
9009 (aarch64_expand_mov_immediate): Likewise.
9010
9c023bf0
YZ
90112013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
9012
9013 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
9014 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
9015
5a3fe9b6
AK
90162013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9017
9018 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
9019 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9020 (struct machine_function): Add tbegin_p.
9021 (s390_canonicalize_comparison): Fold CC mode compares to
9022 conditional jump if possible.
9023 (s390_emit_jump): Return the emitted jump.
9024 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
9025 Handle CCRAWmode compares.
9026 (s390_option_override): Default to -mhtm if available.
9027 (s390_reg_clobbered_rtx): Handle floating point regs as well.
9028 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
9029 FPRs instead of df_regs_ever_live_p.
9030 (s390_optimize_nonescaping_tx): New function.
9031 (s390_init_frame_layout): Extend clobbered_regs array to cover
9032 FPRs as well.
9033 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
9034 (s390_expand_tbegin): New function.
9035 (enum s390_builtin): New enum definition.
9036 (code_for_builtin): New array definition.
9037 (s390_init_builtins): New function.
9038 (s390_expand_builtin): New function.
9039 (TARGET_INIT_BUILTINS): Define.
9040 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 9041 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
9042 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
9043 (s390_alc_comparison): Likewise.
9044 * config/s390/s390-modes.def: Add CCRAWmode.
9045 * config/s390/s390.h (processor_flags): Add PF_TX.
9046 (TARGET_CPU_HTM): Define macro.
9047 (TARGET_HTM): Define macro.
9048 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
9049 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
9050 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
9051 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 9052 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
9053 (TBEGIN_MASK, TBEGINC_MASK): New constants.
9054 ("*cc_to_int"): Move up.
9055 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
9056 constants other than 0.
9057 ("*ccraw_to_int"): New insn and splitter definition.
9058 ("tbegin", "tbegin_nofloat", "tbegin_retry")
9059 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
9060 ("tx_assist"): New expander.
9061 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
9062 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
9063 * config/s390/s390.opt: Add -mhtm option.
9064 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
9065 * config/s390/htmxlintrin.h: New file.
9066 * config/s390/htmintrin.h: New file.
9067 * config/s390/s390intrin.h: New file.
9068 * doc/extend.texi: Document htm builtins.
9069 * config.gcc: Add the new header files to extra_headers.
9070
9e216629
TS
90712013-06-26 Thomas Schwinge <thomas@codesourcery.com>
9072
9073 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 9074 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 9075
fd8c65e7 90762013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9077 Pat Haugen <pthaugen@us.ibm.com>
9078 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
9079
9080 * config/rs6000/power8.md: New.
9081 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
9082 setting for power8 entry.
9083 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
9084 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
9085 test for Power4/Power5 only.
9086 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
9087 support.
9088 (force_new_group): Adjust comment.
9089 * config/rs6000/rs6000.md: Include power8.md.
9090
b24a2ce5
GY
90912013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
9092
9093 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
9094 * config/arm/arm-protos.h (arm_max_conditional_execute): New
9095 declaration.
9096 (tune_params): Update comment.
9097 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
9098 (arm_max_conditional_execute): New function.
9099 (thumb2_final_prescan_insn): Use max_insn_skipped and
9100 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
9101
f6fdeb62
JJ
91022013-06-25 Jakub Jelinek <jakub@redhat.com>
9103
9104 PR tree-optimization/57705
9105 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
9106 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 9107 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
9108 (get_initial_def_for_induction): Handle SSA_NAME IV step.
9109
c13bc3d9
MJ
91102013-06-25 Martin Jambor <mjambor@suse.cz>
9111
9112 PR middle-end/57670
9113 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
9114 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
9115 calls in the dump.
9116 (ipa_note_param_call): Initialize member_ptr flag.
9117 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
9118 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
9119 (ipa_write_indirect_edge_info): Stream member_ptr flag.
9120 (ipa_read_indirect_edge_info): Likewise.
9121
8a845901
RB
91222013-06-25 Richard Biener <rguenther@suse.de>
9123
9124 PR middle-end/56977
9125 * passes.c (init_optimization_passes): Move pass_fold_builtins
9126 and pass_dce earlier with -Og.
9127
33be0bec
EB
91282013-06-25 Eric Botcazou <ebotcazou@adacore.com>
9129
9130 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
9131 <BIT_FIELD_REF>: Remove trailing TAB.
9132 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
9133 remove blank line.
9134
5fe8e757
MJ
91352013-06-24 Martin Jambor <mjambor@suse.cz>
9136
9137 PR tree-optimization/57358
9138 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
9139 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
9140 (ipa_analyze_params_uses): Generate pessimistic info when true.
9141
44a60244
MJ
91422013-06-24 Martin Jambor <mjambor@suse.cz>
9143
9144 PR tree-optimization/57539
9145 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
9146 global.inlined_to of the new node to it. All callers changed.
9147 * ipa-inline-transform.c (clone_inlined_nodes): New variable
9148 inlining_into, pass it to cgraph_clone_node.
9149 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9150 ipa_free_edge_args_substructures.
9151 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
9152 rdesc linked list. Do not assert rdesc edges have inlined caller.
9153 Assert we have found an rdesc in the rdesc list.
9154
7c5848b8
RB
91552013-06-24 Richard Biener <rguenther@suse.de>
9156
0ba6aff3 9157 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
9158 (pointer_set_lookup): Declare.
9159 (class pointer_map): New template class implementing a
9160 generic pointer to T map.
9161 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
9162 pointer_map<T>::contains, pointer_map<T>::insert,
9163 pointer_map<T>::traverse): New functions.
9164 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
9165 (pointer_set_lookup): New function.
9166 (pointer_set_contains): Use pointer_set_lookup.
9167 (pointer_set_insert): Likewise.
9168 (insert_aux): Remove.
9169 (struct pointer_map_t): Embed a pointer_set_t.
9170 (pointer_map_create): Adjust.
9171 (pointer_map_destroy): Likewise.
9172 (pointer_map_contains): Likewise.
9173 (pointer_map_insert): Likewise.
9174 (pointer_map_traverse): Likewise.
9175 * tree-streamer.h (struct streamer_tree_cache_d): Use a
9176 pointer_map<unsigned> instead of a pointer_map_t.
9177 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
9178 (streamer_tree_cache_lookup): Likewise.
9179 (streamer_tree_cache_create): Likewise.
9180 (streamer_tree_cache_delete): Likewise.
9181 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
9182 pointer_map<unsigned> instead of a pointer_map_t.
9183 (lto_init_tree_ref_encoder): Adjust.
9184 (lto_destroy_tree_ref_encoder): Likewise.
9185 * lto-section-out.c (lto_output_decl_index): Likewise.
9186 (lto_record_function_out_decl_state): Likewise.
9187 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
9188
3dbc97a9
RB
91892013-06-24 Richard Biener <rguenther@suse.de>
9190
9191 PR tree-optimization/57488
9192 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
9193
8345965a
AM
91942013-06-24 Alan Modra <amodra@gmail.com>
9195
9196 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
9197 (gen_easy_altivec_constant): Likewise.
9198 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9199 easy_vector_constant_msb): Likewise.
9200
b7df379f
JJ
92012013-06-23 Jakub Jelinek <jakub@redhat.com>
9202
9203 PR target/57688
9204 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
9205 add missing return true.
9206
12211b99 92072013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
9208
9209 PR target/52483
9210 * config/sh/predicates.md (general_extend_operand): Invoke
9211 general_movsrc_operand for memory operands.
9212 (general_movsrc_operand): Allow reg+reg addressing, do not use
9213 general_operand for memory operands.
9214
97db2bf7
ST
92152013-06-23 Sriraman Tallam <tmsriram@google.com>
9216
9217 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
9218 when current target options does not apply.
9219 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
9220 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
9221 * config/i386/bmiintrin.h: Pass appropriate target
9222 attributes to header.
97db2bf7
ST
9223 * config/i386/mmintrin.h: Ditto.
9224 * config/i386/nmmintrin.h: Ditto.
9225 * config/i386/avx2intrin.h: Ditto.
9226 * config/i386/fxsrintrin.h: Ditto.
9227 * config/i386/tbmintrin.h: Ditto.
9228 * config/i386/xsaveintrin.h: Ditto.
9229 * config/i386/f16cintrin.h: Ditto.
9230 * config/i386/xtestintrin.h: Ditto.
9231 * config/i386/xsaveoptintrin.h: Ditto.
9232 * config/i386/bmi2intrin.h: Ditto.
9233 * config/i386/lzcntintrin.h: Ditto.
9234 * config/i386/smmintrin.h: Ditto.
9235 * config/i386/wmmintrin.h: Ditto.
9236 * config/i386/x86intrin.h: Remove all header include guards.
9237 * config/i386/prfchwintrin.h: Ditto.
9238 * config/i386/pmmintrin.h: Ditto.
9239 * config/i386/tmmintrin.h: Ditto.
9240 * config/i386/xmmintrin.h: Ditto.
9241 * config/i386/popcntintrin.h: Ditto.
9242 * config/i386/rdseedintrin.h: Ditto.
9243 * config/i386/ammintrin.h: Ditto.
9244 * config/i386/emmintrin.h: Ditto.
9245 * config/i386/immintrin.h: Remove all header include guards.
9246 * config/i386/fma4intrin.h: Ditto.
9247 * config/i386/lwpintrin.h: Ditto.
9248 * config/i386/xopintrin.h: Ditto.
9249 * config/i386/ia32intrin.h: Ditto.
9250 * config/i386/avxintrin.h: Ditto.
9251 * config/i386/rtmintrin.h: Ditto.
9252 * config/i386/fmaintrin.h: Ditto.
9253 * config/i386/mm3dnow.h: Ditto.
9254
495e6879
ST
92552013-06-22 Sriraman Tallam <tmsriram@google.com>
9256
9257 * common/config/i386/i386-common.c: Handle LZCNT.
9258
11e8f687
AK
92592013-06-22 Andi Kleen <ak@linux.intel.com>
9260
9261 * doc/extend.texi: Use __atomic_store_n instead of
9262 __atomic_store in HLE example.
9263
12211b99 92642013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
9265
9266 * config/sh/sh.c: Remove <cstdlib> workaround.
9267
927f908b
AK
92682013-06-21 Andi Kleen <ak@linux.intel.com>
9269
0ba6aff3 9270 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 9271
cca410b6
AK
92722013-06-21 Andi Kleen <ak@linux.intel.com>
9273
9274 * doc/extend.texi: Document that __atomic_clear and
9275 __atomic_test_and_set should only be used with bool.
9276
d84db1ed
JH
92772013-06-20 Jan Hubicka <jh@suse.cz>
9278
9279 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
9280 types_same_for_odr.
9281 * tree.c (decls_same_for_odr): New function.
9282 (same_for_edr): New function.
9283 (types_same_for_odr): New function.
9284 (get_binfo_at_offset): Use it.
9285 * tree.h (types_same_for_odr): Declare.
9286
12211b99 92872013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
9288 Jason Merrill <jason@redhat.com>
9289
9290 * system.h: Include <cstdlib> as well as <stdlib.h>.
9291
49b4ff63
UB
92922013-06-20 Uros Bizjak <ubizjak@gmail.com>
9293
9294 PR target/57655
9295 * config/i386/i386.c (construct_container): Report error if
9296 long double is used with disabled x87 float returns.
9297
7a89ad00
JH
92982013-06-20 Jan Hubicka <jh@suse.cz>
9299
9300 * lto-cgraph.c (input_symtab): Do not set cgraph state.
9301
12211b99 93022013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
9303
9304 PR rtl-optimization/57425
9305 PR rtl-optimization/57569
9306 * alias.c (write_dependence_p): Remove parameters mem_mode and
9307 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
9308 Changed all callers.
9309 (canon_anti_dependence): Get comments and semantics in sync.
9310 Add parameter mem_canonicalized. Changed all callers.
9311 * rtl.h (canon_anti_dependence): Update prototype.
9312
d16e9a99
RB
93132013-06-20 Richard Biener <rguenther@suse.de>
9314
9315 * data-streamer-in.c (streamer_read_uhwi): Optimize single
9316 byte case, inline streamer_read_uchar and defer section
9317 overrun check.
9318
c3a9b91b
RB
93192013-06-20 Richard Biener <rguenther@suse.de>
9320
9321 PR tree-optimization/57584
9322 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
9323 SSA names into the expanded expression that take part in
9324 abnormal coalescing.
9325
371e77e3 93262013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
9327
9328 * gcov.c (print_usage): Handle new option.
9329 (process_args): Ditto.
9330 (get_gcov_intermediate_filename): New function.
9331 (output_intermediate_file): New function.
9332 (output_gcov_file): New function
9333 (generate_results): Handle new option.
9334 (release_function): Relase demangled name.
9335 (read_graph_file): Handle demangled name.
9336 (output_lines): Ditto.
9337 * doc/gcov.texi: Document gcov intermediate format.
9338
11f5b71a
VM
93392013-06-19 Vladimir Makarov <vmakarov@redhat.com>
9340
9341 PR bootstrap/57604
9342 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
9343 (lra_emit_add): Use the functions. Add comment about Y as an
9344 address segment.
9345
e1f9340b
DE
93462013-06-19 David Edelsohn <dje.gcc@gmail.com>
9347
9348 PR driver/57652
9349 * collect2.c (collect_atexit): New.
9350 (collect_exit): Delete.
9351 (main): Register collect_atexit with atexit.
9352 (collect_wait): Change collect_exit to exit.
9353 (do_wait): Same.
9354 * collect2.h (collect_exit): Delete.
9355 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9356
e3f9e0ac
WM
93572013-06-19 Wei Mi <wmi@google.com>
9358
9359 PR rtl-optimization/57518
9360 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9361 if regno is used in paradoxical subreg.
9362 (update_equiv_regs): Check pdx_subregs[regno] before
9363 set a reg to be equivalent with a mem.
9364
a09f1a76
MK
93652013-06-19 Matthias Klose <doko@ubuntu.com>
9366
9367 PR driver/57651
9368 * file-find.h (find_a_file): Add a mode parameter.
9369 * file-find.c (find_a_file): Likewise.
9370 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9371 with X_OK for the executables.
9372 * collect2.c (main): Call find_a_file with X_OK.
9373
7d18b0ad
SE
93742013-06-19 Steve Ellcey <sellcey@mips.com>
9375
9376 PR target/56942
9377 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9378 Use NEXT_INSN instead of next_real_insn.
9379
6a6dac52
JH
93802013-06-19 Jan Hubicka <jh@suse.cz>
9381
9382 * cgraph.h (const_value_known_p): Replace by ...
9383 (ctor_for_folding): .. this one.
9384 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9385 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9386 * expr.c (expand_expr_real_1): Likewise.
9387 (string_constant): Likewise.
9388 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9389 * ipa.c (process_references): Likewise.
9390 (symtab_remove_unreachable_nodes): Likewise.
9391 * ipa-inline-analysis.c (param_change_prob): Likewise.
9392 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9393 (get_base_constructor): Likwise.
9394 * varpool.c (varpool_remove_node): Likewise.
9395 (varpool_remove_initializer): LIkewise.
9396 (dump_varpool_node): LIkwise.
9397 (const_value_known_p): Rewrite to ...
9398 (ctor_for_folding): ... this one.
9399
216c12ab
JJ
94002013-06-19 Jakub Jelinek <jakub@redhat.com>
9401
9402 PR driver/57651
9403 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9404 PERSONALITY in $PATH derived prefixes.
9405
d53e2f99
JL
94062013-06-19 Jeff Law <law@redhat.com>
9407
ecdbf306
JL
9408 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9409 in comment.
9410
d53e2f99
JL
9411 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9412 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9413 booleans.
9414
89e7fc04
SN
94152013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9416
9417 * config/arm/vfp.md: Move VFP instruction classification documentation
9418 to ...
9419 * config/arm/arm.md: ... here. Update instruction classification
9420 documentation.
9421
5e7f6aaa
RE
94222013-06-19 Richard Earnshaw <rearnsha@arm.com>
9423
9424 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9425 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9426 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9427
5fdc1e5d
SB
94282013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9429
9430 PR target/57609
9431 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9432 with NEXT_INSN. Use tablejump_p to check for jump table data
9433 insns.
9434
e952afba
PC
94352013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9436
9437 PR c++/56544
9438 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9439 that now in C++ the value is correct per the C++ standards.
9440
3fd0303a
RB
94412013-06-19 Richard Biener <rguenther@suse.de>
9442
9443 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9444 for global context.
9445
b04e4b08
AK
94462013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9447
9448 Revert:
9449 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9450
9451 PR target/57609
9452 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9453 with next_active_insn.
9454
bef8491a
ST
94552013-06-18 Sriraman Tallam <tmsriram@google.com>
9456
9457 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9458 functions are inlined during failures to flag an error.
9459 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9460 in early inline pass.
22fc7d3d 9461
c21b257d
L
94622013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9463
9464 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9465 in comments.
9466
33255ae3
JB
94672013-06-18 Julian Brown <julian@codesourcery.com>
9468
9469 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9470 Permit virtual register pre-reload if !strict.
9471 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9472 change.
9473 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9474 prototype.
9475 * config/arm/neon.md (movmisalign<mode>): Use
9476 neon_perm_struct_or_reg_operand instead of
9477 neon_struct_or_register_operand.
9478 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9479 neon_permissive_struct_operand instead of neon_struct_operand.
9480 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9481 neon_vector_mem_operand.
9482 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9483 neon_vector_mem_operand.
9484 (neon_permissive_struct_operand): New.
9485 (neon_struct_or_register_operand): Rename to...
9486 (neon_perm_struct_or_reg_operand): This. Adjust call to
9487 neon_vector_mem_operand.
9488
d579fcda
RB
94892013-06-18 Richard Biener <rguenther@suse.de>
9490
9491 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9492 * lto-streamer.h: Include pointer-set.h.
9493 (struct lto_decl_slot): Remove.
9494 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9495 Remove next_index entry.
9496 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9497 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9498 (lto_init_tree_ref_encoder): Adjust.
9499 (lto_destroy_tree_ref_encoder): Likewise.
9500 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9501 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9502 (lto_output_decl_index): Adjust.
9503 (lto_new_out_decl_state): Likewise.
9504 (lto_record_function_out_decl_state): Likewise.
9505 * lto-streamer-out.c (copy_function): Likewise.
9506
31ee20ba
RB
95072013-06-18 Richard Biener <rguenther@suse.de>
9508
9509 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9510 * cgraphunit.c: Include cfgloop.h.
9511 (init_lowered_empty_function): Initialize the loop tree.
9512 (assemble_thunk): Insert new BBs into loops.
9513
ac0511f2
RB
95142013-06-18 Richard Biener <rguenther@suse.de>
9515
9516 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9517 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9518 the map from cache entry to cache index optional.
9519 (streamer_tree_cache_replace_tree): Adjust accordingly.
9520 (streamer_tree_cache_append): Likewise.
9521 (streamer_tree_cache_delete): Likewise.
9522 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9523 streamer cache map from cache entry to cache index.
9524 * lto-streamer-out.c (create_output_block): Adjust.
9525
09485a08
SN
95262013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9527
22fc7d3d
UB
9528 * config/arm/arm.md (attribute "insn"): Move multiplication and
9529 division attributes to...
09485a08
SN
9530 (attribute "type"): ... here. Remove mult.
9531 (attribute "mul32"): New attribute.
9532 (attribute "mul64"): Add umaal.
9533 (*arm_mulsi3): Update attributes.
9534 (*arm_mulsi3_v6): Likewise.
9535 (*thumb_mulsi3): Likewise.
9536 (*thumb_mulsi3_v6): Likewise.
9537 (*mulsi3_compare0): Likewise.
9538 (*mulsi3_compare0_v6): Likewise.
9539 (*mulsi_compare0_scratch): Likewise.
9540 (*mulsi_compare0_scratch_v6): Likewise.
9541 (*mulsi3addsi): Likewise.
9542 (*mulsi3addsi_v6): Likewise.
9543 (*mulsi3addsi_compare0): Likewise.
9544 (*mulsi3addsi_compare0_v6): Likewise.
9545 (*mulsi3addsi_compare0_scratch): Likewise.
9546 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9547 (*mulsi3subsi): Likewise.
9548 (*mulsidi3adddi): Likewise.
9549 (*mulsi3addsi_v6): Likewise.
9550 (*mulsidi3adddi_v6): Likewise.
9551 (*mulsidi3_nov6): Likewise.
9552 (*mulsidi3_v6): Likewise.
9553 (*umulsidi3_nov6): Likewise.
9554 (*umulsidi3_v6): Likewise.
9555 (*umulsidi3adddi): Likewise.
9556 (*umulsidi3adddi_v6): Likewise.
9557 (*smulsi3_highpart_nov6): Likewise.
9558 (*smulsi3_highpart_v6): Likewise.
9559 (*umulsi3_highpart_nov6): Likewise.
9560 (*umulsi3_highpart_v6): Likewise.
9561 (mulhisi3): Likewise.
9562 (*mulhisi3tb): Likewise.
9563 (*mulhisi3bt): Likewise.
9564 (*mulhisi3tt): Likewise.
9565 (maddhisi4): Likewise.
9566 (*maddhisi4tb): Likewise.
9567 (*maddhisi4tt): Likewise.
9568 (maddhidi4): Likewise.
9569 (*maddhidi4tb): Likewise.
9570 (*maddhidi4tt): Likewise.
9571 (divsi3): Likewise.
9572 (udivsi3): Likewise.
9573 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9574 (thumb2_mulsi_short_compare0): Likewise.
9575 (thumb2_mulsi_short_compare0_scratch): Likewise.
9576 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9577 (1020mult2): Likewise.
9578 (1020mult3): Likewise.
9579 (1020mult4): Likewise.
9580 (1020mult5): Likewise.
9581 (1020mult6): Likewise.
22fc7d3d
UB
9582 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9583 change.
09485a08
SN
9584 (cortex_a15_mult64): Likewise.
9585 (cortex_a15_sdiv): Likewise.
9586 (cortex_a15_udiv): Likewise.
9587 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9588 (mult2): Likewise.
9589 (mult3): Likewise.
9590 (mult4): Likewise.
9591 (mult5): Likewise.
9592 (mult6): Likewise.
9593 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9594 (pj4_ir_div): Likewise.
9595 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9596 (11_mult2): Likewise.
9597 (11_mult3): Likewise.
9598 (11_mult4): Likewise.
9599 (11_mult5): Likewise.
9600 (11_mult6): Likewise.
9601 (11_mult7): Likewise.
9602 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9603 (cortex_a8_mla): Likewise.
9604 (cortex_a8_mull): Likewise.
9605 (cortex_a8_smulwy): Likewise.
9606 (cortex_a8_smlald): Likewise.
9607 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9608 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9609 (cortex_r4_mul_3): Likewise.
9610 (cortex_r4_mla_4): Likewise.
9611 (cortex_r4_mla_3): Likewise.
9612 (cortex_r4_smlald): Likewise.
9613 (cortex_r4_mull): Likewise.
9614 (cortex_r4_sdiv): Likewise.
9615 (cortex_r4_udiv): Likewise.
9616 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9617 (cortex_a7_idiv): Likewise.
9618 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9619 (9_mult2): Likewise.
9620 (9_mult3): Likewise.
9621 (9_mult4): Likewise.
9622 (9_mult5): Likewise.
9623 (9_mult6): Likewise.
9624 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9625 (cortex_a53_sdiv): Likewise.
9626 (cortex_a53_udiv): Likewise.
9627 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9628 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9629 (mp626_mult2): Likewise.
9630 (mp626_mult3): Likewise.
9631 (mp626_mult4): Likewise.
9632 * config/arm/fa526.md (526_mult1): Update attribute change.
9633 (526_mult2): Likewise.
9634 * config/arm/arm-generic.md (mult): Update attribute change.
9635 (mult_ldsched_strongarm): Likewise.
9636 (mult_ldsched): Likewise.
9637 (multi_cycle): Likewise.
9638 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
9639 * config/arm/fa606te.md (606te_mult1): Update attribute change.
9640 (606te_mult2): Likewise.
9641 (606te_mult3): Likewise.
9642 (606te_mult4): Likewise.
9643 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
9644 (cortex_a9_mac16): Likewise.
9645 (cortex_a9_multiply): Likewise.
9646 (cortex_a9_mac): Likewise.
9647 (cortex_a9_multiply_long): Likewise.
9648 * config/arm/fa626te.md (626te_mult1): Update attribute change.
9649 (626te_mult2): Likewise.
9650 (626te_mult3): Likewise.
9651 (626te_mult4): Likewise.
9652
8951f345
RB
96532013-06-18 Richard Biener <rguenther@suse.de>
9654
9655 PR lto/57334
9656 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
9657
d8101d05
AK
96582013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9659
9660 PR target/57609
9661 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9662 with next_active_insn.
9663
69eff9da
AM
96642013-06-18 Alan Modra <amodra@gmail.com>
9665
9666 * config/rs6000/rs6000.h (enum data_align): New.
9667 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
9668 (DATA_ABI_ALIGNMENT): Define.
9669 (CONSTANT_ALIGNMENT): Correct comment.
9670 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
9671 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
9672
8ed00d76
DM
96732013-06-17 David Malcolm <dmalcolm@redhat.com>
9674
9675 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
9676 ATTRIBUTE_UNUSED marking.
9677
3d33d06b
SN
96782013-06-17 Sofiane Naci <sofiane.naci@arm.com>
9679
9680 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
9681 alternative and update.
9682 (aarch64_dup_lanedi): Delete.
9683 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
9684 * config/aarch64/aarch64-simd-builtins.def: Update.
9685
ee03e71d
RB
96862013-06-17 Richard Biener <rguenther@suse.de>
9687
9688 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
9689 (lto_input_scc): Declare.
9690 (lto_input_tree_1): Likewise.
9691 (struct lto_stats_d): Add num_tree_bodies_output and
9692 num_pickle_refs_output.
9693 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
9694 (lto_read_tree_1): Split out from ...
9695 (lto_read_tree): ... this.
9696 (lto_input_scc): New function.
9697 (lto_input_tree_1): Split out from ...
9698 (lto_input_tree): ... this. Handle LTO_tree_scc.
9699 (lto_data_in_create): Create the streamer cache without hashes.
9700 * lto-streamer-out.c (create_output_block): Create the streamer
9701 cache with hashes when not doing WPA.
9702 (lto_write_tree_1): Split out from ...
9703 (lto_write_tree): ... this.
9704 (get_symbol_initial_value): New function.
9705 (lto_output_tree_1): Split out from ...
9706 (lto_output_tree): ... this. Write trees as series of SCCs
9707 using a DFS walk via DFS_write_tree.
9708 (struct sccs, struct scc_entry): New types.
9709 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
9710 (DFS_write_tree_body): New function.
9711 (DFS_write_tree): Likewise.
9712 (hash_tree): Likewise.
9713 (scc_entry_compare): Likewise.
9714 (hash_scc): Likewise.
9715 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
9716 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
9717 TREE_CHAIN as regular reference.
9718 (streamer_read_integer_cst): Remove.
9719 (streamer_get_pickled_tree): Adjust.
9720 * tree-streamer-out.c (streamer_write_chain): Disable streaming
9721 of DECL_EXTERNALs in BLOCK_VARS for now.
9722 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
9723 reference.
9724 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
9725 Add hash value argument and record that if hashes are recorded
9726 in the cache.
9727 (streamer_tree_cache_insert_1): Adjust.
9728 (streamer_tree_cache_insert): Likewise.
9729 (streamer_tree_cache_insert_at): Rename to ...
9730 (streamer_tree_cache_replace_tree): ... this and adjust.
9731 (streamer_tree_cache_append): Adjust.
9732 (record_common_node): Likewise.
9733 (streamer_tree_cache_create): Add argument whether to
9734 record hash values together with trees.
9735 (streamer_tree_cache_delete): Adjust.
9736 * tree-streamer.h (struct streamer_tree_cache_d): Add
9737 vector of hashes.
9738 (streamer_read_integer_cst): Remove.
9739 (streamer_tree_cache_insert): Adjust.
9740 (streamer_tree_cache_append): Likewise.
9741 (streamer_tree_cache_insert_at): Rename to ...
9742 (streamer_tree_cache_replace_tree): ... this and adjust.
9743 (streamer_tree_cache_create): Add argument whether to record hashes.
9744 (streamer_tree_cache_get): Rename to ...
9745 (streamer_tree_cache_get_tree): ... this.
9746 (streamer_tree_cache_get_hash): New function.
9747 * tree.c (cache_integer_cst): New function.
9748 * tree.h (cache_integer_cst): Declare.
9749 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
9750 * lto-symtab.c (lto_varpool_replace_node): Only release
9751 DECL_INITIAL of non-prevailing decls.
9752 * varpool.c (varpool_remove_initializer): Do not release
9753 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
9754
0de86a92
JU
97552013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9756
9757 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
9758 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
9759 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
9760 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
9761 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
9762 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
9763 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
9764 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
9765 instead of TARGET_64BIT.
9766 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
9767 Require ISA_HAS_<D>DIV.
9768
74240413
RS
97692013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
9770
9771 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
9772 (mips*-*-linux*): Move default with_llsc setting to where other
9773 defaults are set.
9774 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
9775 with_arch block.
9776 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
9777 Likewise. Remove default with_tune setting. Move default float
9778 setting to its own block. Handle with_llsc in the same block as above.
9779
12211b99 97802013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
9781
9782 PR rtl-optimization/57425
9783 PR rtl-optimization/57569
299a5f6a 9784 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
9785 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
9786 Changed all callers.
9787 (canon_anti_dependence): New function.
9788 * cse.c (check_dependence): Use canon_anti_dependence.
9789 * cselib.c (cselib_invalidate_mem): Likewise.
9790 * rtl.h (canon_anti_dependence): Declare.
9791
b259d352
JU
97922013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9793
9794 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
9795 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
9796 ".set mips3" for 64-bit targets.
9797
4de09b85
DC
97982013-06-15 Dehao Chen <dehao@google.com>
9799
9800 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
9801 * gimple-low.c (gimple_check_call_matching_types): Likewise.
9802 (gimple_check_call_args): Likewise.
9803 * value-prof.c (check_ic_target): Likewise.
9804 * ipa-inline.c (early_inliner): Likewise.
9805 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
9806 * cgraph.c (cgraph_create_edge_1): Likewise.
9807 (cgraph_make_edge_direct): Likewise.
9808
d1aa4a76
MM
98092013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9810
9811 PR target/57615
9812 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
9813 rs6000_output_move_128bit to handle emitting quad memory
9814 operations. Set attribute length to 8 bytes.
9815
12211b99 98162013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
9817
9818 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
9819 New pattern.
9820 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
9821 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
9822 (aarch64_<su>mlsl<mode>): Likewise.
9823
f5273574
MS
98242013-06-14 Mike Stump <mikestump@comcast.net>
9825
9826 * Makefile.in (TARGET_H): Add insn-codes.h.
9827
ef7e7ab2
AM
98282013-06-14 Alan Modra <amodra@gmail.com>
9829
9830 PR middle-end/57134
9831 PR middle-end/57586
9832 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
9833 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
9834 bitfield expansion when EXPAND_MEMORY.
9835 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
9836
135faab6
MM
98372013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9838
9839 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9840 test for clearing quad memory on 32-bit later.
9841
948a1fd9
MG
98422013-06-13 Marc Glisse <marc.glisse@inria.fr>
9843
9844 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
9845 (fold_negate_expr): Likewise.
9846 (fold_real_zero_addition_p): Handle vectors.
9847 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
9848
0597fb9c
AM
98492013-06-14 Alan Modra <amodra@gmail.com>
9850
9851 * varasm.c (force_const_mem): Revert 2013-06-07 change.
9852
e5b962d0
JH
98532013-06-13 Jan Hubicka <jh@suse.cz>
9854
9855 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
9856 Local comdats are not externally visible.
9857 * symtab.c (dump_symtab_base): Dump externally visible.
9858 (verify_symtab_base): Verify back links in the symtab hash.
9859
a8355e51
BC
98602013-06-13 Bin Cheng <bin.cheng@arm.com>
9861
9862 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
9863 CONVERT_EXPR as equal nodes.
9864
8f7e6e33
BC
98652013-06-13 Bin Cheng <bin.cheng@arm.com>
9866
22fc7d3d 9867 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 9868
5d418483
MG
98692013-06-13 Marc Glisse <marc.glisse@inria.fr>
9870
9871 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
9872 Generalize to complex and vector.
9873 * tree.c (build_all_ones_cst): New function.
9874 * tree.h (build_all_ones_cst): Declare it.
9875
50751417
AM
98762013-06-13 Alan Modra <amodra@gmail.com>
9877
9878 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
9879 * config/rs6000/rs6000.md (signbittf2): New insn.
9880 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
9881 (abstf2_internal, cmptf_internal2): Likewise.
9882 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
9883
4b02c962 98842013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9885 Pat Haugen <pthaugen@us.ibm.com>
9886 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
9887
9888 * config/rs6000/rs6000.c (emit_load_locked): Add support for
9889 power8 byte, half-word, and quad-word atomic instructions.
9890 (emit_store_conditional): Likewise.
9891 (rs6000_expand_atomic_compare_and_swap): Likewise.
9892 (rs6000_expand_atomic_op): Likewise.
9893
9894 * config/rs6000/sync.md (larx): Add new modes for power8.
9895 (stcx): Likewise.
9896 (AINT): New mode iterator to include TImode as well as normal
9897 integer modes on power8.
9898 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
9899 that VSX registers are not considered. Use AINT mode iterator
9900 instead of INT1 to allow inclusion of quad word atomic operations
9901 on power8.
9902 (load_locked<mode>): Likewise.
9903 (store_conditional<mode>): Likewise.
9904 (atomic_compare_and_swap<mode>): Likewise.
9905 (atomic_exchange<mode>): Likewise.
9906 (atomic_nand<mode>): Likewise.
9907 (atomic_fetch_<fetchop_name><mode>): Likewise.
9908 (atomic_nand_fetch<mode>): Likewise.
9909 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
9910 each type.
9911 (ATOMIC): On power8, add QImode, HImode modes.
9912 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
9913 modes that promote to SImode.
9914 (load_lockedti): Convert TImode arguments to PTImode, so that we
9915 get a guaranteed even/odd register pair.
9916 (load_lockedpti): Likewise.
9917 (store_conditionalti): Likewise.
9918 (store_conditionalpti): Likewise.
9919
9920 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
9921 atomic load/store instructions.
9922 (HSI): Likewise.
9923
710b6cc1
RS
99242013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
9925
9926 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
9927 loads.
9928 (insn_count): New attribute, with most cases extracted from...
9929 (length): ...here. Redefine most cases in terms of insn_count.
9930 (single_insn): Delete.
9931 (can_delay): Use insn_count to check for single instructions.
9932 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
9933 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
9934 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
9935 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
9936 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
9937 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
9938 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
9939 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
9940 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
9941 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
9942 rather than "length".
9943 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
9944 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
9945 Use "insn_count" rather than "length".
9946 * config/mips/mips-dsp.md
9947 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
9948 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
9949 length attributes.
9950
1951f101
MG
99512013-06-12 Marc Glisse <marc.glisse@inria.fr>
9952
9953 PR tree-optimization/57361
9954 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
9955
8b033a8a
SN
99562013-06-12 Sofiane Naci <sofiane.naci@arm.com>
9957
22fc7d3d
UB
9958 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
9959 to split.
8b033a8a
SN
9960 (aarch64_simd_combine<mode>): New instruction expansion.
9961 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
9962 function prototype.
9963 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
9964 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
9965
ca0f62a8
JH
99662013-06-12 Jan Hubicka <jh@suse.cz>
9967
9968 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
9969 decl has when in streaming stage.
9970 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
9971 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
9972
12211b99 99732013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
9974
9975 PR target/57578
9976 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
9977
bfdeda2c
JJ
99782013-06-12 Jakub Jelinek <jakub@redhat.com>
9979
9980 PR tree-optimization/57537
9981 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
9982 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
9983
a4fa02d1
RB
99842013-06-12 Richard Biener <rguenther@suse.de>
9985
9986 * data-streamer.h (streamer_write_char_stream): CSE
9987 obs->current_pointer.
9988 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
9989 streamer_write_char_stream manually and optimize the resulting loop.
9990 (streamer_write_hwi_stream): Likewise.
9991
bbf9ad07
JH
99922013-06-12 Jan Hubicka <jh@suse.cz>
9993
9994 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
9995 * cgraph.h (varpool_create_empty_node): Declare.
9996 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
9997 duplicated nodes.
9998 * symtab.c (symtab_unregister_node): Be lax about missin entries
9999 in node hash.
10000 (symtab_get_node): Update comment.
10001 * varpool.c (varpool_create_empty_node): Break out from ...
10002 (varpool_node_for_decl): ... here.
10003 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
10004
a53f90ad
EB
100052013-06-12 Eric Botcazou <ebotcazou@adacore.com>
10006
10007 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
10008 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
10009 part. Use straight-line flow at the end.
10010 <COMPONENT_REF>: Remove superfluous else.
10011 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
10012
946f9306
JJ
100132013-06-12 Jakub Jelinek <jakub@redhat.com>
10014
10015 PR target/56564
10016 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
10017 target hook even for !TREE_PUBLIC decls. If no resolution info
10018 is available, return false for common and external decls.
10019
a7fca6f0
KP
100202013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10021
10022 * config/rl78/constraints.md (U): New constraint.
10023 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
10024 valloc attribute.
10025
c7d8f446
MM
100262013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10027
10028 PR target/57589
10029 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
10030 to allow returning address to AT_PLATFORM name.
10031
08346abd
JH
100322013-06-11 Jan Hubicka <jh@suse.cz>
10033
10034 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
10035 * cgraph.h (symtab_node_base): Add weakref flag.
10036 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
10037 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
10038 (output_weakrefs): Use weakref flag.
10039 * fold-const.c (simple_operand_p): Handle WEAK.
10040 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
10041 * ipa.c (varpool_externally_visible_p): Drop weakref.
10042 (function_and_variable_visibility): Update comment; fix weakref
10043 sanity checks; do not clear DECL_WEAK on them.
10044 * lto-cgraph.c (lto_output_node): update.
10045 (lto_output_varpool_node): Update.
10046 (input_overwrite_node): Update.
10047 (input_node): Update.
10048 (input_varpool_node): Update.
10049 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
10050 (lto_symtab_merge_symbols): Add sanity check.
10051 (lto_symtab_prevailing_decl): Do not special case weakrefs.
10052 * passes.c (rest_of_decl_compilation): Set static flag, too.
10053 * symtab.c (dump_symtab_base): Dump weakref.
10054 (verify_symtab_base): Sanity check weakrefs.
10055 (symtab_make_decl_local): Remove duplicated code.
10056 (symtab_alias_ultimate_target): Simplify.
10057 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 10058
2e6a2f88
TV
100592013-06-11 Tom de Vries <tom@codesourcery.com>
10060
10061 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
10062 sequence_vect == NULL.
10063
d9af3652
DD
100642013-06-11 DJ Delorie <dj@redhat.com>
10065
10066 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
10067 (rl78_unwind_word_mode): New.
10068
ffa66012
DM
100692013-06-11 David Malcolm <dmalcolm@redhat.com>
10070
10071 * final.c (debug_prefix_maps): Make static.
10072
783f2d35
DM
100732013-06-11 David Malcolm <dmalcolm@redhat.com>
10074
10075 * function.c (initial_trampoline): Remove stray copy.
10076
7af26def
SN
100772013-06-11 Sofiane Naci <sofiane.naci@arm.com>
10078
10079 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
10080
97756c0e
MJ
100812013-06-11 Martin Jambor <mjambor@suse.cz>
10082
10083 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
10084 within bounds at the beginning of the function.
10085
2c7b8bf6
AM
100862013-06-11 Alan Modra <amodra@gmail.com>
10087
10088 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
10089 reporting.
10090 (get_named_section): Don't NULL !DECL_P decl.
10091
77cea46e
IZ
100922013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
10093
10094 * doc/invoke.texi (core-avx2): Document.
10095 (slm): Likewise.
10096 (atom): Updated with MOVBE.
10097
888f0920
RB
100982013-06-11 Richard Biener <rguenther@suse.de>
10099
22fc7d3d 10100 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 10101
6b438d58
AB
101022013-06-11 Anton Blanchard <anton@samba.org>
10103
10104 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
10105 correct shift value in little-endian mode.
10106
3bc66938
JJ
101072013-06-11 Jakub Jelinek <jakub@redhat.com>
10108
10109 PR target/56564
10110 * varasm.c (get_variable_align): Move #endif to the right place.
10111
a5dc7f88
CC
101122013-06-10 Cary Coutant <ccoutant@google.com>
10113
10114 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
10115 for hash so that hash table traversal order is deterministic.
10116
19be72ab 101172013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10118 Pat Haugen <pthaugen@us.ibm.com>
10119 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
10120
10121 * config/rs6000/vector.md (GPR move splitter): Do not split moves
10122 of vectors in GPRS if they are direct moves or quad word load or
10123 store moves.
10124
10125 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
10126 declaration.
10127 (direct_move_p): Likewise.
10128 (quad_load_store_p): Likewise.
10129
10130 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
10131 classes into bins based on the physical register type.
10132 (reg_class_to_reg_type): Likewise.
10133 (IS_STD_REG_TYPE): Likewise.
10134 (IS_FP_VECT_REG_TYPE): Likewise.
10135 (reload_fpr_gpr): Arrays to determine what insn to use if we can
10136 use direct move instructions.
10137 (reload_gpr_vsx): Likewise.
10138 (reload_vsx_gpr): Likewise.
10139 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
10140 information that is a simplification of register classes. Also
10141 precalculate direct move reload helpers.
10142 (direct_move_p): New function to return true if the operation can
10143 be done as a direct move instruciton.
10144 (quad_load_store_p): New function to return true if the operation
10145 is a quad memory operation.
10146 (rs6000_legitimize_address): If quad memory, only allow register
10147 indirect for TImode addresses.
10148 (rs6000_legitimate_address_p): Likewise.
10149 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
10150 (rs6000_reload_register_type): Likewise.
10151 (register_to_reg_type): Return register type.
10152 (rs6000_secondary_reload_simple_move): New helper function for
10153 secondary reload and secondary memory needed to identify anything
10154 that is a simple move, and does not need reloading.
10155 (rs6000_secondary_reload_direct_move): New helper function for
10156 secondary reload to identify cases that can be done with several
10157 instructions via the direct move instructions.
10158 (rs6000_secondary_reload_move): New helper function for secondary
10159 reload to identify moves between register types that can be done.
10160 (rs6000_secondary_reload): Add support for quad memory operations
10161 and for direct move.
10162 (rs6000_secondary_memory_needed): Likewise.
10163 (rs6000_debug_secondary_memory_needed): Change argument names.
10164 (rs6000_output_move_128bit): New function to return the move to
10165 use for 128-bit moves, including knowing about the various
10166 limitations of quad memory operations.
10167
10168 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
10169 memory operations. call rs6000_output_move_128bit for the actual
10170 instruciton(s) to generate.
10171 (vsx_movti_64bit): Likewise.
10172
10173 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
10174 (UNSPEC_P8V_MTVSRWZ): Likewise.
10175 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
10176 (UNSPEC_P8V_MTVSRD): Likewise.
10177 (UNSPEC_P8V_XXPERMDI): Likewise.
10178 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
10179 (UNSPEC_FUSION_GPR): Likewise.
10180 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 10181 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
10182 (f32_sv): Likewise.
10183 (f32_dm): Likewise.
10184 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
10185 loads and direct move instructions.
10186 (zero_extendsidi2_lfiwzx): Likewise.
10187 (extendsidi2_lfiwax): Likewise.
10188 (extendsidi2_nocell): Likewise.
10189 (floatsi<mode>2_lfiwax): Likewise.
10190 (lfiwax): Likewise.
10191 (floatunssi<mode>2_lfiwzx): Likewise.
10192 (lfiwzx): Likewise.
10193 (fix_trunc<mode>_stfiwx): Likewise.
10194 (fixuns_trunc<mode>_stfiwx): Likewise.
10195 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
10196 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
10197 (parity<mode>2_cmpb): Set length/type attr.
10198 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
10199 for 'mr.' to fast_compare.
10200 (bpermd_<mode>): Change type attr to popcnt.
10201 (p8_fmrgow_<mode>): New insns for power8 direct move support.
10202 (p8_mtvsrwz_1): Likewise.
10203 (p8_mtvsrwz_2): Likewise.
10204 (reload_fpr_from_gpr<mode>): Likewise.
10205 (p8_mtvsrd_1): Likewise.
10206 (p8_mtvsrd_2): Likewise.
10207 (p8_xxpermdi_<mode>): Likewise.
10208 (reload_vsx_from_gpr<mode>): Likewise.
10209 (reload_vsx_from_gprsf): Likewise.
10210 (p8_mfvsrd_3_<mode>): LIkewise.
10211 (reload_gpr_from_vsx<mode>): Likewise.
10212 (reload_gpr_from_vsxsf): Likewise.
10213 (p8_mfvsrd_4_disf): Likewise.
10214 (multi-word GPR splits): Do not split direct moves or quad memory
10215 operations.
10216
16876bdc
DM
102172013-06-10 David Malcolm <dmalcolm@redhat.com>
10218
10219 * tree-into-ssa.c (interesting_blocks): Make static.
10220
df8a1d28
JJ
102212013-06-10 Jakub Jelinek <jakub@redhat.com>
10222
10223 PR target/56564
10224 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
10225 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
10226 Use DATA_ABI_ALIGNMENT for that case instead if defined.
10227 (get_variable_align): New function.
10228 (get_variable_section, emit_bss, emit_common,
10229 assemble_variable_contents, place_block_symbol): Use
10230 get_variable_align instead of DECL_ALIGN.
10231 (assemble_noswitch_variable): Add align argument, use it
10232 instead of DECL_ALIGN.
10233 (assemble_variable): Adjust caller. Use get_variable_align
10234 instead of DECL_ALIGN.
10235 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
10236 caller.
10237 (DATA_ABI_ALIGNMENT): Define.
10238 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
10239 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
10240 opt is false, only return the psABI mandated alignment increase.
10241 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
10242 (DATA_ABI_ALIGNMENT): ... this.
10243 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
10244 (DATA_ABI_ALIGNMENT): ... this.
10245 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
10246 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
10247 (DATA_ABI_ALIGNMENT): ... this.
10248 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
10249 * doc/tm.texi: Regenerated.
10250
57b29ca6
UB
102512013-06-10 Uros Bizjak <ubizjak@gmail.com>
10252
10253 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
10254 cmp_code to construct REG_EQUAL note.
10255
3e56ed50
JJ
102562013-06-09 Jakub Jelinek <jakub@redhat.com>
10257
10258 PR target/57568
10259 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
10260 that operands[2] doesn't overlap with operands[0].
10261
74fe2a1d
DE
102622013-06-09 David Edelsohn <dje.gcc@gmail.com>
10263 Jan Hubicka <jh@suse.cz>
10264
10265 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
10266 hack to mark symbols as used.
10267
ed52a84e
VM
102682013-06-08 Vladimir Makarov <vmakarov@redhat.com>
10269
10270 PR rtl-optimization/57559
10271 * lra-constraints.c (process_alt_operands): Don't discourage
10272 memory with known offset for offsetable memory constraint.
10273 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
10274
299316ed
EB
102752013-06-08 Eric Botcazou <ebotcazou@adacore.com>
10276
10277 * varasm.c (struct oc_local_state): Reorder fields.
10278 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
10279 and adjust accordingly.
10280 (output_constructor): Reorder initialization code and adjust call to
10281 output_constructor_bitfield.
10282
88ac60d3
JH
102832013-06-07 Jan Hubicka <jh@suse.cz>
10284
10285 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
10286
4cdce1a8
DM
102872013-06-07 David Malcolm <dmalcolm@redhat.com>
10288
10289 * tree-object-size.c (unknown): Make const.
10290
b5e0425c
AK
102912013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10292
10293 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
10294 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
10295 for last alternative in the cpu_facility attribute.
10296
79678d04
KT
102972013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10298
10299 PR target/56315
10300 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
10301 (xordi3): Change operand 2 constraint to arm_xordi_operand.
10302 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
10303 * config/arm/constraints.md (Dg): New constraint.
10304 * config/arm/neon.md (xordi3_neon): Remove.
10305 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
10306 * config/arm/predicates.md (arm_xordi_operand): New predicate.
10307
b31ddbdb
KT
103082013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10309
10310 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
10311 Clean up alternatives.
10312
8f90b7d4
AM
103132013-06-07 Alan Modra <amodra@gmail.com>
10314
10315 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
10316 va_list_gpr_size.
10317
961ce119
AM
103182013-06-07 Alan Modra <amodra@gmail.com>
10319
10320 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
10321
33e49835
KT
103222013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10323
10324 * config/arm/constraints.md (Df): New constraint.
10325 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
10326 Correct length attribute for last two alternatives.
10327
acd17ae6
AM
103282013-06-07 Alan Modra <amodra@gmail.com>
10329
10330 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10331 override user -mfp-in-toc.
10332 (offsettable_ok_by_alignment): Consider just the current access
10333 rather than the whole object, unless BLKmode. Handle
10334 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
10335 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
10336 for -mcmodel=medium.
10337 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
10338 override user -mfp-in-toc or -msum-in-toc. Default to
10339 -mno-fp-in-toc for -mcmodel=medium.
10340
73310b0e
DD
103412013-06-06 DJ Delorie <dj@redhat.com>
10342
10343 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
10344 TARGET_VALID_POINTER_MODE.
10345
0bd62dca 103462013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10347 Pat Haugen <pthaugen@us.ibm.com>
10348 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
10349
10350 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10351 Document new power8 builtins.
10352
10353 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10354 condition code register, to allow 128-bit logical operations to be
10355 done in the VSX or GPR registers.
10356 (nor<mode>3): Use the canonical form for nor.
10357 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10358 vclz*, and vpopcnt* vector instructions.
10359 (nand<mode>3): Likewise.
10360 (orc<mode>3): Likewise.
10361 (clz<mode>2): LIkewise.
10362 (popcount<mode>2): Likewise.
10363
10364 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10365 that only the GPRs are recognized.
10366
10367 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10368 support for new power8 builtins.
10369
10370 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10371 builtin functions.
10372 (xscvdpspn): Likewise.
10373 (vclz): Likewise.
10374 (vclzb): Likewise.
10375 (vclzh): Likewise.
10376 (vclzw): Likewise.
10377 (vclzd): Likewise.
10378 (vpopcnt): Likewise.
10379 (vpopcntb): Likewise.
10380 (vpopcnth): Likewise.
10381 (vpopcntw): Likewise.
10382 (vpopcntd): Likewise.
10383 (vgbbd): Likewise.
10384 (vmrgew): Likewise.
10385 (vmrgow): Likewise.
10386 (eqv): Likewise.
10387 (eqv_v16qi3): Likewise.
10388 (eqv_v8hi3): Likewise.
10389 (eqv_v4si3): Likewise.
10390 (eqv_v2di3): Likewise.
10391 (eqv_v4sf3): Likewise.
10392 (eqv_v2df3): Likewise.
10393 (nand): Likewise.
10394 (nand_v16qi3): Likewise.
10395 (nand_v8hi3): Likewise.
10396 (nand_v4si3): Likewise.
10397 (nand_v2di3): Likewise.
10398 (nand_v4sf3): Likewise.
10399 (nand_v2df3): Likewise.
10400 (orc): Likewise.
10401 (orc_v16qi3): Likewise.
10402 (orc_v8hi3): Likewise.
10403 (orc_v4si3): Likewise.
10404 (orc_v2di3): Likewise.
10405 (orc_v4sf3): Likewise.
10406 (orc_v2df3): Likewise.
10407
10408 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10409 allow power8 quad mode in 64-bit.
10410 (rs6000_builtin_vectorized_function): Add support to vectorize
10411 ISA 2.07 count leading zeros, population count builtins.
10412 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10413 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10414 (builtin_function_type): Add vgbbd builtin function which takes an
10415 unsigned argument.
10416 (altivec_expand_vec_perm_const): Add support for new power8 merge
10417 instructions.
10418
10419 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10420 that does not include TImdoe for use with 32-bit.
10421 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10422 instructions.
10423 (UNSPEC_VSX_CVDPSPN): Likewise.
10424 (vsx_xscvdpspn): Likewise.
10425 (vsx_xscvspdpn): Likewise.
10426 (vsx_xscvdpspn_scalar): Likewise.
10427 (vsx_xscvspdpn_directmove): Likewise.
10428 (vsx_and<mode>3): Split logical operations into 32-bit and
10429 64-bit. Add support to do logical operations on TImode as well as
10430 VSX vector types. Allow logical operations to be done in either
10431 VSX registers or in general purpose registers in 64-bit mode. Add
10432 splitters if GPRs were used. For AND, add clobber of CCmode to
10433 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10434 encoding.
10435 (vsx_and<mode>3_32bit): Likewise.
10436 (vsx_and<mode>3_64bit): Likewise.
10437 (vsx_ior<mode>3): Likewise.
10438 (vsx_ior<mode>3_32bit): Likewise.
10439 (vsx_ior<mode>3_64bit): Likewise.
10440 (vsx_xor<mode>3): Likewise.
10441 (vsx_xor<mode>3_32bit): Likewise.
10442 (vsx_xor<mode>3_64bit): Likewise.
10443 (vsx_one_cmpl<mode>2): Likewise.
10444 (vsx_one_cmpl<mode>2_32bit): Likewise.
10445 (vsx_one_cmpl<mode>2_64bit): Likewise.
10446 (vsx_nor<mode>3): Likewise.
10447 (vsx_nor<mode>3_32bit): Likewise.
10448 (vsx_nor<mode>3_64bit): Likewise.
10449 (vsx_andc<mode>3): Likewise.
10450 (vsx_andc<mode>3_32bit): Likewise.
10451 (vsx_andc<mode>3_64bit): Likewise.
10452 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10453 and xxlorc instructions.
10454 (vsx_eqv<mode>3_64bit): Likewise.
10455 (vsx_nand<mode>3_32bit): Likewise.
10456 (vsx_nand<mode>3_64bit): Likewise.
10457 (vsx_orc<mode>3_32bit): Likewise.
10458 (vsx_orc<mode>3_64bit): Likewise.
10459
10460 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10461
10462 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10463 instruction.
10464 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10465 (p8_vmrgow): Likewise.
10466 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10467 GPRs to be split under VSX.
10468 (p8v_clz<mode>2): Add power8 count leading zero support.
10469 (p8v_popcount<mode>2): Add power8 population count support.
10470 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10471 support.
10472
10473 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10474 instruction.
10475
10476 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10477 builtin functions.
10478 (vec_nand): Likewise.
10479 (vec_vclz): Likewise.
10480 (vec_vclzb): Likewise.
10481 (vec_vclzd): Likewise.
10482 (vec_vclzh): Likewise.
10483 (vec_vclzw): Likewise.
10484 (vec_vgbbd): Likewise.
10485 (vec_vmrgew): Likewise.
10486 (vec_vmrgow): Likewise.
10487 (vec_vpopcnt): Likewise.
10488 (vec_vpopcntb): Likewise.
10489 (vec_vpopcntd): Likewise.
10490 (vec_vpopcnth): Likewise.
10491 (vec_vpopcntw): Likewise.
10492
37684c46
VM
104932013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10494
10495 PR rtl-optimization/57468
10496 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10497 spilled pseudos.
10498
d89ae27c
VM
104992013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10500
10501 PR rtl-optimization/57459
10502 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10503 type when setting live regs.
10504
3597e113
VM
105052013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10506
10507 * config/s390/s390.opt (mlra): New option.
10508 * config/s390/s390.c (s390_decompose_address): Check displacement
10509 for all registers for LRA.
10510 (s390_secondary_reload): Don't used secondary reloads for LRA.
10511 (s390_lra_p): New function.
10512 (TARGET_LRA_P): Define.
10513 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10514 of attribute cpu_facility to zarch for the last alternative.
10515 (*cmpmem_short): Ditto.
10516
01037aeb
EB
105172013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10518
10519 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10520 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10521 (arm_expand_prologue): Likewise.
10522
3371a64f
TJ
105232013-06-06 Teresa Johnson <tejohnson@google.com>
10524
10525 PR c++/53743
10526 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10527 as this is now done by redirect_edge_and_branch_force.
10528 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10529 barriers, and fix interaction with splitting.
10530 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10531 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10532 reflect changes made in the routine.
10533 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10534 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10535 since this is called in cfglayout mode, and replace partition fixup
10536 with assert as that is now done by force_nonfallthru_and_redirect.
10537 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10538 already be marked with region crossing note.
10539 (insert_section_boundary_note): Make non-static, gate on flag
10540 has_bb_partition, rewrite to also check for multiple partitions.
10541 (rest_of_handle_reorder_blocks): Remove call to
10542 insert_section_boundary_note, now done later during free_cfg.
10543 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10544 * bb-reorder.h (insert_section_boundary_note): Declare.
10545 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10546 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10547 invoke insert_section_boundary_note.
10548 (try_redirect_by_replacing_jump): Remove unnecessary
10549 check for region crossing note.
10550 (fixup_partition_crossing): New function.
10551 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10552 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10553 in non-cfglayout mode.
10554 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10555 remove old code that tried to do this. Emit barrier correctly
10556 when we are in cfglayout mode.
10557 (last_bb_in_partition): New function.
10558 (rtl_split_edge): Correctly fixup partition boundaries.
10559 (commit_one_edge_insertion): Remove old code that tried to
10560 fixup region crossing edge since this is now handled in
10561 split_block, and set up insertion point correctly since
10562 block may now end in a jump.
10563 (verify_hot_cold_block_grouping): Guard against checking when not in
10564 linearized RTL mode.
10565 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10566 notes.
10567 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10568 rtl_verify_flow_info, so not called in cfglayout mode.
10569 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10570 (fixup_reorder_chain): Remove old code that attempted to fixup region
10571 crossing note as this is now handled in force_nonfallthru_and_redirect.
10572 (duplicate_insn_chain): Don't duplicate switch section notes.
10573 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10574 note.
10575 * basic-block.h (emit_barrier_after_bb): Declare.
10576
66071e10
KT
105772013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10578
10579 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10580 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10581 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10582
0e26bf3d
KT
105832013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10584
10585 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10586 where appropriate.
10587 * config/arm/ldmstm.md: Regenerate.
10588
12b4e7ef
KT
105892013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10590
10591 * config/arm/sync.md (atomic_loaddi_1):
10592 Disable predication for arm_restrict_it.
10593 (arm_load_exclusive<mode>): Likewise.
10594 (arm_load_exclusivesi): Likewise.
10595 (arm_load_exclusivedi): Likewise.
10596 (arm_load_acquire_exclusive<mode>): Likewise.
10597 (arm_load_acquire_exclusivesi): Likewise.
10598 (arm_load_acquire_exclusivedi): Likewise.
10599 (arm_store_exclusive<mode>): Likewise.
10600 (arm_store_exclusive<mode>): Likewise.
10601 (arm_store_release_exclusivedi): Likewise.
10602 (arm_store_release_exclusive<mode>): Likewise.
10603
15d16c8a
RB
106042013-06-06 Richard Biener <rguenther@suse.de>
10605
10606 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10607 after LTO_null.
10608 (lto_tag_is_tree_code_p): Adjust.
10609 (lto_tag_is_gimple_code_p): Likewise.
10610 (lto_gimple_code_to_tag): Likewise.
10611 (lto_tag_to_gimple_code): Likewise.
10612 (lto_tree_code_to_tag): Likewise.
10613 (lto_tag_to_tree_code): Likewise.
10614 * data-streamer.h (streamer_write_hwi_in_range): Use
10615 uhwi streaming to stream the normalized range.
10616 (streamer_read_hwi_in_range): Likewise.
10617
17a7fc37
KT
106182013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10619
10620 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10621 (predicable_short_it): Likewise.
10622 (predicated): Likewise.
10623 (enabled): Handle above.
10624 (define_cond_exec): Set predicated attribute to yes.
10625
b57ca59b
MS
106262013-06-05 Mike Stump <mikestump@comcast.net>
10627
10628 * gdbinit.in (__FUNCTION__): Add.
10629
c1e183a9
UB
106302013-06-05 Uros Bizjak <ubizjak@gmail.com>
10631
10632 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10633 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10634
0378bddb
JH
106352013-06-05 Jan Hubicka <jh@suse.cz>
10636
10637 * varasm.c (mark_decl_referenced): Revert the removal until targets
10638 are fixed.
10639
8f8a2057
DE
106402013-06-05 David Edelsohn <dje.gcc@gmail.com>
10641
10642 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
10643 instead of mark_decl_referenced.
10644
edb983b2
JH
106452013-06-05 Jan Hubicka <jh@suse.cz>
10646
10647 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
10648 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
10649 and symtab_used_from_object_file_p.
10650 (cgraph_make_node_local_1): Clear forced_by_abi.
10651 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
10652 * cgraph.h (symtab_node_base): Add forced_by_abi.
10653 (decide_is_variable_needed): Remove.
10654 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
10655 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
10656 (decide_is_symbol_needed): ... this one; handle symbols in general;
10657 always analyze virtuals; honnor forced_by_abi.
10658 (cgraph_finalize_function): Update.
10659 (varpool_finalize_decl): Update.
10660 (symbol_defined_and_needed): Remove.
10661 (analyze_functions): Update.
10662 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10663 output_refs, input_overwrite_node): Handle forced_by_abi.
10664 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
10665 (address_taken_from_non_vtable_p): ... this one.
10666 (comdat_can_be_unshared_p_1): New function.
10667 (cgraph_comdat_can_be_unshared_p): Rename to ...
10668 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
10669 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
10670 (function_and_variable_visibility): Clear forced_by_abi as needed.
10671 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
10672 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
10673 * symtab.c (dump_symtab_base): Dump forced_by_abi.
10674 * varpool.c (decide_is_variable_needed): Remove.
10675
9912dbe5
KT
106762013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10677
10678 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
10679 (arm_option_override): Override arm_restrict_it where appropriate.
10680 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
10681 * config/arm/arm.opt (mrestrict-it): New command-line option.
10682 * doc/invoke.texi: Document -mrestrict-it.
10683
34c136b6
DM
106842013-06-05 David Malcolm <dmalcolm@redhat.com>
10685
10686 * tsan.c (tsan_atomic_table): Make const.
10687
a367df53
RB
106882013-06-05 Richard Biener <rguenther@suse.de>
10689
10690 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
10691 index associated with the tree we are supposed to replace.
10692 * tree-streamer-out.c (pack_ts_base_value_fields): Output
10693 TREE_ASM_WRITTEN as zero for everything but SSA names.
10694
70d51a19
DM
106952013-06-05 David Malcolm <dmalcolm@redhat.com>
10696
10697 * tree-ssa-structalias.c (call_stmt_vars): Make static.
10698
b9bd2075
JH
106992013-06-04 Jan Hubicka <jh@suse.cz>
10700
10701 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
10702 (input_node, input_varpool_node): Handle correctly external same
10703 body aliases.
10704 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
10705 nodes at ltrans stage.
10706
aaae719d
JH
107072013-06-04 Jan Hubicka <jh@suse.cz>
10708
10709 * ipa-inline.c (update_caller_keys): Fix availability test.
10710 (update_callee_keys): Likewise.
10711 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
10712 to follow ELF standard.
10713
107eea2c
JU
107142013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
10715
10716 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
10717 (mips64r5900el-*-elf*): New configurations.
10718 * config/mips/mips-cpus.def (r5900): New processor.
10719 * config/mips/mips-tables.opt: Regenerate.
10720 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
10721 (mips_issue_rate): Handle PROCESSOR_R5900.
10722 (mips_reorg_process_insns): Force reorder mode for the R5900.
10723 * config/mips/mips.h (TARGET_MIPS5900): Define.
10724 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
10725 TARGET_MIPS5900.
10726 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
10727 TARGET_MIPS5900.
10728 * config/mips/mips.md (processor): Add r5900.
10729 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
10730
b7342d25
IB
107312013-06-04 Ian Bolton <ian.bolton@arm.com>
10732
10733 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
10734 into function to generate MOVI instruction.
c1e183a9 10735 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
10736 (aarch64_preferred_simd_mode): Turn into wrapper.
10737 (aarch64_output_scalar_simd_mov_immediate): New function.
10738 * config/aarch64/aarch64-protos.h: Add prototype for above.
10739
81c2dfb9
IB
107402013-06-04 Ian Bolton <ian.bolton@arm.com>
10741
10742 * config/aarch64/aarch64.c (simd_immediate_info): Remove
10743 element_char member.
10744 (sizetochar): Return signed char.
10745 (aarch64_simd_valid_immediate): Remove elchar and other
10746 unnecessary variables.
10747 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
10748 Calculate element_char as required.
10749 * config/aarch64/aarch64-protos.h: Update and move prototype
10750 for aarch64_output_simd_mov_immediate.
10751 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
10752 Update arguments.
10753
48063b9d
IB
107542013-06-04 Ian Bolton <ian.bolton@arm.com>
10755
10756 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
10757 information completed by aarch64_simd_valid_immediate.
10758 (aarch64_legitimate_constant_p): Update arguments.
10759 (aarch64_simd_valid_immediate): Work with struct rather than many
10760 pointers.
10761 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
10762 (aarch64_simd_make_constant): Update arguments.
10763 (aarch64_output_simd_mov_immediate): Work with struct rather than
10764 many pointers. Output immediate directly rather than as operand.
10765 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10766 Update prototype.
10767 * config/aarch64/constraints.md (Dn): Update arguments.
10768
3ea63f60
IB
107692013-06-04 Ian Bolton <ian.bolton@arm.com>
10770
10771 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
10772 longer static.
10773 (aarch64_simd_immediate_valid_for_move): Remove.
10774 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
10775 (aarch64_simd_make_constant): Update call.
10776 (aarch64_output_simd_mov_immediate): Update call.
10777 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10778 Add prototype.
10779 * config/aarch64/constraints.md (Dn): Update call.
10780
d8edd899
IB
107812013-06-04 Ian Bolton <ian.bolton@arm.com>
10782
10783 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
10784 return type to bool for prototype.
10785 (aarch64_legitimate_constant_p): Check for true instead of not -1.
10786 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
10787 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
10788
44b20bb8
CM
107892013-06-04 Catherine Moore <clm@codesourcery.com>
10790
10791 * config/mips/mips.opt (meva): New.
c1e183a9 10792 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
10793 (ASM_SPEC): Handle -meva.
10794 * doc/invoke.texi (meva): Document.
10795
52befbd8
AM
107962013-06-04 Alan Modra <amodra@gmail.com>
10797
10798 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
10799 constant output.
10800
aadaf24e
KT
108012013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10802
10803 * rtl.def: Add extra fourth optional field to define_cond_exec.
10804 * gensupport.c (process_one_cond_exec): Process attributes from
10805 define_cond_exec.
10806 * doc/md.texi: Document fourth field in define_cond_exec.
10807
0cd9e9ee
EB
108082013-06-04 Eric Botcazou <ebotcazou@adacore.com>
10809
10810 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
10811 out the processing order as in store_bit_field_1.
10812
cb0f665d
JH
108132013-06-04 Jan Hubicka <jh@suse.cz>
10814
10815 PR middle-end/57500
10816 * cgraphunit.c (cgraph_process_same_body_aliases): Create
10817 non-VAR_DECL node if it does not exist yet.
10818
53984b9b
RS
108192013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
10820
10821 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
10822 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
10823 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
10824 target_cpu_default setting.
10825
5d318fd4
TJ
108262013-06-03 Teresa Johnson <tejohnson@google.com>
10827
10828 * dumpfile.c (opt_info_switch_p): Change -fopt-info
10829 default to -fopt-info=optimized instead of all.
10830 * doc/invoke.texi: Ditto.
10831 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
10832 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
10833 (execute_vect_slp): Emit BB vectorization success under
10834 MSG_OPTIMIZED_LOCATIONS.
10835 * tree-vect-slp.c (vect_slp_transform_bb): Change
10836 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
10837 * tree-vect-loop.c (vect_transform_loop): Ditto.
10838
ec3af349
JM
108392013-06-03 Jason Merrill <jason@redhat.com>
10840
10841 PR c++/57415
10842 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10843 Use TARGET_EXPR for C++.
10844
1baf9159
JJ
108452013-06-03 Jakub Jelinek <jakub@redhat.com>
10846
10847 PR rtl-optimization/57268
0cd9e9ee 10848 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
10849 if DEBUG_INSN_P (insn).
10850
10851 Reapply
10852 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10853
10854 PR rtl-optimization/57268
10855 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10856 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10857
0f1d3965
YR
108582013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10859
10860 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
10861 (ix86_avoid_lea_for_addr): Likewise.
10862 (exact_dependency_1): Likewise.
10863 (ix86_adjust_cost): Likewise.
10864 (swap_top_of_ready_list): Fix formatting and !reload_completed check
10865 removed.
10866 (do_reorder_for_imul): Fix typo, formatting and
10867 !reload_completed check removed.
10868 (ix86_sched_reorder): Fix typo and formatting.
10869 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
10870 list.
10871
3bc30db4
SN
108722013-06-03 Sofiane Naci <sofiane.naci@arm.com>
10873
10874 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
10875
19cc6fac
EB
108762013-06-03 Eric Botcazou <ebotcazou@adacore.com>
10877
10878 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
10879 <STRING_CST>: Likewise.
10880 <VECTOR_CST>: Likewise.
10881
c68a6e08
JW
108822013-06-01 Janus Weil <janus@gcc.gnu.org>
10883 Mikael Morin <mikael@gcc.gnu.org>
10884
10885 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
10886 * config.in: Regenerated.
10887 * configure: Regenerated.
10888
38e55e5c
JH
108892013-06-01 Jan Hubicka <jh@suse.cz>
10890
10891 PR middle-end/57366
10892 * cgraphunit.c (compile): When weakref is not supported,
10893 set up transparent aliases before final output pass.
10894 * varasm.c (assemble_alias): Do not try to do it here.
10895
eb51d2ff
JH
108962013-06-01 Jan Hubicka <jh@suse.cz>
10897
10898 PR middle-end/57467
10899 * passes.c (for_per_function): Skip unanalyzed functions.
10900
40a7fe1e
JH
109012013-06-01 Jan Hubicka <jh@suse.cz>
10902
10903 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
10904 (lto_symtab_merge_symbols_1): ... this one.
10905 (lto_symtab_merge_cgraph_nodes): Rename to ...
10906 (lto_symtab_merge_symbols): ... this one; simplify.
10907 * cgraph.c (same_body_aliases_done): Rename to ...
10908 (cpp_implicit_aliases_done): ... this one.
10909 (cgraph_create_function_alias): Update.
10910 (cgraph_same_body_alias): Update.
c1e183a9 10911 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 10912 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 10913 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
10914 (cgraph_node): Remove same_body_alias.
10915 (varpool_node): Remove alias_of and extra_name_alias.
10916 (same_body_aliases_done): Rename to ..
10917 (cpp_implicit_aliases_done): ... this one.
10918 (symtab_alias_ultimate_target): Add default parameter.
10919 (symtab_resolve_alias): New function.
10920 (fixup_same_cpp_alias_visibility): Declare.
10921 (cgraph_function_node): Add default parameter.
10922 (cgraph_node_asm_name): Likewise.
10923 (cgraph_function_or_thunk_node): Add default parameter; do
10924 not ICE when it is NULL.
10925 (varpool_variable_node): Likewise.
10926 * tree-emutls.c (create_emultls_var): Update.
10927 (ipa_lower_emutls): Update.
10928 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
10929 (cgraph_reset_node): Reset alias info.
10930 (cgraph_finalize_function): Update.
10931 (fixup_same_cpp_alias_visibility): Move to symtab.c.
10932 (analyze_function): Simplify.
10933 (cgraph_process_same_body_aliases): Simplify.
10934 (analyze_functions): Fixup same body aliases.
10935 (handle_alias_pairs): Simplify.
10936 (assemble_thunk): Update.
10937 (assemble_thunks_and_aliases): Update.
10938 (output_weakrefs): Rewrite.
10939 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
10940 (lto_output_varpool_node): Likewise.
10941 (compute_ltrans_boundary): Remve assert.
10942 (get_alias_symbol): New functoin.
10943 (input_node): Rewrite alias handling.
10944 (input_varpool_node): Likewise.
10945 * ipa-pure-const.c (propagate_pure_const): Fix formating.
10946 * ipa.c (process_references): Handle weakrefs correctly.
10947 (symtab_remove_unreachable_nodes): Likewise.
10948 * trans-mem.c (get_cg_data): Update.
10949 (ipa_tm_create_version_alias): Update.
10950 (ipa_tm_execute): Update.
10951 * symtab.c (dump_symtab_base): Dump aliases.
10952 (verify_symtab_base): Verify aliases.
10953 (symtab_node_availability): New function.
10954 (symtab_alias_ultimate_target): Simplify.
10955 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
10956 handle all the fixup cases.
10957 (symtab_resolve_alias): New function.
10958 * passes.c (ipa_write_summaries): Handle weakrefs.
10959 * varpool.c (varpool_analyze_node): Simplify.
10960 (assemble_aliases): Update.
10961 (varpool_create_variable_alias): Simplify.
10962 (varpool_extra_name_alias): Simplify.
10963 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
10964 (lto_symtab_merge_symbols): ... this one.
10965
21759881
DT
109662013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
10967
10968 Revert
10969 PR rtl-optimization/57268
10970 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10971 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10972
daf4e940
TB
109732013-06-01 Tobias Burnus <burnus@net-b.de>
10974
10975 Partially reverted:
10976 2013-05-31 Tobias Burnus <burnus@net-b.de>
10977
10978 PR middle-end/57073
10979 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
10980 further up.
10981
c359d8d0
DT
109822013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10983
10984 PR rtl-optimization/57268
10985 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10986 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10987
4172215d
EB
109882013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10989
10990 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
10991 unordered comparison operators when -fno-trapping-math is in effect
10992 on the e500.
10993 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
10994 and implement unordered comparison operators properly on the e500.
10995
a8c50132
EB
109962013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10997
10998 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
10999 for constant scalar integers.
11000 (simplify_relational_operation_1): Likewise.
11001
44626634
SB
110022013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
11003
11004 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
11005 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
11006 Fix comment.
11007
55805e54
YR
110082013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11009 Igor Zamyatin <igor.zamyatin@intel.com>
11010
11011 Silvermont (SLM) architecture performance tuning.
11012 * config/i386/i386.h (enum ix86_tune_indices): Add
11013 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
11014 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
11015
11016 * config/i386/i386.c (initial_ix86_tune_features)
11017 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
11018 (ix86_lea_outperforms): Handle Silvermont tuning.
11019 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
11020 call.
11021 (ix86_use_lea_for_mov): Likewise.
11022 (ix86_avoid_lea_for_addr): Likewise.
11023 (ix86_lea_for_add_ok): Likewise.
11024 (exact_dependency_1): New function.
11025 (exact_store_load_dependency): Likewise.
11026 (ix86_adjust_cost): Handle Silvermont tuning.
11027 (do_reoder_for_imul): Likewise.
11028 (swap_top_of_ready_list): New function.
11029 (ix86_sched_reorder): Changed to handle Silvermont tuning.
11030
11031 * config/i386/i386.md (peepholes that split memory operand in fp
11032 converts): New.
11033
e19c9de2
MS
110342013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11035
11036 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11037 Remove un-necessary braces.
11038
38e6c9a6
MS
110392013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
11040
11041 * config/aarch64/aarch64.c (aarch64_classify_symbol):
11042 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
11043
e3530904
TB
110442013-05-31 Tobias Burnus <burnus@net-b.de>
11045
11046 PR middle-end/57073
c1e183a9 11047 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 11048
b6af05a9
KT
110492013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11050
11051 PR target/56315
11052 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
11053 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
11054 * config/arm/neon.md (iordi3_neon): Remove.
11055 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
11056 * config/arm/predicates.md (imm_for_neon_logic_operand):
11057 Move to earlier in the file.
11058 (neon_logic_op2): Likewise.
11059 (arm_iordi_operand_neon): New predicate.
11060
f800c166
RB
110612013-05-31 Richard Biener <rguenther@suse.de>
11062
11063 PR tree-optimization/57478
11064 PR tree-optimization/57453
11065 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
11066 are life as well.
11067
e571fa59
KP
110682013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11069
11070 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
11071 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
11072
0fa6e0ef
TB
110732013-05-30 Tobias Burnus <burnus@net-b.de>
11074 Thomas Koenig <tkoenig@gcc.gnu.org>
11075
11076 PR middle-end/57073
11077 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
11078 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
11079
4688ddf5
SB
110802013-05-30 Steven Bosscher <steven@gcc.gnu.org>
11081
0fa6e0ef 11082 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 11083
3b9ceb4b
VM
110842013-05-30 Vladimir Makarov <vmakarov@redhat.com>
11085
11086 * target.def (register_usage_leveling_p): New hook.
11087 * targhooks.c (default_register_usage_leveling_p): New.
11088 * targhooks.h (default_register_usage_leveling_p): New prototype.
11089 * lra-assigns.c (register_usage_leveling_p): Use the hook.
11090 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
11091 * doc/tm.texi: Update.
11092 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
11093
65f9e789
IB
110942013-05-30 Ian Bolton <ian.bolton@arm.com>
11095
11096 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
11097 (*insv_reg<mode>): New define_insn.
11098
12211b99 110992013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
11100
11101 PR rtl-optimization/57439
11102 * postreload.c (move2add_valid_value_p): Check that we have
11103 a zero subreg_regno_offset when accessing the register in
11104 the requested mode.
11105
0b871ccf
YR
111062013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11107 Igor Zamyatin <igor.zamyatin@intel.com>
11108
11109 Silvermont (SLM) architecture pipeline model, tuning and
11110 insn selection.
11111 * config.gcc: Add slm config options and target.
11112
11113 * config/i386/slm.md: New.
11114
11115 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
11116
f43245d1 11117 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
11118 PROCESSOR_SLM.
11119 (ix86_target_macros_internal): Likewise.
11120
f43245d1 11121 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
11122 (m_SLM): New macro flag.
11123 (initial_ix86_tune_features): Set m_SLM.
11124 (x86_accumulate_outgoing_args): Likewise.
11125 (x86_arch_always_fancy_math_387): Likewise.
11126 (processor_target_table): Add slm cost.
11127 (cpu_names): Add slm cpu name.
11128 (x86_option_override_internal): Set SLM ISA.
11129 (ix86_issue_rate): New case PROCESSOR_SLM.
11130 (ia32_multipass_dfa_lookahead): Likewise.
11131 (fold_builtin_cpu): Add slm.
11132
11133 * config/i386/i386.h (TARGET_SLM): New target macro.
11134 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
11135 (processor_type): Add PROCESSOR_SLM.
11136
11137 * config/i386/i386.md (cpu): Add new value "slm".
11138 (slm.md): Include slm.md.
11139
24d5b097
XG
111402013-05-30 Bernd Schmidt <bernds@codesourcery.com>
11141 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11142
11143 * config/arm/arm-protos.h: Add and update function protos.
11144 * config/arm/arm.c (use_simple_return_p): New added.
11145 (thumb2_expand_return): Check simple_return flag.
11146 * config/arm/arm.md: Add simple_return and conditional simple_return.
11147 * config/arm/iterators.md: Add iterator for return and simple_return.
11148
c1cccc15
ZC
111492013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11150
11151 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
11152 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
11153 (arm_emit_vfp_multi_reg_pop): Likewise.
11154 (thumb2_emit_ldrd_pop): Likewise.
11155 (arm_expand_epilogue): Add misc REG_CFA notes.
11156 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
11157
3a4f280b
LC
111582013-05-29 Lawrence Crowl <crowl@google.com>
11159
11160 * config/arm/t-arm: Update for below.
11161
11162 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
11163 Change type to hash_table. Update dependent calls and types.
11164
11165 * config/i386/t-cygming: Update for below.
11166
11167 * config/i386/t-interix: Update for below.
11168
11169 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
11170 Change type to hash_table. Update dependent calls and types.
11171 (i386_find_on_wrapper_list::wrappers): Likewise.
11172
11173 * config/ia64/t-ia64: Update for below.
11174
11175 * config/ia64/ia64.c (bundle_state_table):
11176 Change type to hash_table. Update dependent calls and types.
11177
11178 * config/mips/mips.c (mips_reorg_process_insns::htab):
11179 Change type to hash_table. Update dependent calls and types.
11180
11181 * config/sol2.c (solaris_comdat_htab):
11182 Change type to hash_table. Update dependent calls and types.
11183
11184 * config/t-sol2: Update for above.
11185
1388a0e3
TJ
111862013-05-29 Teresa Johnson <tejohnson@google.com>
11187
11188 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
11189 functions are not yet marked as defined.
11190
a5965b52 111912013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11192 Pat Haugen <pthaugen@us.ibm.com>
11193 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
11194
11195 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
11196 instructions.
11197 (VEC_A): Likewise.
11198 (VEC_C): Likewise.
11199 (vrotl<mode>3): Likewise.
11200 (vashl<mode>3): Likewise.
11201 (vlshr<mode>3): Likewise.
11202 (vashr<mode>3): Likewise.
11203
11204 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11205 support for power8 V2DI builtins.
11206
11207 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
11208 power8 V2DI builtins.
11209 (vupkhsw): Likewise.
11210 (vupklsw): Likewise.
11211 (vaddudm): Likewise.
11212 (vminsd): Likewise.
11213 (vmaxsd): Likewise.
11214 (vminud): Likewise.
11215 (vmaxud): Likewise.
11216 (vpkudum): Likewise.
11217 (vpksdss): Likewise.
11218 (vpkudus): Likewise.
11219 (vpksdus): Likewise.
11220 (vrld): Likewise.
11221 (vsld): Likewise.
11222 (vsrd): Likewise.
11223 (vsrad): Likewise.
11224 (vsubudm): Likewise.
11225 (vcmpequd): Likewise.
11226 (vcmpgtsd): Likewise.
11227 (vcmpgtud): Likewise.
11228 (vcmpequd_p): Likewise.
11229 (vcmpgtsd_p): Likewise.
11230 (vcmpgtud_p): Likewise.
11231 (vupkhsw): Likewise.
11232 (vupklsw): Likewise.
11233 (vaddudm): Likewise.
11234 (vmaxsd): Likewise.
11235 (vmaxud): Likewise.
11236 (vminsd): Likewise.
11237 (vminud): Likewise.
11238 (vpksdss): Likewise.
11239 (vpksdus): Likewise.
11240 (vpkudum): Likewise.
11241 (vpkudus): Likewise.
11242 (vrld): Likewise.
11243 (vsld): Likewise.
11244 (vsrad): Likewise.
11245 (vsrd): Likewise.
11246 (vsubudm): Likewise.
11247
11248 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11249 support for power8 V2DI instructions.
11250
11251 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
11252 power8 V2DI instructions. Combine pack and unpack insns to use an
11253 iterator for each mode. Check whether a particular mode supports
11254 Altivec instructions instead of just checking TARGET_ALTIVEC.
11255 (UNSPEC_VPKUWUM): Likewise.
11256 (UNSPEC_VPKSHSS): Likewise.
11257 (UNSPEC_VPKSWSS): Likewise.
11258 (UNSPEC_VPKUHUS): Likewise.
11259 (UNSPEC_VPKSHUS): Likewise.
11260 (UNSPEC_VPKUWUS): Likewise.
11261 (UNSPEC_VPKSWUS): Likewise.
11262 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
11263 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
11264 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
11265 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
11266 (UNSPEC_VUPKHSB): Likewise.
11267 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
11268 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
11269 (UNSPEC_VUPKHSH): Likewise.
11270 (UNSPEC_VUPKLSB): Likewise.
11271 (UNSPEC_VUPKLSH): Likewise.
11272 (VI2): Likewise.
11273 (VI_char): Likewise.
11274 (VI_scalar): Likewise.
11275 (VI_unit): Likewise.
11276 (VP): Likewise.
11277 (VP_small): Likewise.
11278 (VP_small_lc): Likewise.
11279 (VU_char): Likewise.
11280 (add<mode>3): Likewise.
11281 (altivec_vaddcuw): Likewise.
11282 (altivec_vaddu<VI_char>s): Likewise.
11283 (altivec_vadds<VI_char>s): Likewise.
11284 (sub<mode>3): Likewise.
11285 (altivec_vsubcuw): Likewise.
11286 (altivec_vsubu<VI_char>s): Likewise.
11287 (altivec_vsubs<VI_char>s): Likewise.
11288 (altivec_vavgs<VI_char>): Likewise.
11289 (altivec_vcmpbfp): Likewise.
11290 (altivec_eq<mode>): Likewise.
11291 (altivec_gt<mode>): Likewise.
11292 (altivec_gtu<mode>): Likewise.
11293 (umax<mode>3): Likewise.
11294 (smax<mode>3): Likewise.
11295 (umin<mode>3): Likewise.
11296 (smin<mode>3): Likewise.
11297 (altivec_vpkuhum): Likewise.
11298 (altivec_vpkuwum): Likewise.
11299 (altivec_vpkshss): Likewise.
11300 (altivec_vpkswss): Likewise.
11301 (altivec_vpkuhus): Likewise.
11302 (altivec_vpkshus): Likewise.
11303 (altivec_vpkuwus): Likewise.
11304 (altivec_vpkswus): Likewise.
11305 (altivec_vpks<VI_char>ss): Likewise.
11306 (altivec_vpks<VI_char>us): Likewise.
11307 (altivec_vpku<VI_char>us): Likewise.
11308 (altivec_vpku<VI_char>um): Likewise.
11309 (altivec_vrl<VI_char>): Likewise.
11310 (altivec_vsl<VI_char>): Likewise.
11311 (altivec_vsr<VI_char>): Likewise.
11312 (altivec_vsra<VI_char>): Likewise.
11313 (altivec_vsldoi_<mode>): Likewise.
11314 (altivec_vupkhsb): Likewise.
11315 (altivec_vupkhs<VU_char>): Likewise.
11316 (altivec_vupkls<VU_char>): Likewise.
11317 (altivec_vupkhsh): Likewise.
11318 (altivec_vupklsb): Likewise.
11319 (altivec_vupklsh): Likewise.
11320 (altivec_vcmpequ<VI_char>_p): Likewise.
11321 (altivec_vcmpgts<VI_char>_p): Likewise.
11322 (altivec_vcmpgtu<VI_char>_p): Likewise.
11323 (abs<mode>2): Likewise.
11324 (vec_unpacks_hi_v16qi): Likewise.
11325 (vec_unpacks_hi_v8hi): Likewise.
11326 (vec_unpacks_lo_v16qi): Likewise.
11327 (vec_unpacks_hi_<VP_small_lc>): Likewise.
11328 (vec_unpacks_lo_v8hi): Likewise.
11329 (vec_unpacks_lo_<VP_small_lc>): Likewise.
11330 (vec_pack_trunc_v8h): Likewise.
11331 (vec_pack_trunc_v4si): Likewise.
11332 (vec_pack_trunc_<mode>): Likewise.
11333
11334 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
11335 V2DI builtins.
11336 (vec_vmaxsd): Likewise.
11337 (vec_vmaxud): Likewise.
11338 (vec_vminsd): Likewise.
11339 (vec_vminud): Likewise.
11340 (vec_vpksdss): Likewise.
11341 (vec_vpksdus): Likewise.
11342 (vec_vpkudum): Likewise.
11343 (vec_vpkudus): Likewise.
11344 (vec_vrld): Likewise.
11345 (vec_vsld): Likewise.
11346 (vec_vsrad): Likewise.
11347 (vec_vsrd): Likewise.
11348 (vec_vsubudm): Likewise.
11349 (vec_vupkhsw): Likewise.
11350 (vec_vupklsw): Likewise.
11351
e70670cf
JH
113522013-05-29 Jan Hubicka <jh@suse.cz>
11353
11354 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11355 flags; reorder rest of fields in more consistent way.
11356 (varpool_node): Remove analyzed, finalized and alias.
11357 (cgraph_ndoe): Likewise.
11358 (symtab_alias_ultimate_target): New function.
11359 (cgraph_function_node): Move offline.
11360 (cgraph_reset_node): Declare.
11361 (cgraph_comdat_can_be_unshared_p): Remove.
11362 (varpool_remove_initializer): Declare.
11363 (varpool_first_defined_variable, varpool_next_defined_variable
11364 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11365 (cgraph_function_with_gimple_body_p): Update.
11366 (varpool_all_refs_explicit_p): Update.
11367 (symtab_alias_target): New function.
11368 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11369 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11370 (cgraph_function_or_thunk_node): Simplify using
11371 symtab_alias_ultimate_target.
e70670cf
JH
11372 (varpool_variable_node): Likewise.
11373 * cgraph.c (cgraph_create_function_alias): Update.
11374 (cgraph_add_thunk): Update.
11375 (cgraph_remove_node): Update.
11376 (dump_cgraph_node): Do not dump removed flags.
11377 (cgraph_function_body_availability): Update.
11378 (cgraph_propagate_frequency): Update.
11379 (verify_cgraph_node): Check sanity of local flag.
11380 (cgraph_function_node): Move here from cgraph.h; revamp for
11381 cgraph_function_or_thunk_node.
11382 * lto-symtab.c (lto_varpool_replace_node): Update.
11383 (lto_symtab_resolve_can_prevail_p): Update.
11384 (lto_symtab_merge_cgraph_nodes): Update.
11385 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11386 propagate_constants_accross_call, devirtualization_time_bonus,
11387 ipcp_propagate_stage): Update.
11388 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11389 * ipa-inline-transform.c (clone_inlined_nodes,
11390 preserve_function_body_p): Update.
e70670cf
JH
11391 * ipa-reference.c (propagate): Update.
11392 (write_node_summary_p): Update.
11393 * toplev.c (wrapup_global_declaration_2): Update.
11394 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11395 (analyze_function) ... this one.
11396 (cgraph_process_new_functions): Update.
11397 (cgraph_reset_node): Export.
11398 (cgraph_finalize_function): Update.
11399 (cgraph_add_new_function): Update.
11400 (process_function_and_variable_attributes): Update.
11401 (varpool_finalize_decl): Update.
11402 (symbol_finalized): Remove.
11403 (symbol_finalized_and_needed): Rename to ...
11404 (symbol_defined_and_needed): ... update.
11405 (cgraph_analyze_functions): Update.
11406 (handle_alias_pairs): Update.
11407 (mark_functions_to_output): Update.
11408 (assemble_thunk): Update.
11409 (output_in_order): Update.
11410 (output_weakrefs): Update.
11411 (finalize_compilation_unit): Update.
11412 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11413 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11414 input_node, input_varpool_node): Update.
11415 * dbxout.c (dbxout_expand_expr): Update.
11416 * cgraphclones.c (cgraph_clone_node): Update.
11417 (cgraph_copy_node_for_versioning): Update.
11418 (cgraph_materialize_clone): Update.
11419 (cgraph_materialize_all_clones): Update.
11420 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11421 propagate_pure_const, propagate_nothrow): Update.
11422 * lto-streamer-out.c (lto_output, write_symbol): Update.
11423 * ipa-utils.c (ipa_reverse_postorder): Update.
11424 * ipa-inline.c (can_inline_edge_p): Update.
11425 (update_caller_keys, ipa_inline): Update.
11426 * dwarf2out.c (reference_to_unused,
11427 premark_types_used_by_global_vars_helper): Update.
11428 * tree-eh.c (tree_could_trap_p): Update.
11429 * ipa-split.c (consider_split, execute_split_functions): Update.
11430 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11431 has_addr_references_p): Update; move ahead in file for better
11432 readability.
e70670cf
JH
11433 (process_references): Simplify.
11434 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11435 bodies are removed.
11436 (cgraph_comdat_can_be_unshared_p): Make static.
11437 (cgraph_externally_visible_p): Update.
11438 (varpool_externally_visible_p): Update.
11439 (function_and_variable_visibility): Update.
11440 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11441 ipa_tm_mark_force_output_node): Update.
11442 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11443 estimate_edge_devirt_benefit, inline_generate_summary,
11444 inline_write_summary): Update.
11445 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11446 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11447 (ipa_print_node_params, ipa_prop_read_section,
11448 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11449 * varasm.c (mark_decl_referenced): Update.
11450 (assemble_alias, dump_tm_clone_pairs): Update.
11451 * tree-inline.c (copy_bb): Update.
11452 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11453 Update.
11454 * symtab.c (dump_symtab_base): Print new flags.
11455 (verify_symtab_base): Verify new flags.
11456 (symtab_alias_ultimate_target): New function.
11457 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11458 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11459 Update.
c1e183a9
UB
11460 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11461 Update.
e70670cf
JH
11462 * i386.c (ix86_get_function_versions_dispatcher,
11463 ix86_generate_version_dispatcher_body): Update.
11464 (fold_builtin_cpu): Use varpool_add_new_variable.
11465 * varpool.c (varpool_remove_initializer): Break out from ...
11466 (varpool_remove_node): ... this one.
11467 (dump_varpool_node, varpool_node_for_asm,
11468 cgraph_variable_initializer_availability, varpool_analyze_node,
11469 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11470 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11471 Update.
e70670cf 11472
182802ad
JH
114732013-05-29 Jan Hubicka <jh@suse.cz>
11474
11475 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11476
8190b609
ER
114772013-05-29 Easwaran Raman <eraman@google.com>
11478
11479 PR tree-optimization/57442
11480 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11481 when control exits the main loop.
11482
69f5aa9b
SKS
114832013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11484
11485 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11486 and RX600.
c1e183a9 11487 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11488 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11489 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11490 option.
11491
4b847da9
BS
114922013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11493
11494 PR tree-optimization/57441
11495 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11496 Don't limit size of incr_vec to number of candidates.
11497
4fc43c39
SE
114982013-05-29 Steve Ellcey <sellcey@imgtec.com>
11499
11500 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11501 and mips16 directories.
c1e183a9 11502 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11503 (MULTILIB_DIRNAMES): Ditto.
11504 (MULTILIB_EXCEPTIONS): Add new exceptions.
11505 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11506 (MULTILIB_DIRNAMES): Ditto.
11507 (MULTILIB_EXCEPTIONS): Add new exceptions.
11508
12211b99 115092012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11510 Marcus Shawcroft <marcus.shawcroft@arm.com>
11511
11512 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11513 SYMBOL_TINY_ABSOLUTE.
11514 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11515 SYMBOL_TINY_ABSOLUTE.
11516 (aarch64_expand_mov_immediate): Likewise.
11517 (aarch64_classify_symbol): Likewise.
11518 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11519 Permit SYMBOL_TINY_ABSOLUTE.
11520 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11521
12211b99 115222013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11523 Marcus Shawcroft <marcus.shawcroft@arm.com>
11524
11525 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11526 Refactor if/switch. Replace gcc_assert with if.
11527
c0186656
GG
115282013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11529
11530 * config/i386/i386.c (initial_ix86_tune_features): Enable
11531 FP Reassociation for AMD bdver1 and bdver2.
11532
d20188f3
MJ
115332013-05-29 Martin Jambor <mjambor@suse.cz>
11534
11535 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11536 and IMAGPART_EXPR do not occur within other handled_components.
11537
292cba13
RB
115382013-05-29 Richard Biener <rguenther@suse.de>
11539
11540 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11541 access on whether the use is in the BB we currently try to
11542 vectorize.
11543 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11544 vectorize to vect_bb_slp_scalar_cost.
11545
6eddf228
RB
115462013-05-29 Richard Biener <rguenther@suse.de>
11547
11548 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11549 computing scalar cost offsetted by stmts that are kept live
11550 by scalar uses.
11551 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11552 for computation of scalar cost.
11553
7df36117
SE
115542013-05-28 Steve Ellcey <sellcey@mips.com>
11555
11556 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11557
36536d79
BI
115582013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11559
11560 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11561 array notation built-in reduction functions.
11562 * doc/passes.texi (Passes): Added documentation about changes done
11563 for Cilk Plus.
11564 * doc/invoke.texi (C Dialect Options): Added documentation about
11565 the -fcilkplus flag.
11566 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11567 (BUILTINS_DEF): Depend on cilkplus.def.
11568 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11569 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11570 * cilkplus.def: New file.
11571
12211b99 115722013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11573
11574 PR rtl-optimization/57439
11575 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11576
9daf6dbb
ER
115772013-05-28 Easwaran Raman <eraman@google.com>
11578
11579 PR tree-optimization/57337
11580 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11581 (find_insert_point): Correctly identify the insertion point
11582 when two statements with the same UID is compared.
11583
fbd7e877
RB
115842013-05-28 Richard Biener <rguenther@suse.de>
11585
11586 PR tree-optimization/56787
11587 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11588 from the list of data references.
11589 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11590 clobbers.
11591 (vect_analyze_loop_operations): Likewise.
11592 (vect_transform_loop): Remove clobbers.
11593
bbba1117
MJ
115942013-05-28 Martin Jambor <mjambor@suse.cz>
11595
11596 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11597 and REALPART_EXPRs have scalar type.
11598
bd388c2a
RB
115992013-05-28 Richard Biener <rguenther@suse.de>
11600
11601 PR tree-optimization/57411
11602 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11603 virtual operands.
11604 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11605 virtual operand propagation.
11606
2f56a311
EB
116072013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11608
11609 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11610 destination register for bmasksi_vis.
11611 (vector_init_bshuffle): Likewise.
11612 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11613
5c3eacbb
EB
116142013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11615
11616 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11617 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11618 mode if the instruction isn't available in the original mode.
11619 * config/sparc/sparc.opt (mfix-ut699): New option.
11620 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11621 (divdf3): Turn into expander.
11622 (divdf3_nofix): New insn.
11623 (divdf3_fix): Likewise.
11624 (divsf3): Disable if -mfix-ut699.
11625 (sqrtdf2): Turn into expander.
11626 (sqrtdf2_nofix): New insn.
11627 (sqrtdf2_fix): Likewise.
11628 (sqrtsf2): Disable if -mfix-ut699.
11629
a1756c0a
RB
116302013-05-27 Richard Biener <rguenther@suse.de>
11631
11632 PR middle-end/57412
11633 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11634 block for the new loop.
11635
5a892248
RB
116362013-05-27 Richard Biener <rguenther@suse.de>
11637
11638 PR tree-optimization/57343
11639 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
11640 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
11641 (number_of_iterations_cond): Do not build the folded tree.
11642
d1de852b
RB
116432013-05-27 Richard Biener <rguenther@suse.de>
11644
11645 Revert
11646 PR middle-end/57381
11647 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11648 OEP_CONSTANT_ADDRESS_OF retained.
11649
11650 PR tree-optimization/57417
11651 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
11652 for unchanged base.
11653 (set_ssa_val_to): Compare addresses using
11654 get_addr_base_and_unit_offset.
11655
12211b99 116562013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
11657
11658 PR rtl-optimization/56833
11659 * postreload.c (move2add_record_mode): New function.
11660 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
11661 (move2add_use_add2_insn): Use move2add_record_sym_value.
11662 (move2add_use_add3_insn): Likewise.
11663 (reload_cse_move2add): Use move2add_valid_value_p and
11664 move2add_record_mode. Invalidate call-clobbered and REG_INC
11665 affected regs by setting reg_mode to VOIDmode.
11666 (move2add_note_store): Don't pretend the inside of a SUBREG is
11667 the actual destination. Invalidate single/leading registers by
11668 setting reg_mode to VOIDmode.
11669 Use move2add_record_sym_value, move2add_valid_value_p and
11670 move2add_record_mode.
11671
b03be25f
RB
116722013-05-27 Richard Biener <rguenther@suse.de>
11673
11674 PR tree-optimization/57396
11675 * tree-affine.c (double_int_constant_multiple_p): Properly
11676 return false for val == 0 and div != 0.
11677
44e88db2
RS
116782013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11679
11680 * config/mips/mips.h: Use #elif in preprocessor conditions.
11681
3b859704
RS
116822013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11683
11684 PR target/53916
11685 * config/mips/constraints.md (kl): New constraint.
11686 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
11687 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
11688 constraint for operand 0. Split after CSE for MIPS16. Emit a move
11689 from LO for MIPS16.
11690 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
11691
c979d5f5
RS
116922013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11693
11694 PR target/55777
11695 * config/mips/mips.c (mips_can_inline_p): New function.
11696 (TARGET_CAN_INLINE_P): Define.
11697
8e90de43
SB
116982013-05-25 Steven Bosscher <steven@gcc.gnu.org>
11699
11700 * sched-int.h (ds_t, dw_t): Make unsigned int.
11701 Fix documentation that describes how all the ds_t bits are used.
11702 Reserve the last bit for delayed-branch scheduling.
11703 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
11704 (BITS_PER_DEP_WEAK): Fix definition and documentation.
11705 (gen_dep_weak_1): Remove prototype.
11706 * sched-deps.c (get_dep_weak_1): Make static.
11707 * target.def (speculate_insn, needs_block_p, gen_spec_check,
11708 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
11709 * doc/tm.texi: Regenerate.
11710 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
11711
cb5cb194
SB
117122013-05-24 Steven Bosscher <steven@gcc.gnu.org>
11713
11714 PR debug/56950
11715 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
11716
5bd93ff6
NS
117172013-05-24 Nathan Sidwell <nathan@codesourcery.com>
11718 Sandra Loosemore <sandra@codesourcery.com>
11719
11720 * config.gcc (powerpc-*): Allow native for with-cpu.
11721
2343af65
JL
117222013-05-24 Jeff Law <law@redhat.com>
11723
11724 PR tree-optimization/57124
11725 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
11726 conversion feeding a condition if the range has an overflow
11727 if -fstrict-overflow. Add warnings for when we do make the
11728 transformation.
11729
3ad695b9
DC
117302013-05-24 Dehao Chen <dehao@google.com>
11731
04960246 11732 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
11733 (locus_discrim_hasher): Likewise.
11734 (locus_discrim_hasher::hash): Likewise.
11735 (locus_discrim_hasher::equal): Likewise.
11736
82338059
MJ
117372013-05-24 Martin Jambor <mjambor@suse.cz>
11738
11739 PR tree-optimization/57294
11740 * cgraph.h (ipa_record_stmt_references): Declare.
11741 * cgraphbuild.c (ipa_record_stmt_references): New function.
11742 (build_cgraph_edges): Use ipa_record_stmt_references.
11743 (rebuild_cgraph_edges): Likewise.
11744 (cgraph_rebuild_references): Likewise.
11745 * ipa-prop.c (ipa_modify_call_arguments): Discard references
11746 associated with the old statement and build references from the
11747 newly built statements.
11748 * ipa-ref.c (ipa_remove_stmt_references): New function.
11749 * ipa-ref.h (ipa_remove_stmt_references): Declare.
11750
1ccd4874
VM
117512013-05-24 Vladimir Makarov <vmakarov@redhat.com>
11752
55805e54 11753 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 11754 mem-mem moves.
55805e54 11755 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 11756 too.
55805e54 11757 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
11758 secondary memory moves.
11759 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
11760 reg set up in the current insn.
11761
25e25c73
DC
117622013-05-24 Dehao Chen <dehao@google.com>
11763
04960246 11764 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
11765 hash function.
11766 (locus_descrim_hasher::equal): Likewise.
04960246 11767 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
11768 (make_edges): Likewise.
11769 (next_discriminator_for_locus): Likewise.
11770 (same_line_p): Likewise.
11771 (assign_discriminators): Likewise.
11772 (make_cond_expr_edges): Likewise.
11773 (make_gimple_switch_edges): Likewise.
11774 (make_goto_expr_edges): Likewise.
11775 (make_gimple_asm_edges): Likewise.
11776
50d38551
IB
117772013-05-24 Ian Bolton <ian.bolton@arm.com>
11778
11779 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
11780 X format specifier to only display bottom 16 bits.
11781 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
11782 immediate to match for operand 2, since it will be masked.
11783
aea0101d
RB
117842013-05-24 Richard Biener <rguenther@suse.de>
11785
11786 PR tree-optimization/57287
11787 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
11788 all SSA names that occur in abnormal PHIs.
11789
634e03d3
AI
117902013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
11791
11792 PR tree-ssa/57385
11793 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
11794 that index is not negative.
11795
b17c024f
EB
117962013-05-24 Eric Botcazou <ebotcazou@adacore.com>
11797
11798 PR rtl-optimization/55177
11799 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
11800 (simplify_byte_swapping_operation): New.
11801 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
11802 (simplify_relational_operation_1): Deal with BSWAP.
11803
46aeac1b
RH
118042013-05-23 Richard Henderson <rth@redhat.com>
11805
11806 PR target/56742
11807 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
11808 (ix86_reorg): Call it.
11809
70cc1536
UB
118102013-05-23 Uros Bizjak <ubizjak@gmail.com>
11811
11812 PR target/57379
11813 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
11814 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
11815 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
11816
b3851501
CB
118172013-05-23 Christian Bruel <christian.bruel@st.com>
11818
11819 PR debug/57351
11820 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
11821
12211b99 118222013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
11823 Marcus Shawcroft <marcus.shawcroft@arm.com>
11824
11825 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
11826 * config/aarch64/constraints.md (Usa): Remove.
11827 * doc/md.texi (AArch64 Usa): Remove.
11828
12211b99 118292013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
11830 Marcus Shawcroft <marcus.shawcroft@arm.com>
11831
11832 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
11833 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
11834 * config/aarch64/predicates.md (aarch64_const_address): Remove.
11835 (aarch64_mov_operand): Use aarch64_mov_operand_p.
11836
12211b99 118372013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
11838
11839 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
11840 instruction (AdvSIMD).
11841 * config/aarch64/aarch64-builtins.c
11842 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
11843 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
11844
76c36cb1 118452013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
11846
11847 PR middle-end/57347
11848 * tree.h (contains_bitfld_component_ref_p): Declare.
11849 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
11850 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
11851 caller.
7d2fb524
MJ
11852 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
11853 not access a bit-field. Assert all final offsets are byte-aligned.
11854
ce521ae6
RB
118552013-05-23 Richard Biener <rguenther@suse.de>
11856
11857 PR tree-optimization/57380
11858 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
11859 least one invariant or re-used load.
11860 * passes.c (init_optimization_passes): Move pass_phiprop before
11861 pass_forwprop.
11862
75c7257f
JG
118632013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
11864
11865 * config/aarch64/aarch64-simd.md
11866 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
11867
af6d44b5
RB
118682013-05-23 Richard Biener <rguenther@suse.de>
11869
11870 PR middle-end/57381
11871 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11872 OEP_CONSTANT_ADDRESS_OF retained.
11873
bd3647bf
JJ
118742013-05-23 Jakub Jelinek <jakub@redhat.com>
11875
11876 PR middle-end/57344
70cc1536
UB
11877 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
11878 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 11879
a55757ea
RB
118802013-05-23 Richard Biener <rguenther@suse.de>
11881
11882 PR rtl-optimization/57341
11883 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
11884 instead of true_dependence.
11885
cfb00b41
DM
118862013-05-22 David Malcolm <dmalcolm@redhat.com>
11887
dd1c676f
DM
11888 * bb-reorder.c (branch_threshold): Make const.
11889 (exec_threshold): Ditto.
cfb00b41 11890
f62511da 118912013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11892 Pat Haugen <pthaugen@us.ibm.com>
11893 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11894
11895 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
11896 documentation for the power8 crypto builtins.
11897
11898 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
11899
11900 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
11901 macros for defining power8 builtin functions.
11902 (BU_P8V_AV_2): Likewise.
11903 (BU_P8V_AV_P): Likewise.
11904 (BU_P8V_VSX_1): Likewise.
11905 (BU_P8V_OVERLOAD_1): Likewise.
11906 (BU_P8V_OVERLOAD_2): Likewise.
11907 (BU_CRYPTO_1): Likewise.
11908 (BU_CRYPTO_2): Likewise.
11909 (BU_CRYPTO_3): Likewise.
11910 (BU_CRYPTO_OVERLOAD_1): Likewise.
11911 (BU_CRYPTO_OVERLOAD_2): Likewise.
11912 (XSCVSPDP): Fix typo, point to the correct instruction.
11913 (VCIPHER): Add power8 crypto builtins.
11914 (VCIPHERLAST): Likewise.
11915 (VNCIPHER): Likewise.
11916 (VNCIPHERLAST): Likewise.
11917 (VPMSUMB): Likewise.
11918 (VPMSUMH): Likewise.
11919 (VPMSUMW): Likewise.
11920 (VPERMXOR_V2DI): Likewise.
11921 (VPERMXOR_V4SI: Likewise.
11922 (VPERMXOR_V8HI: Likewise.
11923 (VPERMXOR_V16QI: Likewise.
11924 (VSHASIGMAW): Likewise.
11925 (VSHASIGMAD): Likewise.
11926 (VPMSUM): Likewise.
11927 (VPERMXOR): Likewise.
11928 (VSHASIGMA): Likewise.
11929
11930 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11931 __CRYPTO__ if the crypto instructions are available.
11932 (altivec_overloaded_builtins): Add support for overloaded power8
11933 builtins.
11934
11935 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
11936 support for power8 crypto builtins.
11937 (builtin_function_type): Likewise.
11938 (altivec_init_builtins): Add support for builtins that take vector
11939 long long (V2DI) arguments.
11940
11941 * config/rs6000/crypto.md: New file, define power8 crypto
11942 instructions.
11943
119442013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11945 Pat Haugen <pthaugen@us.ibm.com>
11946 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11947
11948 * doc/invoke.texi (Option Summary): Add power8 options.
11949 (RS/6000 and PowerPC Options): Likewise.
11950
11951 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
11952 constraints.md instead of rs6000.h. Reorder w* constraints. Add
11953 wm, wn, wr documentation.
11954
f43245d1 11955 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
11956 registers if direct move instructions are enabled.
11957 (wn): New constraint for no registers.
11958 (wq): New constraint for quad word even GPR registers.
11959 (wr): New constraint if 64-bit instructions are enabled.
11960 (wv): New constraint if power8 vector instructions are enabled.
11961 (wQ): New constraint for quad word memory locations.
11962
f43245d1 11963 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
11964 constraint for 0..15 for crypto instructions.
11965 (gpc_reg_operand): If VSX allow registers in VSX registers as well
11966 as GPR and floating point registers.
11967 (int_reg_operand): New predicate to match only GPR registers.
11968 (base_reg_operand): New predicate to match base registers.
11969 (quad_int_reg_operand): New predicate to match even GPR registers
11970 for quad memory operations.
11971 (vsx_reg_or_cint_operand): New predicate to allow vector logical
11972 operations in both GPR and VSX registers.
11973 (quad_memory_operand): New predicate for quad memory operations.
11974 (reg_or_indexed_operand): New predicate for direct move support.
11975
f43245d1 11976 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
11977 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
11978 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
11979 (POWERPC_MASKS): Add power8 options.
11980 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
11981 various options.
11982
f43245d1 11983 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
11984 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
11985
f43245d1 11986 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
11987 (-mpower8-fusion): New power8 options.
11988 (-mpower8-fusion-sign): Likewise.
11989 (-mpower8-vector): Likewise.
11990 (-mcrypto): Likewise.
11991 (-mdirect-move): Likewise.
11992 (-mquad-memory): Likewise.
11993
f43245d1 11994 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
11995 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
11996 registers.
70cc1536 11997 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
11998 (rs6000_debug_vector_unit): Add p8_vector.
11999 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
12000 definitions. Also print fusion state.
12001 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
12002 (rs6000_builtin_mask_calculate): Add power8 builtin support.
12003 (rs6000_option_override_internal): Add support for power8.
12004 (rs6000_common_init_builtins): Add debugging for skipped builtins
12005 if -mdebug=builtin.
12006 (rs6000_adjust_cost): Add power8 support.
12007 (rs6000_issue_rate): Likewise.
12008 (insn_must_be_first_in_group): Likewise.
12009 (insn_must_be_last_in_group): Likewise.
12010 (force_new_group): Likewise.
12011 (rs6000_register_move_cost): Likewise.
12012 (rs6000_opt_masks): Likewise.
12013
12014 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
12015 power8 capable assembler, default to power7 options.
12016 (TARGET_DIRECT_MOVE): Likewise.
12017 (TARGET_CRYPTO): Likewise.
12018 (TARGET_P8_VECTOR): Likewise.
12019 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
12020 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
12021 (VECTOR_MEM_P8_VECTOR_P): Likewise.
12022 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
12023 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
12024 (TARGET_XSCVDPSPN): Likewise.
12025 (TARGET_XSCVSPDPN): Likewsie.
12026 (TARGET_SYNC_HI_QI): Likewise.
12027 (TARGET_SYNC_TI): Likewise.
12028 (MASK_CRYPTO): Likewise.
12029 (MASK_DIRECT_MOVE): Likewise.
12030 (MASK_P8_FUSION): Likewise.
12031 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
12032 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
12033 temporary used by some of the direct move instructions to get two FP
12034 temporary registers does not force creation of a stack frame.
f62511da
MM
12035 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
12036 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
12037 that any VSX registers are tieable, even if they are also an
12038 Altivec vector mode.
12039 (r6000_reg_class_enum): Add wm, wr, wv constraints.
12040 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
12041 (RS6000_BTM_CRYPTO): Likewise.
12042 (RS6000_BTM_COMMON): Likewise.
12043
12044 * config/rs6000/rs6000.md (cpu attribute): Add power8.
12045 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
12046 (enum rs6000_vector): Add power8 vector support.
12047
73a1a707
RR
120482013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12049
12050 PR target/19599
12051 PR target/57340
12052 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
12053 (any_sibcall_could_use_r3): this and handle indirect calls.
12054 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
12055
d28073d4
BS
120562013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12057
12058 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
12059
bee0b10c
RB
120602013-05-22 Richard Biener <rguenther@suse.de>
12061
12062 PR middle-end/57349
12063 * profile.c (branch_prob): Do not split blocks that are
12064 abnormally receiving from ECF_RETURNS_TWICE functions.
12065
98409b51
RS
120662013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12067
12068 * recog.c (offsettable_address_addr_space_p): Fix calculation of
12069 address mode. Move pointer mode initialization to the same place.
12070
c0602ab8
MZ
120712013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12072
12073 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
12074 while it has any effect.
12075
4f7a634e
ER
120762013-05-21 Easwaran Raman <eraman@google.com>
12077
12078 PR tree-optimization/57322
9daf6dbb
ER
12079 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
12080 UID of the statement added to the BB to be 1.
4f7a634e 12081
a4ce1258
JJ
120822013-05-21 Jakub Jelinek <jakub@redhat.com>
12083
12084 PR tree-optimization/57331
70cc1536
UB
12085 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
12086 of conversion from pointer type to integral type with integer.
a4ce1258 12087
1b14621a
MJ
120882013-05-21 Martin Jambor <mjambor@suse.cz>
12089
12090 PR lto/57289
12091 * ipa-prop.c (ipa_read_node_info): Process param_used and
12092 controlled_uses in the same order as when writing.
12093
e60661f0
MG
120942013-05-21 Magnus Granberg <baldrick@free.fr>
12095
12096 PR plugins/56754
ee49aa34 12097 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 12098
4a61be9a
RB
120992013-05-21 Richard Biener <rguenther@suse.de>
12100
12101 PR tree-optimization/57318
12102 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
12103 estimate stmts with side-effects as likely eliminated.
12104
c52da5f7
RB
121052013-05-21 Richard Biener <rguenther@suse.de>
12106
12107 PR tree-optimization/57330
12108 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
12109 preserve the call stmts fntype.
12110
7ec67e2a
RB
121112013-05-21 Richard Biener <rguenther@suse.de>
12112
12113 PR tree-optimization/57303
12114 * tree-ssa-sink.c (statement_sink_location): Improve killing
12115 stmt detection and properly handle self-assignments.
12116
b112d513
CB
121172013-05-21 Christian Bruel <christian.bruel@st.com>
12118
55805e54
YR
12119 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
12120 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
12121 registers. Set register size out of the PARALLEL loop.
12122
14c2ec26
OE
121232013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
12124
12125 PR target/56547
12126 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
12127 (*fmasf4, *fmasf4_media): New insns.
12128
da734fa1
RS
121292013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12130
12131 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
12132 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
12133 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
12134 (mips_idiv_insns): Update the comments to say that the returned
12135 instruction counts are in units of BASE_INSN_LENGTH.
12136 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
12137 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
12138 using 2 rather than 4 as the length of indirect MIPS16 and
12139 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
12140 length of a NOP. Don't divide MIPS16 lengths by 2.
12141 (mips16_split_long_branches): Assume a branch is long if the
12142 length is greater than 4 rather than 8.
12143 * config/mips/mips.md (length): Give MIPS16 lengths directly,
12144 rather than multiplying them by 2. Multiply instruction counts
12145 by BASE_INSN_LENGTH rather than 4.
12146 (*jump_mips16, tls_get_tp_mips16_<mode>)
12147 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
12148
13719e8b
RS
121492013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12150
12151 * config/mips/mips.md (extended_mips16): Remove branch case.
12152 (length): Remove duplicated extended_mips16 test.
12153
c3850d14
RS
121542013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12155
12156 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
12157
8da2e059
RS
121582013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
12159
12160 * recog.h (Recog_data): Rename to...
12161 (recog_data_d): ...this.
12162 (recog_data): Update accordingly.
12163 * recog.c (recog_data): Likewise.
12164 * reload.c (save_recog_data): Likewise.
12165 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
12166 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
12167
2df013f3
JB
121682013-05-17 Julian Brown <julian@codesourcery.com>
12169
12170 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
12171 found in a REG_EQUAL note, invalidate it.
12172
371e77e3 121732013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
12174
12175 * tree-ssa-reassoc.c (find_insert_point): New function.
12176 (insert_stmt_after): Likewise.
12177 (get_def_stmt): Likewise.
12178 (ensure_ops_are_available): Likewise.
12179 (not_dominated_by): Likewise.
12180 (rewrite_expr_tree): Do not move statements beyond what is
12181 necessary. Remove call to swap_ops_for_binary_stmt...
12182 (reassociate_bb): ... and move it here.
12183 (build_and_add_sum): Assign UIDs for new statements.
12184 (linearize_expr): Likewise.
12185 (do_reassoc): Renumber gimple statement UIDs.
12186
e01c7cca
JH
121872013-05-17 Jan Hubicka <jh@suse.cz>
12188
12189 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
12190 weakrefs.
12191 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
12192 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
12193 weakrefs.
e01c7cca
JH
12194 (output_weakrefs): Update.
12195
c3272a92
PCC
121962013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
12197 Martin Jambor <mjambor@suse.cz>
12198
12199 PR middle-end/57276
12200 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
12201 value that corresponds to the given aggval is found in values vector.
12202
11c2aa39
UB
122032013-05-17 Uros Bizjak <ubizjak@gmail.com>
12204
12205 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
12206 sse, sse2, sse3, ssse3 and sse4a flags to options.
12207
abecc8c6
DM
122082013-05-17 David Malcolm <dmalcolm@redhat.com>
12209
12210 * gengtype-state.c: (s_expr_writer): New class, to handle
12211 prettifying of output layout of s-expressions.
12212 (state_writer): New class, to write out gtype.state.
12213 (state_written_type_count): Move this variable into member data of
12214 state_writer.
12215 (s_expr_writer::s_expr_writer): New code: constructor for new class
12216 (state_writer::state_writer(): ditto
12217 (s_expr_writer::write_new_line): New function
12218 (s_expr_writer::write_any_indent): ditto
12219 (s_expr_writer::begin_s_expr): ditto
12220 (s_expr_writer::end_s_expr): ditto
12221 (write_state_fileloc): convert to method of state_writer...
12222 (state_writer:: write_state_fileloc): ...and use methods of
12223 s_expr_writer to write indentation into the gtype.state output file
12224 to visually represent the hierarchical structure of the list
12225 structures
12226 (write_state_fields): ditto, renaming to...
12227 (state_writer::write_state_fields)
12228 (write_state_a_string): ditto, renaming to...
12229 (state_writer::write_state_a_string)
12230 (write_state_string_option): ditto, renaming to...
12231 (state_writer::write_state_string_option)
12232 (write_state_type_option): ditto, renaming to...
12233 (state_writer::write_state_type_option)
12234 (write_state_nested_option): ditto, renaming to...
12235 (state_writer::write_state_nested_option)
12236 (write_state_option): ditto, renaming to...
12237 (state_writer::write_state_option)
12238 (write_state_options): ditto, renaming to...
12239 (state_writer::write_state_options)
12240 (write_state_lang_bitmap): ditto, renaming to...
12241 (state_writer::write_state_lang_bitmap)
12242 (write_state_version): ditto, renaming to...
12243 (state_writer::write_state_version)
12244 (write_state_scalar_type): ditto, renaming to...
12245 (state_writer::write_state_scalar_type)
12246 (write_state_string_type): ditto, renaming to...
12247 (state_writer::write_state_string_type)
12248 (write_state_undefined_type): ditto, renaming to...
12249 (state_writer::write_state_undefined_type)
12250 (write_state_struct_union_type): ditto, renaming to...
12251 (state_writer::write_state_struct_union_type)
12252 (write_state_struct_type): ditto, renaming to...
12253 (state_writer::write_state_struct_type)
12254 (write_state_user_struct_type): ditto, renaming to...
12255 (state_writer::write_state_user_struct_type)
12256 (write_state_lang_struct_type): ditto, renaming to...
12257 (state_writer::write_state_lang_struct_type)
12258 (write_state_param_struct_type): ditto, renaming to...
12259 (state_writer::write_state_param_struct_type)
12260 (write_state_pointer_type): ditto, renaming to...
12261 (state_writer::write_state_pointer_type)
12262 (write_state_array_type): ditto, renaming to...
12263 (state_writer::write_state_array_type)
12264 (write_state_gc_used): ditto, renaming to...
12265 (state_writer::write_state_gc_used)
12266 (write_state_common_type_content): ditto, renaming to...
12267 (state_writer::write_state_common_type_content)
12268 (write_state_type): ditto, renaming to...
12269 (state_writer::write_state_type)
12270 (write_state_pair_list): ditto, renaming to...
12271 (state_writer::write_state_pair_list)
12272 (write_state_pair): ditto, renaming to...
12273 (state_writer::write_state_pair)
12274 (write_state_typedefs): ditto, renaming to...
12275 (state_writer::write_state_typedefs)
12276 (write_state_structures): ditto, renaming to...
12277 (state_writer::write_state_structures)
12278 (write_state_param_structs): ditto, renaming to...
12279 (state_writer::write_state_param_structs)
12280 (write_state_variables): ditto, renaming to...
12281 (state_writer::write_state_variables)
12282 (write_state_srcdir): ditto, renaming to...
12283 (state_writer::write_state_srcdir)
12284 (write_state_files_list): ditto, renaming to...
12285 (state_writer::write_state_files_list)
12286 (write_state_languages): ditto, renaming to...
12287 (state_writer::write_state_languages)
12288 (write_state): create a state_writer instance and use it when
12289 writing out the state file
12290
d6545f29
MS
122912013-05-17 Mike Stump <mikestump@comcast.net>
12292
816a3f73 12293 PR rtl-optimization/57304
d6545f29
MS
12294 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
12295 accessing DF_REF_REAL_LOC.
12296
38c821cf
JJ
122972013-05-17 Jakub Jelinek <jakub@redhat.com>
12298
12299 PR rtl-optimization/57281
12300 PR rtl-optimization/57300
12301 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
12302 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
12303 what the other splitter did if the registers are dead.
12304
2a293391
RB
123052013-05-17 Richard Biener <rguenther@suse.de>
12306
12307 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
12308 MEM_REF offsets.
12309
17042d2b
JJ
123102013-05-17 Jakub Jelinek <jakub@redhat.com>
12311
12312 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
12313 linking.
12314
5b115c1f
MP
123152013-05-17 Marek Polacek <polacek@redhat.com>
12316
11c2aa39
UB
12317 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
12318 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 12319
52d84413
JJ
123202013-05-17 Jakub Jelinek <jakub@redhat.com>
12321
68119618
JJ
12322 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
12323 vect_external_def oprnd1 with loop_vinfo, try to emit
12324 optional cast, negation and and stmts on the loop preheader
12325 edge instead of into the pattern def seq.
12326
52d84413
JJ
12327 PR tree-optimization/57051
12328 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
12329 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
12330
17b962bd
NC
123312013-05-16 Nick Clifton <nickc@redhat.com>
12332
12333 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
12334 (rl78_is_naked_func): New function.
56aefbf7
UB
12335 (rl78_expand_prologue): Skip prologue generation for naked functions.
12336 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
12337 * doc/extend.texi (naked): Add RL78 to the list of processors
12338 that supports this attribute.
12339
b1a0f84e
JL
123402013-05-16 Jeff Law <law@redhat.com>
12341
12342 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
12343
af0e415b
UB
123442013-05-16 Uros Bizjak <ubizjak@gmail.com>
12345
12346 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
12347 cache parameters using detect_caches_amd also for CYRIX,
12348 NSC and TM2 signatures.
12349
19db293a
UB
123502013-05-16 Uros Bizjak <ubizjak@gmail.com>
12351 Dzianis Kahanovich <mahatma@eu.by>
12352
12353 PR target/45359
12354 PR target/46396
12355 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12356 VIA/Centaur processors and determine their cache parameters
12357 using detect_caches_amd.
12358
251a41b9
TJ
123592013-05-16 Teresa Johnson <tejohnson@google.com>
12360
12361 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12362 (rtl_verify_edges): New function.
12363 (rtl_verify_bb_insns): Ditto.
12364 (rtl_verify_bb_pointers): Ditto.
12365 (rtl_verify_bb_insn_chain): Ditto.
12366 (rtl_verify_fallthru): Ditto.
12367 (rtl_verify_bb_layout): Ditto.
12368 (rtl_verify_flow_info_1): Outline checks into new functions.
12369 (rtl_verify_flow_info): Ditto.
12370
f14540b6
SE
123712013-05-16 Steve Ellcey <sellcey@imgtec.com>
12372
12373 * cfghooks.c (copy_bbs): Add update_dominance argument.
12374 * cfghooks.h (copy_bbs): Update prototype.
12375 * tree-cfg.c (gimple_duplicate_sese_region):
12376 Add update_dominance argument.
12377 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12378 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12379 gimple_duplicate_sese_region call.
12380 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12381 Update copy_bbs call.
12382 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12383 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12384
7e9a3abb
JJ
123852013-05-16 Jakub Jelinek <jakub@redhat.com>
12386
12387 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12388 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12389 vect_recog_rotate_pattern.
12390 (vect_recog_rotate_pattern): New function.
12391
427b248d
JM
123922013-05-16 Jason Merrill <jason@redhat.com>
12393
12394 * Makefile.in (LLINKER): New variable.
12395 (mostlyclean): Remove link mutex.
12396 * configure.ac: Handle --enable-link-mutex.
12397 * lock-and-run.sh: New script.
12398
b871e3d2
RR
123992013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12400
12401 PR target/19599
12402 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12403 for NULL decl.
12404
ce858126
RO
124052013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12406
12407 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12408
798d3d04
GY
124092013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12410
12411 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12412 * config/arm/arm.c (next_consecutive_mem): New function.
12413 (gen_movmem_ldrd_strd): Likewise.
12414 * config/arm/arm.md (movmemqi): Update condition and code.
12415 (unaligned_loaddi, unaligned_storedi): New patterns.
12416
0baddc45
RO
124172013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12418
12419 * config.gcc: Obsolete *-*-solaris2.9*.
12420 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12421
aa9d5bcf
RB
124222013-05-16 Richard Biener <rguenther@suse.de>
12423
12424 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12425 earlier, after GRAPHITE transforms and IV canonicalization.
12426
5a0f4dd3
JJ
124272013-05-16 Jakub Jelinek <jakub@redhat.com>
12428
12429 * omp-low.c (extract_omp_for_data): For collapsed loops,
12430 if at least one of the loops is known at compile time to
12431 iterate zero times, set count to 0.
12432 (expand_omp_regimplify_p): New function.
12433 (expand_omp_for_generic): For collapsed loops, if at least
12434 one of the loops isn't known to iterate at least once,
12435 add runtime check with setting count to 0.
12436 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12437 For unsigned types if it isn't known at compile time that
12438 the loop will iterate at least once, add runtime check to bypass
12439 the whole loop if initial condition isn't true.
12440
e3753785
NS
124412013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12442
12443 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12444
43bb4dd1
MG
124452013-05-16 Marc Glisse <marc.glisse@inria.fr>
12446
12447 PR middle-end/57286
12448 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12449 transformations to avoid an infinite loop.
12450
3571dde6
MP
124512013-05-16 Marek Polacek <polacek@redhat.com>
12452
12453 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12454
b8b3f0ca
LE
124552013-05-15 Leif Ekblad <leif@rdos.net>
12456
12457 * config/i386/i386.c (ix86_decompose_address): Use
12458 DEFAULT_TLS_SEG_REG to access TLS segment register.
12459 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12460 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12461 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12462
e299a383
RS
124632013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12464
12465 PR target/57260
12466 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12467 sibling calls to functions that would normally be lazily bound,
12468 unless $gp is call-clobbered.
12469
e7208ea3
UB
124702013-05-15 Uros Bizjak <ubizjak@gmail.com>
12471
19db293a 12472 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12473 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12474 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12475 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12476 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12477 of TARGET_3DNOW.
12478 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12479
e7413f3d
AS
124802013-05-15 Andreas Schwab <schwab@suse.de>
12481
12482 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12483 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12484 third operand.
12485
ad4db775
TJ
124862013-05-15 Teresa Johnson <tejohnson@google.com>
12487
12488 * loop-unroll.c (report_unroll_peel): Check decision before
12489 emitting unroll/peel message.
12490
af205f67
TJ
124912013-05-15 Teresa Johnson <tejohnson@google.com>
12492
12493 * function.h (has_bb_partition): New rtl_data flag.
12494 (bb_reorder_complete): Ditto.
12495 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12496 instead of flag_reorder_blocks_and_partition.
12497 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12498 with some enhancements.
12499 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12500 * bb-reorder.c (connect_traces): Check for has_bb_partition
12501 instead of flag_reorder_blocks_and_partition.
12502 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12503 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12504 verify_hot_cold_block_grouping.
12505 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12506
9adcfa3c
RR
125072013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12508
12509 PR target/19599
12510 * config/arm/predicates.md (call_insn_operand): New predicate.
12511 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12512 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12513 if insn is not a tail call.
12514 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12515 registers.
12516 * config/arm/arm.h (enum reg_class): New caller save register class.
12517 (REG_CLASS_NAMES): Likewise.
12518 (REG_CLASS_CONTENTS): Likewise.
12519 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12520 without decls.
12521
ccb3ad87
RB
125222013-05-15 Richard Biener <rguenther@suse.de>
12523
12524 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12525 of MSG_OPTIMIZED_LOCATIONS.
12526 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12527 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12528 message.
12529 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12530 of MSG_OPTIMIZED_LOCATIONS.
12531 (execute_vect_slp): Likewise.
12532 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12533 (vect_create_cond_for_alias_checks): Likewise.
12534 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12535 (vect_recog_widen_mult_pattern): Likewise.
12536 (vect_recog_widen_sum_pattern): Likewise.
12537 (vect_recog_over_widening_pattern): Likewise.
12538 (vect_recog_widen_shift_pattern): Likewise.
12539 (vect_recog_vector_vector_shift_pattern): Likewise.
12540 (vect_recog_divmod_pattern): Likewise.
12541 (vect_recog_mixed_size_cond_pattern): Likewise.
12542 (vect_recog_bool_pattern): Likewise.
12543 (vect_pattern_recog_1): Likewise.
12544
48b1474e
MJ
125452013-05-15 Martin Jambor <mjambor@suse.cz>
12546
12547 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12548 non-functions to builtin_unreachable.
12549 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12550 correct when new direct edges were discovered.
12551
9de04252
MJ
125522013-05-15 Martin Jambor <mjambor@suse.cz>
12553
12554 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12555 header, print symbol order instead of node uid, print more information
12556 about indirect edge targets.
12557 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12558 uids.
12559 (ipa_make_edge_direct_to_target): Likewise.
12560 (remove_described_reference): Likewise.
12561 (propagate_controlled_uses): Likewise.
12562 (ipa_print_node_params): Also print symbol order.
12563 (ipcp_transform_function): Print symbol order instead of node uids.
12564 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12565 (cgraph_get_create_real_symbol_node): Likewise.
12566 * ipa-cp.c (print_lattice): Likewise.
12567 (print_all_lattices): Likewise.
12568 (determine_versionability): Likewise.
12569 (initialize_node_lattices): Likewise.
12570 (estimate_local_effects): Likewise.
12571 (update_profiling_info): Likewise.
12572 (create_specialized_node): Likewise.
12573 (perhaps_add_new_callers): Likewise.
12574 (decide_about_value): Likewise.
12575 (decide_whether_version_node): Likewise.
12576 (identify_dead_nodes): Likewise.
12577 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12578 (dump_inline_summary): Likewise.
12579 (estimate_node_size_and_time): Likewise.
12580 (inline_analyze_function): Likewise.
12581 * ipa-inline.c (report_inline_failed_reason): Likewise.
12582 (want_early_inline_function_p): Likewise.
12583 (edge_badness): Likewise.
12584 (update_edge_key): Likewise.
12585 (inline_small_functions): Likewise. Add dumping of order to two other
12586 dumps.
12587 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12588 instead of node uids.
12589 (propagate_pure_const): Likewise.
12590 (propagate_pure_const): Likewise.
12591 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12592 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12593 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12594 of node uids.
12595 * tree-pretty-print.c (dump_function_header): Likewise.
12596 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12597 Print symbol order instead of node uids.
12598
1dd03b91
AK
125992013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12600
12601 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12602 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12603
fdf6a7b9
RB
126042013-05-15 Richard Biener <rguenther@suse.de>
12605
12606 PR tree-optimization/57275
12607 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12608 return value for fail to do runtime alias checks for gather loads.
12609
2d6e4603
JH
126102013-05-15 Jan Hubicka <jh@suse.cz>
12611
12612 PR lto/57038
12613 PR lto/47375
e7208ea3
UB
12614 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12615 weakrefs are not external.
12616 (lto_symtab_merge_decls): Fix thinko when dealing with
12617 non-lto_symtab decls.
2d6e4603
JH
12618 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12619 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12620 * varpool.c (dump_varpool_node): Dump more flags.
12621
83f44b39
GG
126222013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12623
12624 * config/i386/i386.c (processor_alias_table): Add instruction
12625 FSGSBASE for AMD bdver3 architecture.
12626
2e55d062
JJ
126272013-05-14 Jakub Jelinek <jakub@redhat.com>
12628
12629 * tree.c (warn_deprecated_use): Print file:line using locus color.
12630 * diagnostic.c (diagnostic_report_current_module): Print file:line
12631 and file:line:column using locus color.
12632
0bfdb81e
MS
126332013-05-14 Mike Stump <mikestump@comcast.net>
12634
12635 * gdbinit.in: Add __null.
12636
a508ef22
MS
126372013-05-14 Mike Stump <mikestump@comcast.net>
12638
12639 * recog.h: Rename struct recog_data to Recog_data.
12640 * recog.c: Likewise.
12641 * reload.c (can_reload_into): Likewise.
12642 * config/picochip/picochip.c: Likewise.
12643
e7180acb
MS
126442013-05-14 Mike Stump <mikestump@comcast.net>
12645
12646 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
12647
61216c26
SB
126482013-05-14 Steven Bosscher <steven@gcc.gnu.org>
12649
fd6beed4
SB
12650 * resource.h (struct resources): Remove unch_memory member.
12651 (CLEAR_RESOURCE): Don't clear unch_memory.
12652 * resource.c (mark_referenced_resources): Don't set it.
12653 (mark_set_resources): Likewise.
12654 (mark_target_live_regs): Don't clear it.
12655 (init_resource_info): Likewise.
12656 * reorg.c (resource_conflicts_p): Don't compare it.
12657 (redundant_insn): Don't set it.
12658
61216c26
SB
12659 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
12660 Remove prototypes.
12661 * emit-rtl.c (next_label): Remove unused function.
12662 (skip_consecutive_labels, link_cc0_insns): Move to ...
12663 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
12664 only place where these functions are used, and make them static.
12665
418d1b87
MG
126662013-05-14 Marc Glisse <marc.glisse@inria.fr>
12667
12668 * fold-const.c (fold_negate_expr): Handle vectors.
12669 (fold_truth_not_expr): Make it static.
12670 (fold_invert_truthvalue): New static function.
12671 (invert_truthvalue_loc): Handle vectors. Do not call
12672 fold_truth_not_expr directly.
12673 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
12674 <TRUTH_NOT_EXPR>: Do not cast to boolean.
12675 (fold_comparison): Handle vector constants.
12676 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
12677 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
12678 * tree.h (fold_truth_not_expr): Remove declaration.
12679
fc21784d
JG
126802013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
12681
12682 * config/aarch64/aarch64-simd.md
12683 (aarch64_vcond_internal<mode>): Rename to...
12684 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
12685 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
12686 float modes. Clarify all iterator modes.
12687 (vcond<mode><mode>): Use new name for vcond expanders.
12688 (vcond<v_cmp_result><mode>): Likewise.
12689 (vcondu<mode><mode>: Likewise.
12690 * config/aarch64/iterators.md (VDQF_COND): New.
12691
d4c52634
MG
126922013-05-14 Marc Glisse <marc.glisse@inria.fr>
12693
12694 PR bootstrap/57266
12695 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
12696 variable for the shift amount. Check that we shift by non-negative
12697 amounts.
12698
2b261262
CLT
126992013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
12700
12701 PR target/42017
12702 * config/arm/arm.h (EPILOGUE_USES): Only return true
12703 for LR_REGNUM after epilogue_completed.
12704
12211b99 127052013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
12706
12707 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 12708 is error_mark_node.
6e022d7b 12709
56cf7859
RO
127102013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12711
12712 PR target/57261
12713 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
12714 and Solaris 11+/x86 with gld.
12715 * configure: Regenerate.
12716
75776c6d
JJ
127172013-05-14 Jakub Jelinek <jakub@redhat.com>
12718
12719 * expmed.c (expand_shift_1): Canonicalize rotates by
12720 constant bitsize / 2 to bitsize - 1.
7f998021 12721 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
12722 case ROTATERT>: Likewise.
12723
12724 Revert:
12725 2013-05-10 Jakub Jelinek <jakub@redhat.com>
12726
12727 * config/i386/i386.md (rotateinv): New code attr.
12728 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12729 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12730 roll $31, %eax, etc.
12731
df35498a
RB
127322013-05-14 Richard Biener <rguenther@suse.de>
12733
12734 PR middle-end/57235
12735 * tree-eh.c (sink_clobbers): Give up for successors with
12736 multiple predecessors and no virtual uses.
12737
cc6e7ece
EB
127382013-05-14 Eric Botcazou <ebotcazou@adacore.com>
12739
12740 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
12741 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
12742
f778dd4d
JJ
127432013-05-14 Jakub Jelinek <jakub@redhat.com>
12744
12745 PR middle-end/57251
12746 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
12747 the case when both op0 and op1 have VOIDmode.
12748
bad4df9b
KP
127492013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12750
12751 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
12752 in multiply-accumulate mode.
12753
56f3e9ac
GW
127542013-05-13 Guozhi Wei <carrot@google.com>
12755
12756 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
12757
a3d7ab92
KT
127582013-05-13 Kai Tietz <ktietz@redhat.com>
12759
12760 PR target/56975
12761 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 12762 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 12763 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 12764 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
12765 (ix86_expand_prologue): Likewise.
12766 (ix86_expand_split_stack_prologue): Likewise.
12767 (legitimate_pic_address_disp_p): Likewise.
12768 (legitimize_pic_address): Likewise.
12769 (legitimize_tls_address): Likewise.
12770 (legitimize_pe_coff_symbol): Likewise.
12771 (output_pic_addr_const): Likewise.
12772 (construct_plt_address): Likewise.
12773 (ix86_expand_call): Likewise.
12774 (x86_output_mi_thunk): Likewise.
12775 (x86_function_profiler): Likewise.
12776
c59b7e28
SN
127772013-05-13 Sofiane Naci <sofiane.naci@arm.com>
12778
12779 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
12780 similar switch cases.
12781 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
12782 (aarch64_simd_mov_to_<mode>low): Delete.
12783 (aarch64_simd_mov_to_<mode>high): Delete.
12784 (move_lo_quad_<mode>): Add w<-r alternative.
12785 (aarch64_simd_move_hi_quad_<mode>): Likewise.
12786 (aarch64_simd_mov_from_*): Update type attribute.
12787 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
12788 statement.
12789
5f28524a
JH
127902013-05-13 Jan Hubicka <jh@suse.cz>
12791
12792 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
12793 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
12794 ix86_expand_epilogue, emit_i387_cw_initialization,
12795 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
12796 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 12797
ae6fa899
JJ
127982013-05-13 Jakub Jelinek <jakub@redhat.com>
12799
12800 PR tree-optimization/45216
12801 PR tree-optimization/57157
12802 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
12803 the (-Y) & (B - 1) variant if OP is |.
12804 * expmed.c (expand_shift_1): For rotations by const0_rtx just
12805 return shifted. Use (-op1) & (prec - 1) as other_amount
12806 instead of prec - op1.
12807
4502fe8d
MJ
128082013-05-13 Martin Jambor <mjambor@suse.cz>
12809
12810 PR middle-end/42371
12811 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
12812 (ipa_constant_data): New type.
12813 (ipa_jump_func): Use ipa_constant_data to hold information about
12814 constant jump functions.
12815 (ipa_get_jf_constant): Adjust to jump function type changes.
12816 (ipa_get_jf_constant_rdesc): New function.
12817 (ipa_param_descriptor): New field controlled_uses.
12818 (ipa_get_controlled_uses): New function.
12819 (ipa_set_controlled_uses): Likewise.
12820 * ipa-ref.h (ipa_find_reference): Declare.
12821 * ipa-prop.c (ipa_cst_ref_desc): New type.
12822 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
12823 changes.
12824 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
12825 New parameter cs. Adjust all callers.
12826 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
12827 (remove_described_reference): New function.
12828 (jfunc_rdesc_usable): Likewise.
12829 (try_make_edge_direct_simple_call): Decrement controlled use count,
12830 attempt to remove reference if it hits zero.
12831 (combine_controlled_uses_counters): New function.
12832 (propagate_controlled_uses): Likewise.
12833 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
12834 (ipa_edge_duplication_hook): Duplicate reference descriptions.
12835 (ipa_print_node_params): Print described use counter.
12836 (ipa_write_jump_function): Adjust to jump function type changes.
12837 (ipa_read_jump_function): New parameter CS, pass it to
12838 ipa_set_jf_constant. Adjust caller.
12839 (ipa_write_node_info): Stream controlled use count
12840 (ipa_read_node_info): Likewise.
12841 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
12842 asserting.
12843 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
12844 count. Remove cloning-added reference if it reaches zero.
12845 * ipa-ref.c (ipa_find_reference): New function.
12846
0864bfc2
GG
128472013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12848
e7208ea3 12849 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
12850 alignment values for AMD BD and BT architectures.
12851
640bfeb2
MG
128522013-05-13 Marc Glisse <marc.glisse@inria.fr>
12853
12854 * tree-vect-generic.c (uniform_vector_p): Move ...
12855 * tree.c (uniform_vector_p): ... here.
12856 * tree.h (uniform_vector_p): Declare it.
12857 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
12858 into a scalar.
12859
3a60f32b
JJ
128602013-05-13 Jakub Jelinek <jakub@redhat.com>
12861
198fe1bf
JJ
12862 PR tree-optimization/57230
12863 * tree-ssa-strlen.c (handle_char_store): Record length for
12864 array store from STRING_CST.
12865
3a60f32b
JJ
12866 PR tree-optimization/57230
12867 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
12868 check.
12869
566be57c
JR
128702013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
12871
12872 * config/epiphany/epiphany.c (epiphany_init): Check size of
12873 NUM_MODES_FOR_MODE_SWITCHING.
12874 (epiphany_expand_prologue):
12875 Remove CONFIG_REGNUM initial value handling code.
12876 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
12877 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 12878 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
12879 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
12880 Don't return 1 for FP_MODE_NONE.
12881 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
12882 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
12883 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
12884 * config/epiphany/epiphany.md (save_config): New pattern.
12885
0f2c2331
UB
128862013-05-12 Uros Bizjak <ubizjak@gmail.com>
12887
12888 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
12889
5b3f93c7
UB
128902013-05-10 Uros Bizjak <ubizjak@gmail.com>
12891
12892 * config/i386/i386.md (memory): Handle sseishft1.
12893 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
12894 (*vec_extractv2di_1): Ditto.
12895
1f873f0e
VM
128962013-05-10 Vladimir Makarov <vmakarov@redhat.com>
12897
12898 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
12899 saved registers.
12900
341427fa 129012013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
12902
12903 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
12904 Add mthumb/march=armv7-a multilib.
12905 Add mthumb/march=armv7-r multilib.
12906 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
12907
9e69bdde
RC
129082013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
12909
12910 * config/v850/t-rtems: Add more multilibs.
12911
9ff09a22
RB
129122013-05-10 Richard Biener <rguenther@suse.de>
12913
12914 PR tree-optimization/57214
12915 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
12916 not propagate from SSA names that occur in abnormal PHI nodes.
12917
a5e0cd1d
MG
129182013-05-10 Marc Glisse <marc.glisse@inria.fr>
12919
12920 * stor-layout.c (element_precision): New function.
12921 * machmode.h (element_precision): Declare it.
12922 * tree.c (build_minus_one_cst): New function.
12923 (element_precision): Likewise.
12924 * tree.h (build_minus_one_cst): Declare new function.
12925 (element_precision): Likewise.
12926 * fold-const.c (operand_equal_p): Use element_precision.
12927 (fold_binary_loc): Handle vector types.
12928 * convert.c (convert_to_integer): Use element_precision.
12929 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
12930 separately.
12931
cb2558bc
RS
129322013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
12933
12934 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
12935 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
12936 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
12937 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12938 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
12939 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
12940 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
12941 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12942 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
12943 (Uuw8): New constraints.
12944 (Usb4): Move into alphabetical order.
12945 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
12946 (sd8_operand, ub8_operand, uw8_operand): New predicates.
12947 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
12948 previously unnamed patterns.
12949 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
12950 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
12951 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
12952 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
12953 of set_attr_alternative/if_then_else. Use extended_mips16 instead
12954 of specific lengths.
12955
cb3b8d33
JJ
129562013-05-10 Jakub Jelinek <jakub@redhat.com>
12957
6f93c008
JJ
12958 * config/i386/i386.md (rotateinv): New code attr.
12959 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12960 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12961 roll $31, %eax, etc.
12962
cb3b8d33
JJ
12963 PR tree-optimization/45216
12964 PR tree-optimization/57157
12965 * tree-ssa-forwprop.c (simplify_rotate): New function.
12966 (ssa_forward_propagate_and_combine): Call it.
12967
afb119be
RB
129682013-05-10 Richard Biener <rguenther@suse.de>
12969
12970 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
12971 disable peeling when we version for aliasing.
12972 (vector_alignment_reachable_p): Honor explicit user alignment.
12973 (vect_supportable_dr_alignment): Likewise.
12974 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
12975 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
12976 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
12977 then peeling to arrange for the cost-model check to come first.
12978
01ae4861
AM
129792013-05-10 Alan Modra <amodra@gmail.com>
12980
12981 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
12982 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
12983 * configure: Regenerate.
12984
ebc9a431
AM
129852013-05-10 Alan Modra <amodra@gmail.com>
12986
12987 PR target/55033
12988 * varasm.c (default_elf_select_section): Move !DECL_P check..
12989 (get_named_section): ..to here before calling get_section_name.
12990 Adjust assertion.
12991 (default_section_type_flags): Add DECL_P check.
12992 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
12993 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
12994
d4bca93c
JR
129952013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
12996
12997 * config/epiphany/epiphany.c (epiphany_expand_prologue):
12998 When using gen_stack_adjust_str with a register offset, add a
12999 REG_FRAME_RELATED_EXPR note.
13000
60ca9a65
UB
130012013-05-09 Uros Bizjak <ubizjak@gmail.com>
13002
13003 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
13004 (*vec_extractv4si_zext_mem): Ditto.
13005 (*vec_extractv2di): Add 0->x and x->x alternatives.
13006 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
13007 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
13008
a3409c02
JM
130092013-05-09 Jason Merrill <jason@redhat.com>
13010
0138d6b2
JM
13011 N3639 C++1y VLA support
13012 * gimplify.c (gimplify_vla_decl): Don't touch an existing
13013 DECL_VALUE_EXPR.
13014
a3409c02
JM
13015 * tree.c (build_constructor_va): New.
13016 * tree.h: Declare it.
13017
66e6b990
MJ
130182013-05-09 Martin Jambor <mjambor@suse.cz>
13019
13020 PR lto/57084
13021 * gimple-fold.c (canonicalize_constructor_val): Call
13022 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
13023
64cfa6c0
JH
130242013-05-09 Jan Hubicka <jh@suse.cz>
13025 Richard Biener <rguenther@suse.de>
13026
13027 PR lto/54095
13028 * symtab.c (symtab_make_decl_local): Do not add private names.
13029
c3167b00
JH
130302013-05-09 Jan Hubicka <jh@suse.cz>
13031
13032 PR lto/54095
13033 * symtab.c (insert_to_assembler_name_hash): Handle clones.
13034 (unlink_from_assembler_name_hash): Likewise.
13035 (symtab_prevail_in_asm_name_hash, symtab_register_node,
13036 symtab_unregister_node, symtab_initialize_asm_name_hash,
13037 change_decl_assembler_name): Update.
13038
12dc6974
SN
130392013-05-09 Sofiane Naci <sofiane.naci@arm.com>
13040
13041 * config/aarch64/aarch64.md: New movtf split.
13042 (*movtf_aarch64): Update.
13043 (aarch64_movdi_tilow): Handle TF modes and rename to
13044 aarch64_movdi_<mode>low.
13045 (aarch64_movdi_tihigh): Handle TF modes and rename to
13046 aarch64_movdi_<mode>high
13047 (aarch64_movtihigh_di): Handle TF modes and rename to
13048 aarch64_mov<mode>high_di
13049 (aarch64_movtilow_di): Handle TF modes and rename to
13050 aarch64_mov<mode>low_di
13051 (aarch64_movtilow_tilow): Remove spurious whitespace.
13052 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
13053 splits.
13054 (aarch64_print_operand): Update.
13055
227eb343
AM
130562013-05-09 Alan Modra <amodra@gmail.com>
13057
13058 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
13059 powerpc64le.
13060 * configure: Regenerate.
13061
0b013847
UB
130622013-05-08 Uros Bizjak <ubizjak@gmail.com>
13063
13064 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
13065 splitter preparation statements.
13066 * config/i386/sse.md (*vec_extract* splitters): Ditto.
13067 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
13068 adjust_address_nv.
13069
1dc3d6e9
BS
130702013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13071
13072 * gimple-ssa-strength-reduction.c (count_candidates): Change
13073 return value to int.
13074 (analyze_candidates_and_replace): Change type of length to int.
13075
e61e7d28
UB
130762013-05-08 Uros Bizjak <ubizjak@gmail.com>
13077
13078 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
13079 (*vec_extract<mode>): Use VI12_128 mode iterator.
13080 (*vec_extract<mode>_mem): Ditto.
13081 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
13082 attribute.
13083
4fbfcf44
DN
130842013-05-08 Diego Novillo <dnovillo@google.com>
13085
13086 PR bootstrap/54659
13087
13088 Revert:
4fbfcf44
DN
13089 2012-08-17 Diego Novillo <dnovillo@google.com>
13090
e61e7d28
UB
13091 PR bootstrap/54281
13092 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
13093 * config.in: Regenerate.
13094 * configure: Regenerate.
13095 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 13096
702d8703
JH
130972013-05-08 Jan Hubicka <jh@suse.cz>
13098
13099 PR lto/54095
13100 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
13101 * cgraph.h (symtab_node_base): Add unique_name.
13102 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13103 input_overwrite_node, input_varpool_node): Stream unique_name.
13104 * cgraphclones.c (cgraph_create_virtual_clone,
13105 cgraph_function_versioning): Set unique_name.
13106 * ipa.c (function_and_variable_visibility): Set unique_name.
13107
8b28cf47
BS
131082013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13109
13110 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
13111 (alloc_cand_and_find_basis): Restrict conditional candidate
13112 processing to CAND_MULTs.
13113
e86074fd
JH
131142013-05-08 Jan Hubicka <jh@suse.cz>
13115
13116 PR lto/54095
13117 lto-symtab.c (lto_symtab_symbol_p): New function.
13118 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
13119 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
13120 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
13121 Skip static symbols.
13122
44398cbe
PC
131232013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
13124
13125 PR tree-optimization/57200
13126 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
13127 Only call inform if the preceding warning_at returns true.
13128
f6bc1c4a
HS
131292013-05-07 Han Shen <shenhan@google.com>
13130
13131 * cfgexpand.c (record_or_union_type_has_array_p): New function.
13132 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
13133 * common.opt (fstack-protector-strong): New option.
13134 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
13135 * doc/invoke.texi (Optimization Options): Document
13136 "-fstack-protector-strong".
13137 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
13138
4ffecb1f
SB
131392013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13140
13141 * config/mips/mips.c (mips_machine_reorg2): Return 0.
13142
5a107a0f
VM
131432013-05-07 Vladimir Makarov <vmakarov@redhat.com>
13144
13145 * ira.c (update_equiv_regs): Add insn having equiv memory even if
13146 it is not lhs of the insn.
13147 (setup_reg_equiv): Remove insn having equiv memory which it is not
13148 lhs of the insn.
13149 * lra-constraints.c (process_address): Try to improve generation
13150 code for address base + disp.
13151 (lra_constraints): Make correct the code for checking insn setting
13152 up backward equivalence. Remove insn only if it is in the init
13153 insn list.
13154 * lra-eliminations.c (update_reg_eliminate): Change return value.
13155 (lra_eliminate): Use the result.
13156
3f5783ea
UB
131572013-05-07 Uros Bizjak <ubizjak@gmail.com>
13158
13159 * config/i386/sse.md (ssescalarnummask): New mode attribute.
13160 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
13161 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
13162 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
13163 register target operands.
13164 (*vec_extractv8hi_sse2): New pattern.
13165 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
13166 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
13167 (*vec_extract<mode>_mem): New insn and split pattern.
13168
8a5800b8
CL
131692013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
13170
13171 * config/arm/arm.c (arm_asan_shadow_offset): New function.
13172 (TARGET_ASAN_SHADOW_OFFSET): Define.
13173 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
13174 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
13175
7bf55a70
BS
131762013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13177
13178 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
13179 (incr_vec_index): Return -1 if increment not found.
13180 (create_add_on_incoming_edge): Assert if increment not found.
13181 (record_increment): Limit number of increments recorded.
13182 (all_phi_incrs_profitable): Return false if an increment not found.
13183 (replace_profitable_candidates): Don't process increments that were
13184 not recorded.
13185 (analyze_candidates_and_replace): Limit size of incr_vec.
13186
3f8825c0
RB
131872013-05-07 Richard Biener <rguenther@suse.de>
13188
13189 * calls.c (special_function_p): setjmp-like functions are leaf.
13190 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
13191 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
13192
fd4842cd
SN
131932013-05-07 Sofiane Naci <sofiane.naci@arm.com>
13194
13195 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
13196 (aarch64_simd_mov<mode>): New expander.
13197 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
13198 (aarch64_simd_mov_to_<mode>high): Likewise.
13199 (aarch64_simd_mov_from_<mode>low): Likewise.
13200 (aarch64_simd_mov_from_<mode>high): Likewise.
13201 (aarch64_dup_lane<mode>): Update.
13202 (aarch64_dup_lanedi): New instruction pattern.
13203 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
13204 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
13205
a7a7d10e
BS
132062013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13207
13208 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
13209 (replace_mult_candidate): Remove unnecessary argument; remove
13210 unnecessary parameter from call to introduce_cast_before_cand.
13211 (replace_unconditional_candidate): Remove unnecessary parameter
13212 from call to replace_mult_candidate.
13213 (replace_conditional_candidate): Likewise.
13214 (insert_initializers): Use make_temp_ssa_name.
13215 (introduce_cast_before_cand): Remove unnecessary argument; use
13216 make_temp_ssa_name.
13217 (replace_one_candidate): Remove unnecessary argument; remove
13218 unnecessary parameter from calls to introduce_cast_before_cand.
13219 (replace_profitable_candidates): Remove unnecessary parameters
13220 from calls to replace_one_candidate.
13221
29105868
BS
132222013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13223
13224 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13225 phi def as possibly hiding a basis for a CAND_ADD whose operands
13226 have been commuted in the analysis.
13227 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
13228
4095f9fa
N
132292013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13230
13231 * config/aarch64/aarch64.md
13232 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
13233 shift value between 0-4.
13234
39e843e8
RB
132352013-05-07 Richard Biener <rguenther@suse.de>
13236
13237 * double-int.h (rshift): New overload.
13238 * double-int.c (rshift): New function.
13239 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
13240 (create_reference_ops_from_ref): Remove.
13241 (vn_reference_insert): Use shared ops for constructing the
13242 reference and copy it.
13243
0a1a83cb
RB
132442013-05-07 Richard Biener <rguenther@suse.de>
13245
13246 PR middle-end/57190
13247 * tree-eh.c (sink_clobbers): Properly propagate
13248 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13249
43303d6f
JJ
132502013-05-07 Jakub Jelinek <jakub@redhat.com>
13251
ba7e83f8
JJ
13252 PR tree-optimization/57149
13253 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
13254 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
13255 collect_phi_def_edges, execute_late_warn_uninitialized): Use
13256 uninit_undefined_value_p instead of ssa_undefined_value_p.
13257
43303d6f
JJ
13258 PR debug/57184
13259 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
13260 for modifier == EXPAND_INITIALIZER.
13261
14523c25
AB
132622013-05-07 Anton Blanchard <anton@samba.org>
13263
13264 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
13265 for powerpc64 little endian.
13266 * configure: Regenerate.
13267
cb7c8be9
GS
132682013-05-06 Graham Stott <grahams@btinternet.com>
13269
13270 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
13271 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
13272 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
13273 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
13274
132752013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
13276
13277 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
13278 codes which allow non-lvalues.
13279
9a0ee7b0
MG
132802013-05-06 Marc Glisse <marc.glisse@inria.fr>
13281
13282 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
13283 components are all 1s.
13284 (integer_minus_onep): New function.
13285 * tree.h (integer_minus_onep): Declare it.
13286 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
13287 integer_minus_onep instead of integer_all_onesp.
13288
f2c17ea9
OE
132892013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13290
13291 PR target/52933
13292 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
13293 variations of these patterns.
13294
f75e6a51
UB
132952013-05-06 Uros Bizjak <ubizjak@gmail.com>
13296
13297 * config/i386/i386.md (isa): Add x64_sse4 member.
13298 (enabled): Handle x64_sse4.
13299 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
13300 instruction for 64bit SSE4_1 targets. Update insn attributes.
13301 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
13302 instruction for SSE4_1 targets. Update insn attributes.
13303 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13304 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
13305 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
13306 const_1 selector.
13307 (*vec_extractv4si): Rename from *sse4_1_pextrd.
13308 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
13309 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
13310
a986d468
OE
133112013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13312
13313 PR target/57108
13314 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
13315
382522cb
MK
133162013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
13317
13318 * final.c (do_assembler_dialects): Don't handle curly braces and
13319 vertical bar escaped by % as dialect delimiters.
13320 (output_asm_insn): Print curly braces and vertical bar if escaped
13321 by % and ASSEMBLER_DIALECT defined.
13322 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
13323 * doc/tm.texi: Regenerated.
13324
fb0d5c60
SB
133252013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13326
fb0d5c60
SB
13327 * config/mips/mips.c: Include tree-pass.h.
13328 (mips_reorg): Split in pre- and post-dbr_schedule parts.
13329 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
13330 (pass_mips_machine_reorg2): New machine specific pass.
13331 (insert_pass_mips_machine_reorg2): New pass plugin definition.
13332 (mips_option_override): Register the new pass.
13333 * rtl.h (cleanup_barriers): Remove prototype.
13334 (dbr_schedule): Likewise.
13335 * jump.c (cleanup_barriers): Make static.
13336 * reorg.c (dbr_schedule): Likewise.
13337
aa06a978
RB
133382013-05-06 Richard Biener <rguenther@suse.de>
13339
13340 PR tree-optimization/57185
13341 * tree-parloops.c (add_field_for_reduction): Handle anonymous
13342 SSA names properly.
13343
0b953bec
UB
133442013-05-06 Uros Bizjak <ubizjak@gmail.com>
13345
13346 PR target/57106
13347 * config/i386/i386.c (add_parameter_dependencies): Add dependence
13348 between "first_arg" and "insn", not "last" and "insn".
13349
28708525
WS
133502013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13351
13352 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13353 (find_candidates_in_block): Re-enable slsr_process_phi.
13354 (create_phi_basis): Fix double counting of candidate adjustment.
13355
0107dca2
RB
133562013-05-06 Richard Biener <rguenther@suse.de>
13357
13358 PR middle-end/57147
13359 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13360 the edge is also fallthru, preserve it and just clear the
13361 abnormal flag.
13362 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13363 also complex, preserve that and just clear the fallthru flag.
13364 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13365 update virtual operands.
13366
470d4d13
AM
133672013-05-06 Alan Modra <amodra@gmail.com>
13368
13369 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13370 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13371 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13372 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13373 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13374 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13375
8f1dbf8d
AM
133762013-05-06 Alan Modra <amodra@gmail.com>
13377
13378 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13379 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13380 (DEFAULT_ASM_ENDIAN): Define.
13381 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13382 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13383 Update -K PIC clause from sysv4.h.
13384 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13385 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13386
54890767
AM
133872013-05-06 Alan Modra <amodra@gmail.com>
13388
13389 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13390 twice for little-endian.
13391 (ashrdi3_no_power, ashrdi3): Support little-endian.
13392
2353515d
OE
133932013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13394
13395 PR target/55303
13396 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13397 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13398 related expanders.
13399 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13400 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13401 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13402 New predicates.
13403
33e67557
SB
134042013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13405 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13406
13407 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13408 * config/pa/pa.opt: Make mbig-switch a no-op.
13409 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13410 (CASE_VECTOR_MODE): Always return SImode.
13411 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13412 for the !TARGET_BIG_SWITCH case.
13413 * config/pa/pa-linux.h: Likewise.
13414 * config/pa/pa-openbsd.h: Likewise.
13415 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13416 * config/pa/pa.md (short_jump): Remove define_insn.
13417 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13418 (casesi0): Remove define_insn.
13419 (type): Remove btable_branch.
13420 (pa_combine_type): Likewise.
13421 (in_nullified_branch_delay): Likewise.
13422 (in_call_delay): Likewise.
13423 (define_delay): Likewise.
13424 (define_insn_reservation "Z3"): Likewise.
13425 (define_insn_reservation "Z4"): Likewise.
13426 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13427 (pa_adjust_insn_length): Remove adjustment for btable branches.
13428 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13429 and mno-big-switch
13430
3095685e
UB
134312013-05-05 Uros Bizjak <ubizjak@gmail.com>
13432
13433 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13434 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13435 Add m->r,x alternatives.
13436 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13437 splitters using SWI48x mode iterator.
13438 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13439 TARGET_64BIT. Add m->x alternative.
13440 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13441 Add o->x alternative. Enable for TARGET_SSE.
13442 (sse_storeq): Remove expander.
13443 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13444 with memory input operand.
13445 (*vec_extractv2di_1 splitter): New.
13446 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13447 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13448
4b36ae28
SB
134492013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13450
13451 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13452 (INT_LOWPART): Delete.
13453 (extract_MB): Adjust.
13454 (extract_ME): Adjust.
13455 (print_operand): Adjust.
13456
da226db2
SB
134572013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13458
13459 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13460 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13461 (reg_or_logical_cint_operand, easy_fp_constant,
13462 logical_const_operand): Delete "CONST_DOUBLE" case.
13463 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13464 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13465 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13466 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13467 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13468 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13469 test.
13470 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13471 CONST_DOUBLE DImode/VOIDmode case.
13472 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13473 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13474 CONST_DOUBLE VOIDmode case.
13475 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13476 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13477 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13478 Delete CONST_DOUBLE case.
13479 (splitters for mov FMOVE64 const_double): Delete
13480 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13481 "HOST_BITS_PER_WIDE_INT >= 64" test.
13482 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13483 case.
13484 (mov DI const_double): Delete.
13485
40de22d6
JJ
134862013-05-04 Jakub Jelinek <jakub@redhat.com>
13487
13488 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13489 on op shows all bits zero in mode of a lowpart subreg, return zero.
13490
5ec6aff2
MM
134912013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13492
13493 PR target/57150
13494 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13495 to save TFmode registers and DImode to save TImode registers for
13496 caller save operations.
13497 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13498 mark being partially clobbered since they only use the first
13499 double word.
13500
13501 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13502 and TDmode only use the upper 64-bits of each VSX register.
13503
2cefad90
BS
135042013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13505
13506 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13507 (find_candidates_in_block): Disable slsr_process_phi.
13508
d6d7eee1
GW
135092013-05-03 Guozhi Wei <carrot@google.com>
13510
13511 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13512 constructor to ...
13513 (build_init_ctor): ... here.
d6d7eee1 13514
9b92d12b
BS
135152013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13516
13517 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13518 (slsr_cand_d): Redefine def_phi.
13519 (stride_status, phi_adjust_status, count_phis_status): New enums.
13520 (find_phi_def): New.
13521 (find_basis_for_base_expr): New.
13522 (find_basis_for_candidate): Handle hidden bases.
13523 (alloc_cand_and_find_basis): Handle phi candidates.
13524 (slsr_process_phi): New.
13525 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13526 (create_mul_imm_cand): Likewise.
13527 (create_add_ssa_cand): Exclude phi base candidates.
13528 (create_add_imm_cand): Likewise.
13529 (slsr_process_cast): Likewise.
13530 (slsr_process_copy): Likewise.
13531 (find_candidates_in_block): Handle phi candidates.
13532 (dump_candidate): Likewise.
13533 (unconditional_cands): Delete.
13534 (unconditional_cands_with_known_stride_p): Delete.
13535 (phi_dependent_cand_p): New.
13536 (cand_increment): Handle phi-dependent candidates.
13537 (replace_dependent): Delete.
13538 (replace_mult_candidate): New.
13539 (replace_unconditional_candidate): New.
13540 (incr_vec_index): Move to avoid forward reference.
13541 (create_add_on_incoming_edge): New.
13542 (create_phi_basis): New.
13543 (replace_dependents): Delete.
13544 (replace_conditional_candidate): New.
13545 (phi_add_costs): New.
13546 (replace_uncond_cands_and_profitable_phis): New.
13547 (record_increment): Handle phi adjustments.
13548 (record_phi_increments): New.
13549 (record_increments): Handle phi adjustments.
13550 (phi_incr_cost): New.
13551 (lowest_cost_path): Handle phis.
13552 (total_savings): Likewise.
13553 (analyze_increments): Likewise.
13554 (ncd_with_phi): New.
13555 (ncd_of_cand_and_phis): New.
13556 (nearest_common_dominator_for_cands): Handle phi increments.
13557 (all_phi_incrs_profitable): New.
13558 (replace_profitable_candidates): Handle phi-dependent candidates.
13559 (analyze_candidates_and_replace): Likewise.
13560
68f073d4
TJ
135612013-05-03 Teresa Johnson <tejohnson@google.com>
13562
13563 PR bootstrap/57154
13564 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13565 do not exceed REG_BR_PROB_BASE.
13566
a4ee7cb9
JL
135672013-05-03 Jeff Law <law@redhat.com>
13568
ade67f70 13569 PR tree-optimization/57144
a4ee7cb9
JL
13570 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13571 operand of the condition will bit into the new type when eliminating
13572 a cast feeding a condition.
13573
47954c4e
JJ
135742013-05-03 Jakub Jelinek <jakub@redhat.com>
13575
13576 PR rtl-optimization/57130
3095685e
UB
13577 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13578 of COMPARE as in_code to the recursive call if needed.
47954c4e 13579
3c21604f
UB
135802013-05-03 Uros Bizjak <ubizjak@gmail.com>
13581
13582 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13583 (enabled): Handle new members.
13584 * config/i386/sse.md (*vec_concatv2si): Merge from
13585 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13586 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13587
12211b99 135882013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13589
13590 PR tree-optimization/57027
13591 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13592 for fnms opportunity, check we got the prerequisite kind
13593 of tree / gimple before using accessor functions.
13594
07bfc9ec
RB
135952013-05-03 Richard Biener <rguenther@suse.de>
13596
13597 * double-int.h (lshift): New overload without precision
13598 and arith argument.
13599 (operator *=, operator +=, operator -=): Move ...
13600 * double-int.c (operator *=, operator +=, operator -=): ... here
13601 and implement more efficiently.
13602 (mul_double_with_sign): Remove.
13603 (lshift_double): Adjust to take unsinged shift argument, push
13604 dispatching code to callers.
13605 (mul_double_wide_with_sign): Add early out for callers that
13606 are not interested in high parts or overflow.
13607 (lshift): New function.
13608 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13609 dispatch code here.
13610 (lrotate, rrotate): Use logical shifts.
13611 * expr.c (get_inner_reference): Use lshift.
13612 * fixed-value.c (do_fixed_divide): Likewise.
13613 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13614 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13615 (indirect_refs_may_alias_p): Likewise.
13616 (stmt_kills_ref_p_1): Likewise.
13617
7769bb64
VP
136182013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13619
13620 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13621
1d0c8e5c
VP
136222013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13623
13624 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13625 scalar form of FABD instruction.
13626
f15feaf9
VM
136272013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13628
13629 * lra-constraints.c (process_alt_operands): Add checking alt
13630 number to choose the best alternative.
13631
d90e76d4
RB
136322013-05-02 Richard Biener <rguenther@suse.de>
13633
13634 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13635 bitmap and its handling.
13636 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
13637
9f8e7a96
RB
136382013-05-02 Richard Biener <rguenther@suse.de>
13639
13640 PR middle-end/57140
13641 * tree-inline.c (copy_loops): Properly handle removed loops.
13642 (copy_cfg_body): Mark destination loops for fixup if source
13643 loops needed fixup.
13644
f3a81b39
GY
136452013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
13646
13647 PR target/56732
13648 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
13649 generating simple_return for naked functions.
13650
7b920a9a
MJ
136512013-05-02 Martin Jambor <mjambor@suse.cz>
13652
13653 PR middle-end/56988
13654 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
13655 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
13656 flags match.
13657 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
13658 ipa_agg_replacement_value structures.
13659 (known_aggs_to_agg_replacement_list): Likewise.
13660 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
13661 (read_agg_replacement_chain): Likewise.
13662 (ipcp_transform_function): Also check that by_ref flags match.
13663
2c41c19d
RB
136642013-05-02 Richard Biener <rguenther@suse.de>
13665
13666 * graphds.h (struct graph): Add obstack member.
13667 * graphds.c (new_graph): Initialize obstack and allocate
13668 vertices from it.
13669 (add_edge): Allocate edge from the obstack.
3c21604f 13670 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 13671
8b47039c
TJ
136722013-05-02 Teresa Johnson <tejohnson@google.com>
13673
13674 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
13675 divides.
13676 * cfg.c (update_bb_profile_for_threading): Ditto.
13677 * tree-inline.c (copy_bb): Ditto.
13678 (copy_edges_for_bb): Ditto.
13679 (initialize_cfun): Ditto.
13680 (copy_cfg_body): Ditto.
13681 (expand_call_inline): Ditto.
13682 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
13683 (estimate_node_size_and_time): Ditto.
13684 (inline_merge_summary): Ditto.
13685 * cgraphclones.c (cgraph_clone_edge): Ditto.
13686 (cgraph_clone_node): Ditto.
13687 * sched-rgn.c (compute_dom_prob_ps): Ditto.
13688 (compute_trg_info): Ditto.
13689
da65928c
IB
136902013-05-02 Ian Bolton <ian.bolton@arm.com>
13691
13692 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
13693 S reg when fp attribute set.
13694 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
13695
add3c965
IB
136962013-05-02 Ian Bolton <ian.bolton@arm.com>
13697
13698 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
13699 New pattern.
13700 (*and_one_cmplsi3_compare0_uxtw): Likewise.
13701 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
13702 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13703
fdd43ac4
RB
137042013-05-02 Richard Biener <rguenther@suse.de>
13705
13706 * tree-scalar-evolution.c (scev_info_hasher): Remove.
13707 (struct instantiate_cache_entry): New type.
13708 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
13709 (struct instantiate_cache_type): New type.
13710 (set_instantiated_value, get_instantiated_value): Remove.
13711 (get_instantiated_value_entry): New function.
13712 (instantiate_scev_name): Use the new cache and adjust.
13713 (instantiate_scev_poly): Adjust.
13714 (instantiate_scev_binary): Likewise.
13715 (instantiate_array_ref): Likewise.
13716 (instantiate_scev_convert): Likewise.
13717 (instantiate_scev_not): Likewise.
13718 (instantiate_scev_3): Likewise.
13719 (instantiate_scev_2): Likewise.
13720 (instantiate_scev_r): Likewise.
13721 (instantiate_scev): Likewise.
13722 (resolve_mixers): Likewise.
13723
36ff9dfb
VM
137242013-05-01 Vladimir Makarov <vmakarov@redhat.com>
13725
13726 PR target/57091
13727 * lra-constraints.c (best_small_class_operands_num): Remove.
13728 (process_alt_operands): Remove small_class_operands_num. Take
13729 small classes operands into losers and only if the operand is not
13730 matched. Modify debugging output.
13731 (curr_insn_transform): Remove best_small_class_operands_num.
13732 Print insn name.
13733
36054fab
JG
137342013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13735
13736 * config/aarch64/aarch64-builtins.c
13737 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
13738 * config/aarch64/aarch64-simd-builtins.def
13739 (reduc_splus_): Add new modes.
13740 (reduc_uplus_): New.
13741 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
13742 (reduc_uplus_v4sf): Likewise.
13743 (reduc_splus_v4sf): Likewise.
13744 (aarch64_addv<mode>): Likewise.
13745 (reduc_uplus_<mode>): Likewise.
13746 (reduc_splus_<mode>): Likewise.
13747 (aarch64_addvv2di): Likewise.
13748 (reduc_uplus_v2di): Likewise.
13749 (reduc_splus_v2di): Likewise.
13750 (aarch64_addvv2si): Likewise.
13751 (reduc_uplus_v2si): Likewise.
13752 (reduc_splus_v2si): Likewise.
13753 (reduc_<sur>plus_<mode>): New.
13754 (reduc_<sur>plus_v2di): Likewise.
13755 (reduc_<sur>plus_v2si): Likewise.
13756 (reduc_<sur>plus_v4sf): Likewise.
13757 (aarch64_addpv4sf): Likewise.
13758 * config/aarch64/arm_neon.h
13759 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
13760 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
13761 add UNSPEC_SADDV, UNSPEC_UADDV.
13762 (SUADDV): New.
13763 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
13764
6dce23a8
JG
137652013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13766
13767 * config/aarch64/arm_neon.h
13768 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
13769
1598945b
JG
137702013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13771
13772 * config/aarch64/aarch64-builtins
13773 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
13774
998eaf97
JG
137752013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13776
13777 * config/aarch64/aarch64-simd-builtins.def
13778 (reduc_smax_): New.
13779 (reduc_smin_): Likewise.
13780 (reduc_umax_): Likewise.
13781 (reduc_umin_): Likewise.
13782 (reduc_smax_nan_): Likewise.
13783 (reduc_smin_nan_): Likewise.
13784 (fmax): Remove.
13785 (fmin): Likewise.
13786 (smax): Update for V2SF, V4SF and V2DF modes.
13787 (smin): Likewise.
13788 (smax_nan): New.
13789 (smin_nan): Likewise.
13790 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
13791 (<su><maxmin><mode>3): ...This, refactor.
13792 (s<maxmin><mode>3): New.
13793 (<maxmin_uns><mode>3): Likewise.
13794 (reduc_<maxmin_uns>_<mode>): Refactor.
13795 (reduc_<maxmin_uns>_v4sf): Likewise.
13796 (reduc_<maxmin_uns>_v2si): Likewise.
13797 (aarch64_<fmaxmin><mode>: Remove.
13798 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
13799 new builtin names.
13800 (vmin<q>_f<32,64>): Likewise.
13801 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13802 (FMAXMIN): New.
13803 (su): Add mappings for smax, smin, umax, umin.
13804 (maxmin): New.
13805 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13806 (FMAXMIN): Rename as...
13807 (FMAXMIN_UNS): ...This.
13808 (maxminv): Remove.
13809 (fmaxminv): Likewise.
13810 (fmaxmin): Likewise.
13811 (maxmin_uns): New.
13812 (maxmin_uns_op): Likewise.
13813
bd11644e
JG
138142013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13815
13816 * config/aarch64/arm_neon.h
13817 (vac<ge, gt><sd>_f<32, 64>): Rename to...
13818 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
13819 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
13820
75dd5ace
JG
138212013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13822
13823 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
13824 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
13825
7c19979f
JG
138262013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13827
13828 * config/aarch64/aarch64-simd.md
13829 (vcond<mode>_internal): Handle special cases for constant masks.
13830 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
13831 (vcondu<mode><mode>): Likewise.
13832 (vcond<v_cmp_result><mode>): New.
13833
bb60efd9
JG
138342013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13835
13836 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
13837 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
13838 * config/aarch64/aarch64-simd-builtins.def
13839 (cmeq): Update to BUILTIN_VALLDI.
13840 (cmgt): Likewise.
13841 (cmge): Likewise.
13842 (cmle): Likewise.
13843 (cmlt): Likewise.
13844 * config/aarch64/arm_neon.h
13845 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
13846 to builtins or C as appropriate.
13847
889b9412
JG
138482013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13849
13850 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
13851 (cmgeu): ...This.
13852 (cmhi): Rename to...
13853 (cmgtu): ...This.
13854 * config/aarch64/aarch64-simd.md
13855 (simd_mode): Add SF.
13856 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
13857 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
13858 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
13859 (cstore<mode>_neg): ...This.
13860 * config/aarch64/iterators.md
13861 (VALLF): new.
13862 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
13863 (COMPARISONS): New.
13864 (UCOMPARISONS): Likewise.
13865 (optab): Add missing comparisons.
13866 (n_optab): New.
13867 (cmp_1): Likewise.
13868 (cmp_2): Likewise.
13869 (CMP): Likewise.
13870 (cmp): Remove.
13871 (VCMP_S): Likewise.
13872 (VCMP_U): Likewise.
13873 (V_cmp_result): Add DF, SF modes.
13874 (v_cmp_result): Likewise.
13875 (v): Likewise.
13876 (vmtype): Likewise.
13877 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
13878
0a7dbb76
GY
138792013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
13880
13881 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
13882 define_insn to define_insn_and_split.
13883 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
13884 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
13885 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
13886 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
13887 (thumb2_negscc): Likewise.
13888
fb614ca6
GY
138892013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13890
13891 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
13892
9e64a0bf
GY
138932013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13894
13895 * config/arm/thumb2.md: Remove trailing whitespaces.
13896
d6b28156
RS
138972013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13898
13899 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
13900 Use gen_int_mode rather than GEN_INT.
13901
f91674c3
L
139022013-04-30 H.J. Lu <hongjiu.lu@intel.com>
13903
b0dec607 13904 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
13905 debug_gimple_stmt.
13906
3551257c
RB
139072013-04-30 Richard Biener <rguenther@suse.de>
13908
13909 PR middle-end/57122
3c21604f 13910 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 13911
4c1aff1c
RB
139122013-04-30 Richard Biener <rguenther@suse.de>
13913
13914 PR middle-end/57107
13915 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
13916
54b8379a
AB
139172013-04-30 Andrey Belevantsev <abel@ispras.ru>
13918
13919 PR rtl-optimization/56957
13920 PR rtl-optimization/57105
54b8379a
AB
13921 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
13922 variable. Use just INSN_UID for determining whether an insn
13923 should be only disconnected from the insn stream.
13924 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
13925
abc27962
JJ
139262013-04-30 Jakub Jelinek <jakub@redhat.com>
13927
13928 PR tree-optimization/57104
13929 * tsan.c (instrument_expr): Don't instrument accesses to
13930 DECL_HARD_REGISTER VAR_DECLs.
13931
0fc822d0
RB
139322013-04-30 Richard Biener <rguenther@suse.de>
13933
13934 * function.h (loops_for_fn): New inline function.
13935 (set_loops_for_fn): Likewise.
13936 * cfgloop.h (place_new_loop): Add struct function parameter.
13937 (get_loop): Likewise.
13938 (get_loops): Likewise.
13939 (number_of_loops): Likewise.
13940 (fel_next): Adjust.
13941 (fel_init): Likewise.
13942 * cfg.c (get_loop_copy): Adjust.
13943 * cfgloop.c (flow_loops_dump): Likewise.
13944 (record_loop_exits): Likewise.
13945 (verify_loop_structure): Likewise.
13946 * cfgloopanal.c (mark_irreducible_loops): Likewise.
13947 (estimate_reg_pressure_cost): Likewise.
13948 (mark_loop_exit_edges): Likewise.
13949 * cfgloopmanip.c (place_new_loop): Likewise.
13950 (add_loop): Likewise.
13951 (duplicate_loop): Likewise.
13952 * graph.c (draw_cfg_nodes): Likewise.
13953 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
13954 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
13955 (extract_affine_chrec): Likewise.
13956 (build_scop_iteration_domain): Likewise.
13957 * graphite.c (graphite_initialize): Likewise.
13958 * ira-build.c (create_loop_tree_nodes): Likewise.
13959 (more_one_region_p): Likewise.
13960 (rebuild_regno_allocno_maps): Likewise.
13961 (mark_loops_for_removal): Likewise.
13962 (mark_all_loops_for_removal): Likewise.
13963 (remove_unnecessary_regions): Likewise.
13964 (ira_build): Likewise.
13965 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
13966 * loop-init.c (fix_loop_structure): Likewise.
13967 (gate_rtl_move_loop_invariants): Likewise.
13968 (gate_rtl_unswitch): Likewise.
13969 (gate_rtl_unroll_and_peel_loops): Likewise.
13970 (rtl_doloop): Likewise.
13971 * lto-streamer-in.c (input_cfg): Likewise.
13972 * lto-streamer-out.c (output_cfg): Likewise.
13973 * modulo-sched.c (sms_schedule): Likewise.
13974 * predict.c (tree_estimate_probability): Likewise.
13975 (tree_estimate_probability_driver): Likewise.
13976 (estimate_loops): Likewise.
13977 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
13978 (move_sese_region_to_fn): Likewise.
13979 (debug_loop_num): Likewise.
13980 * tree-chrec.c (chrec_evaluate): Likewise.
13981 (hide_evolution_in_other_loops_than_loop): Likewise.
13982 (chrec_component_in_loop_num): Likewise.
13983 (reset_evolution_in_loop): Likewise.
13984 (evolution_function_is_invariant_rec_p): Likewise.
13985 * tree-if-conv.c (main_tree_if_conversion): Likewise.
13986 * tree-inline.c (copy_loops): Likewise.
13987 (copy_cfg_body): Likewise.
13988 (tree_function_versioning): Likewise.
13989 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
13990 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13991 Likewise.
13992 (add_to_evolution_1): Likewise.
13993 (scev_const_prop): Likewise.
13994 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
13995 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
13996 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
13997 (tree_ssa_lim_initialize): Likewise.
13998 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
13999 (verify_loop_closed_ssa): Likewise.
14000 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
14001 (tree_ssa_loop_im): Likewise.
14002 (tree_ssa_loop_unswitch): Likewise.
14003 (tree_vectorize): Likewise.
14004 (check_data_deps): Likewise.
14005 (tree_ssa_loop_ivcanon): Likewise.
14006 (tree_ssa_loop_bounds): Likewise.
14007 (tree_complete_unroll): Likewise.
14008 (tree_complete_unroll_inner): Likewise.
14009 (tree_parallelize_loops): Likewise.
14010 (tree_ssa_loop_prefetch): Likewise.
14011 (tree_ssa_loop_ivopts): Likewise.
14012 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
14013 * tree-vectorizer.c (vectorize_loops): Likewise.
14014
37953bd3
MF
140152013-04-29 Mike Frysinger <vapier@gentoo.org>
14016
14017 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
14018 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
14019 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
14020 with EABI_LINK_SPEC.
14021
f9ed28db
UB
140222013-04-29 Uros Bizjak <ubizjak@gmail.com>
14023
14024 PR target/44578
14025 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
14026 alternative.
14027
deca73f5
VM
140282013-04-29 Vladimir Makarov <vmakarov@redhat.com>
14029
14030 PR target/57097
37953bd3 14031 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
14032 using memory for pseudos. Print cost dump for alternatives.
14033 Modify cost values for conflicts with early clobbers.
14034 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
14035
fdca7d03
UB
140362013-04-29 Uros Bizjak <ubizjak@gmail.com>
14037
14038 PR target/57098
14039 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
14040
0b064172
IB
140412013-04-29 Ian Bolton <ian.bolton@arm.com>
14042
14043 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
14044 from/to S register.
14045 (movdi_aarch64): Support LDR/STR from/to D register.
14046
473cec55
IB
140472013-04-29 Ian Bolton <ian.bolton@arm.com>
14048
14049 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
14050 or higher by default.
14051
a6f30e66
RB
140522013-04-29 Richard Biener <rguenther@suse.de>
14053
14054 PR middle-end/57075
14055 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
14056 even if not adding abnormal edges for calls that can make
14057 abnormal gotos.
14058
0c2b2040
RB
140592013-04-29 Richard Biener <rguenther@suse.de>
14060
14061 PR middle-end/57103
14062 * tree-cfg.c (move_stmt_op): Fix condition under which to update
14063 TREE_BLOCK.
14064 (move_stmt_r): Remove redundant checking.
14065
f41f80f9
TJ
140662013-04-29 Teresa Johnson <tejohnson@google.com>
14067
14068 PR bootstrap/57077
14069 * basic-block.h (apply_scale): New function.
14070 (apply_probability): Use apply_scale.
14071 * gimple-streamer-in.c (input_bb): Ditto.
14072 * lto-streamer-in.c (input_cfg): Ditto.
14073 * lto-cgraph.c (merge_profile_summaries): Ditto.
14074 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 14075 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
14076 (copy_edges_for_bb): Ditto.
14077 (copy_cfg_body): Ditto.
14078
315bbd2e
TV
140792013-04-29 Tom de Vries <tom@codesourcery.com>
14080
14081 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
14082 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
14083 (tail_merge_optimize): Handle current_loops == NULL.
14084
ebbd90d8
JL
140852013-04-26 Jeff Law <law@redhat.com>
14086
14087 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
14088 (simplify_cond_using_ranges): Generalize code to simplify
14089 COND_EXPRs where one argument is a constant and the other
14090 is an SSA_NAME created by an integral type conversion.
14091
8b9b57eb
KT
140922013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14093
14094 * config/arm/arm.md (store_minmaxsi): Use only when
14095 optimize_insn_for_size_p.
14096
9498e5dc
CB
140972013-04-29 Christian Bruel <christian.bruel@st.com>
14098
14099 PR target/57108
14100 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
14101
6093bc06
RB
141022013-04-29 Richard Biener <rguenther@suse.de>
14103
14104 PR middle-end/57089
fdca7d03
UB
14105 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
14106 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
14107 (expand_omp_for_generic): Properly add loops.
14108 (expand_omp_for_static_nochunk): Likewise.
14109 (expand_omp_for_static_chunk): Likewise.
14110 (expand_omp_for): For the degenerate case fixup loops.
14111 (expand_omp_sections): Fix default bb placement in loops.
14112 (expand_omp_atomic_pipeline): Properly add loops.
14113
84aacbfd
KT
141142013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14115
14116 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
14117
8dee4479
TV
141182013-04-29 Tom de Vries <tom@codesourcery.com>
14119
14120 * tree-ssa-tail-merge.c: Update header comment.
14121
47934dc4
JG
141222013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14123
14124 * config/aarch64/arm_neon.h
14125 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
14126 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
14127 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
14128 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
14129 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
14130 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
14131 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
14132 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
14133
384be29f
JG
141342013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14135
14136 * config/aarch64/aarch64-simd.md
14137 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
14138 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
14139 fix_trunc, fixuns_trunc.
14140 (ftrunc<VDQF:mode>2): New.
14141 * config/aarch64/iterators.md (optab): Add fix, fixuns.
14142 (fix_trunc_optab): New.
14143
0386b123
JG
141442013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14145
14146 * config/aarch64/aarch64-builtins.c
14147 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
14148 iceilf, lround, iroundf.
14149
00fcb892
UB
141502013-04-29 Uros Bizjak <ubizjak@gmail.com>
14151
14152 PR target/54349
14153 * config/i386/i386.h (enum ix86_tune_indices)
14154 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
14155 New, split from X86_TUNE_INTER_UNIT_MOVES.
14156 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
14157 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
14158 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
14159 (TARGET_INTER_UNIT_MOVES): Remove.
14160 * config/i386/i386.c (initial_ix86_tune_features): Update.
14161 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
14162 (ix86_expand_convert_uns_didf_sse): Use
14163 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14164 (ix86_expand_vector_init_one_nonzero): Ditto.
14165 (ix86_expand_vector_init_interleave): Ditto.
14166 (inline_secondary_memory_needed): Return true for moves from SSE class
14167 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
14168 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14169 * config/i386/constraints.md (Yi, Ym): Depend on
14170 TARGET_INTER_UNIT_MOVES_TO_VEC.
14171 (Yj, Yn): New constraints.
14172 * config/i386/i386.md (*movdi_internal): Change constraints of
14173 operand 1 from Yi to Yj and from Ym to Yn.
14174 (*movsi_internal): Ditto.
14175 (*movdf_internal): Ditto.
14176 (*movsf_internal): Ditto.
14177 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
14178 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14179 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
14180 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
14181 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
14182 * config/i386/sse.md (movdi_to_sse): Ditto.
14183 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
14184 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
14185 TARGET_INTER_UNIT_MOVES.
14186 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
14187 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
14188 instead of TARGET_INTER_UNIT_MOVES.
14189 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
14190 operand 1 from Yi to Yj and from Ym to Yn.
14191
4c871069
JG
141922013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14193
14194 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
14195 (float_truncate_hi_): Likewise.
14196 (float_extend_lo_): Likewise.
14197 (float_truncate_lo_): Likewise.
14198 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
14199 (aarch64_float_extend_lo_v2df): Likewise.
14200 (vec_unpacks_hi_v4sf): Likewise.
14201 (aarch64_float_truncate_lo_v2sf): Likewise.
14202 (aarch64_float_truncate_hi_v4sf): Likewise.
14203 (vec_pack_trunc_v2df): Likewise.
14204 (vec_pack_trunc_df): Likewise.
14205
1709ff9b
JG
142062013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14207
14208 * config/aarch64/aarch64-builtins.c
14209 (aarch64_fold_builtin): Fold float conversions.
14210 * config/aarch64/aarch64-simd-builtins.def
14211 (floatv2si, floatv4si, floatv2di): New.
14212 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
14213 * config/aarch64/aarch64-simd.md
14214 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
14215 * config/aarch64/iterators.md (FLOATUORS): New.
14216 (optab): Add float, floatuns.
14217 (su_optab): Likewise.
14218
ce966824
JG
142192013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14220
14221 * config/aarch64/aarch64-builtins.c
14222 (aarch64_builtin_vectorized_function): Use new names for
14223 fcvt builtins.
14224 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
14225 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
14226 (fcvtzu): Split as...
14227 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
14228 (fcvtas): Split as...
14229 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
14230 (fcvtau): Split as...
14231 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
14232 (fcvtps): Split as...
14233 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
14234 (fcvtpu): Split as...
14235 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
14236 (fcvtms): Split as...
14237 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
14238 (fcvtmu): Split as...
14239 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
14240 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
14241 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
14242 (lfrintnusf, lfrintnudf): Likewise.
14243 * config/aarch64/aarch64-simd.md
14244 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
14245 define_insn.
14246 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
14247 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
14248 (fcvt_pattern): Likewise.
14249
b9de24fe
JG
142502013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14251
14252 * config/aarch64/aarch64-simd.md
14253 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
14254 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
14255
77a205be
JG
142562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14257
14258 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
14259 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
14260 (vrnd<a,m,n,p>_f32): Implement using builtins.
14261 (vrnd<i,x><q>_f<32, 64>): New.
14262
0659ce6f
JG
142632013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14264
14265 * config/aarch64/aarch64-builtins.c
14266 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
14267 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
14268 (frintz): Rename to...
14269 (btrunc): ...this.
14270 (frintp): Rename to...
14271 (ceil): ...this.
14272 (frintm): Rename to...
14273 (floor): ...this.
14274 (frinti): Rename to...
14275 (nearbyint): ...this.
14276 (frintx): Rename to...
14277 (rint): ...this.
14278 (frinta): Rename to...
14279 (round): ...this.
14280 * config/aarch64/aarch64-simd.md
14281 (aarch64_frint<frint_suffix><mode>): Delete.
14282 (<frint_pattern><mode>2): Convert to insn.
14283 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
14284 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
14285 (frint_pattern): Likewise.
14286 (frint_suffix): Likewise.
14287
ea78906a
RB
142882013-04-29 Richard Biener <rguenther@suse.de>
14289
14290 PR tree-optimization/57081
14291 * loop-init.c: Include tree-flow.h.
14292 (loop_optimizer_finalize): Free number of iteration estimates.
14293 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
14294
baee1763
JJ
142952013-04-29 Jakub Jelinek <jakub@redhat.com>
14296
94dc5332
JJ
14297 PR tree-optimization/57083
14298 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
14299 non-singleton shift count range, zero extend low_bound for uns case.
14300
baee1763
JJ
14301 * config/i386/predicates.md (general_vector_operand): New predicate.
14302 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
14303 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
14304 if they aren't nonimmediate operands. If their original values
14305 satisfy const_vector_equal_evenodd_p, don't shift them.
14306 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
14307 predicates. For the SSE4.1 case force operands[{1,2}] into registers
14308 if not nonimmediate_operand.
14309 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
14310 instead of register_operand.
14311 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
14312
a9073727 143132013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
14314
14315 * stor-layout.c (finalize_size_functions): Allocate a structure and
14316 reset cfun before dumping the functions.
14317
ba8011e6
JJ
143182013-04-27 Jakub Jelinek <jakub@redhat.com>
14319
d6fde69e
JJ
14320 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
14321
ba8011e6
JJ
14322 PR target/56866
14323 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
14324 use xop_pmacsdqh if uns_p.
14325 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
14326 the immediate rotate count.
14327
2c62cbaa
VM
143282013-04-26 Vladimir Makarov <vmakarov@redhat.com>
14329
14330 * rtl.h (struct rtx_def): Add comment for field jump.
14331 (LRA_SUBREG_P): New macro.
14332 * recog.c (register_operand): Check LRA_SUBREG_P.
14333 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14334 stack frame.
14335 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14336 (lra_final_code_change): Skip subreg change for operators.
14337 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14338 if there are no operand changes.
14339 * lra-constraints.c (curr_insn_set): New.
14340 (match_reload): Set LRA_SUBREG_P.
14341 (emit_spill_move): Ditto.
14342 (check_and_process_move): Use curr_insn_set. Process only single
14343 set insns. Don't initialize sec_mem_p and change_p.
14344 (simplify_operand_subreg): Use LRA_SUBREG_P.
14345 (reg_in_class_p): New function.
14346 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14347 of #ifdef. Add code to remove cycling.
14348 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14349 non-null disp. Reload inner instead of disp when base and index
14350 are null. Try to put lo_sum into register.
14351 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14352 (check_and_process_move): Move code for move cost check to
14353 simple_move_p. Remove equiv_substitution.
14354 (simple_move_p): New function.
14355 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14356 curr_insn_set. Call check_and_process_move only for single set
14357 insns. Use the new function. Move call of check_and_process_move
14358 after operand equiv substitution and address process.
14359
e7d764f3
JJ
143602013-04-26 Jakub Jelinek <jakub@redhat.com>
14361
14362 PR go/57045
14363 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14364 with nonlocal goto receivers or returns twice calls, ignore
14365 unininitialized values from abnormal edges to nl goto receiver
14366 or returns twice call.
14367
41e10689
JJ
143682013-04-26 Jakub Jelinek <jakub@redhat.com>
14369
14370 PR tree-optimization/57051
14371 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14372 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14373 bitsize.
14374
d7ed20db
RB
143752013-04-26 Richard Biener <rguenther@suse.de>
14376
14377 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14378 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14379 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14380 (fixup_loop_arrays_after_move): New function.
14381 (move_sese_region_to_fn): Properly outline the loop tree parts
14382 of the SESE region.
14383
df93505e
UB
143842013-04-26 Uros Bizjak <ubizjak@gmail.com>
14385
14386 * config/i386/i386.md (type, unit): Fix long lines.
14387
dd366ec3
RB
143882013-04-26 Richard Biener <rguenther@suse.de>
14389
14390 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14391 (lto-streamer-out.o): Likewise.
14392 * cfgloop.c (init_loops_structure): Export, add struct function
14393 argument and adjust.
14394 (flow_loops_find): Adjust.
14395 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14396 (init_loops_structure): Declare.
14397 * lto-streamer-in.c: Include cfgloop.h.
14398 (input_cfg): Input the loop tree.
14399 * lto-streamer-out.c: Include cfgloop.h.
14400 (output_cfg): Output the loop tree.
14401 (output_struct_function_base): Do not drop PROP_loops.
14402
a9e0d843
RB
144032013-03-26 Richard Biener <rguenther@suse.de>
14404
14405 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14406 (pass_build_cfg): Provide PROP_loops.
14407 (move_sese_region_to_fn): Remove loops that are outlined into fn
14408 for now.
14409 * tree-inline.c: Include cfgloop.h.
14410 (initialize_cfun): Do not drop PROP_loops.
14411 (copy_loops): New function.
14412 (copy_cfg_body): Copy loop structure.
14413 (tree_function_versioning): Initialize destination loop tree.
14414 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14415 (pass_parallelize_loops): Do IL verification.
14416 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14417 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14418 the CFG make sure we fixup loops as well.
14419 * tree-ssa-tail-merge.c: Include cfgloop.h.
14420 (replace_block_by): When merging loop latches mark loops for fixup.
14421 * lto-streamer-out.c (output_struct_function_base): Drop
14422 PROP_loops for now.
14423 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14424 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14425 * ipa-split.c: Include cfgloop.h.
14426 (split_function): Add the new return block to the loop tree root.
14427 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14428 whether we have removed the forwarder block.
14429 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14430 * cfgloop.h (place_new_loop): Declare.
14431 * cfgloopmanip.c (place_new_loop): Export.
14432 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14433 (tree-switch-conversion.o): Likewise.
14434 (tree-complex.o): Likewise.
14435 (tree-inline.o): Likewise.
14436 (tree-ssa-tailmerge.o): Likewise.
14437 (ipa-split.o): Likewise.
14438 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14439 (tree-ssa-copy.o): Likewise.
14440 * tree-switch-conversion.c: Include cfgloop.h
14441 (process_switch): If we emit a bit-test cascade, schedule loops
14442 for fixup.
14443 * tree-complex.c: Include cfgloop.h.
14444 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14445 * asan.c: Include cfgloop.h.
14446 (create_cond_insert_point): Properly add new basic-blocks to
14447 loops, schedule loop fixup.
14448 * cfgloop.c (verify_loop_structure): Check that looks are not
14449 marked for fixup.
14450 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14451 to loops.
14452 (expand_omp_for_generic): Likewise.
14453 (expand_omp_sections): Likewise.
14454 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14455 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14456 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14457 is initialized, not when loops are present.
14458 * tree-parloops.c (parallelize_loops): Remove checking here.
14459 * passes.c (init_optimization_passes): Schedule a copy-propagation
14460 pass before complete unrolling of inner loops.
14461
e78e8a0b
JJ
144622013-04-26 Jakub Jelinek <jakub@redhat.com>
14463
a2e836b2
JJ
14464 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14465 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14466 (colorize_init): Add argument to _WIN32 version.
14467 * toplev.c: Include diagnostic-color.h.
14468 (process_options): Default to -fdiagnostics-color=auto if
14469 GCC_COLORS env var is in the environment.
14470 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14471 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14472 env var is in the environment, the default is auto rather than never.
a2e836b2 14473
e78e8a0b
JJ
14474 * diagnostic.h (file_name_as_prefix): Add context argument.
14475 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14476 the string as locus.
14477 * langhooks.c (lhd_print_error_function): Adjust caller.
14478
013e5ef9
LC
144792013-04-25 Lawrence Crowl <crowl@google.com>
14480
14481 * var-tracking.c (shared_hash_def::htab):
14482 Change type to hash_table. Update dependent calls and types.
14483
4a8fb1a1
LC
144842013-04-25 Lawrence Crowl <crowl@google.com>
14485
14486 * Makefile.in: Update as needed below.
14487
14488 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14489 Move declaration to after the type's method definitons.
14490
14491 * attribs.c (htab_t scoped_attributes::attribute_hash):
14492 Change type to hash_table. Update dependent calls and types.
14493
14494 * bitmap.c (htab_t bitmap_desc_hash):
14495 Change type to hash_table. Update dependent calls and types.
14496
14497 * cselib.c (htab_t cselib_hash_table):
14498 Change type to hash_table. Update dependent calls and types.
14499
14500 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14501 (hash_string_slot_node): Move implementation into lto-streamer.h
14502 struct string_slot_hasher.
14503 (eq_string_slot_node): Likewise.
14504
14505 * data-streamer-out.c: Update output_block::string_hash_table
14506 dependent calls and types.
14507
14508 * dwarf2cfi.c (htab_t trace_index):
14509 Change type to hash_table. Update dependent calls and types.
14510
14511 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14512 Change type to hash_table. Update dependent calls and types.
14513 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14514 (htab_t optimize_external_refs::map): Likewise.
14515 (htab_t output_comp_unit::extern_map): Likewise.
14516 (htab_t output_comdat_type_unit::extern_map): Likewise.
14517 (htab_t output_macinfo::macinfo_htab): Likewise.
14518 (htab_t optimize_location_lists::htab): Likewise.
14519 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14520
14521 * except.c (htab_t ehspec_hash_type):
14522 Change type to hash_table. Update dependent calls and types.
14523 (assign_filter_values::ttypes): Likewise.
14524 (assign_filter_values::ehspec): Likewise.
14525 (sjlj_assign_call_site_values::ar_hash): Likewise.
14526 (convert_to_eh_region_ranges::ar_hash): Likewise.
14527
14528 * gcse.c (htab_t pre_ldst_table):
14529 Change type to hash_table. Update dependent calls and types.
14530
14531 * ggc-common.c (htab_t saving_htab):
14532 Change type to hash_table. Update dependent calls and types.
14533 (htab_t loc_hash): Likewise.
14534 (htab_t ptr_hash): Likewise.
14535 (call_count): Rename ggc_call_count.
14536 (call_alloc): Rename ggc_call_alloc.
14537 (loc_descriptor): Rename make_loc_descriptor.
14538 (add_statistics): Rename ggc_add_statistics.
14539
14540 * ggc-common.c (saving_htab):
14541 Change type to hash_table. Update dependent calls and types.
14542
14543 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14544 (push_gimplify_context): Likewise.
14545 (pop_gimplify_context): Likewise.
14546 (struct gimple_temp_hash_elt): Added.
14547 (struct gimplify_hasher): Likewise.
14548 (struct gimplify_ctx.temp_htab):
14549 Change type to hash_table. Update dependent calls and types.
14550
14551 * gimple-fold.c: Include gimplify-ctx.h.
14552
14553 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14554 Change type to hash_table. Update dependent calls and types.
14555 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14556 avoid potential global name collision.
14557
14558 * gimplify.c: Include gimplify-ctx.h.
14559 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14560 (htab_t gimplify_ctx::temp_htab):
14561 Update dependent calls and types for new type hash_table.
14562 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14563 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14564
14565 * gimplify-ctx.h: New.
14566 (struct gimple_temp_hash_elt): Move from gimplify.c.
14567 (class gimplify_hasher): New.
14568 (struct gimplify_ctx): Move from gimple.h.
14569 (htab_t gimplify_ctx::temp_htab):
14570 Change type to hash_table. Update dependent calls and types.
14571
14572 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14573 (htab_t ivs_params::newivs_index):
14574 Change type to hash_table. Update dependent calls and types.
14575 (htab_t ivs_params::params_index): Likewise.
14576 (htab_t print_generated_program::params_index): Likewise.
14577 (htab_t gloog::newivs_index): Likewise.
14578 (htab_t gloog::params_index): Likewise.
14579
14580 * graphite.c: Include graphite-htab.h.
14581 4htab_t graphite_transform_loops::bb_pbb_mapping):
14582 Change type to hash_table. Update dependent calls and types.
14583
14584 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14585 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14586 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14587
14588 * graphite-dependences.c: Include graphite-htab.h.
14589 (loop_is_parallel_p): Change hash table type of parameter.
14590
14591 * graphite-htab.h: New.
14592 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14593 (extern find_pbb_via_hash): Move from graphite-poly.h.
14594 (extern loop_is_parallel_p): Move from graphite-poly.h.
14595 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14596
14597 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14598 (extern loop_is_parallel_p): Move to graphite-htab.h.
14599 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14600
14601 * haifa-sched.c (htab_t delay_htab):
14602 Change type to hash_table. Update dependent calls and types.
14603 (htab_t delay_htab_i2): Likewise.
14604
14605 * ira-color.c (htab_t allocno_hard_regs_htab):
14606 Change type to hash_table. Update dependent calls and types.
14607
14608 * ira-costs.c (htab_t cost_classes_htab):
14609 Change type to hash_table. Update dependent calls and types.
14610
14611 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14612 Change type to hash_table. Update dependent calls and types.
14613
14614 * loop-iv.c (htab_t bivs):
14615 Change type to hash_table. Update dependent calls and types.
14616
14617 * loop-unroll.c (htab_t opt_info::insns_to_split):
14618 Change type to hash_table. Update dependent calls and types.
14619 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14620
14621 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14622 (struct string_slot_hasher): New.
14623 (htab_t output_block::string_hash_table):
14624 Change type to hash_table. Update dependent calls and types.
14625
14626 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14627 (htab_t file_name_hash_table):
14628 Change type to hash_table. Update dependent calls and types.
14629
14630 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14631 calls and types.
14632
14633 * lto-streamer.c (htab_t tree_htab):
14634 Change type to hash_table. Update dependent calls and types.
14635
14636 * omp-low.c: Include gimplify-ctx.h.
14637
14638 * passes.c (htab_t name_to_pass_map):
14639 Change type to hash_table. Update dependent calls and types.
14640 (pass_traverse): Rename to passes_pass_traverse.
14641
14642 * plugin.c (htab_t event_tab):
14643 Change type to hash_table. Update dependent calls and types.
14644
14645 * postreload-gcse.c (htab_t expr_table):
14646 Change type to hash_table. Update dependent calls and types.
14647 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
14648
14649 * sese.c (debug_rename_map_1): Make extern.
14650 (htab_t copy_bb_and_scalar_dependences::rename_map):
14651 Change type to hash_table. Update dependent calls and types.
14652
14653 * sese.h (extern debug_rename_map): Move to .c file.
14654
14655 * store-motion.c (htab_t store_motion_mems_table):
14656 Change type to hash_table. Update dependent calls and types.
14657
14658 * trans-mem.c (htab_t tm_new_mem_hash):
14659 Change type to hash_table. Update dependent calls and types.
14660
14661 * tree-browser.c (htab_t TB_up_ht):
14662 Change type to hash_table. Update dependent calls and types.
14663
14664 * tree-cfg.c (htab_t discriminator_per_locus):
14665 Change type to hash_table. Update dependent calls and types.
14666
14667 * tree-complex.c: Include tree-hasher.h
14668 (htab_t complex_variable_components):
14669 Change type to hash_table. Update dependent calls and types.
14670
14671 * tree-eh.c (htab_t finally_tree):
14672 Change type to hash_table. Update dependent calls and types.
14673
14674 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
14675 struct int_tree_hasher.
14676 (extern int_tree_map_eq): Likewise.
14677 (uid_decl_map_hash): Removed.
14678 (extern decl_tree_map_eq): Likewise.
14679
14680 * tree-hasher.h: New.
14681 (struct int_tree_hasher): New.
14682 (typedef int_tree_htab_type): New.
14683
14684 * tree-inline.c: Include gimplify-ctx.h.
14685
14686 * tree-mudflap.c: Include gimplify-ctx.h.
14687
14688 * tree-parloops.c: Include tree-hasher.h.
14689 (htab_t eliminate_local_variables_stmt::decl_address):
14690 Change type to hash_table. Update dependent calls and types.
14691 (htab_t separate_decls_in_region::decl_copies): Likewise.
14692
14693 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
14694 Change type to hash_table. Update dependent calls and types.
14695
14696 * tree-sra.c (candidates):
14697 Change type to hash_table. Update dependent calls and types.
14698
14699 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
14700 in tree-flow.h.
14701 (int_tree_map_hash): Likewise.
14702
14703 * tree-ssa-dom.c (htab_t avail_exprs):
14704 Change type to hash_table. Update dependent calls and types.
14705
14706 * tree-ssa-live.c (var_map_base_init::tree_to_index):
14707 Change type to hash_table. Update dependent calls and types.
14708
14709 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
14710 Change type to hash_table. Update dependent calls and types.
14711
14712 * tree-ssa-phiopt.c (seen_ssa_names):
14713 Change type to hash_table. Update dependent calls and types.
14714
14715 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
14716 Change type to hash_table. Update dependent calls and types.
14717
14718 * tree-ssa-uncprop.c (equiv):
14719 Change type to hash_table. Update dependent calls and types.
14720
c5a44004
JJ
147212013-04-25 Jakub Jelinek <jakub@redhat.com>
14722
14723 PR rtl-optimization/57003
14724 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14725 call note_stores with kill_clobbered_value callback again after
14726 killing regs_invalidated_by_call.
14727
09962a4a
JG
147282013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14729
14730 * config/aarch64/aarch64-simd.md
14731 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
14732 (aarch64_simd_bsl<mode>): Likewise.
14733 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
14734
ea28bb0b
MP
147352013-04-25 Marek Polacek <polacek@redhat.com>
14736
14737 PR tree-optimization/57066
3c21604f 14738 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 14739
96659611
JG
147402013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
14741
14742 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
14743
9697e620
JG
147442013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14745
14746 * config/aarch64/aarch64-builtins.c
14747 (aarch64_fold_builtin): New.
14748 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
14749 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
14750 * config/aarch64/aarch64-simd-builtins.def (abs): New.
14751 * config/aarch64/arm_neon.h
14752 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
14753
0ac198d3
JG
147542013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14755 Tejas Belagod <tejas.belagod@arm.com>
14756
14757 * config/aarch64/aarch64-builtins.c
14758 (aarch64_gimple_fold_builtin): New.
14759 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
14760 * config/aarch64/aarch64-simd-builtins.def (addv): New.
14761 * config/aarch64/aarch64-simd.md (addpv4sf): New.
14762 (addvv4sf): Update.
14763 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
14764
58cff58c
N
147652013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14766
df93505e 14767 * config/aarch64/aarch64.md
58cff58c
N
14768 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
14769
7e0228bf
N
147702013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14771
14772 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
14773 (*ngcsi_uxtw): New pattern.
14774
5819f96f 147752013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 14776 Julian Brown <julian@codesourcery.com>
5819f96f
KT
14777
14778 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
14779 (TB_DREG): Add T_V4HF.
14780 (v4hf_UP): New macro.
14781 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 14782 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14783 Handle initialisation of V4HF. Adjust initialisation of reinterpret
14784 built-ins.
df93505e 14785 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14786 (arm_vector_mode_supported_p): Handle V4HF.
14787 (arm_mangle_map): Handle V4HFmode.
14788 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
14789 * config/arm/arm_neon_builtins.def: Add entries for
14790 vcvtv4hfv4sf, vcvtv4sfv4hf.
14791 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
14792 (neon_vcvtv4hfv4sf): Likewise.
14793 * config/arm/neon-gen.ml: Handle half-precision floating point
14794 features.
14795 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
14796 * config/arm/arm_neon.h: Regenerate.
14797 * config/arm/neon.ml (type elts): Add F16.
14798 (type vectype): Add T_float16x4, T_floatHF.
14799 (type vecmode): Add V4HF.
14800 (type features): Add Requires_FP_bit feature.
14801 (elt_width): Handle F16.
14802 (elt_class): Likewise.
14803 (elt_of_class_width): Likewise.
14804 (mode_of_elt): Refactor.
14805 (type_for_elt): Handle F16, fix error messages.
14806 (vectype_size): Handle T_float16x4.
14807 (vcvt_sh): New function.
14808 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
14809 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
14810 (string_of_mode): Handle V4HF.
14811 * doc/arm-neon-intrinsics.texi: Regenerate.
14812
1ef395e4
JG
148132013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14814
14815 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
14816 format specifier in 'X' case.
14817
41c34e94
AM
148182013-04-25 Alan Modra <amodra@gmail.com>
14819
14820 PR target/57052
14821 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
14822 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
14823 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
14824 Repeat for many other rotate/shift and mask patterns using subregs.
14825 Name lshiftrt insns.
14826 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
14827 on WORDS_BIG_ENDIAN.
14828
b9a7eb5d
AM
148292013-04-25 Alan Modra <amodra@gmail.com>
14830
14831 * config.gcc: Support little-endian powerpc-linux targets.
14832 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
14833 (LINK_OS_LINUX_SPEC): Define.
14834 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
14835 Preserve MASK_LITTLE_ENDIAN.
14836 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
14837 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
14838 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
14839 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
14840 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
14841 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
14842 Correct fp word order for little-endian. Don't shift toc entries
14843 smaller than a word for little-endian.
14844 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
14845 (bswapdi2 splits): Correct low-part subreg for little-endian.
14846 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
14847 low/high where such is correct only for be.
14848 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
14849 little-endian for -mcall-aixdesc.
14850
87f73374
AM
148512013-04-25 Alan Modra <amodra@gmail.com>
14852
14853 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14854 replace_equiv_address_nv.
14855
cabf91cd
AM
148562013-04-25 Alan Modra <amodra@gmail.com>
14857
14858 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
14859
0ae24cc8
VM
148602013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14861
14862 Revert:
14863 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14864 * rtl.h (struct rtx_def): ...
cabf91cd 14865
77bce07c
VM
148662013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14867
14868 PR rtl-optimizations/57046
14869 * lra-constraints (split_reg): Set up lra_risky_transformations_p
14870 for multi-reg splits.
14871
0db63e7f
L
148722013-04-24 H.J. Lu <hongjiu.lu@intel.com>
14873
14874 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
14875
3362b6b6
SA
148762013-04-24 Sterling Augustine <saugustine@google.com>
14877
14878 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
14879 (comp_dir_string, debug_str_dwo_section): New.
14880 (DEBUG_STR_DWO_SECTION): Rename to ...
14881 (DEBUG_DWO_STR_SECTION): ... this.
14882 (DEBUG_NORM_STR_SECTION): Delete.
14883 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
14884 (DEBUG_STR_DWO_SECTION_FLAGS): New.
14885 (find_AT_string): Move most logic to ...
14886 (find_AT_string_in_table): ... here. New.
14887 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
14888 add_skeleton_AT_string. Delete logic.
14889 (output_skeleton_debug_sections): Remove call to
14890 add_top_level_skeleton_die_attrs.
14891 (add_comp_dir_attribute): Move logic to comp_dir_string.
14892 (dwarf2out_init): Initialize debug_str_dwo_section.
14893 (output_indirect_string): Call find_string_form.
14894 (output_indirect_strings): Rewrite.
14895 (prune_unused_types): Empty skeleton_debug_str_hash.
14896 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
14897 (dwarf2out_finish): Call output_indirect_strings.
14898
e93e18e9
PC
148992013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14900
14901 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
14902
f6ce35ac
VM
149032013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14904
cabf91cd 14905 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
14906 (LRA_SUBREG_P): New macro.
14907 * recog.c (register_operand): Check LRA_SUBREG_P.
14908 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14909 stack frame.
14910 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14911 (lra_final_code_change): Skip subreg change for operators.
14912 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14913 if there are no operand changes.
14914 * lra-constraints.c (curr_insn_set): New.
14915 (match_reload): Set LRA_SUBREG_P.
14916 (emit_spill_move): Ditto.
14917 (check_and_process_move): Use curr_insn_set. Process only single
14918 set insns. Don't initialize sec_mem_p and change_p.
14919 (simplify_operand_subreg): Use LRA_SUBREG_P.
14920 (reg_in_class_p): New function.
14921 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14922 of #ifdef. Add code to remove cycling.
14923 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14924 non-null disp. Reload inner instead of disp when base and index
14925 are null. Try to put lo_sum into register.
14926 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 14927 (check_and_process_move): Move code for move cost check to
f6ce35ac 14928 simple_move_p. Remove equiv_substitution.
cabf91cd 14929 (simple_move_p): New function.
f6ce35ac
VM
14930 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14931 curr_insn_set. Call check_and_process_move only for single set
14932 insns. Use the new function. Move call of check_and_process_move
14933 after operand equiv substitution and address process.
14934
38047d90
JG
149352013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
14936
14937 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
14938 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
14939 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
14940
13f39b2e
PC
149412013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14942
14943 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
14944
97c116dc
MP
149452013-04-24 Marek Polacek <polacek@redhat.com>
14946
14947 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
14948 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
14949 (select_loops_exit_conditions): Likewise.
14950 (number_of_iterations_for_all_loops): Likewise.
14951 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
14952 (scev_analysis): Likewise.
14953
83082391 149542013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 14955 Chao-ying Fu <fu@mips.com>
83082391 14956
cabf91cd
AM
14957 * config/mips/micromips.md (jraddiusp): New pattern.
14958 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
14959 instruction if possible.
83082391 14960
19e34aa2
AM
149612013-04-24 Alan Modra <amodra@gmail.com>
14962
14963 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
14964
fdb6603c
JB
149652013-04-24 Julian Brown <julian@codesourcery.com>
14966 Chung-Lin Tang <cltang@codesourcery.com>
14967
14968 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
14969 dependency behavior in enumeration type DIE generation. Add TODO note
14970 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 14971
bf190e8d
LC
149722013-04-23 Lawrence Crowl <crowl@google.com>
14973
14974 * Makefile.in: Update as needed below.
14975
14976 * hash-table.h (class hash_table):
14977 Correct many methods with parameter types compare_type to the correct
14978 value_type. (Correct code was unlikely to notice the change.)
14979 (hash_table::elements_with_deleted) New.
14980 (class hashtable::iterator): New.
14981 (hashtable::begin()): New.
14982 (hashtable::end()): New.
14983 (FOR_EACH_HASH_TABLE_ELEMENT): New.
14984
14985 * statistics.c (statistics_hashes):
14986 Change type to hash_table. Update dependent calls and types.
14987
14988 * tree-into-ssa.c (var_infos):
14989 Change type to hash_table. Update dependent calls and types.
14990
14991 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
14992 Change type to hash_table. Update dependent calls and types.
14993
14994 * tree-ssa-loop-im.c (struct mem_ref.refs):
14995 Change type to hash_table. Update dependent calls and types.
14996
14997 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
14998 Change type to hash_table. Update dependent calls and types.
14999
15000 * tree-ssa-sccvn.c (vn_tables_s::nary):
15001 Change type to hash_table. Update dependent calls and types.
15002 (vn_tables_s::phis): Likewise.
15003 (vn_tables_s::references): Likewise.
15004
15005 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
15006 (vn_reference_eq): Update parameter and return types.
15007
15008 * tree-ssa-structalias.c (pointer_equiv_class_table):
15009 Change type to hash_table. Update dependent calls and types.
15010 (location_equiv_class_table): Likewise.
15011
15012 * tree-vect-data-refs.c: Consequential changes for making
15013 peeling a hash_table.
15014
15015 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
15016 (destroy_loop_vec_info): Dependent hash_table update.
15017
15018 * tree-vectorizer.h (peeling_htab):
15019 Change type to hash_table. Update dependent calls and types.
15020
d70a81dd
SC
150212013-04-23 Shiva Chen <shiva0217@gmail.com>
15022
cabf91cd
AM
15023 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
15024 to check the register content is equal or not.
15025 * lra-constraints.c (match_reload): Use lra_assign_reg_val
15026 to assign register content record.
15027 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 15028 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
15029 * lra-int.h (struct lra_reg): Add offset member.
15030 (lra_reg_val_equal_p): New static inline function.
15031 (lra_update_reg_val_offset): New static inline function.
15032 (lra_assign_reg_val): New static inline function.
15033 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
15034 to assign register content record.
15035 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 15036
b894a1f3
CM
150372013-04-23 Catherine Moore <clm@codesourcery.com>
15038
15039 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
15040 operands. Record compression.
15041
ecd14de9
XDL
150422013-04-23 Xinliang David Li <davidxl@google.com>
15043
15044 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
15045
92e776e9
RB
150462013-04-23 Richard Biener <rguenther@suse.de>
15047
15048 PR middle-end/57036
15049 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
15050 parameter, only add abnormal goto edges from the copied body
15051 if the call could perform abnormal gotos.
15052 (copy_cfg_body): Adjust.
15053
a15ee567
SN
150542013-04-23 Sofiane Naci <sofiane.naci@arm.com>
15055
15056 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
15057
08c52234
AS
150582013-04-23 Andreas Schwab <schwab@linux-m68k.org>
15059
15060 * coretypes.h (gimple_stmt_iterator): Add struct to make
15061 compatible with C.
15062
999c1171
RB
150632013-04-23 Richard Biener <rguenther@suse.de>
15064
15065 PR tree-optimization/57026
15066 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
15067 from SSA names occuring in abnormal PHI nodes.
15068
53669259
AK
150692013-04-22 Andi Kleen <ak@linux.intel.com>
15070
15071 * lto/lto.c (print_lto_report_1): Fix LTO report names.
15072
1a0ad150
AK
150732013-04-22 Andi Kleen <ak@linux.intel.com>
15074
15075 * lto/lto.c (print_lto_report_1): Declare early.
15076 (read_cgraph_and_symbols): Call print_lto_report_1 early.
15077
057f8f20
AK
150782013-04-22 Andi Kleen <ak@linux.intel.com>
15079
15080 * common.opt (-flto-report-wpa): Add.
15081 * doc/invoke.texi (-flto-report-wpa): Add.
15082 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
15083 (lto_main): dito.
15084
473b1e05
XDL
150852013-04-22 Xinliang David Li <davidxl@google.com>
15086
15087 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
15088 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
15089 * Makefile.in: New dependency
15090
cabf91cd 15091 David Daney <ddaney.cavm@gmail.com>
b1485a33 15092
cabf91cd
AM
15093 * configure.ac (gcc_cv_as_micromips_support): Use the
15094 --fatal-warnings option.
15095 * configure: Regenerate.
b1485a33 15096
829d0168
MP
150972013-04-22 Marek Polacek <polacek@redhat.com>
15098
15099 PR sanitizer/56990
15100 * tsan.c (instrument_expr): Don't instrument expression
15101 in case its size is zero.
15102
6d9b7208
UB
151032013-04-22 Uros Bizjak <ubizjak@gmail.com>
15104
15105 PR target/57032
15106 Revert:
15107 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
15108
15109 * config/alpha/alpha.c (TARGET_LRA_P): New define.
15110
ea679d55
JG
151112013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15112
15113 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
15114 (gimple_stmt_iterator): New typedef.
15115 * gimple.h (gimple_stmt_iterator): Rename to...
15116 (gimple_stmt_iterator_d): ... This.
15117 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
15118 trees be valid for GIMPLE and GENERIC.
15119 (TARGET_GIMPLE_FOLD_BUILTIN): New.
15120 * gimple-fold.c (gimple_fold_call): Call target hook
15121 gimple_fold_builtin.
15122 * hooks.c (hook_bool_gsiptr_false): New.
15123 * hooks.h (hook_bool_gsiptr_false): New.
15124 * target.def (fold_stmt): New.
15125 * doc/tm.texi: Regenerate.
15126
88a581da
VM
151272013-04-22 Vladimir Makarov <vmakarov@redhat.com>
15128
15129 PR target/57018
15130 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
15131 a set sp if no stack realignment.
15132
92be22dc
NC
151332013-04-22 Nick Clifton <nickc@redhat.com>
15134
15135 * config.gcc (tilegx-linux): Extend extra_objs rather than
15136 overwriting it.
15137 (tilepro-linux): Likewise.
15138
0ddec79f
JG
151392013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15140
15141 * config/aarch64/aarch64-builtins.c
15142 (CF): Remove.
15143 (CF0, CF1, CF2, CF3, CF4, CF10): New.
15144 (VAR<1-12>): Add MAP parameter.
15145 (BUILTIN_*): Likewise.
15146 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
15147 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
15148 (aarch64_ushl_n<mode>): Likewise.
15149 (aarch64_sshr_n<mode>): Likewise.
15150 (aarch64_ushr_n<mode>): Likewise.
15151 (aarch64_<maxmin><mode>): Likewise.
15152 (aarch64_sqrt<mode>): Likewise.
15153 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
15154 (vshr<q>_n_*): Likewise.
15155
0050faf8
JG
151562013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15157
15158 * config/aarch64/aarch64-builtins.c
15159 (aarch64_simd_builtin_type_mode): Handle SF types.
15160 (sf_UP): Define.
15161 (BUILTIN_GPF): Define.
15162 (aarch64_init_simd_builtins): Handle SF types.
15163 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
15164 (frecps): Likewise.
15165 (frecpx): Likewise.
15166 * config/aarch64/aarch64-simd.md
15167 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
15168 (aarch64_frecpe<mode>): New.
15169 (aarch64_frecps<mode>): Likewise.
15170 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
15171 (v8type): Add frecp<esx>.
15172 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
15173 (aarch64_frecps<mode>): Likewise.
15174 * config/aarch64/iterators.md (FRECP): New.
15175 (frecp_suffix): Likewise.
15176 * config/aarch64/arm_neon.h
15177 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
15178
0fad3dbc 151792013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
15180
15181 PR target/56995
15182 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
15183 (REG_CLASS_NAMES): Idem.
15184 (REG_CLASS_CONTENTS): Idem.
15185 (REGCLASS_HAS_FP_REG): Idem.
15186 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
15187 (sh_conditional_register_usage): Idem.
15188
3e8a33f9
JL
151892013-04-21 Jeff Law <law@redhat.com>
15190
15191 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
15192 (ssa_forward_propagate_and_combine): Use it.
15193
f38e1b0a
VM
151942013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15195
15196 * lra.c: Update the flow chart diagram.
15197
682303da
VM
151982013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15199
15200 PR rtl-optimization/56847
15201 * lra-constraints.c (process_alt_operands): Discourage alternative
15202 with non-matche doffsettable memory constraint fro memory with
15203 known offset.
15204
f6b64c35
RB
152052013-04-19 Richard Biener <rguenther@suse.de>
15206
15207 PR tree-optimization/56982
15208 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
15209 function.
15210 * gimplify.c (gimplify_call_expr): Notice special calls.
15211 (gimplify_modify_expr): Likewise.
15212 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
15213 abnormal control flow receivers.
15214 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
15215 in the same way as cfun->has_nonlocal_labels.
15216 (gimple_purge_dead_abnormal_call_edges): Likewise.
15217 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
15218 receivers start a basic-block.
15219
01d8bf07
RB
152202013-04-19 Richard Biener <rguenther@suse.de>
15221
15222 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
15223 member ...
15224 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
15225 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
15226 (SLP_TREE_LOAD_PERMUTATION): Add.
15227 (vect_transform_slp_perm_load): Adjust prototype.
15228 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
15229 (vect_free_slp_instance): Likewise.
15230 (vect_create_new_slp_node): Likewise.
15231 (vect_supported_slp_permutation_p): Remove.
15232 (vect_slp_rearrange_stmts): Adjust.
15233 (vect_supported_load_permutation_p): Likewise. Inline
15234 vect_supported_slp_permutation_p here.
15235 (vect_analyze_slp_instance): Compute load permutations per
15236 slp node instead of per instance.
15237 (vect_get_slp_defs): Adjust.
15238 (vect_transform_slp_perm_load): Likewise.
15239 (vect_schedule_slp_instance): Remove redundant code.
15240 (vect_schedule_slp): Remove hack for PR56270, add it ...
15241 * tree-vect-stmts.c (vectorizable_load): ... here, do not
15242 CSE loads for SLP. Adjust.
15243
ede22fc3
GY
152442013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15245
15246 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
15247 spelling in two comments.
15248
67bc84fb
GY
152492013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15250
15251 PR target/56797
15252 * config/arm/arm.c (load_multiple_sequence): Require SP
15253 as base register for loads if SP is in the register list.
15254
e248d83f
MJ
152552013-04-19 Martin Jambor <mjambor@suse.cz>
15256
15257 PR tree-optimization/56718
15258 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
15259 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
15260 and made public. Adjusted all callers.
15261 (ipa_intraprocedural_devirtualization): New function.
15262 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
15263 (ipa_intraprocedural_devirtualization): Likewise.
15264 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
15265
4891e8f8
RB
152662013-04-19 Richard Biener <rguenther@suse.de>
15267
15268 PR tree-optimization/57000
15269 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
15270
dad89f7c
TG
152712013-04-19 Terry Guo <terry.guo@arm.com>
15272
15273 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
15274 Replace with ...
15275 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
15276 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
15277 (cortex_m4_fmacs): Use new reservations.
15278 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
15279
72ea0d47
VM
152802013-04-18 Vladimir Makarov <vmakarov@redhat.com>
15281
f1e6512c 15282 PR rtl-optimization/56999
72ea0d47
VM
15283 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
15284 related code.
15285 (lra_coalesce): Remove split_origin_bitmap and related code.
15286 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
15287 ranges if necessary.
15288
780a5b71
UB
152892013-04-18 Uros Bizjak <ubizjak@gmail.com>
15290
15291 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
15292 New array.
15293 (ix86_expand_call): Remove clobbered_registers array and use
15294 x86_64_ms_sysv_extra_clobbered_registers instead.
15295 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
15296 Declare here.
15297 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
15298 predicate.
15299 * config/i386/i386.md (*call_rex64_ms_sysv): Use
15300 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
15301 (*call_value_rex64_ms_sysv): Ditto.
15302
6f5a366a
CC
153032013-04-18 Cary Coutant <ccoutant@google.com>
15304
15305 * dwarf2out.c (output_pubnames): Check die_perennial_p of
15306 parent instead of die_mark.
15307
475b8f37
DN
153082013-04-18 Diego Novillo <dnovillo@google.com>
15309
15310 * gimple.c (create_gimple_tmp): New.
15311 (get_expr_type): New.
15312 (build_assign): New.
15313 (build_type_cast): New.
15314 * gimple.h (enum ssa_mode): Define.
15315 (gimple_seq_set_location): New.
15316 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 15317 to use build_assign and build_type_cast.
475b8f37 15318
08940f33
RB
153192013-04-18 Richard Biener <rguenther@suse.de>
15320
15321 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
15322 handle negative step. Remove redundant checks.
15323 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
15324 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
15325 for negative step and grouped loads fail to vectorize.
15326
0e0f87d4
SB
153272013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15328
15329 * emit-rtl.c (reset_insn_used_flags): New function.
15330 (reset_all_used_flags): Use it.
15331 (verify_insn_sharing): New function.
15332 (verify_rtl_sharing): Fix verification for SEQUENCEs.
15333
4c445590
JJ
153342013-04-18 Jakub Jelinek <jakub@redhat.com>
15335
15336 PR tree-optimization/56984
15337 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
15338 and (x >> M) >= N don't register any assertion if N << M is the
15339 minimum value.
15340
6873ecab
SB
153412013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15342
15343 * lower-subreg.c (resolve_simple_move): If called self-recursive,
15344 do not delete_insn insns that have not yet been emitted, only
15345 unlink them with remove_insn.
15346 * df-scan.c (df_insn_delete): Revert r197492.
15347
3ccb989e
SB
153482013-04-17 Steven Bosscher <steven@gcc.gnu.org>
15349
15350 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15351 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15352
153532013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15354
15355 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15356 define_insn_and_split.
15357 (and_scc,ior_scc,negscc): Likewise.
15358 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15359
3ccb989e 153602013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15361
15362 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15363 can benefit from using a sequence of LDRD instructions in epilogue
15364 instead of a single LDM instruction.
15365
6d10a203
MLI
153662013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15367
15368 PR 45688
15369 * doc/extend.texi: Fix typo.
15370
6983e6b5
RB
153712013-04-17 Richard Biener <rguenther@suse.de>
15372
15373 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15374 (vect_build_slp_tree): ... here.
15375 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15376 match. Remove special-casing of mismatched complex loads.
15377 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15378 re-try the match with swapped commutative operands.
15379 (vect_supported_load_permutation_p): Remove special-casing of
15380 mismatched complex loads.
15381 (vect_analyze_slp_instance): Adjust.
15382
ef23e6a2
RB
153832013-04-17 Richard Biener <rguenther@suse.de>
15384
15385 PR rtl-optimization/56921
15386 * cfgloop.h (struct loop): Add simple_loop_desc member.
15387 (struct niter_desc): Mark with GTY(()).
15388 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15389 * loop-iv.c (get_simple_loop_desc): Likewise.
15390 (free_simple_loop_desc): Likewise.
15391
15392 Revert
15393 2013-04-16 Richard Biener <rguenther@suse.de>
15394
15395 PR rtl-optimization/56921
15396 * loop-init.c (pass_rtl_move_loop_invariants): Add
15397 TODO_do_not_ggc_collect to todo_flags_finish.
15398 (pass_rtl_unswitch): Same.
15399 (pass_rtl_unroll_and_peel_loops): Same.
15400 (pass_rtl_doloop): Same.
15401
fc6f94f5
EB
154022013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15403
15404 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15405 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15406 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15407 references.
15408 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15409 * tree-streamer.c (record_common_node): Adjust reference in comment.
15410
10a88311
TG
154112013-04-17 Terry Guo <terry.guo@arm.com>
15412
15413 * config/arm/cortex-m4.md: Add a new bypass.
15414
6d9b7208 154152013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15416
15417 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15418 New pattern.
15419 (*subs_<optab><mode>_multp2): New pattern.
15420 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15421 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15422
6d9b7208 154232013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15424
15425 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15426 (*subs_mul_imm_<mode>): New pattern.
15427
18a6701e
DE
154282013-04-16 David Edelsohn <dje.gcc@gmail.com>
15429
15430 PR target/56948
15431 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15432 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15433 (vsx_movti_32bit): Change j->wa to O->wa.
15434
07c37b2f
RB
154352013-04-16 Richard Biener <rguenther@suse.de>
15436
15437 PR rtl-optimization/56921
15438 * loop-init.c (pass_rtl_move_loop_invariants): Add
15439 TODO_do_not_ggc_collect to todo_flags_finish.
15440 (pass_rtl_unswitch): Same.
15441 (pass_rtl_unroll_and_peel_loops): Same.
15442 (pass_rtl_doloop): Same.
15443
0e0f87d4 154442013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15445
15446 * config/arm/arm.c (emit_multi_reg_push): New declaration
15447 for an existing function.
15448 (arm_emit_strd_push): New function.
15449 (arm_expand_prologue): Used here.
15450 (arm_emit_ldrd_pop): New function.
15451 (arm_expand_epilogue): Used here.
15452 (arm_get_frame_offsets): Update condition.
15453 (arm_emit_multi_reg_pop): Add a special case for load of a single
15454 register with writeback.
15455
5e8e2af4
UB
154562013-04-16 Uros Bizjak <ubizjak@gmail.com>
15457
15458 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15459 description.
15460
9fd9ccf7
RB
154612013-04-16 Richard Biener <rguenther@suse.de>
15462
15463 PR tree-optimization/56756
15464 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15465 (first_mem_ref_loc): New.
15466 (execute_sm): Place the load temporarily before a previous
15467 access instead of in the latch edge to ensure its SSA dependencies
15468 are defined at points dominating the load.
15469
96fba521
SB
154702013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15471
4c8af858
SB
15472 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15473 correct fix by moving header and footer insn to the footer of
15474 the merged basic block. Clear BB_END of the merged-away block.
15475
96fba521
SB
15476 PR middle-end/43631
15477 * emit-rtl.c (make_note_raw): New function.
15478 (link_insn_into_chain): New static inline function.
15479 (add_insn): Use it.
15480 (add_insn_before, add_insn_after): Factor insn chain linking code...
15481 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15482 using link_insn_into_chain.
15483 (note_outside_basic_block_p): New helper function for emit_note_after
15484 and emit_note_before.
15485 (emit_note_after): Use nobb variant of add_insn_after if the note
15486 should not be contained in a basic block.
15487 (emit_note_before): Use nobb variant of add_insn_before if the note
15488 should not be contained in a basic block.
15489 (emit_note_copy): Use make_note_raw.
15490 (emit_note): Likewise.
15491 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15492 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15493 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15494 the moved barrier the tail of the basic block it follows.
15495 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15496
7b8265ba
JJ
154972013-04-15 Jakub Jelinek <jakub@redhat.com>
15498
15499 PR tree-optimization/56962
15500 * gimple-ssa-strength-reduction.c (record_increment): Only set
15501 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15502 either rhs1 or rhs2 is equal to c->base_expr.
15503
5185d248
RB
155042013-04-15 Richard Biener <rguenther@suse.de>
15505
15506 PR tree-optimization/56933
15507 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15508 member.
15509 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15510 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15511 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15512 dependence check ...
15513 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15514 ... here.
15515 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15516 GROUP_READ_WRITE_DEPENDENCE.
15517
a24243a0
AK
155182013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15519
15520 * emit-rtl.c (reset_all_used_flags): New function.
15521 (verify_rtl_sharing): Call reset_all_used_flags before and after
15522 performing the checks.
15523
1c50eada
KT
155242013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15525
15526 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15527 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15528 * config/arm/constraints.md (De): New constraint.
15529 * config/arm/neon.md (anddi3_neon): Delete.
15530 (neon_vand<mode>): Expand to standard anddi3 pattern.
15531 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15532 Move earlier in the file.
15533 (neon_inv_logic_op2): Likewise.
15534 (arm_anddi_operand_neon): New predicate.
15535
e927b6ad
RO
155362013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15537
15538 * configure.ac (gcc_cv_ld_as_needed): Set
15539 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15540 Use -z ignore, -z record on *-*-solaris2*.
15541 (HAVE_LD_AS_NEEDED): Update comment.
15542 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15543 * configure: Regenerate.
15544 * config.in: Regenerate.
15545 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15546 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15547 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15548 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15549 equivalents. Fix markup.
15550 * doc/tm.texi: Regenerate.
15551
e0ea8797
AH
155522013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15553
15554 * config/i386/i386.opt: New option mstack-protector-guard=.
15555 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15556 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15557 TARGET_SSP_TLS_GUARD.
15558 * config/i386/i386.c (ix86_option_override_internal): Set
15559 ix86_stack_protector_guard.
15560 * config/i386/i386.md (stack_protect_set): Enable for
15561 TARGET_SSP_TLS_GUARD only.
15562 (stack_protect_set_<mode>): Ditto.
15563 (stack_protect_test): Ditto.
15564 (stack_protect_test_<mode>): Ditto.
15565 * doc/invoke.texi (i386 Option): Document.
15566
811b72f9
EB
155672013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15568
15569 PR target/56890
15570 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15571 (S_MODES): Set H_MODE bit.
15572 (SF_MODES): Set only S_MODE and SF_MODE bits.
15573 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15574 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15575 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15576 <MODE_FLOAT>: Likewise.
15577
5529fdd6
JY
155782013-04-15 Joey Ye <joey.ye@arm.com>
15579
15580 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15581
517b1da2
JY
155822013-04-15 Joey Ye <joey.ye@arm.com>
15583
15584 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15585 for real far jump.
15586 (thumb_far_jump_used_p): Count instruction size and set
15587 far_jump_used.
15588
01007ae0
EB
155892013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15590
15591 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15592 * resource.c (mark_target_live_regs): Reformat conditional block.
15593
c46f6580
SB
155942013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15595
15596 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15597 notes, they are emitted only just before final.
15598 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15599
1f397f45
SB
156002013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15601
15602 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15603 * cfgrtl.c (delete_insn): Call it here instead.
15604 * lra-spills.c (lra_final_code_change): Use delete_insn.
15605 * haifa-sched.c (sched_remove_insn): Likewise.
15606 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15607 returning to the nop pool.
15608 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15609 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15610
58a51369
SB
156112013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15612
15613 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15614 * doc/tm.texi: Regenerated.
15615
33159866
UB
156162013-04-12 Uros Bizjak <ubizjak@gmail.com>
15617
15618 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15619 QImode checks.
15620
226e378f
SB
156212013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15622
15623 * df-core.c (df_find_def): Compare register numbers.
15624 (df_find_use): Likewise.
15625
fafb9b18
VM
156262013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15627
15628 PR target/56903
15629 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15630 lra_in_progress for return.
15631
9a946fd6
GY
156322013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15633
15634 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15635 define_insn into define_insn_and_split and emit movsicc patterns.
15636
41b83758
GY
156372013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15638
15639 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
15640
d3afd9aa
RB
156412013-04-12 Richard Biener <rguenther@suse.de>
15642
15643 * tree-pass.h (TODO_do_not_ggc_collect): New.
15644 * passes.c (execute_one_ipa_transform_pass): Honor
15645 TODO_do_not_ggc_collect.
15646 (execute_one_pass): Likewise.
15647
15648 Revert
15649 2013-04-10 Richard Biener <rguenther@suse.de>
15650
15651 * passes.c (init_optimization_passes): Remove reload pass.
15652 * ira.c (do_reload): Merge into ...
15653 (ira): ... this.
15654 (rest_of_handle_reload): Remove.
15655 (pass_reload): Likewise.
15656 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15657 of reload for vzeroupper pass placement.
15658
06f9b387
JJ
156592013-04-12 Jakub Jelinek <jakub@redhat.com>
15660
15661 PR tree-optimization/56918
15662 PR tree-optimization/56920
15663 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
15664 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
15665 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
15666 use wide_mul_with_sign method.
15667
953094d2
RB
156682013-04-12 Richard Biener <rguenther@suse.de>
15669
15670 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
15671 not be considered a gimple constant.
15672
bb506982
MG
156732013-04-12 Marc Glisse <marc.glisse@inria.fr>
15674
15675 * fold-const.c (const_binop): Handle vector shifts by a scalar.
15676 (fold_binary_loc): Call const_binop also for mixed vector-scalar
15677 operations.
15678
4b84d650
JJ
156792013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
15680 Jakub Jelinek <jakub@redhat.com>
15681
15682 * opts.c: Include diagnostic-color.h.
15683 (common_handle_option): Handle OPT_fdiagnostics_color_.
15684 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
15685 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
15686 (diagnostic-color.o): New.
15687 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
15688 (diagnostic_color_rule): New enum.
15689 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
15690 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
15691 the location string.
15692 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
15693 either NULL, or color kind.
15694 * diagnostic-color.c: New file.
15695 * diagnostic-color.h: New file.
15696 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
15697 arguments.
15698 * doc/invoke.texi (-fdiagnostics-color): Document.
15699 * pretty-print.h (pp_show_color): Define.
15700 (struct pretty_print_info): Add show_color field.
15701 * diagnostic.c: Include diagnostic-color.h.
15702 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
15703 macros. Colorize error:, warning: etc. strings and also the location
15704 string.
15705 (diagnostic_show_locus): Colorize the caret line.
15706 * pretty-print.c: Include diagnostic-color.h.
15707 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
15708 inside of %< %> quotes or quoted through q format modifier.
15709
067a1e71
AK
157102013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15711
33159866 15712 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 15713
33159866 157142013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
15715
15716 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
15717 code in CC_NZ mode.
15718 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
15719 pattern.
15720
7b55f98f
MP
157212013-04-11 Marek Polacek <polacek@redhat.com>
15722
15723 PR tree-optimization/48184
33159866 15724 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 15725
966b587e
EB
157262013-04-11 Eric Botcazou <ebotcazou@adacore.com>
15727
15728 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
15729 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
15730 (skip_simple_arithmetic): Tidy up.
15731 * tree.h (skip_simple_constant_arithmetic): Declare.
15732
33159866 157332013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
15734
15735 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
15736
1d42c1ec
RB
157372013-04-11 Richard Biener <rguenther@suse.de>
15738
15739 * tree-vect-loop.c (get_initial_def_for_induction): Properly
15740 generate vector constants.
15741
4ba5ea11
RB
157422013-04-11 Richard Biener <rguenther@suse.de>
15743
15744 PR tree-optimization/56878
15745 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
15746 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
15747 New function.
15748 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15749 Prefer to align the DR with the most invariant base address.
15750
f0defe58
SKS
157512013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15752
15753 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
15754 comment.
15755
d07458be
JG
157562013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15757
15758 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
15759 floating-point vector comparisons against 0.
15760
146b8692
JJ
157612013-04-11 Jakub Jelinek <jakub@redhat.com>
15762
15763 PR tree-optimization/56899
15764 * fold-const.c (extract_muldiv_1): Apply distributive law
15765 only if TYPE_OVERFLOW_WRAPS (ctype).
15766
b8578ff7
BC
157672013-04-11 Bin Cheng <bin.cheng@arm.com>
15768
15769 PR target/56124
15770 * ira-costs.c (scan_one_insn): Check whether the source rtx of
15771 loading has side effect.
15772
0ea8a6f9
SB
157732013-04-10 Steven Bosscher <steven@gcc.gnu.org>
15774
15775 * config/sparc/sparc.c: Include tree-pass.h.
15776 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
15777 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
15778 head of file. Change return type. Split off gate function.
15779 (sparc_gate_work_around_errata): New function.
15780 (pass_work_around_errata): New pass definition.
15781 (insert_pass_work_around_errata) New pass insert definition to
15782 insert pass_work_around_errata just after delayed-branch scheduling.
15783 (sparc_option_override): Insert the pass.
15784 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
15785
42e37616
DM
157862013-04-10 David S. Miller <davem@davemloft.net>
15787
89deeb3b
DM
15788 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
15789 or -mcpu=hypersparc.
15790
42e37616
DM
15791 * target.def (cstore_mode): New hook.
15792 * target.h: Include insn-codes.h
15793 * targhooks.c: Likewise.
15794 (default_cstore_mode): New function.
15795 * targhooks.h: Declare it.
15796 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
15797 * doc/tm.texi: Rebuild.
15798 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
15799 target hook, rather than inspecting the insn_data.
15800 * config/sparc/sparc.c (sparc_cstore_mode): New function.
15801 (TARGET_CSTORE_MODE): Redefine.
15802 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
15803 result patterns.
15804 * config/sparc/predicates.md (cstore_result_operand): New special
15805 predicate.
15806 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
15807 Use it for operand 0.
15808 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
15809 (*snesi_special): Likewise.
15810 (*snesi_zero): Likewise.
15811 (*seqsi_zero): Likewise.
15812 (*sltu_insn): Likewise.
15813 (*sgeu_insn): Likewise.
15814 (*seqdi_special): Make operand 0 and comparison operation be of
15815 DImode.
15816 (*snedi_special): Likewise.
15817 (*snedi_special_vis3): Likewise.
15818 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
15819 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
15820 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
15821 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
15822 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
15823 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
15824 (*sltu_extend_sp64): Likewise.
15825 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
15826 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
15827 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
15828 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
15829 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
15830
95ca411e
YZ
158312013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
15832
15833 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
15834 (aarch64_start_file): Use the new function.
15835
6782438d 158362013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 15837 Jason Merrill <jason@redhat.com>
6782438d
SKS
15838
15839 * common.opt: Add -gdwarf.
15840 * opts.c (common_handle_option): Handle it.
15841 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
15842
bb313b93
RB
158432013-04-10 Richard Biener <rguenther@suse.de>
15844
15845 * passes.c (execute_todo): Do not call ggc_collect conditional here.
15846 (execute_one_ipa_transform_pass): But unconditionally here.
15847 (execute_one_pass): And here.
15848 (init_optimization_passes): Remove reload pass.
15849 * tree-pass.h (TODO_ggc_collect): Remove.
15850 (pass_reload): Likewise.
15851 * ira.c (do_reload): Merge into ...
15852 (ira): ... this.
15853 (rest_of_handle_reload): Remove.
15854 (pass_reload): Likewise.
15855 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15856 of reload for vzeroupper pass placement.
15857 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
15858 and todo_flags_finish of all passes.
15859
793d9a16
RB
158602013-04-10 Richard Biener <rguenther@suse.de>
15861
15862 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
15863 first_const_oprnd field, rename first_def_type to first_op_type.
15864 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
15865 (vect_get_and_check_slp_defs): Always use the type of the
15866 operand. Allow mixed vect_external_def, vect_constant_def types.
15867 (vect_get_constant_vectors): Handle mixed vect_external_def,
15868 vect_constant_def types.
15869
12211b99 158702013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
15871
15872 PR tree-optimization/55524
15873 * tree-ssa-math-opts.c
15874 (convert_mult_to_fma): Don't use an fms construct
15875 when we don't have an fms operation, but fnma, and it looks
15876 likely that we'll be able to use the latter.
15877
12211b99 158782013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
15879
15880 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
15881 function.
15882 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
15883 inline fail caused by overwritable functions.
15884
34ab4a5b
CJW
158852013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
15886
15887 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
15888 unnecessary bits in the constant power of two case.
15889
abf9bfbc
RB
158902013-04-10 Richard Biener <rguenther@suse.de>
15891
15892 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
15893 broken code swapping operands.
15894 (vect_build_slp_tree): Do not compute load permutations here.
15895 (vect_analyze_slp_instance): Compute load permutations here,
15896 after building the SLP tree.
15897
f408477e
CB
158982013-04-09 Christian Bruel <christian.bruel@st.com>
15899
15900 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
15901 of next/prev_real_insn.
15902
5ac42672
JH
159032013-04-09 Jan Hubicka <jh@suse.cz>
15904
abf9bfbc
RB
15905 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
15906 Drop aliased parameter.
5ac42672
JH
15907 (function_and_variable_visibility): Do not handle alias pairs.
15908 * cgraph.c (varpool_externally_visible_p): Update prototype.
15909 * varpool.c (varpool_add_new_variable): Update.
15910
5017f1d2
KT
159112013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15912
15913 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
15914
48eecbee
SB
159152013-04-09 Steven Bosscher <steven@gcc.gnu.org>
15916
a949cf1c
SB
15917 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
15918
48eecbee
SB
15919 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
15920
75ef8e3d
MP
159212013-04-09 Marek Polacek <polacek@redhat.com>
15922
15923 PR tree-optimization/48762
33159866 15924 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 15925
23847df4
RB
159262013-04-09 Richard Biener <rguenther@suse.de>
15927
15928 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
15929 dealing with cost.
15930 (vect_build_slp_tree): Likewise.
15931 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
15932 calculating the cost of a SLP instance.
15933 (vect_analyze_slp_instance): Use it from here, after building
15934 the SLP tree.
15935
ea3a0fde
JJ
159362013-04-09 Jakub Jelinek <jakub@redhat.com>
15937
15938 PR middle-end/56883
15939 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
15940 expand_omp_for_static_chunk): Use simple_p = true in
15941 force_gimple_operand_gsi calls when assigning to addressable decls.
15942
a32dfe9d
JL
159432013-04-09 Jeff Law <law@redhat.com>
15944
15945 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
15946 when the boolean was created by converting a wider object which
15947 had a boolean range.
15948
d755c7ef
RB
159492013-04-09 Richard Biener <rguenther@suse.de>
15950
15951 * tree-vectorizer.h (slp_void_p): Remove.
15952 (slp_tree): Typedef before _slp_tree declaration.
15953 (struct _slp_tree): Use a vector of slp_tree as children.
15954 (vect_get_place_in_interleaving_chain): Remove.
15955 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
15956 Move ...
15957 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
15958 and make static.
15959 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
15960 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
15961 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
15962 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
15963 Use slp_node instead of slp_void_p and adjust.
15964
3d741091
RB
159652013-04-09 Richard Biener <rguenther@suse.de>
15966
15967 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
15968 work that is not necessary.
15969
39307ba7
JJ
159702013-04-09 Jakub Jelinek <jakub@redhat.com>
15971
15972 PR tree-optimization/56854
15973 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
15974 forward into clobber stmts if it would change MEM_REF lhs into
15975 non-MEM_REF.
15976
343881fd
MK
159772013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
15978
15979 * tree.c (type_hash_lookup, type_hash_add): Make static.
15980 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
15981
3922658a
RB
159822013-04-09 Richard Biener <rguenther@suse.de>
15983
15984 * tree.h (unsave_expr_now): Remove.
15985 * tree-inline.c (mark_local_for_remap_r): Remove.
15986 (unsave_expr_1): Likewise.
15987 (unsave_r): Likewise.
15988 (unsave_expr_now): Likewise.
15989 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
15990 (propagate_tree_value): Likewise.
15991
9fb6b620
SB
159922013-04-08 Steven Bosscher <steven@gcc.gnu.org>
15993
15994 * doc/rtl.texi (sequence): Rewrite documentation to match the
15995 current use of SEQUENCE rtl objects.
15996 * rtl.def (SEQUENCE): Likewise.
15997
15998 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
15999 Update documentation.
16000 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
16001 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
16002
16003 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
16004
8ddb5a29
TJ
160052013-04-08 Teresa Johnson <tejohnson@google.com>
16006
16007 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
16008 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 16009 methods.
8ddb5a29
TJ
16010 (estimate_edge_size_and_time): Add comment to suggest using rounding
16011 methods.
16012 (estimate_node_size_and_time): Ditto.
16013 (remap_edge_change_prob): Use helper rounding divide methods.
16014 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
16015 (gimple_mod_pow2_value_transform): Ditto.
16016 (gimple_mod_subtract_transform): Ditto.
16017 (gimple_ic_transform): Ditto.
16018 (gimple_stringops_transform): Ditto.
16019 * stmt.c (conditional_probability): Ditto.
16020 (emit_case_dispatch_table): Ditto.
16021 * lto-cgraph.c (merge_profile_summaries): Ditto.
16022 * tree-optimize.c (execute_fixup_cfg): Ditto.
16023 * cfgcleanup.c (try_forward_edges): Ditto.
16024 * cfgloopmanip.c (scale_loop_profile): Ditto.
16025 (loopify): Ditto.
16026 (duplicate_loop_to_header_edge): Ditto.
16027 (lv_adjust_loop_entry_edge): Ditto.
16028 * tree-vect-loop.c (vect_transform_loop): Ditto.
16029 * profile.c (compute_branch_probabilities): Ditto.
16030 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
16031 * lto-streamer-in.c (input_cfg): Ditto.
16032 * gimple-streamer-in.c (input_bb): Ditto.
16033 * ipa-cp.c (update_profiling_info): Ditto.
16034 (update_specialized_profile): Ditto.
16035 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
16036 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 16037 rounding methods.
8ddb5a29
TJ
16038 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16039 (compute_trg_info): Ditto.
16040 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
16041 (purge_dead_edges): Ditto.
16042 * loop-unswitch.c (unswitch_loop): Ditto.
16043 * cgraphclones.c (cgraph_clone_edge): Ditto.
16044 (cgraph_clone_node): Ditto.
16045 * tree-inline.c (copy_bb): Ditto.
16046 (copy_edges_for_bb): Ditto.
16047 (initialize_cfun): Ditto.
16048 (copy_cfg_body): Ditto.
16049 (expand_call_inline): Ditto.
16050
661e6bd7
KT
160512013-04-08 Kai Tietz <ktietz@redhat.com>
16052
16053 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
16054 TARGET_CYGWIN64 by TARGET_64BIT.
16055
105766f3
JR
160562013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16057
16058 * config/epiphany/epiphany.md (GPR_1): New constant.
16059 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
16060 * config/epiphany/epiphany.c (gen_compare_reg):
16061 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
16062 is already in place.
16063 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
16064 Don't require being called during rtl expansion; If y operlaps r0,
16065 return 0.
16066 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
16067 (epiphany_expand_epilogue): Likewise.
16068
8afab237
JR
16069 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
16070 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 16071 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 16072
fa7707d6
JR
16073 * config/epiphany/constraints.md (CnL): New constraint.
16074 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
16075 * config/epiphany/predicates.md (add_operand): Allow 1024.
16076
5138e18d
JR
16077 * config/epiphany/epiphany.md (logical_op): New code iterator.
16078 (op_mnc): New code attribute.
16079 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
16080 (mov_f+1, mov_f+2): New peephole2 patterns.
16081
2ccc703d
JR
16082 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
16083 (cstoresi4): Also allow re-use of zero result when doing a NE
16084 comparison to a non-zero operand.
aefb0819 16085 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 16086
093ac0a5
JR
16087 * config/epiphany/epiphany.md (<insn_opname>v2si3):
16088 Use gen_addsi3_i / gen_subsi3_i.
16089
f223bb13
JJ
160902013-04-08 Jakub Jelinek <jakub@redhat.com>
16091
16092 PR c++/34949
16093 PR c++/50243
16094 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
16095 contain anything but clobbers, at most one __builtin_stack_restore,
16096 optionally debug stmts and final resx, and if it has at least one
16097 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
16098 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
16099 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
16100 which isn't defaut definition, remove them.
16101 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
16102 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
16103 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
16104 with MEM_REF LHS with SSA_NAME address.
16105
4481581f
JL
161062013-04-08 Jeff Law <law@redhat.com>
16107
16108 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 16109
451dabda
RB
161102013-04-08 Richard Biener <rguenther@suse.de>
16111
16112 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
16113 extra newline.
16114 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
16115 determined vector type.
16116 (vect_analyze_data_refs): Likewise.
16117 (vect_get_new_vect_var): Adjust.
16118 (vect_create_destination_var): Preserve SSA name versions.
16119 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
16120 not dump anything here.
16121
3b088b47
JR
161222013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16123
16124 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16125 Add member lr_slot_known.
16126 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
16127 if necessary.
16128 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
16129 Remove code that sets lr_slot_offset according to what a previous
16130 version of epiphany_emit_save_restore used to do.
16131 (epiphany_emit_save_restore): When doing an lr save or restore,
16132 set/verify lr_slot_known and lr_slot_offset.
16133
d8484d41
XQ
161342013-04-08 Xinyu Qi <xyqi@marvell.com>
16135
33159866
UB
16136 PR target/54338
16137 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
16138 in ALL_REGS.
16139
481be1c4
RB
161402013-04-08 Richard Biener <rguenther@suse.de>
16141
16142 * alias.c (find_base_term): Fix thinko in previous change.
16143
401f3a81
JJ
161442013-04-08 Jakub Jelinek <jakub@redhat.com>
16145
16146 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
16147 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
16148 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
16149 if possible to compute val.
16150 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
16151 For QImode integers don't require anything about precision. Use
16152 const_with_all_bytes_same to find out if the constant doesn't have
16153 repeated bytes in it.
16154
03ed99a8
AK
161552013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16156
16157 * config/s390/s390.c (s390_expand_insv): Only accept insertions
16158 within mode size.
16159
781b2e62
MP
161602013-04-08 Marek Polacek <polacek@redhat.com>
16161
16162 PR rtl-optimization/48182
16163 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
16164 value to 1.
16165
27e430a2
JDA
161662013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16167
16168 PR target/55487
16169 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
16170 nuses, make sure we have a label.
16171
4902aa64
BS
161722013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16173
16174 PR target/56843
16175 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
16176 (rs6000_emit_swdiv_low_precision): Remove.
16177 (rs6000_emit_swdiv): Rewrite to handle between one and four
16178 iterations of Newton-Raphson generally; modify required number of
16179 iterations for some cases.
16180 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
16181
7bca81dc
SB
161822013-04-05 Steven Bosscher <steven@gcc.gnu.org>
16183
16184 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
16185 set-but-unused variable.
16186
16187 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
16188 basic blocks of released function bodies garbage-collectable.
16189
16190 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
16191 (struct rtl_opt_pass): Add TODO_df_finish.
16192
16193 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
16194
4542a38a
GY
161952013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16196
16197 * config/arm/constraints.md (q): New constraint.
16198 * config/arm/ldrdstrd.md: New file.
16199 * config/arm/arm.md (ldrdstrd.md) New include.
16200 (arm_movdi): Use "q" instead of "r" constraint
16201 for double-word memory access.
16202 (movdf_soft_insn): Likewise.
16203 * config/arm/vfp.md (movdi_vfp): Likewise.
16204 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 16205 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
16206 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
16207 (mem_ok_for_ldrd_strd): Likewise.
16208 (output_move_double): Update assertion.
16209
2385b218
GY
162102013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16211
16212 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
16213
75fe1cb5
GY
162142013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16215
16216 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
16217 define_insn_and_split.
16218 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
16219
dd660e8e
GY
162202013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16221
16222 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
16223 define_insn_and_split.
33159866 16224 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
16225 (shiftsi3_compare): New pattern.
16226 (rrx): New pattern.
16227 * config/arm/unspecs.md (UNSPEC_RRX): New.
16228
045e472c
GY
162292013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16230
16231 * config/arm/arm.md (negdi_extendsidi): New pattern.
16232 (negdi_zero_extendsidi): Likewise.
16233
3f3bf1a8
GY
162342013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16235
16236 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
16237 define_insn_and_split.
16238 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
16239 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
16240
b0b49556
GY
162412013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16242
16243 * config/arm/arm.md (arm_subdi3): Convert define_insn into
16244 define_insn_and_split.
16245 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
16246 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
16247
d633dd84
GY
162482013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16249
16250 * config/arm/arm.md (subsi3_carryin): New pattern.
16251 (subsi3_carryin_const): Likewise.
16252 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
16253 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
16254
f4499066
GY
162552013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16256
16257 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
16258
ceef6fd9
GY
162592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16260
16261 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 16262 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 16263
ddbdd8a7
KT
162642013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16265
16266 * config/arm/arm.c (arm_expand_builtin): Change fcode
16267 type to unsigned int.
16268
8456d78a
RR
162692013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16270
16271 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
16272
526c230f
ILT
162732013-04-04 Ian Lance Taylor <iant@google.com>
16274
33159866
UB
16275 * doc/standards.texi (Standards): The Go frontend supports the Go 1
16276 language standard.
526c230f 16277
3cfbe04d
SB
162782013-04-04 Steven Bosscher <steven@gcc.gnu.org>
16279
16280 PR middle-end/56729
16281 * df-scan.c (df_insn_delete): Disable failing assert.
16282
dfa3f8d0
KT
162832013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16284
16285 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
16286 New function prototype.
16287 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
16288 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
16289 (arm_builtin_vectorized_function): New function.
16290
f7837758
KT
162912013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16292
16293 * config/arm/arm_neon_builtins.def: New file.
16294 * config/arm/arm.c (neon_builtin_data): Move contents to
16295 arm_neon_builtins.def.
16296 (enum arm_builtins): Include neon builtin definitions.
16297 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 16298 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 16299
39c1b6db
MP
163002013-04-04 Marek Polacek <polacek@redhat.com>
16301
16302 PR tree-optimization/48186
16303 * predict.c (maybe_hot_frequency_p): Return false if
16304 HOT_BB_FREQUENCY_FRACTION is 0.
16305 (cgraph_maybe_hot_edge_p): Likewise.
16306
314f64eb
RB
163072013-04-04 Richard Biener <rguenther@suse.de>
16308
16309 PR tree-optimization/56826
16310 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
16311 more accurately.
16312
51a905b2
RB
163132013-04-04 Richard Biener <rguenther@suse.de>
16314
16315 PR tree-optimization/56213
16316 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 16317 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 16318
f1bf4f3a
RB
163192013-04-04 Richard Biener <rguenther@suse.de>
16320
16321 PR tree-optimization/56837
16322 * tree-loop-distribution.c (classify_partition): For non-zero
16323 values require that the value has the same precision as its
16324 mode to be useful as memset value.
16325
0bca7ded
NC
163262013-04-03 Nick Clifton <nickc@redhat.com>
16327
33159866 16328 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
16329 (fmssf4): Use fmsf.s on E3V5 architectures.
16330 (fnmasf4): Use fnmaf.s on E3V5 architectures.
16331 (fnmssf4): Use fnmsf.s on E3V5 architectures.
16332
b4019227
JL
163332013-04-03 Jeff Law <law@redhat.com>
16334
16335 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
16336 (lra-eliminations.o): Likewise.
16337
f57ddb5b
TJ
163382013-04-03 Teresa Johnson <tejohnson@google.com>
16339
16340 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 16341 compute_working_sets here from profile.c.
f57ddb5b 16342 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
16343 (gcov_working_set_t): Moved typedef here from basic-block.h
16344 (compute_working_set): Declare.
f57ddb5b
TJ
16345 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
16346 (get_working_sets): Renamed from compute_working_set,
33159866 16347 replace most of body with call to new compute_working_sets.
f57ddb5b 16348 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
16349 to get_working_sets.
16350 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16351 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16352 to get_working_sets.
f57ddb5b
TJ
16353 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16354 * gcov-dump.c (dump_working_sets): New function.
16355
12211b99 163562013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16357
16358 * hwint.c (sext_hwi, zext_hwi): New functions.
16359 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16360 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16361 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16362 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16363 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16364 (sext_hwi, zext_hwi): New functions.
0bca7ded 16365
be672e08
JL
163662013-04-03 Jeff Law <law@redhat.com>
16367
16368 PR tree-optimization/56799
33159866
UB
16369 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16370 back test for widening conversion erroneously dropped in prior change.
be672e08 16371
9d821fa5
KT
163722013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16373
16374 PR target/56809
16375 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16376 instead of next_real_insn.
16377
71c581e7
MP
163782013-04-03 Marek Polacek <polacek@redhat.com>
16379
16380 PR sanitizer/55702
33159866 16381 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16382
4a32ef80
KT
163832013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16384
16385 PR target/56809
16386 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16387 next_real_insn.
16388 (thumb1_output_casesi): Likewise.
16389 (thumb2_output_casesi): Likewise.
16390
1b2253d4
RB
163912013-04-03 Richard Biener <rguenther@suse.de>
16392
16393 PR tree-optimization/56817
16394 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16395 Split out ...
16396 (tree_unroll_loops_completely_1): ... new function to manually
16397 walk the loop tree, properly defering outer loops of unrolled
16398 loops to later iterations.
16399
38000232
MG
164002013-04-03 Marc Glisse <marc.glisse@inria.fr>
16401
16402 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16403 (vectorizable_load): Likewise.
16404 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16405 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16406
3fa35298
MG
164072013-04-03 Marc Glisse <marc.glisse@inria.fr>
16408
16409 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16410 BIT_FIELD_REF.
16411
b3d45ff0
UW
164122013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16413
16414 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16415
ec9202a8
BC
164162013-04-03 Bin Cheng <bin.cheng@arm.com>
16417
16418 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16419
6805bd36
MG
164202013-04-03 Marc Glisse <marc.glisse@inria.fr>
16421
16422 PR tree-optimization/56790
33159866
UB
16423 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16424 folding.
6805bd36 16425
da694a77
MG
164262013-04-03 Marc Glisse <marc.glisse@inria.fr>
16427
16428 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16429 Handle VEC_MERGE.
16430 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16431 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16432 equal arguments.
16433
4e7d7b3d
JJ
164342013-04-03 Jakub Jelinek <jakub@redhat.com>
16435
16436 PR c/19449
16437 * tree.h (force_folding_builtin_constant_p): New decl.
16438 * builtins.c (force_folding_builtin_constant_p): New variable.
16439 (fold_builtin_constant_p): Fold immediately also if
16440 force_folding_builtin_constant_p.
16441
e6c9d234
RB
164422013-04-03 Richard Biener <rguenther@suse.de>
16443
16444 PR tree-optimization/56812
16445 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16446 DRs of the same interleaving chain are independent.
16447
984d07dd
JM
164482013-04-02 Jason Merrill <jason@redhat.com>
16449
16450 * gdbinit.in (pbb): Use debug fn.
16451
622849c9
LC
164522013-04-02 Lawrence Crowl <crowl@google.com>
16453
16454 * sese.h (struct ivtype_map_elt_s): Remove unused.
16455 (extern debug_ivtype_map): Remove unused.
16456 (extern eq_ivtype_map_elts): Remove unused.
16457 * sese.c (debug_ivtype_map): Removed unused.
16458 (debug_ivtype_map_1): Removed unused.
16459 (debug_ivtype_elt): Remove unused.
16460 (eq_ivtype_map_elts): Remove unused.
16461
16462
82c0e1a0
KT
164632013-04-02 Kai Tietz <ktietz@redhat.com>
16464
16465 PR target/52790
16466 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16467 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16468 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16469 function.
82c0e1a0
KT
16470 (legitimize_pe_coff_symbol): Likewise.
16471 (is_imported_p): New helper-function.
16472 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16473 for Windows x64 targets.
16474 (ix86_expand_prologue): Optimize for pe-coff targets.
16475 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16476 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16477 medium/large code-model.
16478 (legitimize_pic_address): Likewise.
16479 (legitimize_tls_address): Likewise.
16480 (ix86_expand_call): Likewise.
16481 (x86_output_mi_thunk): Likewise.
16482 (get_dllimport_decl): Add new beimport argument.
16483 (construct_plt_address): Don't assert for x64 pe-coff targets.
16484 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16485 targets.
16486 (SYMBOL_FLAG_STUBVAR): New macro.
16487 (SYMBOL_REF_STUBVAR_P): Likewise.
16488 * config/i386/winnt.c (stub_list): New structure.
16489 (stub_head): New local variable.
16490 (i386_pe_record_stub): New function.
16491 (i386_pe_file_end): Emit refptr-stubs.
16492
5d751b0c
JJ
164932013-04-02 Jakub Jelinek <jakub@redhat.com>
16494
09bb4c99
JJ
16495 PR rtl-optimization/56745
16496 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16497 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16498
a1d8947a
JJ
16499 PR c++/34949
16500 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16501 and both of them are MEM_REFs, just compare first argument for
16502 equality and attempt to deal even with differing offsets.
16503
5d751b0c
JJ
16504 PR c++/34949
16505 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16506 of gimple_clobber_p to be MEM_REF.
16507 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16508 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16509 after gimplification.
16510 * asan.c (get_mem_ref_of_assignment): Don't instrument
16511 gimple_clobber_p stmts.
16512 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16513 gimple_clobber_p stmt if they have MEM_REF lhs and
16514 are dead because of another gimple_clobber_p stmt.
16515 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16516 gimple_clobber_p stmts like debug stmts.
16517 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16518 that refer to unused VAR_DECLs or uninitialized values.
16519 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16520 gimple_clobber_p stmts if they refer to removed parameters.
16521 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16522 formatting.
16523
e594716a
UB
165242013-04-02 Uros Bizjak <ubizjak@gmail.com>
16525
16526 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16527 using SWI48 mode attribute.
16528
7a80735b
WM
165292013-04-02 Wei Mi <wmi@google.com>
16530
16531 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16532 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16533 *<rotate_insn><mode>3_mask in i386.md.
16534
f423a9e4
AI
165352013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16536
16537 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16538
90eb75f2
RB
165392013-04-02 Richard Biener <rguenther@suse.de>
16540
16541 PR tree-optimization/56778
16542 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16543 Runtime alias tests are not supported for gather loads.
16544 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16545 stmts referenced from SSA operands before updating SSA form.
16546
d8c69a92
IC
165472013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16548 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16549
16550 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16551 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16552 * config/arm/cortex-a53.md: New file.
16553 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16554 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16555 * config/arm/arm.c (arm_issue_rate): Likewise.
16556 * config/arm/arm-tune.md: Regenerate
16557 * config/arm/arm-tables.opt: Regenerate.
16558 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16559
239eb04c
ZC
165602013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16561
16562 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16563 non-static link.
16564
c902d3c8
SN
165652013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16566
d8c69a92
IC
16567 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16568 scalar load/store operations using B/H registers.
c902d3c8
SN
16569 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16570
051d0e2f
SN
165712013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16572
16573 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16574 scalar move.
16575 * config/aarch64/aarch64.c
16576 (aarch64_simd_scalar_immediate_valid_for_move): New.
16577 * config/aarch64/aarch64-protos.h
16578 (aarch64_simd_scalar_immediate_valid_for_move): New.
16579 * config/aarch64/constraints.md (Dh, Dq): New.
16580 * config/aarch64/iterators.md (hq): New.
16581
0ee1e3d9
EB
165822013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16583
16584 * reorg.c (get_branch_condition): Deal with conditional returns.
16585 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16586
136fb3f7
WM
165872013-04-01 Wei Mi <wmi@google.com>
16588
16589 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16590 Truncate operand 2 using %b asm operand modifier.
16591 (*<shift_insn><mode>3_mask): Ditto.
16592 (*<rotate_insn><mode>3_mask): Ditto.
16593
6388c738
SB
165942013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16595
16596 PR middle-end/56798
16597 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16598
f7a4d826
KK
165992013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16600
16601 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16602 of next_real_insn.
16603 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16604
4b943a49
LC
166052013-03-30 Lawrence Crowl <crowl@google.com>
16606
16607 * dse.c (clear_alias_sets): Remove never set.
16608 (disqualified_clear_alias_sets): Remove never set.
16609 (clear_alias_mode_pool): Remove never set.
16610 (dse_step0): Remove condition that is never true.
16611 (canon_address): Remove condition that is never true.
16612 (dse_step7): Remove condition that is never true.
16613 (rest_of_handle_dse): Remove condition that is never true.
16614 (rest_of_handle_dse::did_global): Remove never read from above.
16615 (dse_step2_spill): Remove never called from above.
16616 (dse_step5_spill): Remove never called from above.
16617
39718607
SB
166182013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16619
da5c6bde
SB
16620 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16621 JUMP_TABLE_DATA changes.
16622 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16623 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16624 (Insns) <jump_table_data>: New entry.
16625 * doc/tm.texi: Regenerate.
16626
39718607
SB
16627 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16628
16629 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16630 for table jump at the end of a basic block using tablejump_p.
16631 * targhooks.c (default_invalid_within_doloop): Likewise.
16632 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16633 target hook implementation that is identical to the default hook.
16634 (rs6000_invalid_within_doloop): Remove.
16635
16636 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
16637 unused variable from tablejump_p call.
16638
16639 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
16640 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
16641 (INSN_DELETED_P): Likewise.
16642 (emit_jump_table_data): New prototype.
16643 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
16644 after 4th as unused.
16645 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
16646 * sched-vis.c (print_insn): Likewise.
16647 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
16648 insn for compatibility with back ends that use next_active_insn to
16649 identify jump table data.
16650 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
16651 (remove_insn): Likewise.
16652 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
16653 to be emitted.
16654 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
16655 (emit_jump_table_data): New function.
16656
16657 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
16658 basic block, a JUMP_TABLE_DATA never is.
16659 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
16660 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
16661 off from code handling real insns.
16662 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
16663 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
16664 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
16665 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
16666 is not a NONDEBUG_INSN_P.
16667 * ira-costs.c (scan_one_insn): Likewise.
16668 * jump.c (mark_all_labels): Likewise.
16669 (mark_jump_label_1): Likewise.
16670 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16671 * lra.c (get_insn_freq): Expect all insns reaching here to be in
16672 a basic block.
16673 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
16674 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
16675 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
16676 JUMP_TABLE_DATA_P insns.
16677 (calculate_elim_costs_all_insns): Likewise.
16678 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
16679 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
16680 (delete_output_reload): Code style fixups.
16681 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
16682 insn flags on this non-insn.
16683 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
16684 as scheduling barriers, for pre-change compatibility.
16685 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
16686 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
16687
16688 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
16689 redundant JUMP_TABLE_DATA_P test.
16690 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
16691 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16692 (frv_for_each_packet): Likewise.
16693 * config/i386/i386.c (min_insn_size): Likewise.
16694 (ix86_avoid_jump_mispredicts): Likewise.
16695 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16696 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
16697 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16698 (mips16_insn_length): Robustify.
16699 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
16700 (mips16_split_long_branches): Likewise.
16701 * config/pa/pa.c (pa_combine_instructions): Likewise.
16702 * config/rs6000/rs6000.c (get_next_active_insn): Treat
16703 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
16704 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
16705 as contributing to pool range lengths.
16706 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
16707 Remove redundant JUMP_TABLE_DATA_P test.
16708 (sh_loop_align): Likewise.
16709 (split_branches): Likewise.
16710 (sh_insn_length_adjustment): Likewise.
16711 * config/spu/spu.c (get_branch_target): Likewise.
16712
0208f7da
JH
167132013-03-29 Jan Hubicka <jh@suse.cz>
16714
16715 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
16716 gcov streaming; stream hot bb threshold to ltrans.
16717 * predict.c (get_hot_bb_threshold): Break out from ....
16718 (maybe_hot_count_p): ... here.
16719 (set_hot_bb_threshold): New function.
16720 * lto-section-in.c (lto_section_name): Add profile.
16721 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
16722 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
16723 and data-streamer.h
16724 (histogram_entry): New structure.
16725 (histogram, histogram_pool): New global vars.
16726 (histogram_hash): New structure.
16727 (histogram_hash::hash): New method.
16728 (histogram_hash::equal): Likewise.
16729 (account_time_size): New function.
16730 (cmp_counts): New function.
16731 (dump_histogram): New function.
16732 (ipa_profile_generate_summary): New function.
16733 (ipa_profile_write_summary): New function.
16734 (ipa_profile_read_summary): New function.
16735 (ipa_profile): Decide on threshold.
e594716a
UB
16736 (pass_ipa_profile): Add ipa_profile_write_summary and
16737 ipa_profile_read_summary.
0208f7da
JH
16738 * Makefile.in (ipa.o): Update dependencies.
16739 * lto-streamer.h (LTO_section_ipa_profile): New section.
16740
5a6ccc94
GDR
167412013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
16742
16743 * tree.h (VAR_P): New.
16744
39385fa6
PC
167452013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
16746
16747 PR lto/56777
16748 * doc/invoke.texi ([-fwhole-program]): Fix typo.
16749
34f0d87a
SB
167502013-03-29 Steven Bosscher <steven@gcc.gnu.org>
16751
16752 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
16753 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16754 (control_flow_insn_p): Likewise.
16755 * cfgrtl.c (duplicate_insn_chain): Likewise.
16756 * final.c (get_attr_length_1): Likewise.
16757 (shorten_branches): Likewise.
16758 (final_scan_insn): Likewise.
16759 * function.c (instantiate_virtual_regs): Likewise.
16760 * gcse.c (insert_insn_end_basic_block): Likewise.
16761 * ira-costs.c (scan_one_insn): Likewise.
16762 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16763 * lra.c (check_rtl): Likewise.
16764 * reload1.c (elimination_costs_in_insn): Likewise.
16765 * reorg.c (follow_jumps): Likewise.
16766
16767 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
16768 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16769 (thumb_far_jump_used_p): Likewise.
16770 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
16771 (workaround_speculation): Likewise.
16772 (add_sched_insns_for_speculation): Likewise.
16773 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
16774 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16775 (frv_for_each_packet): Likewise.
16776 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
16777 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
16778 (final_emit_insn_group_barriers): Likewise.
16779 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16780 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16781 (mips16_insn_length): Likewise.
16782 * config/pa/pa.c (pa_reorg): Likewise.
16783 (pa_combine_instructions): Likewise.
16784 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
16785 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
16786 (sh_reorg): Likewise.
16787 (split_branches): Likewise.
16788 * config/spu/spu.c (get_branch_target): Likewise.
16789
16790 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
16791 JUMP_TABLE_DATA_P.
16792
4ac761b0
KY
167932013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
16794
39385fa6 16795 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
16796 Fix declaration name.
16797
58a49189
LC
167982013-03-28 Lawrence Crowl <crowl@google.com>
16799
16800 * graphds.h (struct graph.indicies): Remove unused.
16801 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
16802 (SCOP_ORIGINAL_PDDRS): Remove unused.
16803 * sese.h (extern insert_loop_close_phis): Removed unused.
16804 (extern insert_guard_phis): Removed unused.
16805 (extern ivtype_map_elt_info): Removed unused.
16806 (new_ivtype_map_elt): Removed unused.
16807 * sese.c (ivtype_map_elt_info): Removed unused.
16808
7b3b6ae4
LC
168092013-03-28 Lawrence Crowl <crowl@google.com>
16810
16811 * Makefile.in: Add several missing include dependences.
16812 (DUMPFILE_H): New.
16813 (test-dump.o): New. This object is not added to any executable,
16814 but is present for ad-hoc testing.
16815 * bitmap.c
16816 (debug (const bitmap_head_def &)): New.
16817 (debug (const bitmap_head_def *)): New.
16818 * bitmap.h
16819 (extern debug (const bitmap_head_def &)): New.
16820 (extern debug (const bitmap_head_def *)): New.
16821 * cfg.c
16822 (debug (edge_def &)): New.
16823 (debug (edge_def *)): New.
16824 * cfghooks.c
16825 (debug (basic_block_def &)): New.
16826 (debug (basic_block_def *)): New.
16827 * dumpfile.h
16828 (dump_node (const_tree, int, FILE *)): Correct source file.
16829 * dwarf2out.c
16830 (debug (die_struct &)): New.
16831 (debug (die_struct *)): New.
16832 * dwarf2out.h
16833 (extern debug (die_struct &)): New.
16834 (extern debug (die_struct *)): New.
16835 * gimple-pretty-print.c
16836 (debug (gimple_statement_d &)): New.
16837 (debug (gimple_statement_d *)): New.
16838 * gimple-pretty-print.h
16839 (extern debug (gimple_statement_d &)): New.
16840 (extern debug (gimple_statement_d *)): New.
16841 * ira-build.c
16842 (debug (ira_allocno_copy &)): New.
16843 (debug (ira_allocno_copy *)): New.
16844 (debug (ira_allocno &)): New.
16845 (debug (ira_allocno *)): New.
16846 * ira-int.h
16847 (extern debug (ira_allocno_copy &)): New.
16848 (extern debug (ira_allocno_copy *)): New.
16849 (extern debug (ira_allocno &)): New.
16850 (extern debug (ira_allocno *)): New.
16851 * ira-lives.c
16852 (debug (live_range &)): New.
16853 (debug (live_range *)): New.
16854 * lra-int.h
16855 (debug (lra_live_range &)): New.
16856 (debug (lra_live_range *)): New.
16857 * lra-lives.c
16858 (debug (lra_live_range &)): New.
16859 (debug (lra_live_range *)): New.
16860 * omega.c
16861 (debug (omega_pb_d &)): New.
16862 (debug (omega_pb_d *)): New.
16863 * omega.h
16864 (extern debug (omega_pb_d &)): New.
16865 (extern debug (omega_pb_d *)): New.
16866 * print-rtl.c
16867 (debug (const rtx_def &)): New.
16868 (debug (const rtx_def *)): New.
16869 * print-tree.c
16870 (debug_tree (tree): Move within file.
16871 (debug_raw (const tree_node &)): New.
16872 (debug_raw (const tree_node *)): New.
16873 (dump_tree_via_hooks (const tree_node *, int)): New.
16874 (debug (const tree_node &)): New.
16875 (debug (const tree_node *)): New.
16876 (debug_verbose (const tree_node &)): New.
16877 (debug_verbose (const tree_node *)): New.
16878 (debug_head (const tree_node &)): New.
16879 (debug_head (const tree_node *)): New.
16880 (debug_body (const tree_node &)): New.
16881 (debug_body (const tree_node *)): New.
16882 (debug_vec_tree (tree): Move and reimplement in terms of dump.
16883 (debug (vec<tree, va_gc> &)): New.
16884 (debug (vec<tree, va_gc> *)): New.
16885 * rtl.h
16886 (extern debug (const rtx_def &)): New.
16887 (extern debug (const rtx_def *)): New.
16888 * sbitmap.c
16889 (debug_raw (simple_bitmap_def &)): New.
16890 (debug_raw (simple_bitmap_def *)): New.
16891 (debug (simple_bitmap_def &)): New.
16892 (debug (simple_bitmap_def *)): New.
16893 * sbitmap.h
16894 (extern debug (simple_bitmap_def &)): New.
16895 (extern debug (simple_bitmap_def *)): New.
16896 (extern debug_raw (simple_bitmap_def &)): New.
16897 (extern debug_raw (simple_bitmap_def *)): New.
16898 * sel-sched-dump.c
16899 (debug (vinsn_def &)): New.
16900 (debug (vinsn_def *)): New.
16901 (debug_verbose (vinsn_def &)): New.
16902 (debug_verbose (vinsn_def *)): New.
16903 (debug (expr_def &)): New.
16904 (debug (expr_def *)): New.
16905 (debug_verbose (expr_def &)): New.
16906 (debug_verbose (expr_def *)): New.
16907 (debug (vec<rtx> &)): New.
16908 (debug (vec<rtx> *)): New.
16909 * sel-sched-dump.h
16910 (extern debug (vinsn_def &)): New.
16911 (extern debug (vinsn_def *)): New.
16912 (extern debug_verbose (vinsn_def &)): New.
16913 (extern debug_verbose (vinsn_def *)): New.
16914 (extern debug (expr_def &)): New.
16915 (extern debug (expr_def *)): New.
16916 (extern debug_verbose (expr_def &)): New.
16917 (extern debug_verbose (expr_def *)): New.
16918 (extern debug (vec<rtx> &)): New.
16919 (extern debug (vec<rtx> *)): New.
16920 * sel-sched-ir.h
16921 (_list_iter_cond_expr): Make inline instead of static.
16922 * sreal.c
16923 (debug (sreal &)): New.
16924 (debug (sreal *)): New.
16925 * sreal.h
16926 (extern debug (sreal &)): New.
16927 (extern debug (sreal *)): New.
16928 * tree.h
16929 (extern debug_raw (const tree_node &)): New.
16930 (extern debug_raw (const tree_node *)): New.
16931 (extern debug (const tree_node &)): New.
16932 (extern debug (const tree_node *)): New.
16933 (extern debug_verbose (const tree_node &)): New.
16934 (extern debug_verbose (const tree_node *)): New.
16935 (extern debug_head (const tree_node &)): New.
16936 (extern debug_head (const tree_node *)): New.
16937 (extern debug_body (const tree_node &)): New.
16938 (extern debug_body (const tree_node *)): New.
16939 (extern debug (vec<tree, va_gc> &)): New.
16940 (extern debug (vec<tree, va_gc> *)): New.
16941 * tree-cfg.c
16942 (debug (struct loop &)): New.
16943 (debug (struct loop *)): New.
16944 (debug_verbose (struct loop &)): New.
16945 (debug_verbose (struct loop *)): New.
16946 * tree-dump.c: Add header dependence.
16947 * tree-flow.h
16948 (extern debug (struct loop &)): New.
16949 (extern debug (struct loop *)): New.
16950 (extern debug_verbose (struct loop &)): New.
16951 (extern debug_verbose (struct loop *)): New.
16952 * tree-data-ref.c
16953 (debug (data_reference &)): New.
16954 (debug (data_reference *)): New.
16955 (debug (vec<data_reference_p> &)): New.
16956 (debug (vec<data_reference_p> *)): New.
16957 (debug (vec<ddr_p> &)): New.
16958 (debug (vec<ddr_p> *)): New.
16959 * tree-data-ref.h
16960 (extern debug (data_reference &)): New.
16961 (extern debug (data_reference *)): New.
16962 (extern debug (vec<data_reference_p> &)): New.
16963 (extern debug (vec<data_reference_p> *)): New.
16964 (extern debug (vec<ddr_p> &)): New.
16965 (extern debug (vec<ddr_p> *)): New.
16966 * tree-ssa-alias.c
16967 (debug (pt_solution &)): New.
16968 (debug (pt_solution *)): New.
16969 * tree-ssa-alias.h
16970 (extern debug (pt_solution &)): New.
16971 (extern debug (pt_solution *)): New.
16972 * tree-ssa-alias.c
16973 (debug (_var_map &)): New.
16974 (debug (_var_map *)): New.
16975 (debug (tree_live_info_d &)): New.
16976 (debug (tree_live_info_d *)): New.
16977 * tree-ssa-alias.h
16978 (extern debug (_var_map &)): New.
16979 (extern debug (_var_map *)): New.
16980 (extern debug (tree_live_info_d &)): New.
16981 (extern debug (tree_live_info_d *)): New.
16982
be77e1e5
JH
169832013-03-28 Jan Hubicka <jh@suse.cz>
16984
16985 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
16986
777e6976
IB
169872013-03-28 Ian Bolton <ian.bolton@arm.com>
16988
16989 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
16990 record only when desired or required.
16991
9cd347ae
UB
169922013-03-28 Uros Bizjak <ubizjak@gmail.com>
16993
16994 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
16995 *vec_extractv2di_1_rex64. Use x64 isa attribute.
16996
33159866 169972013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
16998
16999 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
17000 (*andsi3_compare0_uxtw): New pattern.
17001 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
17002 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
17003
89ab31c1
JH
170042013-03-28 Jan Hubicka <jh@suse.cz>
17005
17006 * data-streamer-in.c (streamer_read_gcov_count): New function.
17007 * gimple-streamer-out.c: Include value-prof.h.
17008 (output_gimple_stmt): Output histogram.
17009 (output_bb): Use streamer_write_gcov_count.
17010 * value-prof.c: Include data-streamer.h
17011 (dump_histogram_value): Add HIST_TYPE_MAX.
17012 (stream_out_histogram_value): New function.
17013 (stream_in_histogram_value): New function.
17014 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
17015 (stream_out_histogram_value, stream_in_histogram_value): Declare.
17016 * data-streamer-out.c (streamer_write_gcov_count): New function.
17017 (streamer_write_gcov_count_stream): New function.
17018 * lto-cgraph.c (lto_output_edge): Update counter streaming.
17019 (lto_output_node): Likewise.
17020 (input_node, input_edge): Likewise.
17021 * lto-streamer-out.c (output_cfg): Update streaming.
17022 * lto-streamer-in.c (input_cfg): Likewise.
17023 * data-streamer.h (streamer_write_gcov_count,
17024 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
17025 * gimple-streamer-in.c: Include value-prof.h
17026 (input_gimple_stmt): Input histograms.
17027 (input_bb): Update profile streaming.
17028
e594716a 170292013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 17030
33159866 17031 * genmodes.c (emit_max_int): New function.
8697be17 17032 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
17033 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
17034 Added doc.
8697be17 17035 * machmode.def: Fixed comment.
89ab31c1 17036
e594716a 170372013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
17038
17039 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
17040 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
17041
74946978
MP
170422013-03-28 Marek Polacek <polacek@redhat.com>
17043 Richard Biener <rguenther@suse.de>
17044
17045 PR tree-optimization/56695
17046 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
17047 build signed result of a vector comparison.
17048 * tree-cfg.c (verify_gimple_comparison): Check that a result
17049 of a vector comparison has signed type.
17050
a64b9c26
RB
170512013-03-28 Richard Biener <rguenther@suse.de>
17052
17053 PR tree-optimization/37021
17054 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
17055 do not restrict gaps between groups.
17056 * tree-vect-stmts.c (vectorizable_load): Properly account for
17057 a gap between groups.
17058
a9dc2a2f
EB
170592013-03-28 Eric Botcazou <ebotcazou@adacore.com>
17060
17061 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
17062 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
17063 is not enabled.
17064
53cb97f9
GP
170652013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
17066
17067 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
17068 * doc/extend.texi (Named Address Spaces): Ditto.
17069 (Variable Attributes): Ditto.
17070
b802ae5c
KT
170712013-03-27 Kai Tietz <ktietz@redhat.com>
17072
eddae10a
KT
17073 * config.build: Add support for cygwin x64 target.
17074 * config.gcc: Likewise.
17075 * config.host: Likewise.
17076 * configure.ac: Likewise
17077 * configure: Regenerated.
b802ae5c 17078
371e77e3 170792013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
17080
17081 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
17082 * config/i386/t-cygwin-w64: New file.
17083 * config/i386/cygwin-w64.h: New file.
17084 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
17085 and add support for x64-cygwin target.
17086 (CPP_SPEC): Likewise.
17087 (CXX_WRAP_SPEC_LIST): Undefine before define.
17088 (LIBGCJ_SONAME): Use 15 as version.
17089
f49b33cb
RB
170902013-03-27 Richard Biener <rguenther@suse.de>
17091
17092 PR tree-optimization/56716
17093 * tree-ssa-structalias.c (perform_var_substitution): Adjust
17094 dumping for ref nodes.
17095
b37a6ce5
MJ
170962013-03-27 Martin Jambor <mjambor@suse.cz>
17097
17098 PR tree-optimization/55334
17099 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
17100 restricted pointers to arrays.
17101
9469b9b2
GDR
171022013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
17103
17104 * Makefile.in (.SUFFIXES): Add .cc.
17105 (.c.o): Apply same recipe for implicit rule .cc.o.
17106
7d24f650
RB
171072013-03-27 Richard Biener <rguenther@suse.de>
17108
17109 PR tree-optimization/37021
17110 * tree-vect-data-refs.c (vect_check_strided_load): Allow
17111 REALPART/IMAGPART_EXPRs around the supported refs.
17112 * tree-ssa-structalias.c (find_func_aliases): Assume that
17113 floating-point values are not used to transfer pointers.
17114
2f251a05
AI
171152013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
17116
f43245d1
UB
17117 * target.def (TARGET_HAS_IFUNC_P): New target hook.
17118 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
17119 * doc/tm.texi: Regenerate.
17120 * targhooks.h (default_has_ifunc_p): New.
17121 * targhooks.c (default_has_ifunc_p): Ditto.
17122 * config/linux-protos.h: New file.
17123 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
17124 hook for linux which disables support of indirect functions in android.
17125 * config/linux-android.c: New file.
17126 * config/t-linux-android.c: Ditto.
17127 * config.gcc: Added new object file linux-android.o.
17128 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 17129 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 17130 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
17131 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
17132 doesn't support indirect functions.
17133 * configure: Regenerate.
17134
78b4e425
BC
171352013-03-27 Bin Cheng <bin.cheng@arm.com>
17136
17137 PR target/56102
17138 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
17139 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
17140 mult-word mode.
17141
a5ba7b92
AK
171422013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17143
17144 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
17145
be624986
TG
171462013-03-27 Terry Guo <terry.guo@arm.com>
17147
17148 * config/arm/arm-cores.def: Added core cortex-r7.
17149 * config/arm/arm-tune.md: Regenerated.
17150 * config/arm/arm-tables.opt: Regenerated.
17151 * doc/invoke.texi: Added entry for core cortex-r7.
17152
0a514f47
WL
171532013-03-27 Walter Lee <walt@tilera.com>
17154
17155 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
17156 double-decrement of next_scratch_regno.
17157
9332b0d2
WL
171582013-03-27 Walter Lee <walt@tilera.com>
17159
801d9b2a 17160 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
17161 input operands.
17162 (insn_v1mulus): Ditto.
17163 (insn_v2muls): Ditto.
17164
f54ea5dd
WL
171652013-03-27 Walter Lee <walt@tilera.com>
17166
e594716a 17167 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
17168 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
17169
bf60f4ca
WL
171702013-03-27 Walter Lee <walt@tilera.com>
17171
e594716a 17172 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
17173 (*sibcall_value): Ditto.
17174
e3b51eeb
WL
171752013-03-27 Walter Lee <walt@tilera.com>
17176
17177 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
17178 (insn_mnz_v8qi): ... this ...
17179 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
17180 vector equivalent.
17181 (insn_v<n>mnz): Replaced by ...
17182 (insn_v1mnz): ... this ...
17183 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
17184 equivalent.
17185 (insn_mz_<mode>): Replaced by ...
17186 (insn_mz_v8qi): ... this ...
17187 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
17188 vector equivalent.
17189 (insn_v<n>mz): Replaced by ...
17190 (insn_v1mz): ... this ...
17191 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
17192 equivalent.
17193
4fc7b145
EB
171942013-03-26 Eric Botcazou <ebotcazou@adacore.com>
17195
17196 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
17197
6f33817e
RM
171982013-03-26 Roland McGrath <mcgrathr@google.com>
17199
17200 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
17201 than fprintf with a non-constant, non-format string.
17202
93a4145b
UB
172032013-03-26 Uros Bizjak <ubizjak@gmail.com>
17204
17205 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
17206 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
17207 operand 0 predicate.
17208 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
17209 attribute. Use general_x64nomem_operand as operand 1 predicate.
17210 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
17211 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17212 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
17213 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17214 (mov<mode>_insv_1): Remove expander. Merge insn with
17215 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
17216 Use general_x64nomem_operand as operand 1 predicate.
17217 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
17218 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
17219 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17220 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
17221 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
17222 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
17223 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17224 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
17225 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
17226 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
17227 (general_x64nomem_operand): Ditto.
17228
c6a9ed5a 172292013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
17230
17231 * config/rtems.opt: Add -pthread option.
17232
31b0a960
RB
172332013-03-26 Richard Biener <rguenther@suse.de>
17234
93a4145b
UB
17235 * alias.c (find_base_term): Avoid redundant and not used recursion.
17236 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
17237 (true_dependence_1): Compute and pass base terms to base_alias_check.
17238 (write_dependence_p): Likewise.
17239 (may_alias_p): Likewise.
17240
79517551
SN
172412013-03-26 Sofiane Naci <sofiane.naci@arm.com>
17242
17243 * config/aarch64/aarch64.c (aarch64_classify_address): Support
17244 PC-relative load in SI modes and above only.
17245
a76213b9
XQ
172462013-03-26 Xinyu Qi <xyqi@marvell.com>
17247
17248 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
17249 * config/arm/iwmmxt.md (WCGR0): Update.
17250 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 17251
37ff9355
UB
172522013-03-26 Uros Bizjak <ubizjak@gmail.com>
17253
17254 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
17255 Use x64 and nox64 isa attributes.
17256
30b0317c
RB
172572013-03-26 Richard Biener <rguenther@suse.de>
17258
17259 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17260 alignment computations and rely on get_object_alignment_1
17261 for the !TYPE_P case.
17262 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
17263
cbcdb140
WL
172642013-03-26 Walter Lee <walt@tilera.com>
17265
17266 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
17267 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
17268
dd884525 172692013-03-25 Jeff Law <law@redhat.com>
be672e08 17270
33159866
UB
17271 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
17272 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
17273 wrong version of prior patch.
17274
0051d3ec
WL
172752013-03-25 Walter Lee <walt@tilera.com>
17276
17277 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
17278 TILEGX_INSN_SHUFFLEBYTES1.
17279 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
17280 shufflebytes1.
17281 (tilegx_builtins): Ditto.
17282 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
17283
065a3605
WL
172842013-03-25 Walter Lee <walt@tilera.com>
17285
17286 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
17287 (floatunssisf2): New pattern.
17288 (floatsidf2): New pattern.
17289 (floatunssidf2): New pattern.
065a3605 17290
5b2a3c82
WL
172912013-03-25 Walter Lee <walt@tilera.com>
17292
17293 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
17294 tests for constraint J, K, N, P.
17295
192ea533
WL
172962013-03-25 Walter Lee <walt@tilera.com>
17297
17298 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
17299 Use indirect/pcrel encoding.
17300 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
17301 Ditto.
17302
855e0d0b
SE
173032013-03-25 Steve Ellcey <sellcey@mips.com>
17304
17305 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
17306 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
17307 * config/mips/mips.c (mips_option_override): Set IMADD default.
17308 * config/mips/mips.h (PTF_AVOID_IMADD): New.
17309 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
17310 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
17311 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
17312 * doc/invoke.texi (-mimadd/-mno-imadd): New.
17313
39e45653
JL
173142013-03-25 Jeff Law <law@redhat.com>
17315
17316 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
17317 slightly to avoid creating and folding useless trees. Simplify
17318 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
17319
7482c470
UB
173202013-03-25 Uros Bizjak <ubizjak@gmail.com>
17321
17322 * config/i386/i386.md (*zero_extendsidi2): Merge with
17323 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
17324 * config/i386/predicates.md (x86_64_zext_operand): Rename from
17325 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
17326 targets. Clarify comment.
17327
4a53743e
MJ
173282013-03-25 Martin Jambor <mjambor@suse.cz>
17329
17330 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
17331 pass-through jump functions differently.
17332 (ipa_read_jump_function): Likewise. Also use setter functions to set
17333 up jump functions.
17334
162712de
MJ
173352013-03-25 Martin Jambor <mjambor@suse.cz>
17336
17337 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
17338 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
17339 process it.
17340 (ipa_get_indirect_edge_target): New function.
17341 (devirtualization_time_bonus): New parameter known_aggs, pass it to
17342 ipa_get_indirect_edge_target. Update all callers.
17343 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
17344 ipa_get_indirect_edge_target_1 instead of calling
17345 ipa_get_indirect_edge_target.
17346 (create_specialized_node): Pass aggvlas to
17347 ipcp_discover_new_direct_edges.
17348
a5a4c20a
KT
173492013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17350
17351 * config/arm/arm.md (f_sels, f_seld): New types.
17352 (*cmov<mode>): New pattern.
17353 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17354 predicate.
17355
f992b9fc
KT
173562013-03-25 Kai Tietz <ktietz@redhat.com>
17357
17358 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17359 POSIX-printf for mingw-hosted builds.
17360
c16fd676
RB
173612013-03-25 Richard Biener <rguenther@suse.de>
17362
17363 PR middle-end/56694
17364 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17365 must-not-throw stmt location.
17366
5ad29f12
KT
173672013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17368
17369 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17370 Emit load-acquire versions when acq is true.
17371 (arm_emit_store_exclusive): Add rel parameter.
17372 Emit store-release versions when rel is true.
17373 (arm_split_compare_and_swap): Use acquire-release instructions
17374 instead.
17375 of barriers when appropriate.
17376 (arm_split_atomic_op): Likewise.
17377 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17378 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17379 (VUNSPEC_SLX): Likewise.
17380 (VUNSPEC_LDA): Likewise.
17381 (VUNSPEC_STL): Likewise.
17382 * config/arm/sync.md (atomic_load<mode>): New pattern.
17383 (atomic_store<mode>): Likewise.
17384 (arm_load_acquire_exclusive<mode>): Likewise.
17385 (arm_load_acquire_exclusivesi): Likewise.
17386 (arm_load_acquire_exclusivedi): Likewise.
17387 (arm_store_release_exclusive<mode>): Likewise.
17388
03a7dddb
CM
173892013-03-25 Catherine Moore <clm@codesourcery.com>
17390
17391 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17392 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17393 * config/mip/predicates.md (lwsp_swsp_operand,
17394 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17395 sb16_operand, db4_operand, db7_operand, ib3_operand,
17396 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17397 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17398 andi16_operand): New predicates.
17399 * config/mips/mips.md (compression): New attribute.
17400 (enabled): New attribute.
17401 (length): Consider compression in computing length.
17402 (shift_compression): New code attribute.
17403 (*add<mode>3): New operands. Record compression.
17404 (sub<mode>3): Likewise.
17405 (one_cmpl<mode>2): Likewise.
17406 (*and<mode>3): Likewise.
17407 (*ior<mode>3): Likewise.
17408 (unnamed pattern for xor): Likewise.
17409 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17410 (*<optab><mode>3): Likewise.
17411 (*mov<mode>_internal: Likewise.
17412 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17413 (mips_unsigned_immediate_p): New.
17414 (umips_lwsp_swsp_address_p): New.
17415 (m16_based_address_p): New.
17416 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17417 (mips_unsigned_immediate_p): New prototype.
17418 (lwsp_swsp_address_p): New prototype.
17419 (m16_based_address_p): New prototype.
17420 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17421 (mips_signed_immediate_p): New function.
17422 (m16_based_address_p): New function.
17423 (lwsp_swsp_address_p): New function.
17424 (mips_print_operand_punctuation): Recognize short delay slot insns
17425 for microMIPS.add<mode>3"
17426
f35c297f 174272013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17428
f35c297f
KT
17429 PR target/56720
17430 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17431 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17432
051b9446
RB
174332013-03-25 Richard Biener <rguenther@suse.de>
17434
17435 PR tree-optimization/56689
17436 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17437 any edge.
17438
374001cb
RB
174392013-03-25 Richard Biener <rguenther@suse.de>
17440
17441 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17442 of bitmap.
17443 (memory_references): Likewise.
17444 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17445 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17446 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17447 (gather_mem_refs_in_loops): Fold into ...
17448 (analyze_memory_references): ... this. Move initialization
17449 to tree_ssa_lim_initialize.
17450 (fill_always_executed_in): Rename to ...
17451 (fill_always_executed_in_1): ... this.
17452 (fill_always_executed_in): Move contains_call computation to
17453 this new function from ...
17454 (tree_ssa_lim_initialize): ... here.
17455 (tree_ssa_lim): Call fill_always_executed_in.
17456
57895947
EB
174572013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17458
17459 * postreload.c (reload_combine): Fix code detecting returns.
17460
1e1b18c1
EB
174612013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17462
17463 * function.c (emit_use_return_register_into_block): On cc0 targets,
17464 do not emit the sequence between cc0 setter and user.
17465
9216baf1
KT
174662013-03-25 Kai Tietz <ktietz@redhat.com>
17467
1e1b18c1
EB
17468 * config/i386/predicates.md (local_symbolic_operand): Interpret
17469 dll-imported symbols as none-local.
9216baf1 17470
76421b44
RB
174712013-03-25 Richard Biener <rguenther@suse.de>
17472
17473 * tree-ssa-loop-im.c (struct depend): Remove.
17474 (struct lim_aux_data): Make depends a vec of gimples.
17475 (free_lim_aux_data): Adjust.
17476 (add_dependency): Likewise.
17477 (set_level): Likewise.
17478
d154bfa2
RB
174792013-03-25 Richard Biener <rguenther@suse.de>
17480
17481 PR middle-end/56434
17482 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17483 the pointer returned by calls with ECF_MALLOC set.
17484
2cd9804e
UB
174852013-03-24 Uros Bizjak <ubizjak@gmail.com>
17486
acef5fe0
UB
17487 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17488
174892013-03-24 Uros Bizjak <ubizjak@gmail.com>
17490
17491 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17492 using MMXMODE mode iterator.
17493 (*move<mode>_internal): Merge with *movv2sf_internal and
17494 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17495
225ccc68
SB
174962013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17497
85c0f02d
SB
17498 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17499 (record_last_mem_set_info): Likewise.
17500
225ccc68
SB
17501 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17502 of XNEWVEC followed by memset.
17503 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17504
b64925dc
SB
175052013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17506
17507 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17508 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17509 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17510 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17511 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17512 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17513 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17514 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17515 BARRIER_P instead of GET_CODE.
17516
b9aaf52e
EB
175172013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17518
17519 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17520 inaccuracy in the probing code.
17521
17522 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17523 (ctrapdi4): Likewise.
17524
66de4d7c
EB
175252013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17526
17527 * calls.c (expand_call): Add missing guard to code handling return
17528 of non-BLKmode structures in MSB.
17529 * function.c (expand_function_end): Likewise.
17530
4f25c8fb
EB
175312013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17532
17533 * combine.c (try_combine): Adjust comment. Do not add the set of
17534 insn #0 if the destination indirectly is set or dies in insn #2.
17535 Tidy up code to distribute a new note.
17536
23b7850d
UB
175372013-03-22 Uros Bizjak <ubizjak@gmail.com>
17538
17539 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17540 also for alternatives 16 and 17.
17541
bed852cf
UB
175422013-03-22 Uros Bizjak <ubizjak@gmail.com>
17543
17544 * config/i386/sse.md (*mov<mode>_internal): Merge with
17545 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17546 Emit insn template depending on type attribute. Use
17547 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17548 movd instead of movq mnemonic for interunit moves. Rewrite mode
17549 attribute calculation. Remove unit attribute calculation.
17550 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17551 Set prefix_data16 attribute for DImode ssemov types.
17552 Use Ym instead of y for SSE-MMX conversion alternatives.
17553 Reorder operand constraints.
17554
1e8a7937
SB
175552013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17556
17557 * df.h (df_insn_delete): Adjust prototype.
17558 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17559 and let it decide whether mark the basic block dirty.
17560 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17561 * df-scan.c (df_insn_info_delete): New helper function, split
17562 off from df_insn_delete.
17563 (df_scan_free_bb_info): Use it.
17564 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17565 Likewise.
17566 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17567 that the insn is actually an insn and it has a non-NULL basic block.
17568 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17569
e14d094c
RB
175702013-03-22 Richard Biener <rguenther@suse.de>
17571
17572 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17573 dep_ref members.
17574 (mem_ref_alloc): Do not allocate them.
17575 (refs_independent_p): Do not query or maintain a cache.
17576
e9cf7316
RB
175772013-03-22 Richard Biener <rguenther@suse.de>
17578
17579 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17580 (gather_mem_refs_in_loops): Do not compute it.
17581 (analyze_memory_references): Do not allocate it.
17582 (tree_ssa_lim_finalize): Do not free it.
17583 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17584
f046e81b
RB
175852013-03-22 Richard Biener <rguenther@suse.de>
17586
17587 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17588
a05c0ddf
IB
175892013-03-22 Ian Bolton <ian.bolton@arm.com>
17590
17591 * config/aarch64/aarch64.c (aarch64_print_operand): New
17592 format specifier for printing a constant in hex.
17593 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17594 format specifier for printing second operand.
17595
c00217fc
RB
175962013-03-22 Richard Biener <rguenther@suse.de>
17597
17598 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17599 bitmaps.
17600 (gather_mem_refs_in_loops): Perform store accumulation here.
17601 (create_vop_ref_mapping_loop): Remove.
17602 (create_vop_ref_mapping): Likewise.
17603 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17604 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17605 (record_indep_loop): Remove.
17606 (record_dep_loop): New function.
17607 (ref_indep_loop_p_1): Adjust to only walk over references
17608 in the loop, not its subloops.
17609 (ref_indep_loop_p): Rename to ...
17610 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17611 maintaining a more fine-grained cache.
17612 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17613 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17614
15d19bf8
RB
176152013-03-22 Richard Biener <rguenther@suse.de>
17616
17617 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17618 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17619 aggregate mem_ref_loc.
17620 (free_mem_ref_locs): Inline into ...
17621 (memref_free): ... this and adjust.
17622 (mem_ref_alloc): Adjust.
17623 (mem_ref_locs_alloc): Remove.
17624 (record_mem_ref_loc): Adjust.
17625 (get_all_locs_in_loop): Rewrite into ...
17626 (for_all_locs_in_loop): ... this iterator.
17627 (rewrite_mem_ref_loc): New functor.
17628 (rewrite_mem_refs): Use for_all_locs_in_loop.
17629 (sm_set_flag_if_changed): New functor.
17630 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17631 (ref_always_accessed): New functor.
17632 (ref_always_accessed_p): Use for_all_locs_in_loop.
17633
6f37411d
MG
176342013-03-21 Marc Glisse <marc.glisse@inria.fr>
17635
17636 * tree-pass.h (PROP_gimple_lvec): New.
17637 * passes.c (dump_properties): Handle PROP_gimple_lvec.
17638 (init_optimization_passes): Move pass_lower_vector.
17639 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
17640 PROP_gimple_lvec.
17641 (pass_lower_vector): Provide PROP_gimple_lvec.
17642 (pass_lower_vector_ssa): Likewise.
17643 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
17644
511ef689
MW
176452013-03-21 Mark Wielaard <mjw@redhat.com>
17646
17647 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
17648
cc1df30b
UB
176492013-03-21 Uros Bizjak <ubizjak@gmail.com>
17650
17651 * config/i386/i386.md (*movdi_internal): Disparage slightly
17652 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
17653 conversion alternatives.
17654
c845cfe1
JJ
176552013-03-21 Jakub Jelinek <jakub@redhat.com>
17656
37e99116
JJ
17657 PR middle-end/48087
17658 * diagnostic.def (DK_WERROR): New kind.
17659 * diagnostic.h (werrorcount): Define.
17660 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
17661 promoted to DK_ERROR, increment DK_WERROR counter instead of
17662 DK_ERROR counter.
17663 * toplev.c (toplev_main): Call print_ignored_options even if
17664 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
17665 even if just werrorcount is non-zero.
17666
c845cfe1
JJ
17667 PR debug/55608
17668 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
17669 on failure.
17670 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
17671 (string_cst_pool_decl): New function.
17672 (optimize_one_addr_into_implicit_ptr): New function.
17673 (resolve_addr_in_expr): Optimize DWARF location expression
17674 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
17675 which doesn't live in memory, but has DW_AT_location or
17676 DW_AT_const_value, or refers to a string literal, into
17677 DW_OP_GNU_implicit_pointer.
17678 (optimize_location_into_implicit_ptr): New function.
17679 (resolve_addr): If removing DW_AT_location of a variable because
17680 it was DW_OP_addr of address of the variable, but the variable doesn't
17681 live in memory, try to emit const value attribute for the initializer.
17682
08e0cda6
MG
176832013-03-21 Marc Glisse <marc.glisse@inria.fr>
17684
17685 * tree.h (VECTOR_TYPE_P): New macro.
17686 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
17687 TYPE_MODE): Use it.
17688 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
17689 VEC_COND_EXPR cannot be lvalues.
17690 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
17691
d08633b4
MG
176922013-03-21 Marc Glisse <marc.glisse@inria.fr>
17693
17694 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
17695 Restrict the transformation to equal modes.
17696
e6647190
RB
176972013-03-21 Richard Biener <rguenther@suse.de>
17698
17699 PR tree-optimization/39326
17700 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
17701 (MEM_ANALYZABLE): Adjust.
17702 (record_mem_ref_loc): Move bitmap ops ...
17703 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
17704 unanalyzable refs, do not record locations for it.
17705 (analyze_memory_references): Allocate ref zero as shared
17706 unanalyzable ref.
17707 (refs_independent_p): Do not test for unanalyzed mems here.
17708 (ref_indep_loop_p_1): Special-case disambiguation against
17709 the unanalyzed ref.
cc1df30b 17710 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 17711
65074f54
CL
177122013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
17713
17714 * config/arm/arm-protos.h (tune_params): Add
17715 prefer_neon_for_64bits field.
17716 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
17717 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
17718 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
17719 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
17720 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
17721 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
17722 (arm_option_override): Handle -mneon-for-64bits new option.
17723 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
17724 (prefer_neon_for_64bits): Declare new variable.
17725 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 17726 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
17727 (arch_enabled): Handle new arch types. Remove support for onlya8
17728 and nota8.
17729 (one_cmpldi2): Use new arch names.
bc5faa5b 17730 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
17731 * config/arm/arm.opt (mneon-for-64bits): Add option.
17732 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
17733 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
17734 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
17735 of onlya8.
17736 * doc/invoke.texi (-mneon-for-64bits): Document.
17737
5a2d2a79
RB
177382013-03-21 Richard Biener <rguenther@suse.de>
17739
17740 PR tree-optimization/39326
17741 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
17742 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 17743 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 17744
5abe1e05
RB
177452013-03-21 Richard Biener <rguenther@suse.de>
17746
17747 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
17748 (vect_insert_into_interleaving_chain): Likewise.
17749 (vect_drs_dependent_in_basic_block): Inline ...
17750 (vect_slp_analyze_data_ref_dependence): ... here. New function,
17751 split out from ...
17752 (vect_analyze_data_ref_dependence): ... here. Simplify.
17753 (vect_check_interleaving): Simplify.
17754 (vect_analyze_data_ref_dependences): Likewise. Split out ...
17755 (vect_slp_analyze_data_ref_dependences): ... this new function.
17756 (dr_group_sort_cmp): New function.
17757 (vect_analyze_data_ref_accesses): Compute data-reference groups
17758 here instead of in vect_analyze_data_ref_dependence. Use
17759 a more efficient algorithm.
17760 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
17761 vect_slp_analyze_data_ref_dependences. Call
17762 vect_analyze_data_ref_accesses earlier.
17763 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17764 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
17765 (vect_slp_analyze_data_ref_dependences): New prototype.
17766
cad1735b
RB
177672013-03-21 Richard Biener <rguenther@suse.de>
17768
17769 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
17770 ref is stored in the loop.
17771 (find_refs_for_sm): Walk only over all stores.
17772 (store_motion_loop): Allocate from lim_bitmap_obstack.
17773 (store_motion): Likewise.
17774
141310ef
RB
177752013-03-21 Richard Biener <rguenther@suse.de>
17776
17777 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
17778 Update virtual SSA form.
17779
5022315a
RO
177802013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17781
17782 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
17783 * configure: Regenerate.
17784 * config.in: Regenerate.
17785 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
17786 if !HAVE_LD_EH_FRAME_CIEV3.
17787
50d4421c
RB
177882013-03-21 Richard Biener <rguenther@suse.de>
17789
17790 * tree-cfg.c (verify_expr_no_block): New function.
17791 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
17792 nor DECL_VALUE_EXPR have locations with associated blocks.
17793 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
17794 (clear_unused_block_pointer): Remove code dealing with
17795 blocks in DECL_DEBUG_EXPR locations.
17796
839b422f
RB
177972013-03-21 Richard Biener <rguenther@suse.de>
17798
17799 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
17800 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
17801 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
17802 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
17803 instead of DECL_DEBUG_EXPR_IS_FROM.
17804 * gimplify.c (gimplify_modify_expr): Likewise.
17805 * tree-cfg.c (verify_expr_location_1): Likewise.
17806 * tree-complex.c (create_one_component_var): Likewise.
17807 * tree-sra.c (create_access_replacement): Likewise.
17808 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
17809 (clear_unused_block_pointer): Likewise.
17810 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
17811 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
17812 * var-tracking.c (var_debug_decl): Likewise.
17813 (track_expr_p): Likewise.
17814 * tree-inline.c (add_local_variables): Likewise. Set
17815 DECL_HAS_DEBUG_EXPR_P after copying it.
17816 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
17817 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
17818
fe04878d
UB
178192013-03-21 Uros Bizjak <ubizjak@gmail.com>
17820
17821 PR bootstrap/56656
17822 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
17823 * configure: Regenerate.
17824 * config.in: Regenerate.
17825 * config/i386/i386.md (*movdf_internal): Use
17826 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17827 movd instead of movq mnemonic for interunit moves.
17828 (*movdi_internal): Ditto.
17829
bd059b26 178302013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
17831
17832 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
17833 (abd<mode>_3): New pattern.
17834 (aba<mode>_3): New pattern.
17835 (fabd<mode>_3): New pattern.
17836
bd059b26 178372013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
17838
17839 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
17840 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
17841 occurrence of REGISTER_PREFIX as its empty string.
17842
4f1f78b9
JL
178432013-03-20 Jeff Law <law@redhat.com>
17844
17845 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
17846 addititional equivalences for equality comparisons between an SSA_NAME
17847 and a constant where the SSA_NAME was set from a widening conversion.
17848
327a1118
WL
178492013-03-20 Walter Lee <walt@tilera.com>
17850
17851 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
17852
813e0036
UB
178532013-03-20 Uros Bizjak <ubizjak@gmail.com>
17854
17855 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
17856 depending on type attribute.
17857 (*movti_internal): Ditto.
17858 (*movtf_internal): Ditto.
17859 (*movxf_internal): Ditto.
17860 (*movdf_internal): Ditto.
17861 (*movsf_internal): Ditto.
17862
7cf34aae
UB
178632013-03-20 Uros Bizjak <ubizjak@gmail.com>
17864
17865 * config/i386/i386.md (*movti_internal): Set prefix attribute to
17866 maybe_vex for sselog1 and ssemov types.
17867 (*movdi_internal): Reorder operand constraints.
17868 (*movsi_internal): Ditto. Set prefix attribute to
17869 maybe_vex for sselog1 and ssemov types.
17870 (*movtf_internal): Set prefix attribute to maybe_vex
17871 for sselog1 and ssemov types.
17872 (*movdf_internal): Ditto. Set prefix_data16 attribute for
17873 DImode ssemov types. Reorder operand constraints.
17874 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
17875 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
17876 attribute for SImode ssemov types. Reorder operand constraints.
17877
19321415
MJ
178782013-03-20 Martin Jambor <mjambor@suse.cz>
17879
17880 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
17881 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
17882
12211b99 178832013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
17884
17885 * config/rs6000/predicates.md (indexed_address, update_address_mem
17886 update_indexed_address_mem): New predicates.
17887 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
17888 attribute for load/store instructions.
17889 * config/rs6000/dfp.md (movsd_store): Likewise.
17890 (movsd_load): Likewise.
17891 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
17892 (unnamed HI->DI extend define_insn): Likewise.
17893 (unnamed SI->DI extend define_insn): Likewise.
17894 (unnamed QI->SI extend define_insn): Likewise.
17895 (unnamed QI->HI extend define_insn): Likewise.
17896 (unnamed HI->SI extend define_insn): Likewise.
17897 (unnamed HI->SI extend define_insn): Likewise.
17898 (extendsfdf2_fpr): Likewise.
17899 (movsi_internal1): Likewise.
17900 (movsi_internal1_single): Likewise.
17901 (movhi_internal): Likewise.
17902 (movqi_internal): Likewise.
17903 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
17904 attribute for load/store instructions.
17905 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
17906 instructions.
17907 (mov<mode>_softfloat): Likewise.
17908 (mov<mode>_hardfloat32): Likewise.
17909 (mov<mode>_hardfloat64): Likewise.
17910 (mov<mode>_softfloat64): Likewise.
17911 (movdi_internal32): Likewise.
17912 (movdi_internal64): Likewise.
17913 (probe_stack_<mode>): Likewise.
17914
179152013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
17916
17917 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
17918 floating point, and decimal floating point to reload iterator.
17919
17920 * config/rs6000/constraints.md (wl constraint): New constraints to
17921 return FLOAT_REGS if certain options are used to reduce the number
17922 of separate patterns that exist in the file.
17923 (wx constraint): Likewise.
17924 (wz constraint): Likewise.
17925
17926 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17927 -mdebug=reg, print wg, wl, wx, and wz constraints.
17928 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17929 Initialize the reload functions for 64-bit binary/decimal floating
17930 point types.
17931 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17932 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17933 create the buffer on the stack to overcome not having a 32-bit
17934 load and store.
17935 (rs6000_emit_move): Likewise.
17936 (rs6000_secondary_memory_needed_rtx): Likewise.
17937 (rs6000_alloc_sdmode_stack_slot): Likewise.
17938 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17939 via xxlxor, just like DFmode 0.0.
17940
17941 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
17942 define as 1 if we are running on a power7 or newer.
17943 (enum r6000_reg_class_enum): Add new constraints.
17944
17945 * config/rs6000/dfp.md (movsd): Delete, combine with binary
17946 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17947 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 17948 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
17949 (movsd splitter): Likewise.
17950 (movsd_hardfloat): Likewise.
17951 (movsd_softfloat): Likewise.
17952
17953 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
17954 binary and decimal floating point moves.
17955 (fmove_ok): New attributes to combine binary and decimal floating
17956 point moves, and to combine power6x (mfpgpr) moves along normal
17957 floating moves.
17958 (real_value_to_target): Likewise.
17959 (f32_lr): Likewise.
17960 (f32_lm): Likewise.
17961 (f32_li): Likewise.
17962 (f32_sr): Likewise.
17963 (f32_sm): Likewise.
17964 (f32_si): Likewise.
17965 (movsf): Combine binary and decimal floating point moves. Combine
17966 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 17967 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
17968 (mov<mode> for SFmode/SDmode); Likewise.
17969 (SFmode/SDmode splitters): Likewise.
17970 (movsf_hardfloat): Likewise.
17971 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
17972 (movsf_softfloat): Likewise.
17973 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
17974
17975 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
17976 wx and wz constraints.
17977
17978 * config/rs6000/constraints.md (wg constraint): New constraint to
17979 return FLOAT_REGS if -mmfpgpr (power6x) was used.
17980
17981 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
17982 constraint.
17983
17984 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17985 -mdebug=reg, print wg, wl, wx, and wz constraints.
17986 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17987 Initialize the reload functions for 64-bit binary/decimal floating
17988 point types.
17989 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17990 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17991 create the buffer on the stack to overcome not having a 32-bit
17992 load and store.
17993 (rs6000_emit_move): Likewise.
17994 (rs6000_secondary_memory_needed_rtx): Likewise.
17995 (rs6000_alloc_sdmode_stack_slot): Likewise.
17996 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17997 via xxlxor, just like DFmode 0.0.
17998
c6d5ff83
MM
17999 * config/rs6000/dfp.md (movdd): Delete, combine with binary
18000 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
18001 with other moves by using conditional constraits (wg). Use LFIWZX
18002 and STFIWX for loading SDmode on power7.
18003 (movdd splitters): Likewise.
18004 (movdd_hardfloat32): Likewise.
18005 (movdd_softfloat32): Likewise.
18006 (movdd_hardfloat64_mfpgpr): Likewise.
18007 (movdd_hardfloat64): Likewise.
18008 (movdd_softfloat64): Likewise.
18009
18010 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
18011 64-bit binary and decimal floating point moves.
18012 (FMOVE64X): Likewise.
18013 (movdf): Combine 64-bit binary and decimal floating point moves.
18014 Combine power6x (mfpgpr) moves with other moves by using
18015 conditional constraits (wg).
18016 (mov<mode> for DFmode/DDmode): Likewise.
18017 (DFmode/DDmode splitters): Likewise.
18018 (movdf_hardfloat32): Likewise.
18019 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
18020 (movdf_softfloat32): Likewise.
18021 (movdf_hardfloat64_mfpgpr): Likewise.
18022 (movdf_hardfloat64): Likewise.
18023 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
18024 (movdf_softfloat64): Likewise.
18025 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
18026 (reload_<mode>_load): Move to later in the file so they aren't in
18027 the middle of the floating point move insns.
18028 (reload_<mode>_store): Likewise.
18029
18030 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
18031 constraint.
18032
18033 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
18034 constraint if -mdebug=reg.
bd059b26
UB
18035 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
18036 Enable using dd reload support if needed.
c6d5ff83
MM
18037
18038 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
18039 binary and decimal floating point moves in rs6000.md.
18040 (movtd_internal): Likewise.
18041
18042 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
18043 decimal floating point moves.
18044 (movtf): Likewise.
18045 (movtf_internal): Likewise.
18046 (mov<mode>_internal, TDmode/TFmode): Likewise.
18047 (movtf_softfloat): Likewise.
18048 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
18049
18050 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
18051 movdi_internal64, using wg constraint for move direct operations.
18052 (movdi_internal64): Likewise.
18053
18054 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
18055 MODES_TIEABLE_P for selected modes. Print the numerical value of
18056 the various virtual registers. Use GPR/FPR first/last values,
18057 instead of hard coding the register numbers. Print which modes
18058 have reload functions registered.
bd059b26
UB
18059 (rs6000_option_override_internal): If -mdebug=reg, trace the options
18060 settings before/after setting cpu, target and subtarget settings.
18061 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
18062 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
18063 (rs6000_secondary_reload_fail): Likewise.
18064 (rs6000_secondary_reload_inner): Likewise.
18065
18066 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
18067 macros for first/last GPR and FPR registers.
18068 (LAST_GPR_REGNO): Likewise.
18069 (FIRST_FPR_REGNO): Likewise.
18070 (LAST_FPR_REGNO): Likewise.
18071
18072 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
18073 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
18074 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
18075 (vcond<mode><mode>): Likewise.
18076 (vcondu<mode><mode>): Likewise.
18077 (vector_gtu<mode>): Likewise.
18078 (vector_gte<mode>): Likewise.
18079 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 18080 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
18081 (ior<mode>3): Likewise.
18082 (and<mode>3): Likewise.
18083 (one_cmpl<mode>2): Likewise.
18084 (nor<mode>3): Likewise.
18085 (andc<mode>3): Likewise.
18086
18087 * config/rs6000/constraints.md (wt constraint): New constraint
18088 that returns VSX_REGS if TImode is allowed in VSX registers.
18089
18090 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
18091 constant under VSX.
18092
18093 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
18094 similar to TImode, but it is restricted to being in the GPRs.
18095
18096 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
18097 TImode to occupy a single VSX register.
18098
18099 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
18100 -mvsx-timode for power7/power8.
18101 (power7 cpu): Likewise.
18102 (power8 cpu): Likewise.
18103
18104 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
18105 sure that TFmode/TDmode take up two registers if they are ever
18106 allowed in the upper VSX registers.
18107 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
18108 registers.
18109 (rs6000_init_hard_regno_mode_ok): Likewise.
18110 (rs6000_debug_reg_global): Add debugging for PTImode and wt
18111 constraint. Print if LRA is turned on.
18112 (rs6000_option_override_internal): Give an error if -mvsx-timode
18113 and VSX is not enabled.
18114 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
18115 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
18116 to reg+offset addressing. Use PTImode when checking offset
18117 addresses for validity.
18118 (reg_offset_addressing_ok_p): Likewise.
18119 (rs6000_legitimate_offset_address_p): Likewise.
18120 (rs6000_legitimize_address): Likewise.
18121 (rs6000_legitimize_reload_address): Likewise.
18122 (rs6000_legitimate_address_p): Likewise.
18123 (rs6000_eliminate_indexed_memrefs): Likewise.
18124 (rs6000_emit_move): Likewise.
18125 (rs6000_secondary_reload): Likewise.
18126 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
18127 reloads to fpr registers to continue to use reg+offset addressing,
18128 but 64-bit reloads to altivec registers need reg+reg addressing.
18129 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
18130 it. Treat LO_SUM like a PLUS operation.
18131 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 18132 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
18133 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
18134 registers to share a register with a smaller sized type, since VSX
18135 puts scalars in the upper 64-bits.
18136 (print_operand): Add support for PTImode.
18137 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
18138 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
18139 registers, but don't have arithmetic support.
18140 (rs6000_memory_move_cost): Add test for VSX.
18141 (rs6000_opt_masks): Add -mvsx-timode.
18142
18143 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
18144 for TImode.
18145 (VSs): Likewise.
18146 (VSr): Use wt constraint for TImode.
18147 (VSv): Drop TImode support.
18148 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
18149 (vsx_movti_64bit): Likewise.
18150 (vsx_movti_32bit): Likewise.
18151 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
18152 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
18153 one '?' on the appropriate output constraint. Do not allow TImode
18154 logical operations on 32-bit systems.
18155 (vsx_ior<mode>3): Likewise.
18156 (vsx_xor<mode>3): Likewise.
18157 (vsx_one_cmpl<mode>2): Likewise.
18158 (vsx_nor<mode>3): Likewise.
18159 (vsx_andc<mode>3): Likewise.
18160 (vsx_concat_<mode>): Likewise.
18161 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
18162
18163 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
18164 OPTION_MASK_VSX_TIMODE.
18165 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
18166 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
18167
18168 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
18169 (TI2 iterator): New iterator for TImode, PTImode.
18170 (wd mode attribute): Add values for vector types.
bd059b26
UB
18171 (movti_string): Replace TI move operations with operations for TImode
18172 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
18173 (mov<mode>_string, TImode/PTImode): Likewise.
18174 (movti_ppc64): Likewise.
18175 (mov<mode>_ppc64, TImode/PTImode): Likewise.
18176 (TI mode splitters): Likewise.
18177
18178 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
18179 constraint.
18180
1fc5eced
MG
181812013-03-20 Marc Glisse <marc.glisse@inria.fr>
18182
18183 PR tree-optimization/56355
18184 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
18185 Also handle integers with undefined overflow.
18186
22c4c869
CM
181872013-03-20 Catherine Moore <clm@codesourcery.com>
18188 Maciej W. Rozycki <macro@codesourcery.com>
18189 Tom de Vries <tom@codesourcery.com>
12211b99 18190 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
18191 Iain Sandoe <iain@codesourcery.com>
18192 Nathan Froyd <froydnj@codesourcery.com>
12211b99 18193 Chao-ying Fu <fu@mips.com>
22c4c869
CM
18194
18195 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 18196 Document new function attributes.
22c4c869
CM
18197 * doc/invoke.texi (minterlink-compressed, mmicromips,
18198 m14k, m14ke, m14kec): Document new options.
18199 (minterlink-mips16): Update documentation.
18200 * doc/md.texi (ZC, ZD): Document new constraints.
18201 * configure.ac (gcc_cv_as_micromips): Check if linker
18202 supports the .set micromips directive.
18203 * configure: Regenerate.
18204 * config.in: Regenerate.
18205 * config/mips/mips-tables.opt: Regenerate.
18206 * config/mips/micromips.md: New file.
18207 * constraints.md (ZC, ZD): New constraints.
18208 * config/mips/predicates.md (movep_src_register): New predicate.
18209 (movep_src_operand): New predicate.
18210 (non_volatile_mem_operand): New predicate.
18211 * config/mips/mips.md (multimem): New type.
18212 (length): Differentiate between 17-bit and 18-bit branch offsets.
18213 (MOVEP1, MOVEP2): New mode iterator.
33159866 18214 (mov_<load>l): Use ZC constraint.
22c4c869
CM
18215 (mov_<load>r): Likewise.
18216 (mov_<store>l): Likewise.
18217 (mov_<store>r): Likewise.
18218 (*branch_equality<mode>_inverted): Add microMIPS support.
18219 (*branch_equality<mode>): Likewise.
18220 (*jump_absolute): Likewise.
18221 (indirect_jump_<mode>): Likewise.
18222 (tablejump_<mode>): Likewise.
18223 (<optab>_internal): Likewise.
18224 (sibcall_internal): Likewise.
18225 (sibcall_value_internal): Likewise.
18226 (prefetch): Use constraint ZD.
18227 * config/mips/mips.opt (minterlink-compressed): New option.
18228 (minterlink-mips16): Now an alias for minterlink-compressed.
18229 (mmicromips): New option.
18230 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18231 (compare_and_swap_12): Likewise.
18232 (sync_add<mode>): Likewise.
18233 (sync_<optab>_12): Likewise.
18234 (sync_old_<optab>_12): Likewise.
18235 (sync_new_<optab>_12): Likewise.
18236 (sync_nand_12): Likewise.
18237 (sync_old_nand_12): Likewise.
18238 (sync_new_nand_12): Likewise.
18239 (sync_sub<mode>): Likewise.
18240 (sync_old_add<mode>): Likewise.
18241 (sync_old_sub<mode>): Likewise.
18242 (sync_new_add<mode>): Likewise.
18243 (sync_new_sub<mode>): Likewise.
18244 (sync_<optab><mode>): Likewise.
18245 (sync_old_<optab><mode>): Likewise.
18246 (sync_new_<optab><mode>): Likewise.
18247 (sync_nand<mode>): Likewise.
18248 (sync_old_nand<mode>): Likewise.
18249 (sync_new_nand<mode>): Likewise.
18250 (sync_lock_test_and_set<mode>): Likewise.
18251 (test_and_set_12): Likewise.
18252 (atomic_compare_and_swap<mode>): Likewise.
18253 (atomic_exchange<mode>_llsc): Likewise.
18254 (atomic_fetch_add<mode>_llsc): Likewise.
18255 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18256 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18257 (umips_save_restore_pattern_p): Likewise.
18258 (umips_load_store_pair_p): Likewise.
18259 (umips_output_load_store_pair): Likewise.
18260 (umips_movep_target_p): Likewise.
18261 (umips_12bit_offset_address_p): Likewise.
18262 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18263 (mips_base_mips16): Rename this...
18264 (mips_base_compression_flags): ...to this. Update all uses.
18265 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18266 (mips_mips16_decl_p): Delete.
18267 (mips_nomips16_decl_p): Delete.
33159866 18268 (mips_get_compress_on_flags): New function.
22c4c869
CM
18269 (mips_get_compress_off_flags): New function.
18270 (mips_get_compress_mode): New function.
18271 (mips_get_compress_on_name): New function.
18272 (mips_get_compress_off_name): New function.
18273 (mips_insert_attributes): Support multiple compression types.
18274 (mips_merge_decl_attributes): Likewise.
18275 (umips_12bit_offset_address_p): New function.
18276 (mips_start_function_definition): Emit .set micromips directive.
18277 (mips_call_may_need_jalx_p): New function.
18278 (mips_function_ok_for_sibcall): Add microMIPS support.
18279 (mips_print_operand_punctuation): Support short delay slots and
18280 compact jumps.
18281 (umips_swm_mask, umips_swm_encoding): New.
18282 (umips_build_save_restore): New function.
18283 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18284 (was_mips16_p): Remove.
18285 (old_compression_mode): New.
18286 (mips_set_compression_mode): New function.
18287 (mips_set_current_function): Add microMIPS support.
18288 (mips_option_override): Likewise.
18289 (umips_save_restore_pattern_p): New function.
18290 (umips_output_save_restore): New function.
18291 (umips_load_store_pair_p_1): New function.
18292 (umips_load_store_pair_p): New function.
18293 (umips_output_load_store_pair_1): New function.
18294 (umips_output_load_store_pair): New function.
18295 (umips_movep_target_p) New function.
18296 (mips_prepare_pch_save): Add microMIPS support.
18297 * config/mips/mips.h (TARGET_COMPRESSION): New.
18298 (TARGET_CPU_CPP_BUILTINS): Update macro
18299 to use new compression flags and to support microMIPS.
18300 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18301 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18302 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18303 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18304 (ASM_SPEC): Support mmicromips and mno-micromips.
18305 (M16STORE_REG_P): New macro.
18306 (MIPS_CALL): Support TARGET_MICROMIPS.
18307 (MICROMIPS_J): New macro.
18308 (mips_base_mips16): Rename this...
18309 (mips_base_compression_flags): ...to this.
18310 (UMIPS_12BIT_OFFSET_P): New macro.
18311 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18312 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
183132013-03-20 Richard Biener <rguenther@suse.de>
18314
18315 PR tree-optimization/56661
18316 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
18317 the result does not have to be distinct.
18318
54714c68
RB
183192013-03-20 Richard Biener <rguenther@suse.de>
18320
18321 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
18322 remap_gimple_op_r.
18323
cca1130d 183242013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 18325 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
18326
18327 PR rtl-optimization/56605
18328 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
18329
2a930377
UB
183302013-03-20 Uros Bizjak <ubizjak@gmail.com>
18331
18332 PR bootstrap/56656
18333 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
18334 that require movd instead of movq.
18335
d6d305fe
RB
183362013-03-20 Richard Biener <rguenther@suse.de>
18337
18338 * tree-ssa-structalias.c (struct variable_info): Add pointer
18339 to the first field of an aggregate with sub-vars. Make
18340 this and the pointer to the next subfield its ID.
18341 (vi_next): New function.
18342 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
18343 storedanything_id, integer_id): Increment by one.
18344 (new_var_info, get_call_vi, lookup_call_clobber_vi,
18345 get_call_clobber_vi): Adjust.
18346 (solution_set_expand): Simplify and speedup.
18347 (solution_set_add): Inline into ...
18348 (set_union_with_increment): ... this. Adjust accordingly.
18349 (do_sd_constraint): Likewise.
18350 (do_ds_constraint): Likewise.
18351 (do_complex_constraint): Simplify.
18352 (build_pred_graph): Adjust.
18353 (solve_graph): Likewise. Simplify and speedup.
18354 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18355 get_constraint_for_component_ref, get_constraint_for_1,
18356 first_vi_for_offset, first_or_preceding_vi_for_offset,
18357 create_function_info_for, create_variable_info_for_1,
18358 create_variable_info_for, intra_create_variable_infos): Adjust.
18359 (init_base_vars): Push NULL for ID zero.
18360 (compute_points_to_sets): Adjust.
18361
a271b42d
RB
183622013-03-20 Richard Biener <rguenther@suse.de>
18363
18364 * cfgloop.c (verify_loop_structure): Streamline and avoid
18365 ICEing on corrupt loop tree.
18366 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18367 loop tree.
18368
ebd65954
RB
183692013-03-20 Richard Biener <rguenther@suse.de>
18370
18371 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18372 check whether an SSA update is needed.
18373
4547b7ee
RS
183742013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18375
18376 * config/mips/constraints.md (T): Rename to...
18377 (Yf): ...this.
18378 (U): Rename to...
18379 (Yd): ...this.
18380 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18381 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18382
0b8cdc58
IB
183832013-03-19 Ian Bolton <ian.bolton@arm.com>
18384
18385 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18386 (*subsi3_carryin_uxtw): Likewise.
18387
5977a10d
IB
183882013-03-19 Ian Bolton <ian.bolton@arm.com>
18389
18390 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18391 (*rorsi3_insn_uxtw): Likewise.
18392
bd83ff2c
IB
183932013-03-19 Ian Bolton <ian.bolton@arm.com>
18394
18395 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18396 (*extrsi5_insn_uxtw): Likewise.
18397
ba65123c
RB
183982013-03-19 Richard Biener <rguenther@suse.de>
18399
18400 PR tree-optimization/56273
18401 * passes.c (init_optimization_passes): Move second VRP after DOM.
18402
2eac0476
UB
184032013-03-19 Uros Bizjak <ubizjak@gmail.com>
18404
18405 * config/i386/i386.md (*movti_internal): Merge from
18406 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18407 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18408 nox64 isa attributes.
18409
6e55eda7
RB
184102013-03-18 Richard Biener <rguenther@suse.de>
18411
18412 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18413 (unite): Likewise.
18414 (merge_node_constraints): Likewise.
18415 (build_succ_graph): Likewise.
18416 (valid_graph_edge): Inline into single caller.
18417 (unify_nodes): Likewise. Use bitmap_set_bit return value
18418 and cache varinfo.
18419 (scc_visit): Fix formatting and variable use.
18420 (do_sd_constraint): Use gcc_checking_assert.
18421 (do_ds_constraint): Likewise.
18422 (do_complex_constraint): Likewise.
18423 (condense_visit): Likewise. Cleanup.
18424 (dump_pred_graph): New function.
18425 (perform_var_substitution): Dump the pred-graph before
18426 variable substitution.
18427 (find_equivalent_node): Use gcc_checking_assert.
18428 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18429
4bdd44c4
RB
184302013-03-18 Richard Biener <rguenther@suse.de>
18431
18432 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18433 Remove cond_expr_stmt_list argument and do not gimplify the
18434 built expression.
18435 (vect_loop_versioning): Adjust.
18436 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18437 Cleanup to use less temporaries.
18438 (vect_create_data_ref_ptr): Cleanup.
18439
38c56a5b
JJ
184402013-03-18 Jakub Jelinek <jakub@redhat.com>
18441
18442 PR tree-optimization/56635
18443 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18444 require types_compatible_p types.
18445
20b2e6a0
NC
184462013-03-18 Nick Clifton <nickc@redhat.com>
18447
a6178a25
NC
18448 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18449 spurious backslash.
18450
20b2e6a0
NC
18451 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18452 Add missing line to comment describing function.
18453
92608d0e
RB
184542013-03-18 Richard Biener <rguenther@suse.de>
18455
18456 PR tree-optimization/56210
18457 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18458 Handle string / character search functions.
18459 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18460
31348d52
RB
184612013-03-18 Richard Biener <rguenther@suse.de>
18462
18463 PR middle-end/56483
18464 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18465 and implement properly.
18466 * gimple.h (gimple_cond_single_var_p): Remove.
18467
fcac74a1
RB
184682013-03-18 Richard Biener <rguenther@suse.de>
18469
18470 * tree-data-ref.h (find_data_references_in_loop): Declare.
18471 * tree-data-ref.c (get_references_in_stmt): Use a stack
18472 vector pre-allocated in the callers.
18473 (find_data_references_in_stmt): Adjust.
18474 (graphite_find_data_references_in_stmt): Likewise.
18475 (create_rdg_vertices): Likewise.
18476 (find_data_references_in_loop): Export.
18477 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18478 Compute dependences here...
18479 (vect_analyze_data_refs): ...not here. When we encounter
18480 a non-vectorizable data reference in basic-block vectorization
18481 truncate the data reference vector. Do not bother to
18482 fixup data-dependence information for gather loads.
18483 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18484 of data references, as reported.
18485
0d5a1b56
RB
184862013-03-18 Richard Biener <rguenther@suse.de>
18487
18488 PR tree-optimization/3713
18489 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18490 has_constants and expr.
18491 (stmt_has_constants): Properly valueize SSA names when deciding
18492 whether the stmt has constants.
18493
789c34e3
RB
184942013-03-18 Richard Biener <rguenther@suse.de>
18495
18496 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18497 whole function when there is nothing to do.
18498 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18499 * tree-vectorizer.c (vectorize_loops): Update virtual and
18500 loop-closed SSA once.
18501 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18502
076b4605
RB
185032013-03-18 Richard Biener <rguenther@suse.de>
18504
18505 PR middle-end/56113
18506 * domwalk.c (bb_postorder): New global static.
18507 (cmp_bb_postorder): New function.
18508 (walk_dominator_tree): Replace scheme imposing an order for
18509 visiting dominator sons by one sorting them at the time they
18510 are pushed on the stack.
18511
bdb01696
RB
185122013-03-18 Richard Biener <rguenther@suse.de>
18513
18514 PR tree-optimization/39326
18515 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18516 (struct mem_ref): Replace mem member with ao_ref typed member.
18517 (MEM_ANALYZABLE): Adjust.
18518 (memref_eq): Likewise.
18519 (mem_ref_alloc): Likewise.
18520 (gather_mem_refs_stmt): Likewise.
18521 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18522 (execute_sm_if_changed_flag_set): Adjust.
18523 (execute_sm): Likewise.
18524 (ref_always_accessed_p): Likewise.
18525 (refs_independent_p): Likewise.
18526 (can_sm_ref_p): Likewise.
18527
12d2dc5e
JJ
185282013-03-18 Jakub Jelinek <jakub@redhat.com>
18529
18530 PR c/56566
18531 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18532 return 1 even for !unsignedp.
18533
286fb677
UB
185342013-03-17 Uros Bizjak <ubizjak@gmail.com>
18535
18536 * config/i386/i386.md (isa): Add x64 and nox64.
18537 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18538 (*pushtf): Enable *roF alternative for x64 isa only.
18539 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18540 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18541 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18542 (*movtf_internal): Merge from *movtf_internal_rex64 and
18543 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18544 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18545 nox64 isa attributes.
18546 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18547 nox64 isa attributes.
18548 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18549
88b97037
UB
185502013-03-17 Uros Bizjak <ubizjak@gmail.com>
18551
18552 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18553
9f4f1735
JJ
185542013-03-17 Jakub Jelinek <jakub@redhat.com>
18555
18556 PR target/56640
18557 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18558 class names. Remove trailing comma after "ALL_REGS".
18559
48f4a6fa
JH
185602013-03-16 Jan Hubicka <jh@suse.cz>
18561
18562 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18563 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18564 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18565 of cgraph_get_create_node.
18566 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18567
98e81123
JM
185682013-03-16 Jason Merrill <jason@redhat.com>
18569
18570 PR debug/49090
18571 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18572 with DW_AT_default_value.
18573
8a298c04
JJ
185742013-03-16 Jakub Jelinek <jakub@redhat.com>
18575
18576 * BASE-VER: Set to 4.9.0.
18577
4323afa0
AK
185782013-03-14 Andi Kleen <ak@linux.intel.com>
18579
18580 PR target/56619
18581 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18582 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18583 Document _x* TSX intrinsics.
18584
b3c0d469
JJ
185852013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18586 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18587
18588 * configure.ac: Add MicroBlaze TLS support detection.
18589 * configure: Regenerate.
88b97037
UB
18590 * config/microblaze/microblaze-protos.h
18591 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18592 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18593 * config/microblaze/microblaze.c (microblaze_address_type): Add
18594 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18595 (microblaze_address_info): Add tls_reloc.
18596 (TARGET_HAVE_TLS): Define.
18597 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18598 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18599 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18600 load_tls_operand, microblaze_call_tls_get_addr,
18601 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18602 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18603 (get_base_reg): Use microblaze_tls_symbol_p.
18604 (microblaze_classify_address): Handle TLS.
88b97037
UB
18605 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18606 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18607 (microblaze_legitimize_address): Handle TLS.
18608 (microblaze_address_insns): Handle ADDRESS_TLS.
18609 (pic_address_needs_scratch): Handle TLS.
18610 (print_operand_address): Handle TLS.
18611 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18612 (microblaze_expand_move): Handle TLS.
88b97037
UB
18613 (microblaze_legitimate_constant_p): Check
18614 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18615 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18616 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18617 (PIC_OFFSET_TABLE_REGNUM): Set.
18618 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18619 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18620 (addsi3, movsi_internal2, movdf_internal): Update constraints
18621 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18622 (move_operand): Redefine as move_src_operand,
18623 check microblaze_tls_referenced_p.
8cc9a5a5 18624
d803a491
IB
186252013-03-14 Ian Bolton <ian.bolton@arm.com>
18626
18627 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18628 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18629
a8504f22
IB
186302013-03-14 Ian Bolton <ian.bolton@arm.com>
18631
18632 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18633 CC mode for AND.
18634
df2dfaea
JJ
186352013-03-14 Jakub Jelinek <jakub@redhat.com>
18636
fbd28bc3
JJ
18637 PR tree-optimization/53265
18638 * common.opt (Waggressive-loop-optimizations): New option.
18639 * tree-ssa-loop-niter.c: Include tree-pass.h.
18640 (do_warn_aggressive_loop_optimizations): New function.
18641 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
18642 if number_of_latch_executions returned constant.
18643 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
18644 early. If number_of_latch_executions returned constant, set
18645 nb_iterations_upper_bound back to it.
18646 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
18647 field.
18648 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
18649 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
18650
df2dfaea
JJ
18651 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
18652 (MULTILIB_OSDIRNAMES): Set.
18653 * genmultilib: If defaultosdirname doesn't start with :: , set
18654 defaultosdirname2 instead, clear it and emit two . multilib_raw
18655 entries instead of just one.
18656
ee0d2b68
KK
186572013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
18658
18659 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18660 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
18661 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18662 (SUBTARGET_OVERRIDE_OPTIONS): New.
18663
decc676e
OE
186642013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
18665
18666 PR target/49880
18667 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
18668 (musermode): Convert to Var(TARGET_USERMODE).
18669 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
18670 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
18671 * config/sh/sh.c (sh_option_override): Use
18672 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
18673 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
18674 condition.
18675 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
18676 TARGET_SH4.
18677 (udivsi3_i4_single, divsi3_i4_single): Use
18678 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
18679
f4b719c7
DK
186802013-03-13 Dave Korn <dave.korn.cygwin@....>
18681
18682 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
18683 default setting.
18684
c40eced0
RB
186852013-03-13 Richard Biener <rguenther@suse.de>
18686
18687 PR tree-optimization/56608
18688 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
18689 calls when vectorizing basic-blocks.
18690
1bfa5973
JJ
186912013-03-13 Jakub Jelinek <jakub@redhat.com>
18692
18693 PR plugins/45078
18694 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
18695 tm_file.
18696
6fcf5434
JJ
186972013-03-12 Jakub Jelinek <jakub@redhat.com>
18698
18699 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
18700
4f38fa8c
JH
187012013-03-11 Jan Hubicka <jh@suse.cz>
18702
18703 PR lto/56557
18704 * lto-streamer-out.c (output_symbol_p): Skip references from
18705 constructors of external variables.
18706
c5c5ba89
JH
187072013-03-11 Jan Hubicka <jh@suse.cz>
18708
18709 PR middle-end/56571
18710 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
18711 from pseudos.
18712 * emit-rtl.c (verify_rtx_sharing): Likewise.
18713 (copy_insn_1): Likewise.
18714 * rtl.c (copy_rtx): Likewise.
18715
c2a939b1
GJL
187162013-03-11 Georg-Johann Lay <avr@gjlay.de>
18717
18718 PR target/56591
18719 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
18720 output_operand_lossage message.
88b97037 18721
3c3279fb
RE
187222013-03-11 Richard Earnshaw <rearnsha@arm.com>
18723
18724 PR target/56470
18725 * arm.c (shift_op): Validate RTL pattern on the fly.
18726 (arm_print_operand, case 'S'): Don't use shift_operator to validate
18727 the RTL.
18728
aef5ef9d
JDA
187292013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18730
18731 PR target/56347
18732 * config/pa/pa.md (call_value): Check for calls to powf and direct to
18733 new call patterns that clobber %fr12.
18734 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
18735 split and postreload patterns.
18736 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
18737 registers %fr12 and %fr12R as call used.
18738
456610d3
SB
187392013-03-09 Steven Bosscher <steven@gcc.gnu.org>
18740
18741 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
18742 (canon_address, record_store, replace_read, check_mem_read_rtx,
18743 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
18744 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
18745 rest_of_handle_dse): Likewise.
18746
4b1baac8
RS
187472013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
18748
18749 PR middle-end/56524
18750 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
18751 Add base_optabs.
18752 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
18753 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
18754 (save_optabs_if_changed): Replace with...
18755 (init_tree_optimization_optabs): ...this.
18756 * optabs.c (save_optabs_if_changed): Rename to...
18757 (init_tree_optimization_optabs): ...this. Take the optimization node
18758 as argument. Do nothing if the base optabs are already correct.
18759 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
18760 to recompute optabs.
18761 * function.h (function): Remove optabs field.
18762 * function.c (invoke_set_current_function_hook): Call
18763 init_tree_optimization_optabs. Use the result to initialize
18764 this_fn_optabs.
18765
b7a78683
AH
187662013-02-27 Aldy Hernandez <aldyh@redhat.com>
18767
18768 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
18769 if GTMA_HAS_NO_INSTRUMENTATION.
18770 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
18771 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
18772 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
18773 * gimple-pretty-print.c (dump_gimple_transaction): Handle
18774 GTMA_HAS_NO_INSTRUMENTATION.
18775
6384c29b
JJ
187762013-03-08 Jakub Jelinek <jakub@redhat.com>
18777
18778 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
18779 libasan_preinit.o.
18780
ecd4f20a
MP
187812013-03-08 Marek Polacek <polacek@redhat.com>
18782 Jakub Jelinek <jakub@redhat.com>
18783
18784 PR tree-optimization/56478
18785 * predict.c (is_comparison_with_loop_invariant_p): Change the
18786 type of loop_step to tree.
18787 (predict_loops): Adjust.
18788 (predict_iv_comparison): Perform the computations on double_ints.
18789
64366d35
RB
187902013-03-08 Richard Biener <rguenther@suse.de>
18791
18792 PR tree-optimization/56570
18793 * tree-cfg.c (verify_expr_location_1): Verify locations for
18794 DECL_DEBUG_EXPR.
18795 * tree-sra.c (create_access_replacement): Strip locations
18796 from DECL_DEBUG_EXPRs.
18797
a9d5a059
RB
187982013-03-08 Richard Biener <rguenther@suse.de>
18799
18800 * tree-inline.c (expand_call_inline): Do not associate
18801 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
18802 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
18803
b7aa4e9a
RB
188042013-03-08 Richard Biener <rguenther@suse.de>
18805
18806 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
18807 or block changes with -Og. Fix for location / block encoding
18808 changes and PHI arguments with locations.
18809
c4c2f9fa
SB
188102013-03-07 Steven Bosscher <steven@gcc.gnu.org>
18811
18812 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
18813 for all counters.
18814 (struct output_info): Likewise.
18815 (register_overhead): Remove bad gcc_assert.
18816 (bitmap_find_bit): If there is only a single bitmap element, do not
18817 count a miss as a search.
18818 (print_statistics): Update for counter type changes.
18819 (dump_bitmap_statistics): Likewise. Print headers such that they
18820 are properly lined up with the printed counters.
18821
5bf6606a
JJ
188222013-03-07 Jakub Jelinek <jakub@redhat.com>
18823
18824 PR tree-optimization/56559
18825 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
18826 check that it has only a single use.
18827
2c653d46
RB
188282013-03-07 Richard Biener <rguenther@suse.de>
18829
18830 * doc/invoke.texi (fwhole-program): Discourage use in combination
18831 with -flto.
18832
a72d8780
JJ
188332013-03-06 Jakub Jelinek <jakub@redhat.com>
18834
01a454df
JJ
18835 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
18836
c1781047
JJ
18837 PR tree-optimization/56539
18838 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
18839 instead of GSI_CONTINUE_LINKING as last argument to
18840 force_gimple_operand_gsi. Adjust function comment.
18841
9772c47a
JJ
18842 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
18843 aarch64-cores.def.
18844
a72d8780
JJ
18845 PR middle-end/56548
18846 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
18847 promoted mode, convert the result back to the original mode.
18848
fa5556de
RB
188492013-03-06 Richard Biener <rguenther@suse.de>
18850
18851 PR middle-end/56294
18852 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
18853 (insert_updated_phi_nodes_compare_uids): New function.
18854 (update_ssa): Sort symbols_to_rename after UID before
18855 traversing it to insert PHI nodes.
18856
010403d1
RB
188572013-03-06 Richard Biener <rguenther@suse.de>
18858
18859 PR middle-end/50494
18860 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
18861 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
18862
18863 Revert
18864 2013-02-13 Richard Biener <rguenther@suse.de>
18865
18866 PR lto/50494
18867 * varasm.c (output_constant_def_1): Get the decl representing
18868 the constant as argument.
18869 (output_constant_def): Wrap output_constant_def_1.
18870 (make_decl_rtl): Use output_constant_def_1 with the decl
18871 representing the constant.
18872 (build_constant_desc): Optionally re-use a decl already
18873 representing the constant.
18874 (tree_output_constant_def): Adjust.
18875
3c27ce4c
JY
188762013-03-06 Joey Ye <joey.ye@arm.com>
18877
18878 PR lto/50293
18879 * gcc.c (convert_white_space): New function.
18880 (main): Handles white space in function name.
18881
8f6d1c86
OE
188822013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
18883
18884 PR target/56529
18885 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
18886 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
18887 to SH_DIV_CALL_TABLE for TARGET_SH2.
18888 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
18889 list.
18890 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
18891 call-table options.
18892
798a209f
SA
188932013-03-05 Sterling Augustine <saugustine@google.com>
18894 Cary Coutant <ccoutant@google.com>
18895
18896 PR debug/55364
18897 * dwarf2out.c (resolve_addr): Don't call
18898 remove_loc_list_addr_table_entries a second time for the same
18899 expression.
18900
6cfa417f 189012013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 18902
6cfa417f
JJ
18903 PR debug/56510
18904 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
18905 (avoid_complex_debug_insns): New function.
18906 (expand_debug_locations): Call it.
18907
18908 PR rtl-optimization/56484
18909 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
18910 lifetimes of hard registers on small register class machines.
18911
189122013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
18913
18914 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 18915 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 18916 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
18917 fast_interrupt.
18918 (microblaze_fast_interrupt_function_p): New function.
18919 (microblaze_is_interrupt_handler): Rename to
18920 microblaze_is_interrupt_variant and add fast_interrupt check.
18921 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
18922 (save_restore_insns): Likewise.
18923 (compute_frame_size): Likewise.
18924 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
18925 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
18926 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
18927 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
18928 microblaze_is_interrupt_variant.
18929
731aefac
KT
189302013-03-05 Kai Tietz <ktietz@redhat.com>
18931
18932 * sdbout.c (sdbout_one_type): Switch to current function's section
18933 supporting cold/hot.
18934
a72d8780 189352013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
18936
18937 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
18938 -mxl-reorder.
18939
334e71e8
JJ
189402013-03-05 Jakub Jelinek <jakub@redhat.com>
18941
0b50e654
JJ
18942 PR middle-end/56461
18943 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
18944 if VALGRIND_GET_VBITS is defined, temporarily make object
18945 memory all defined, and restore previous valgrind addressability
18946 and definability afterwards. Free this_object at the end.
18947
4ccf8f43
JJ
18948 PR middle-end/56461
18949 * lra.c (lra): Call lra_clear_live_ranges if live_p,
18950 right before calling lra_create_live_ranges, also call it
18951 when clearing live_p. Only call lra_clear_live_ranges
18952 at the end if live_p.
18953
334e71e8
JJ
18954 PR middle-end/56461
18955 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
18956
9ca966ca
RB
189572013-03-05 Richard Biener <rguenther@suse.de>
18958
18959 PR tree-optimization/56521
18960 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
18961 value-id.
18962
d273b176
SB
189632013-03-05 Steven Bosscher <steven@gcc.gnu.org>
18964
18965 PR c++/55135
18966 * except.h (remove_unreachable_eh_regions): New prototype.
18967 * except.c (remove_eh_handler_splicer): New function, split out
18968 of remove_eh_handler.
18969 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
18970 warning about running it on many EH regions one at a time.
18971 (remove_unreachable_eh_regions_worker): New function, walk the
18972 EH tree in depth-first order and remove non-marked regions.
18973 (remove_unreachable_eh_regions): New function.
18974 * tree-eh.c (mark_reachable_handlers): New function, split out
18975 from remove_unreachable_handlers.
18976 (remove_unreachable_handlers): Use mark_reachable_handlers and
18977 remove_unreachable_eh_regions.
18978 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
18979 and remove_unreachable_eh_regions.
18980
5e7f1aef
RB
189812013-03-05 Richard Biener <rguenther@suse.de>
18982
18983 PR middle-end/56525
18984 * loop-init.c (fix_loop_structure): Remove loops in two stages,
18985 not freeing them until the end.
18986
f276b762
AK
189872013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18988
18989 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
18990
12a43ab8
RB
189912013-03-05 Richard Biener <rguenther@suse.de>
18992
18993 PR tree-optimization/56270
18994 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
18995 of loads after scheduling an SLP instance.
18996
93675444
JJ
189972013-03-05 Jakub Jelinek <jakub@redhat.com>
18998
db4138e3
JJ
18999 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
19000 tic6x.exp.
19001 (check_gcc_parallelize): Run guality.exp as a separate job from
19002 vect.exp with unsorted.exp and $(dg_target_exps) separately from
19003 struct-layout-1.exp with stackalign.exp.
19004
dd3d1ec0
JJ
19005 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
19006
b8d381a3
JJ
19007 PR middle-end/56461
19008 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
19009 load_index sbitmap even if some bit in it isn't set.
19010
b4f9786b
JJ
19011 PR middle-end/56461
19012 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
19013 (discover_iteration_bound_by_body_walk): Change queues to
19014 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
19015 spelling in comment. Call safe_push on queues[bound_index] directly.
19016 Release queues[queue_index] in every iteration unconditionally.
19017 Release bounds vector.
19018
93675444
JJ
19019 PR middle-end/56461
19020 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
19021 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
19022 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
19023 inner_phis vector.
19024
3e492e9c
RB
190252013-03-05 Richard Biener <rguenther@suse.de>
19026
19027 PR lto/56515
19028 * tree-inline.c (remap_blocks_to_null): New function.
19029 (expand_call_inline): When expanding a call stmt without
19030 an associated block inline remap all callee blocks to NULL.
19031
a5d1569a
JJ
190322013-03-05 Jakub Jelinek <jakub@redhat.com>
19033
86efb5cd
JJ
19034 PR rtl-optimization/56494
19035 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
19036 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
19037 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
19038
85f5dbea
JJ
19039 PR middle-end/56461
19040 * sel-sched-ir.c (free_sched_pools): Release
19041 succs_info_pool.stack[succs_info_pool.max_top] vectors too
19042 if succs_info_pool.max_top isn't -1.
19043
a5d1569a
JJ
19044 PR bootstrap/56509
19045 * opts.c (opts_obstack, opts_concat): Moved to...
19046 * opts-common.c (opts_obstack, opts_concat): ... here.
19047
4432aa6c
JJ
190482013-03-04 Jakub Jelinek <jakub@redhat.com>
19049
19050 PR middle-end/56461
19051 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
19052
f3a1fb91
MJ
190532013-03-04 Martin Jambor <mjambor@suse.cz>
19054
19055 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
19056 all appropriate places.
19057
22110e6c
EB
190582013-01-04 Eric Botcazou <ebotcazou@adacore.com>
19059
19060 PR tree-optimization/56424
19061 * ipa-split.c (split_function): Do not set the RSO flag if result is
19062 not by reference and its type is a register type.
19063
a72d8780 190642013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 19065
88b97037 19066 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 19067 (microblaze_legitimate_pic_operand): Likewise
88b97037 19068 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
19069 new function microblaze_legitimate_pic_operand
19070 * config/microblaze/microblaze-protos.h
19071 (microblaze_legitimate_pic_operand): Declare.
19072
a72d8780 190732013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 19074
a72d8780 19075 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 19076 New predicate for supported rtx code types.
a72d8780 19077 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
19078 call_insn_simple_operand predicate.
19079
541d9ac8
JJ
190802013-03-04 Jakub Jelinek <jakub@redhat.com>
19081
5eb010bc
JJ
19082 PR middle-end/56461
19083 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
19084 partitions.ordered_remove.
19085
30862efc
JJ
19086 PR middle-end/56461
19087 * tree-vect-stmts.c (vectorizable_conversion): Don't call
19088 vec_oprnds0.create (1) for modifier == NONE.
19089
8930f723
JJ
19090 PR middle-end/56461
19091 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
19092 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
19093 vec_oprnds1 right before pushing anything to it for
19094 scalar_shift_arg.
19095
541d9ac8
JJ
19096 PR middle-end/56461
19097 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
19098 set nbbs to 0 instead of having separate code path.
19099 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
19100 instead of false as last argument if returning NULL.
19101
7aa7f2e3
SL
191022013-03-03 Sandra Loosemore <sandra@codesourcery.com>
19103
19104 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
19105 the attribute is now called "target" instead of "option".
19106 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
19107 * doc/tm.texi.in (Target Attributes): Likewise document the correct
19108 attribute/pragma name for TARGET_OPTION_VALID_P and
19109 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
19110 * doc/tm.texi: Regenerated.
19111
8930f723 191122013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 19113
8930f723 19114 * config/microblaze/microblaze.c:
cb8a1637 19115 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
19116 * config/microblaze/microblaze.h: Add -mxl-reorder to
19117 DRIVER_SELF_SPECS.
19118 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
19119 instructions emitted if TARGET_REORDER.
88b97037
UB
19120 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
19121 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 19122 separately.
cb8a1637 19123
4dc1d68c
XDL
191242013-03-01 Xinliang David Li <davidxl@google.com>
19125
19126 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
19127 walk length.
19128
689eaba3
JJ
191292013-03-01 Jakub Jelinek <jakub@redhat.com>
19130
9d676bf6
JJ
19131 PR middle-end/56461
19132 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
19133 vector even when returning true. Fix up function comment formatting.
19134
caff7edf
JJ
19135 PR middle-end/56461
19136 * ira-build.c (ira_loop_nodes_count): New variable.
19137 (create_loop_tree_nodes): Initialize it.
19138 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
19139
b6b9227d
JJ
19140 PR middle-end/56461
19141 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
19142 method on dr_chain and result_chain.
19143 * tree-vect-stmts.c (vectorizable_store): Only call
19144 result_chain.create if j == 0.
19145
689eaba3
JJ
19146 PR middle-end/56461
19147 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
19148 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
19149 before overwriting it.
19150
40bf31ed
TB
191512013-03-01 Tobias Burnus <burnus@net-b.de>
19152
19153 * doc/extended.texi (C Extensions): Change order in @menu
19154 to match @node.
19155 (Other MIPS Built-in Functions): Move last MIPS entry before
19156 "picoChip Built-in Functions".
19157 (SH Built-in Functions): Move after RX Built-in Functions.
19158 * doc/gcc.texi (Introduction): Change order in @menu
19159 to match @node.
19160 * doc/md.texi (Constraints): Ditto.
19161 * gty.texi (Type Information): Ditto.
19162 (User-provided marking routines for template types): Make
19163 subsection.
19164 * doc/invoke.texi (AArch64 Options): Move before
19165 "Adapteva Epiphany Options".
19166
e664c61c
KS
191672013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
19168 Jakub Jelinek <jakub@redhat.com>
19169
19170 PR sanitizer/56454
19171 * asan.c (gate_asan): Lookup no_sanitize_address instead of
19172 no_address_safety_analysis attribute.
19173 * doc/extend.texi (no_address_safety_attribute): Rename to
19174 no_sanitize_address attribute, mention no_address_safety_analysis
19175 attribute as deprecated alias.
19176
37b5ec8f
JJ
191772013-02-28 Jakub Jelinek <jakub@redhat.com>
19178
19179 PR middle-end/56461
19180 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
19181 type to vec<vec<tree> > *.
19182 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
19183 to be vec<tree> instead of vec<tree> *, set vec_defs
19184 to vNULL and call vec_defs.create (number_of_vects), adjust other
19185 uses of vec_defs.
19186 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
19187 vectorizable_condition): Adjust vect_get_slp_defs callers.
19188
ba96cdfb
JG
191892013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19190
19191 * config/aarch64/aarch64.c
19192 (aarch64_float_const_representable): Remove unused variable.
19193
6f549691
JG
191942013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19195
19196 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
19197
af55e82d
JG
191982013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19199
19200 * config/aarch64/aarch64-builtins.c
19201 (aarch64_init_simd_builtins): Make static.
19202
1df3f464
JG
192032013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19204
19205 * config/aarch64/aarch64.c
19206 (aarch64_simd_make_constant): Make static.
19207
f8f42513
MJ
192082013-02-28 Martin Jambor <mjambor@suse.cz>
19209
19210 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
19211 with no initialization to the RHS of debug statements.
19212
b48b3fc4
MJ
192132013-02-28 Martin Jambor <mjambor@suse.cz>
19214
19215 PR tree-optimization/56294
19216 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
19217 Adjust dumping.
19218 (get_access_replacement): Do not call create_access_replacement.
19219 Assert a replacement exists.
19220 (get_repl_default_def_ssa_name): Create the replacement declaration
19221 itself.
19222
c3ae224c
RR
192232013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19224
19225 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
19226 final_end_function.
19227
45fa0eef
MP
192282013-02-28 Marek Polacek <polacek@redhat.com>
19229
19230 PR rtl-optimization/56466
19231 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
19232 if we're changing a loop.
19233 (peel_loops_completely): Likewise.
19234
502c067d
PC
192352013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
19236
19237 PR c++/55813
19238 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
19239
ff24afc8
GJL
192402013-02-28 Georg-Johann Lay <avr@gjlay.de>
19241
19242 PR target/56445
19243 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
19244 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
19245 INTX_FTYPE_FX, FX_FTYPE_INTX.
19246 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
19247
c7b1fc1b
GJL
192482013-02-28 Georg-Johann Lay <avr@gjlay.de>
19249
19250 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
19251 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
19252 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
19253 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
19254 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
19255 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
19256 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
19257 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
19258 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
19259 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
19260 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
19261 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
19262 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
19263 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
19264 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
19265 (avrxmega6): Increase max flash segments from 5 to 6.
19266 * config/avr/t-multilib: Regenerate.
19267 * config/avr/avr-tables.opt: Regenerate.
19268 * doc/avr-mmcu.texi: Regenerate.
19269
4a0e3cfe
GJL
192702013-02-28 Georg-Johann Lay <avr@gjlay.de>
19271
19272 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
19273 (avr_device_to_arch): Rename to avr_device_to_ld.
19274 (avr_device_to_as): New prototype.
19275 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
19276 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
19277 * config/avr/driver-avr.c (avr_device_to_as): New.
19278 (avr_device_to_arch): Rename to avr_device_to_ld.
19279
97785e52
JJ
192802013-02-27 Jakub Jelinek <jakub@redhat.com>
19281
3f292312
JJ
19282 PR middle-end/56461
19283 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
19284 method on dr_chain and result_chain.
19285
a344216b
JJ
19286 PR middle-end/56461
19287 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
19288 pointer_set_destroy on not_executed_last_iteration.
19289
f121ad02 19290 PR middle-end/56461
88b97037 19291 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 19292
307f83a3
JJ
19293 PR middle-end/56461
19294 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
19295 FOR_EACH_DEFINED_FUNCTION when freeing state.
19296
e19624ee
JJ
19297 PR middle-end/56461
19298 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
19299 pool_free.
19300 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
19301 overwriting it.
19302
90e709fd
JJ
19303 PR middle-end/56461
19304 * ipa-cp.c (decide_whether_version_node): Call vec_free on
19305 known_aggs[i].items and release known_aggs vector.
19306
97785e52
JJ
19307 PR middle-end/56461
19308 * ipa-reference.c (propagate): Free node_info even for alias nodes.
19309
193102013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 19311
97785e52
JJ
19312 * config/microblaze/microblaze.c (microblaze_emit_compare):
19313 Use xor for EQ/NE comparisions.
19314 * config/microblaze/microblaze.md (cstoresf4): Add constraints
19315 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 19316
6fa5e0ed
JJ
193172013-02-27 Jakub Jelinek <jakub@redhat.com>
19318
19319 PR middle-end/56461
19320 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
19321 vector.
19322 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
19323 vec_safe_push, always update *slot.
19324 (redirect_edge_var_map_clear): Use vec_free.
19325 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
19326 (free_var_map_entry): Use vec_free.
19327 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
19328 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
19329
436a956a
AB
193302013-02-27 Andrey Belevantsev <abel@ispras.ru>
19331
19332 PR middle-end/45472
436a956a
AB
19333 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
19334 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
19335 Reorder tests for speculativeness in the logical and operator.
19336
f5c2caca
JJ
193372013-02-27 Jakub Jelinek <jakub@redhat.com>
19338
0fcb564b
JJ
19339 * incpath.c (add_standard_paths): Use reconcat instead of concat
19340 where appropriate and avoid leaking memory.
19341
dc357798
JJ
19342 * opts.h: Include obstack.h.
19343 (opts_concat): New prototype.
19344 (opts_obstack): New declaration.
19345 * opts.c (opts_concat): New function.
19346 (opts_obstack): New variable.
19347 (init_options_struct): Call gcc_init_obstack on opts_obstack.
19348 (finish_options): Use opts_concat instead of concat
19349 and XOBNEWVEC instead of XNEWVEC.
19350 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19351 generate_option): Likewise.
19352 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19353 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19354
f5c2caca
JJ
19355 PR target/56455
19356 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19357 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19358
d0163673
JJ
193592013-02-26 Jakub Jelinek <jakub@redhat.com>
19360
19361 PR middle-end/56461
19362 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19363
b5ad2b8e
JR
193642013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19365
19366 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19367 (arm_block_move_unaligned_straight): Likewise.
19368 (arm_adjust_block_mem): Likewise.
19369
9b639e2c
JR
193702013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19371
19372 PR target/48901
19373 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19374 temp, cond and label.
19375 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19376
e13a0ccb
JR
19377 PR target/52500
19378 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19379 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19380
fbe4f171
JR
19381 PR target/52501
19382 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19383 of prologue/epilogue functions.
19384
ae006543
JR
19385 PR target/52550
19386 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19387 Remove unused variable cfa_offset.
19388 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19389
c81369fa
JR
19390 PR target/54639
19391 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19392 type promotion to unsigned.
19393
f8a8fea7
JR
19394 PR target/54640
19395 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19396 for HOST_WIDE_INT of 32 bit / same size as int.
19397 (arm_block_move_unaligned_straight): Likewise.
19398 (arm_adjust_block_mem): Likewise.
19399
f8be5169
JR
19400 PR target/54662
19401 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19402 ALL_CFLAGS.
19403
f1ad3354
MP
194042013-02-26 Marek Polacek <polacek@redhat.com>
19405
19406 PR tree-optimization/56426
88b97037 19407 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19408
a6af0f42
RB
194092013-02-26 Richard Biener <rguenther@suse.de>
19410
19411 PR target/56444
19412 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19413 unused variable loops.
19414
aca43c6c
JJ
194152013-02-26 Jakub Jelinek <jakub@redhat.com>
19416
cecbe5d9
JJ
19417 PR tree-optimization/56448
19418 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19419 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19420 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19421 later operands of the references, or even first operand for
19422 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19423
aca43c6c
JJ
19424 PR tree-optimization/56443
19425 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19426 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19427 to type_for_mode langhook.
19428
53e2e141
MT
194292013-02-25 Matt Turner <mattst88@gmail.com>
19430
19431 * doc/invoke.texi: Document r4700.
19432
259ee451
RB
194332013-02-25 Richard Biener <rguenther@suse.de>
19434
19435 PR tree-optimization/56175
19436 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19437 split out from ...
19438 (simplify_bitwise_binary): ... here. Also guard the conversion
19439 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19440
6d65e8f1
CM
194412013-02-25 Catherine Moore <clm@codesourcery.com>
19442
19443 Revert:
19444 2013-02-24 Catherine Moore <clm@codesourcery.com>
19445 Maciej W. Rozycki <macro@codesourcery.com>
19446 Tom de Vries <tom@codesourcery.com>
a72d8780 19447 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19448 Iain Sandoe <iain@codesourcery.com>
19449 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19450 Chao-ying Fu <fu@mips.com>
88b97037 19451
6d65e8f1 19452 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19453 Document new function attributes.
6d65e8f1
CM
19454 * doc/invoke.texi (minterlink-compressed, mmicromips,
19455 m14k, m14ke, m14kec): Document new options.
19456 (minterlink-mips16): Update documentation.
19457 * doc/md.texi (ZC, ZD): Document new constraints.
19458 * configure.ac (gcc_cv_as_micromips): Check if linker
19459 supports the .set micromips directive.
19460 * configure: Regenerate.
19461 * config.in: Regenerate.
19462 * config/mips/mips-tables.opt: Regenerate.
19463 * config/mips/micromips.md: New file.
19464 * constraints.md (ZC, AD): New constraints.
19465 * config/mips/predicates.md (movep_src_register): New predicate.
19466 (movep_src_operand): New predicate.
19467 (non_volatile_mem_operand): New predicate.
19468 * config/mips/mips.md (multimem): New type.
19469 (length): Differentiate between 17-bit and 18-bit branch offsets.
19470 (MOVEP1, MOVEP2): New mode iterator.
19471 (mov_<load>l): Use ZC constraint.
19472 (mov_<load>r): Likewise.
19473 (mov_<store>l): Likewise.
19474 (mov_<store>r): Likewise.
19475 (*branch_equality<mode>_inverted): Add microMIPS support.
19476 (*branch_equality<mode>): Likewise.
19477 (*jump_absolute): Likewise.
19478 (indirect_jump_<mode>): Likewise.
19479 (tablejump_<mode>): Likewise.
19480 (<optab>_internal): Likewise.
19481 (sibcall_internal): Likewise.
19482 (sibcall_value_internal): Likewise.
19483 (prefetch): Use constraint ZD.
19484 * config/mips/mips.opt (minterlink-compressed): New option.
19485 (minterlink-mips16): Now an alias for minterlink-compressed.
19486 (mmicromips): New option.
19487 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19488 (compare_and_swap_12): Likewise.
19489 (sync_add<mode>): Likewise.
19490 (sync_<optab>_12): Likewise.
19491 (sync_old_<optab>_12): Likewise.
19492 (sync_new_<optab>_12): Likewise.
19493 (sync_nand_12): Likewise.
19494 (sync_old_nand_12): Likewise.
19495 (sync_new_nand_12): Likewise.
19496 (sync_sub<mode>): Likewise.
19497 (sync_old_add<mode>): Likewise.
19498 (sync_old_sub<mode>): Likewise.
19499 (sync_new_add<mode>): Likewise.
19500 (sync_new_sub<mode>): Likewise.
19501 (sync_<optab><mode>): Likewise.
19502 (sync_old_<optab><mode>): Likewise.
19503 (sync_new_<optab><mode>): Likewise.
19504 (sync_nand<mode>): Likewise.
19505 (sync_old_nand<mode>): Likewise.
19506 (sync_new_nand<mode>): Likewise.
19507 (sync_lock_test_and_set<mode>): Likewise.
19508 (test_and_set_12): Likewise.
19509 (atomic_compare_and_swap<mode>): Likewise.
19510 (atomic_exchange<mode>_llsc): Likewise.
19511 (atomic_fetch_add<mode>_llsc): Likewise.
19512 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19513 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19514 (umips_save_restore_pattern_p): Likewise.
19515 (umips_load_store_pair_p): Likewise.
19516 (umips_output_load_store_pair): Likewise.
19517 (umips_movep_target_p): Likewise.
19518 (umips_12bit_offset_address_p): Likewise.
19519 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19520 (mips_base_mips16): Rename this...
19521 (mips_base_compression_flags): ...to this. Update all uses.
19522 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19523 (mips_mips16_decl_p): Delete.
19524 (mips_nomips16_decl_p): Delete.
19525 (mips_get_compress_on_flags): New function.
19526 (mips_get_compress_off_flags): New function.
19527 (mips_get_compress_mode): New function.
19528 (mips_get_compress_on_name): New function.
19529 (mips_get_compress_off_name): New function.
19530 (mips_insert_attributes): Support multiple compression types.
19531 (mips_merge_decl_attributes): Likewise.
19532 (umips_12bit_offset_address_p): New function.
19533 (mips_start_function_definition): Emit .set micromips directive.
19534 (mips_call_may_need_jalx_p): New function.
19535 (mips_function_ok_for_sibcall): Add microMIPS support.
19536 (mips_print_operand_punctuation): Support short delay slots and
19537 compact jumps.
19538 (umips_swm_mask, umips_swm_encoding): New.
19539 (umips_build_save_restore): New function.
19540 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19541 (was_mips16_p): Remove.
19542 (old_compression_mode): New.
19543 (mips_set_compression_mode): New function.
19544 (mips_set_current_function): Add microMIPS support.
19545 (mips_option_override): Likewise.
19546 (umips_save_restore_pattern_p): New function.
19547 (umips_output_save_restore): New function.
19548 (umips_load_store_pair_p_1): New function.
19549 (umips_load_store_pair_p): New function.
19550 (umips_output_load_store_pair_1): New function.
19551 (umips_output_load_store_pair): New function.
19552 (umips_movep_target_p) New function.
19553 (mips_prepare_pch_save): Add microMIPS support.
19554 * config/mips/mips.h (TARGET_COMPRESSION): New.
19555 (TARGET_CPU_CPP_BUILTINS): Update macro
19556 to use new compression flags and to support microMIPS.
19557 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19558 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19559 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19560 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19561 (ASM_SPEC): Support mmicromips and mno-micromips.
19562 (M16STORE_REG_P): New macro.
19563 (MIPS_CALL): Support TARGET_MICROMIPS.
19564 (MICROMIPS_J): New macro.
19565 (mips_base_mips16): Rename this...
19566 (mips_base_compression_flags): ...to this.
19567 (UMIPS_12BIT_OFFSET_P): New macro.
19568 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19569 (MULTILIB_DIRNAMES): Likewise.
19570
5e5df392
TV
195712013-02-25 Tom de Vries <tom@codesourcery.com>
19572
19573 PR rtl-optimization/56131
19574 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19575 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19576 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19577
3fdb53c1
TB
195782013-02-25 Tobias Burnus <burnus@net-b.de>
19579
19580 * doc/invoke.texi (-fsanitize=): Move from optimization
19581 to debugging options.
19582
ed358aea
AB
195832013-02-25 Andrey Belevantsev <abel@ispras.ru>
19584
19585 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19586
f45e9053
AB
195872013-02-25 Andrey Belevantsev <abel@ispras.ru>
19588 Alexander Monakov <amonakov@ispras.ru>
19589
19590 PR middle-end/56077
19591 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19592 flush pending lists also on non-jumps. Adjust comment.
19593
6941b508
CM
195942013-02-24 Catherine Moore <clm@codesourcery.com>
19595 Maciej W. Rozycki <macro@codesourcery.com>
19596 Tom de Vries <tom@codesourcery.com>
a72d8780 19597 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19598 Iain Sandoe <iain@codesourcery.com>
19599 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19600 Chao-ying Fu <fu@mips.com>
6941b508
CM
19601
19602 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19603 Document new function attributes.
6941b508
CM
19604 * doc/invoke.texi (minterlink-compressed, mmicromips,
19605 m14k, m14ke, m14kec): Document new options.
19606 (minterlink-mips16): Update documentation.
19607 * doc/md.texi (ZC, ZD): Document new constraints.
19608 * configure.ac (gcc_cv_as_micromips): Check if linker
19609 supports the .set micromips directive.
19610 * configure: Regenerate.
19611 * config.in: Regenerate.
19612 * config/mips/mips-tables.opt: Regenerate.
19613 * config/mips/micromips.md: New file.
19614 * constraints.md (ZC, AD): New constraints.
19615 * config/mips/predicates.md (movep_src_register): New predicate.
19616 (movep_src_operand): New predicate.
19617 (non_volatile_mem_operand): New predicate.
19618 * config/mips/mips.md (multimem): New type.
19619 (length): Differentiate between 17-bit and 18-bit branch offsets.
19620 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19621 (mov_<load>l): Use ZC constraint.
6941b508
CM
19622 (mov_<load>r): Likewise.
19623 (mov_<store>l): Likewise.
19624 (mov_<store>r): Likewise.
19625 (*branch_equality<mode>_inverted): Add microMIPS support.
19626 (*branch_equality<mode>): Likewise.
19627 (*jump_absolute): Likewise.
19628 (indirect_jump_<mode>): Likewise.
19629 (tablejump_<mode>): Likewise.
19630 (<optab>_internal): Likewise.
19631 (sibcall_internal): Likewise.
19632 (sibcall_value_internal): Likewise.
19633 (prefetch): Use constraint ZD.
19634 * config/mips/mips.opt (minterlink-compressed): New option.
19635 (minterlink-mips16): Now an alias for minterlink-compressed.
19636 (mmicromips): New option.
19637 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19638 (compare_and_swap_12): Likewise.
19639 (sync_add<mode>): Likewise.
19640 (sync_<optab>_12): Likewise.
19641 (sync_old_<optab>_12): Likewise.
19642 (sync_new_<optab>_12): Likewise.
19643 (sync_nand_12): Likewise.
19644 (sync_old_nand_12): Likewise.
19645 (sync_new_nand_12): Likewise.
19646 (sync_sub<mode>): Likewise.
19647 (sync_old_add<mode>): Likewise.
19648 (sync_old_sub<mode>): Likewise.
19649 (sync_new_add<mode>): Likewise.
19650 (sync_new_sub<mode>): Likewise.
19651 (sync_<optab><mode>): Likewise.
19652 (sync_old_<optab><mode>): Likewise.
19653 (sync_new_<optab><mode>): Likewise.
19654 (sync_nand<mode>): Likewise.
19655 (sync_old_nand<mode>): Likewise.
19656 (sync_new_nand<mode>): Likewise.
19657 (sync_lock_test_and_set<mode>): Likewise.
19658 (test_and_set_12): Likewise.
19659 (atomic_compare_and_swap<mode>): Likewise.
19660 (atomic_exchange<mode>_llsc): Likewise.
19661 (atomic_fetch_add<mode>_llsc): Likewise.
19662 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19663 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19664 (umips_save_restore_pattern_p): Likewise.
19665 (umips_load_store_pair_p): Likewise.
19666 (umips_output_load_store_pair): Likewise.
19667 (umips_movep_target_p): Likewise.
19668 (umips_12bit_offset_address_p): Likewise.
19669 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19670 (mips_base_mips16): Rename this...
19671 (mips_base_compression_flags): ...to this. Update all uses.
19672 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19673 (mips_mips16_decl_p): Delete.
19674 (mips_nomips16_decl_p): Delete.
3fdb53c1 19675 (mips_get_compress_on_flags): New function.
6941b508
CM
19676 (mips_get_compress_off_flags): New function.
19677 (mips_get_compress_mode): New function.
19678 (mips_get_compress_on_name): New function.
19679 (mips_get_compress_off_name): New function.
19680 (mips_insert_attributes): Support multiple compression types.
19681 (mips_merge_decl_attributes): Likewise.
19682 (umips_12bit_offset_address_p): New function.
19683 (mips_start_function_definition): Emit .set micromips directive.
19684 (mips_call_may_need_jalx_p): New function.
19685 (mips_function_ok_for_sibcall): Add microMIPS support.
19686 (mips_print_operand_punctuation): Support short delay slots and
19687 compact jumps.
19688 (umips_swm_mask, umips_swm_encoding): New.
19689 (umips_build_save_restore): New function.
19690 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19691 (was_mips16_p): Remove.
19692 (old_compression_mode): New.
19693 (mips_set_compression_mode): New function.
19694 (mips_set_current_function): Add microMIPS support.
19695 (mips_option_override): Likewise.
19696 (umips_save_restore_pattern_p): New function.
19697 (umips_output_save_restore): New function.
19698 (umips_load_store_pair_p_1): New function.
19699 (umips_load_store_pair_p): New function.
19700 (umips_output_load_store_pair_1): New function.
19701 (umips_output_load_store_pair): New function.
19702 (umips_movep_target_p) New function.
19703 (mips_prepare_pch_save): Add microMIPS support.
19704 * config/mips/mips.h (TARGET_COMPRESSION): New.
19705 (TARGET_CPU_CPP_BUILTINS): Update macro
19706 to use new compression flags and to support microMIPS.
19707 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19708 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19709 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19710 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19711 (ASM_SPEC): Support mmicromips and mno-micromips.
19712 (M16STORE_REG_P): New macro.
19713 (MIPS_CALL): Support TARGET_MICROMIPS.
19714 (MICROMIPS_J): New macro.
19715 (mips_base_mips16): Rename this...
19716 (mips_base_compression_flags): ...to this.
19717 (UMIPS_12BIT_OFFSET_P): New macro.
19718 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19719 (MULTILIB_DIRNAMES): Likewise.
19720
cdebbc6d
JJ
197212013-02-24 Jakub Jelinek <jakub@redhat.com>
19722
19723 PR target/52555
19724 * target-globals.c (save_target_globals): For init_reg_sets and
19725 target_reinit remporarily set this_fn_optabs to this_target_optabs.
19726
18c63565
JG
197272013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
19728
19729 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
19730 * config/aarch64/t-aarch64
19731 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
19732
2194f7a2
VM
197332013-02-22 Vladimir Makarov <vmakarov@redhat.com>
19734
19735 PR inline-asm/56148
19736 * lra-constraints.c (process_alt_operands): Reload operand
19737 conflicting with earlier clobber only if no more other conflicting
19738 operands.
19739
7d613735
JJ
197402013-02-22 Jakub Jelinek <jakub@redhat.com>
19741
19742 PR sanitizer/56393
19743 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
19744 if not linking a shared library.
19745
ac8d93a7
SL
197462013-02-22 Seth LaForge <sethml@google.com>
19747
19748 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
19749
e0237780
GY
197502013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
19751
3fdb53c1
TB
19752 * config/arm/arm.md (split for extendsidi): Update condition.
19753 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
19754 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
19755 (qhs_zextenddi_cstr): Likewise.
e0237780 19756
d7fde18c
JJ
197572013-02-21 Jakub Jelinek <jakub@redhat.com>
19758
be63b77d
JJ
19759 PR middle-end/56420
19760 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
19761 avoid signed wrapping.
19762 (expand_mult): Handle properly multiplication by
19763 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
19764 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
19765 in the compiler if coeff is HOST_WIDE_INT_MIN.
19766 (expand_divmod): Don't make ext_op1 static, change it's type to
19767 uhwi. Avoid undefined behavior in -INTVAL (op1).
19768
d7fde18c
JJ
19769 PR rtl-optimization/50339
19770 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
19771 field.
19772 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
19773 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
19774 into splitting_ashiftrt field.
19775 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
19776 ASHIFTRT.
19777 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
19778 choices.
19779
6aad4455
AH
197802013-02-20 Aldy Hernandez <aldyh@redhat.com>
19781
19782 PR middle-end/56108
19783 * trans-mem.c (execute_tm_mark): Do not expand transactions that
19784 are sure to go irrevocable.
19785
38fe784d
HPN
197862013-02-21 Hans-Peter Nilsson <hp@axis.com>
19787
19788 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
19789 scalars are valid operands.
19790
0fd44da3
MJ
197912013-02-21 Martin Jambor <mjambor@suse.cz>
19792
19793 PR tree-optimization/56310
19794 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
19795 only matching indices and non-negative final offsets.
19796 (intersect_aggregates_with_edge): Pass src_idx to
19797 agg_replacements_to_vector. Pass src_idx insstead of index to
19798 intersect_with_agg_replacements.
19799
7a92038b
MJ
198002013-02-21 Martin Jambor <mjambor@suse.cz>
19801
19802 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
19803 instead of hard-wired defaults.
19804
c0da9c37
MR
198052013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
19806
19807 * doc/invoke.texi (MIPS Options): Update documentation of the
19808 floating-point multiply-accumulate instruction restrictions.
19809
d247ea0c 198102013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
19811
19812 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
19813 asan_shadow_offset on x86_64 linux.
19814
22deefcb
RB
198152013-02-21 Richard Biener <rguenther@suse.de>
19816
19817 PR tree-optimization/56415
19818 Revert
19819 2013-02-11 Richard Biener <rguenther@suse.de>
19820
19821 PR tree-optimization/56273
19822 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19823 first VRP run.
19824
7bcc6e75
JJ
198252013-02-21 Jakub Jelinek <jakub@redhat.com>
19826
a0ad148f
JJ
19827 PR bootstrap/56258
19828 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
19829 instead of @itemx.
19830
7bcc6e75
JJ
19831 PR inline-asm/56405
19832 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
19833 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
19834
a0a7b611
JH
198352013-02-20 Jan Hubicka <jh@suse.cz>
19836
19837 PR tree-optimization/56265
88b97037
UB
19838 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
19839 when target is referenced for first time.
a0a7b611 19840
c0e50f72
RB
198412013-02-20 Richard Biener <rguenther@suse.de>
19842
19843 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
19844 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
19845 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
19846 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
19847 not return anything.
19848 (rename_ssa_copies): Do not remove unused locals.
19849 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 19850 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
19851 * passes.c (execute_function_todo): Do not schedule unused locals
19852 removal if cleanup_tree_cfg did something.
19853 * tree-ssa-live.c (remove_unused_locals): Dump statistics
19854 about the number of removed locals.
19855
a52ca739
RB
198562013-02-20 Richard Biener <rguenther@suse.de>
19857
19858 PR tree-optimization/56398
88b97037 19859 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 19860
ec9c9d1b
MJ
198612013-02-20 Martin Jambor <mjambor@suse.cz>
19862
19863 PR tree-optimization/55334
19864 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
19865 restricted pointers to arrays.
19866
e91c8ed6 198672013-02-20 Richard Biener <rguenther@suse.de>
88b97037 19868 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
19869
19870 PR tree-optimization/56396
19871 * tree-ssa-ccp.c (n_const_val): New static variable.
19872 (get_value): Return NULL for SSA names we don't have a lattice
19873 entry for.
19874 (ccp_initialize): Initialize n_const_val.
19875 * tree-ssa-copy.c (n_copy_of): New static variable.
19876 (init_copy_prop): Initialize n_copy_of.
19877 (get_value): Return NULL_TREE for SSA names we don't have a
19878 lattice entry for.
19879
3d916479
MJ
198802013-02-20 Martin Jambor <mjambor@suse.cz>
19881
19882 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
19883
71a86758
RB
198842013-02-20 Richard Biener <rguenther@suse.de>
19885
19886 * genpreds.c (write_lookup_constraint): Do not compare first
19887 letter of the constraint again.
19888
79836a12
RB
198892013-02-20 Richard Biener <rguenther@suse.de>
19890
19891 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
19892 and ceil_log2.
19893 (get_use_iv_cost): Terminate hashtable walk when coming across
19894 an empty entry.
19895
bbe4fb2c
IZ
198962013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
19897
19898 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
19899 reassociation for avx2 targets.
19900
a72d8780 199012012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 19902
c77f83d5
EI
19903 * config/microblaze/microblaze.c: microblaze_has_clz = 0
19904 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 19905 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
19906 version and TARGET_PATTERN_COMPARE check
19907 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 19908
a72d8780 199092012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 19910
a72d8780 19911 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
19912 function before branching.
19913
242387fa
AB
199142012-02-19 Andrey Belevantsev <abel@ispras.ru>
19915
19916 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
19917 DUMP_INSN_RTX_UID.
19918 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
19919
b4979ab9
AB
199202012-02-19 Andrey Belevantsev <abel@ispras.ru>
19921
19922 PR middle-end/55889
b4979ab9
AB
19923 * sel-sched.c: Include ira.h.
19924 (implicit_clobber_conflict_p): New function.
19925 (moveup_expr): Use it.
88b97037 19926 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 19927
24d63016
RB
199282013-02-19 Richard Biener <rguenther@suse.de>
19929
19930 PR tree-optimization/56384
19931 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
19932 (vn_hash_type): Split out from ...
19933 (vn_hash_constant_with_type): ... here.
19934 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
19935 (vn_phi_eq): Compare types from vn_phi_s structure.
19936 (vn_phi_lookup): Populate vn_phi_s type.
19937 (vn_phi_insert): Likewise.
19938
a475fd3d
JJ
199392013-02-19 Jakub Jelinek <jakub@redhat.com>
19940
47cc28f5
JJ
19941 PR tree-optimization/56350
19942 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
19943 if haven't found reduction or nested cycle operand, rather than
19944 asserting we must find it.
19945
a475fd3d
JJ
19946 PR tree-optimization/56381
19947 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
19948 to fold_build3.
19949
199502013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
19951 Jakub Jelinek <jakub@redhat.com>
19952
19953 PR target/52555
19954 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
19955 (swap_optab_enable): Same.
19956 (init_all_optabs): Use argument instead of global.
88b97037 19957 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
19958 * expr.h (init_all_optabs): Add argument to prototype.
19959 (TREE_OPTIMIZATION_OPTABS): New.
19960 (save_optabs_if_changed): Protoize.
19961 * optabs.h: Declare this_fn_optabs.
19962 * optabs.c (save_optabs_if_changed): New.
19963 Declare this_fn_optabs.
19964 (init_optabs): Add argument to init_all_optabs() call.
19965 * function.c (invoke_set_current_function_hook): Handle per
19966 function optabs.
19967 * function.h (struct function): New field optabs.
19968 * config/mips/mips.c (mips_set_mips16_mode): Handle when
19969 optimization_current_node has changed.
19970 * target-globals.h (save_target_globals_default_opts): Protoize.
19971 * target-globals.c (save_target_globals_default_opts): New.
19972
3f587ca3
JDA
199732013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19974
19975 PR target/56347
19976 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
19977 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
19978
19979 PR target/56214
19980 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
19981 and HImode, require all displacements to be an integer multiple of
19982 their mode size.
ceaca33e
JDA
19983 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
19984 only allow QImode and HImode when reload is in progress and strict is
19985 true. Likewise for symbolic addresses. Use base14_operand to check
19986 displacements in REG+BASE addresses.
19987
fe0b4796
RB
199882013-02-18 Richard Biener <rguenther@suse.de>
19989
19990 PR tree-optimization/56366
19991 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19992 handle sign-conversion of outer-loop initial induction value.
19993
6aaf596b
RB
199942013-02-18 Richard Biener <rguenther@suse.de>
19995
73db8ff1 19996 PR middle-end/56349
6aaf596b
RB
19997 * cfghooks.c (merge_blocks): If we merge a latch into another
19998 block adjust references to it.
19999 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
20000 (verify_loop_structure): Verify that a recorded latch is in fact
20001 a latch.
20002
5e97dfb6
RB
200032013-02-18 Richard Biener <rguenther@suse.de>
20004
20005 PR tree-optimization/56321
20006 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
20007 order SSA name release and virtual operand unlinking.
20008
825527e8
EI
200092013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20010
20011 * config/microblaze/microblaze.md (save_stack_block): Define.
20012 (restore_stack_block): Likewise.
20013
debd11d9
EI
200142013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20015
20016 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
20017 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
20018 * config/microblaze/microblaze.c (microblaze_option_override):
20019 Bail out early for PIC modes when target does not support PIC.
20020
8ec77be0
EI
200212013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20022
88b97037 20023 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
20024 Replace with a microblaze version.
20025 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 20026 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
20027 microblaze.
20028
b41288b3
JJ
200292013-02-16 Jakub Jelinek <jakub@redhat.com>
20030 Dodji Seketeli <dodji@redhat.com>
20031
20032 PR asan/56330
88b97037 20033 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
20034 (instrument_mem_region_access): Do not forget to always put
20035 instrumentation of the of 'base' and 'base + len' in a "if (len !=
20036 0) statement, even for cases where either 'base' or 'base + len'
20037 are not instrumented -- because they have been previously
20038 instrumented. Simplify the logic by putting all the statements
20039 instrument 'base + len' inside a sequence, and then insert that
20040 sequence right before the current insertion point. Then, to
20041 instrument 'base + len', just get an iterator on that statement.
20042 And do not forget to update the pointer to iterator the function
20043 received as argument.
20044
47918951
VM
200452013-02-15 Vladimir Makarov <vmakarov@redhat.com>
20046
20047 PR rtl-optimization/56348
20048 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
20049
3fb7c699
SB
200502013-02-15 Steven Bosscher <steven@gcc.gnu.org>
20051
20052 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
20053 (clean_graph_dump_file): Pass base to start_graph_dump.
20054
576fe41a
RH
200552013-02-14 Richard Henderson <rth@redhat.com>
20056
20057 PR target/55941
20058 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
20059
bb3accfa
SB
200602013-02-14 Steven Bosscher <steven@gcc.gnu.org>
20061
20062 * collect2-aix.h: Define F_LOADONLY.
20063
03143140
RB
200642013-02-14 Richard Biener <rguenther@suse.de>
20065
20066 PR lto/50494
20067 * varasm.c (output_constant_def_1): Get the decl representing
20068 the constant as argument.
20069 (output_constant_def): Wrap output_constant_def_1.
20070 (make_decl_rtl): Use output_constant_def_1 with the decl
20071 representing the constant.
20072 (build_constant_desc): Optionally re-use a decl already
20073 representing the constant.
20074 (tree_output_constant_def): Adjust.
20075
8fb06726
DS
200762013-02-14 Dodji Seketeli <dodji@redhat.com>
20077
20078 Fix an asan crash
20079 * asan.c (instrument_builtin_call): Really put the length of the
20080 second source argument into src1_len.
20081
c4bfe8bf
JJ
200822013-02-13 Jakub Jelinek <jakub@redhat.com>
20083
20084 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
20085 argument. If it is false, don't create edge from then_bb to
20086 fallthru_bb.
20087 (insert_if_then_before_iter): Pass true to it.
20088 (build_check_stmt): Pass false to it.
20089 (transform_statements): Flush hash table only on extended basic
20090 block boundaries, rather than at the beginning of every bb.
20091 Don't flush hash table on nonfreeing_call_p calls.
20092 * tree-flow.h (nonfreeing_call_p): New prototype.
20093 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
20094
7afe2801
DM
200952013-02-13 David S. Miller <davem@davemloft.net>
20096
20097 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
20098
70cc3288
VM
200992013-02-13 Vladimir Makarov <vmakarov@redhat.com>
20100
20101 PR target/56184
20102 * ira.c (max_regno_before_ira): Move from ...
20103 (ira): ... here.
20104 (fix_reg_equiv_init): Use max_regno_before_ira instead of
20105 vec_safe_length.
20106
6422242b
JJ
201072013-02-13 Jakub Jelinek <jakub@redhat.com>
20108
20109 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
20110
976a81ee
RB
201112013-02-13 Richard Biener <rguenther@suse.de>
20112
20113 PR lto/56295
20114 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
20115 globals in MEM_REFs.
20116
c1874a87
RB
201172013-02-13 Richard Biener <rguenther@suse.de>
20118
20119 * loop-init.c (loop_optimizer_init): Clear loop state when
20120 re-initializing preserved loops.
20121 * loop-unswitch.c (unswitch_single_loop): Return whether
20122 we unswitched the loop. Do not verify loop state here.
88b97037 20123 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 20124
b4ab7d34
KS
201252013-02-13 Kostya Serebryany <kcc@google.com>
20126
88b97037
UB
20127 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
20128 on x86_64 linux.
b4ab7d34
KS
20129 * sanitizer.def: Rename __asan_init to __asan_init_v1.
20130
bdcbe80c
DS
201312013-02-12 Dodji Seketeli <dodji@redhat.com>
20132
20133 Avoid instrumenting duplicated memory access in the same basic block
20134 * Makefile.in (asan.o): Add new dependency on hash-table.h
20135 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
20136 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
20137 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
20138 (free_mem_ref_resources, has_mem_ref_been_instrumented)
20139 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
20140 (get_mem_ref_of_assignment): New functions.
20141 (get_mem_refs_of_builtin_call): Extract from
20142 instrument_builtin_call and tweak a little bit to make it fit with
20143 the new signature.
20144 (instrument_builtin_call): Use the new
20145 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
20146 of is_gimple_builtin_call.
20147 (instrument_derefs, instrument_mem_region_access): Insert the
20148 instrumented memory reference into the hash table.
20149 (maybe_instrument_assignment): Renamed instrument_assignment into
20150 this, and change it to advance the iterator when instrumentation
20151 actually happened and return true in that case. This makes it
20152 homogeneous with maybe_instrument_assignment, and thus give a
20153 chance to callers to be more 'regular'.
20154 (transform_statements): Clear the memory reference hash table
20155 whenever we enter a new BB, when we cross a function call, or when
20156 we are done transforming statements. Use
20157 maybe_instrument_assignment instead of instrumentation. No more
20158 need to special case maybe_instrument_assignment and advance the
20159 iterator after calling it; it's now handled just like
20160 maybe_instrument_call. Update comment.
20161
4861a1f7
RB
201622013-02-13 Richard Biener <rguenther@suse.de>
20163
20164 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
20165 Fix loop discovery code.
20166
1c86bd80
VM
201672013-02-12 Vladimir Makarov <vmakarov@redhat.com>
20168
20169 PR inline-asm/56148
20170 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 20171 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
20172 the operand is not reloaded. Prefer to reload conflicting operand
20173 if earlyclobber and matching operands are the same.
20174
7cbda518
RB
201752013-02-12 Richard Biener <rguenther@suse.de>
20176
20177 PR lto/56297
20178 * lto-streamer-out.c (write_symbol): Do not output symbols
20179 for hard register variables.
20180
e68a4ef6
GJL
201812013-02-12 Georg-Johann Lay <avr@gjlay.de>
20182
20183 PR target/54222
20184 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
20185 (umulsidi3_insn, mulsidi3_insn): New insns.
20186
a72d8780 201872013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
20188
20189 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
20190 (struct tune_params): Add vec_costs field.
20191 * config/arm/arm.c (arm_builtin_vectorization_cost)
20192 (arm_add_stmt_cost): New functions.
20193 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
20194 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
20195 (arm_default_vec_cost): New struct of type cpu_vec_costs.
20196 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
20197 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
20198 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
20199 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
20200
43320568
RB
202012013-02-12 Richard Biener <rguenther@suse.de>
20202
20203 PR lto/56295
20204 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
20205 decls again if possible.
20206
a011aa39
RB
202072013-02-12 Richard Biener <rguenther@suse.de>
20208
20209 PR middle-end/56288
20210 * tree-ssa.c (verify_ssa_name): Fix check, move
20211 SSA_NAME_IN_FREE_LIST check up.
20212
6da26889
JJ
202132013-02-12 Jakub Jelinek <jakub@redhat.com>
20214 Steven Bosscher <steven@gcc.gnu.org>
20215
20216 PR rtl-optimization/56151
20217 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
20218 equal to op0 or op1, and last_insn pattern is CODE operation
20219 with MEM dest and one of the operands matches that MEM.
20220
f80e0faf
ST
202212013-02-11 Sriraman Tallam <tmsriramgoogle.com>
20222
20223 * doc/extend.texi: Document Function Multiversioning and "default"
20224 parameter string to target attribute.
20225 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
20226 target attribute parameter is "default".
20227 (ix86_compare_version_priority): Remove checks for target attribute.
20228 (ix86_mangle_function_version_assembler_name): Change error to sorry.
20229 Remove check for target attribute equal to NULL. Add assert.
20230 (ix86_generate_version_dispatcher_body): Change error to sorry.
20231
6c59ffd1
IS
202322013-02-11 Iain Sandoe <iain@codesourcery.com>
20233 Jack Howarth <howarth@bromo.med.uc.edu>
20234 Patrick Marlier <patrick.marlier@gmail.com>
20235
20236 PR libitm/55693
20237 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
20238 define ENDFILE_SPEC as TM_DESTRUCTOR.
20239 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
20240
a72d8780 202412013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
20242 Jack Howarth <howarth@bromo.med.uc.edu>
20243 Jakub Jelinek <jakub@redhat.com>
20244
20245 PR sanitizer/55617
20246 * config/darwin.c (cdtor_record): Rename ctor_record.
20247 (sort_cdtor_records): Rename sort_ctor_records.
20248 (finalize_dtors): New routine to sort destructors by
20249 priority before use in assemble_integer.
20250 (machopic_asm_out_destructor): Use finalize_dtors if needed.
20251
b63fe007
UB
202522013-02-11 Uros Bizjak <ubizjak@gmail.com>
20253
20254 PR rtl-optimization/56275
20255 * simplify-rtx.c (avoid_constant_pool_reference): Check that
20256 offset is non-negative and less than cmode size before
20257 calling simplify_subreg.
20258
8e89b5b5
RB
202592013-02-11 Richard Biener <rguenther@suse.de>
20260
20261 PR tree-optimization/56264
20262 * cfgloop.h (fix_loop_structure): Adjust prototype.
20263 * loop-init.c (fix_loop_structure): Return the number of
20264 newly discovered loops.
20265 * tree-cfgcleanup.c (repair_loop_structures): When new loops
20266 are discovered, do a full loop-closed SSA rewrite.
20267
b4a4b56d
RB
202682013-02-11 Richard Biener <rguenther@suse.de>
20269
20270 PR tree-optimization/56273
20271 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20272 first VRP run.
20273 (check_array_ref): Fix missing newline in dumps.
20274 (search_for_addr_array): Likewise.
20275
0c885229
DE
202762013-02-09 David Edelsohn <dje.gcc@gmail.com>
20277
20278 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
20279
59ac9a55
JJ
202802013-02-09 Jakub Jelinek <jakub@redhat.com>
20281
20282 PR target/56256
20283 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
20284
25bb0bb5
VM
202852013-02-08 Vladimir Makarov <vmakarov@redhat.com>
20286
20287 PR rtl-optimization/56246
0c885229 20288 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
20289 reload pseudo.
20290 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
20291 constraints are satisfied.
20292
a698cc03
JL
202932013-02-08 Jeff Law <law@redhat.com>
20294
20295 PR debug/53948
20296 * emit-rtl.c (reg_is_parm_p): New function.
20297 * regs.h (reg_is_parm_p): New prototype.
20298 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
20299 callee-clobbered registers.
20300
e1122ddd
MM
203012013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20302
20303 PR target/56043
20304 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
20305 If there is no implicit builtin declaration, just return NULL.
20306
19c5f6e6
UB
203072013-02-08 Uros Bizjak <ubizjak@gmail.com>
20308
20309 * config/i386/sse.md (FMAMODEM): New mode iterator.
20310 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
20311 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
20312
2480f2ca 203132013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 20314
2480f2ca
UB
20315 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
20316 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
20317 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
20318
203192013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20320
20321 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
20322 (microblaze*-*-elf): Likewise.
20323 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
20324 LINK_SPEC.
20325 * config/microblaze/microblaze-c.c: Add builtin defines for
20326 _LITTLE_ENDIAN and _BIG_ENDIAN.
20327 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
20328 add to TARGET_DEFAULT flags.
76ef61fb 20329 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
20330 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
20331 * config/microblaze/microblaze.md: Update extendsidi2 and
20332 movdi_internal instructions to use low-order / high-order reg
20333 print_operands.
20334 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
20335 options and inversemask / mask of LITTLE_ENDIAN.
20336 * config/microblaze/t-microblaze: Expand multilib options to
20337 include mlittle-endian (le) and update exceptions patterns.
20338
600a5961
JJ
203392013-02-08 Jakub Jelinek <jakub@redhat.com>
20340
5df81313
JJ
20341 PR rtl-optimization/56195
20342 * lra-constraints.c (get_reload_reg): Don't reuse regs
20343 if they have smaller mode than requested, if they have
20344 wider mode than requested, try to return a SUBREG.
20345
600a5961
JJ
20346 PR tree-optimization/56250
20347 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
20348 if type is unsigned and code isn't MULT_EXPR.
20349
ff544649
GJL
203502013-02-08 Georg-Johann Lay <avr@gjlay.de>
20351
20352 PR tree-optimization/56064
20353 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20354 bits according to mode.
20355 * fixed-value.h (fixed_from_double_int)
20356 (const_fixed_from_double_int): Adjust comments.
20357
e45cde98
RB
203582013-02-08 Richard Biener <rguenther@suse.de>
20359
20360 PR lto/56231
20361 * lto-streamer.h (struct data_in): Remove current_file, current_line
20362 and current_col members.
20363 * lto-streamer-out.c (lto_output_location): Stream changed bits
20364 en-block for efficiency.
20365 * lto-streamer-in.c (clear_line_info): Remove.
20366 (lto_input_location): Cache current file, line and column
20367 globally via local statics. Read changed bits en-block.
20368 (input_function): Do not call clear_line_info.
20369 (lto_read_body): Likewise.
20370 (lto_input_toplevel_asms): Likewise.
20371
c1ca73d8
MM
203722013-02-08 Michael Matz <matz@suse.de>
20373
20374 PR tree-optimization/52448
20375 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20376 (nt_call_phase): New static.
20377 (add_or_mark_expr): Only mark accesses with newer phase than any
20378 call seen.
20379 (nonfreeing_call_p): New.
20380 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20381 (nt_fini_block): Keep blocks marked as visited.
20382 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20383
57548aa2
RB
203842013-02-08 Richard Biener <rguenther@suse.de>
20385
20386 * ira.c (ira): Free broken dominator information.
20387
8e10366f
UB
203882013-02-08 Uros Bizjak <ubizjak@gmail.com>
20389
20390 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20391
f64fb0fa
MP
203922013-02-08 Marek Polacek <polacek@redhat.com>
20393
8e10366f 20394 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20395
0375167b
RB
203962013-02-08 Richard Biener <rguenther@suse.de>
20397
20398 PR middle-end/56181
20399 * cfgloop.h (flow_loops_find): Adjust.
20400 (bb_loop_header_p): Declare.
20401 * cfgloop.c (bb_loop_header_p): New function split out from ...
20402 (flow_loops_find): ... here. Adjust function signature,
20403 support incremental loop structure update.
20404 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20405 * cfgloopmanip.c (fix_loop_structure): Move ...
20406 * loop-init.c (fix_loop_structure): ... here.
20407 (apply_loop_flags): Split out from ...
20408 (loop_optimizer_init): ... here.
20409 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20410 in incremental mode, only remove dead loops here.
20411
85d768f3
GJL
204122013-02-08 Georg-Johann Lay <avr@gjlay.de>
20413
20414 PR target/54222
20415 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20416 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20417 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20418 (*round<mode>3.libgcc): New insns for fixed-modes.
20419 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20420 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20421 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20422 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20423 implementations. Define to __builtin_avr_absFX,
20424 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20425 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20426 __builtin_avr_countlsFX, respectively.
20427 * config/avr/avr-c.c (target.h): Include it.
20428 (enum avr_builtin_id): New enum.
20429 (avr_resolve_overloaded_builtin): New static function.
20430 (avr_register_target_pragmas): Use it to set
20431 targetm.resolve_overloaded_builtin.
20432 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20433 tree nodes used by DEF_BUILTIN.
20434 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20435 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20436 <AVR_BUILTIN_xxBITS>: Same.
20437
661bc682
RB
204382013-02-08 Richard Biener <rguenther@suse.de>
20439
20440 * cfgloop.c (verify_loop_structure): Properly handle
20441 a loop exiting to another loop header.
20442 * ira-int.h (ira_loops): Remove.
20443 * ira.c (ira_loops): Remove.
20444 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20445 (do_reload): Use loop_optimizer_finalize.
20446 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20447 number_of_loops to access the loop tree.
20448 (more_one_region_p): Likewise.
20449 (finish_loop_tree_nodes): Likewise.
20450 (rebuild_regno_allocno_maps): Likewise.
20451 (mark_loops_for_removal): Likewise.
20452 (mark_all_loops_for_removal): Likewise.
20453 (remove_unnecessary_regions): Likewise.
20454 (ira_build): Likewise.
20455 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20456
0d5049b2
RB
204572013-02-08 Richard Biener <rguenther@suse.de>
20458
20459 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20460 * ipa-pure-const.c (analyze_function): Avoid calling
20461 mark_irreducible_loops twice.
8e10366f 20462 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20463
499f32e8
DM
204642013-02-07 David S. Miller <davem@davemloft.net>
20465
20466 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20467 on 'reg'.
20468 * var-tracking.c (vt_add_function_parameter): Test the presence of
20469 HAVE_window_save properly and do not remap argument registers when
20470 we have a leaf function.
20471
6edc3e32
UB
204722013-02-07 Uros Bizjak <ubizjak@gmail.com>
20473
20474 PR bootstrap/56227
20475 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20476 instead of "ll".
20477 * config/i386/i386.c (ix86_print_operand): Ditto.
20478
5306401f
VM
204792013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20480
6edc3e32 20481 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20482
027ece11
VM
204832013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20484
20485 PR rtl-optimization/56225
20486 * lra-constraints.c (process_alt_operands): Check that reload hard
20487 reg can hold value for strict_low_part.
20488
f980dfdb
JJ
204892013-02-07 Jakub Jelinek <jakub@redhat.com>
20490
20491 PR debug/56154
20492 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20493 dwarf2out_end_function.
20494 (in_first_function_p, maybe_at_text_label_p,
20495 first_loclabel_num_not_at_text_label): New variables.
20496 (dwarf2out_var_location): In the first function find out
6edc3e32 20497 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20498 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20499 functions.
20500
73dd3123
EB
205012013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20502
20503 PR rtl-optimization/56178
20504 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20505 SUBREG of a register. Tidy up related block of code.
20506 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20507 note if the source is a register or a SUBREG of a register.
20508
e3936f47
JJ
205092013-02-07 Jakub Jelinek <jakub@redhat.com>
20510
20511 PR target/56228
20512 * config/rs6000/rs6000.md (ptrm): New mode attr.
20513 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20514 call_value_indirect_aix<pttrsize>,
20515 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20516 m in constraints.
20517
d96d674b
MH
205182013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20519
20520 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20521 if -bnortl. Convert to strcmp and strncmp.
20522
921f2dee
AM
205232013-02-07 Alan Modra <amodra@gmail.com>
20524
20525 PR target/54009
20526 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20527 addresses won't wrap when offsetting.
20528 (rs6000_secondary_reload): Provide secondary reloads needed for
20529 wrapping LO_SUM addresses.
20530
d09c7dba
TS
205312013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20532
20533 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20534 MACH, just __MACH__.
20535
a44bbd48
RB
205362013-02-06 Richard Biener <rguenther@suse.de>
20537
20538 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20539 instead of calling fix_loop_structure.
20540
6d840d99
JJ
205412013-02-06 Jakub Jelinek <jakub@redhat.com>
20542
20543 PR middle-end/56217
20544 * omp-low.c (use_pointer_for_field): Return false if
20545 lower_send_shared_vars doesn't generate any copy-out code.
20546
0f33baa9
TV
205472013-02-06 Tom de Vries <tom@codesourcery.com>
20548
20549 PR rtl-optimization/56131
20550 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20551 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20552 of the label is NULL. Add comment.
20553
11f1e3ab
JJ
205542013-02-05 Jakub Jelinek <jakub@redhat.com>
20555
31502f9f
JJ
20556 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20557
a74db9bd
JJ
20558 PR sanitizer/55374
20559 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20560 (STATIC_LIBTSAN_LIBS): Likewise.
20561 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20562 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20563 is defined, don't add anything else beyond that.
20564 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20565 (LINK_COMMAND_SPEC): Use them.
20566
11f1e3ab
JJ
20567 PR tree-optimization/56205
20568 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20569 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20570 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20571
14ac6aa2
RB
205722013-02-05 Richard Biener <rguenther@suse.de>
20573
20574 PR tree-optimization/53342
20575 PR tree-optimization/53185
20576 * tree-vectorizer.h (vect_check_strided_load): Remove.
20577 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20578 not disallow peeling for vectorized strided loads.
20579 (vect_check_strided_load): Make static and simplify.
20580 (vect_analyze_data_refs): Adjust.
20581 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20582 correctly when vectorizing strided loads.
20583
6f22445a
RB
205842013-02-05 Richard Biener <rguenther@suse.de>
20585
20586 * doc/install.texi: Refer to ISL, not PPL.
20587
39f9719e
JH
205882013-02-05 Jan Hubicka <jh@suse.cz>
20589
ec4224ac
JH
20590 PR tree-optimization/55789
20591 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20592
205932013-02-05 Jan Hubicka <jh@suse.cz>
20594
20595 PR tree-optimization/55789
39f9719e
JH
20596 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20597 the dead call anyway.
20598
956d3b33
EB
205992013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20600
20601 PR sanitizer/55374
20602 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20603
206042013-02-04 Alexander Potapenko <glider@google.com>
20605 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20606 Jakub Jelinek <jakub@redhat.com>
20607
20608 PR sanitizer/55617
20609 * config/darwin.c (sort_ctor_records): Stabilized qsort
20610 on constructor priority by using original position.
20611 (finalize_ctors): New routine to sort constructors by
20612 priority before use in assemble_integer.
20613 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20614
7ac3af38
JJ
206152013-02-04 Jakub Jelinek <jakub@redhat.com>
20616
20617 PR libstdc++/54314
20618 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20619 about visibility on artificial decls.
20620 * config/sol2.c (solaris_assemble_visibility): Likewise.
20621
152689dc
KT
206222013-02-04 Kai Tietz <ktietz@redhat.com>
20623
20624 PR target/56186
20625 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20626 argument and improve checking of return-argument types for 16-byte
20627 modes.
20628 (ix86_function_value_1): Add additional valtype argument on call
20629 of function_value_64.
20630 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20631 handling infunction_value_64 function.
20632
2b5987b5
MGD
206332013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20634
7ac3af38 20635 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 20636
14597080
RB
206372013-02-04 Richard Biener <rguenther@suse.de>
20638
20639 PR tree-optimization/56188
20640 * tree-ssa-structalias.c (label_visit): Consider case with
20641 initially non-empty points-to set.
20642 (perform_var_substitution): Dump node mapping and clean up.
20643
ed73881e
RG
206442013-02-04 Richard Guenther <rguenther@suse.de>
20645
20646 PR lto/56168
20647 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
20648 node prevail as last resort.
20649 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 20650 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 20651
139a0707
RB
206522013-02-04 Richard Biener <rguenther@suse.de>
20653
20654 PR tree-optimization/56113
20655 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
20656 Merge into ...
20657 (equiv_class_lookup_or_add): ... this.
20658 (label_visit): Adjust and fix error in previous patch.
20659 (perform_var_substitution): Adjust.
20660
50fe8924
OE
206612013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
20662
20663 * config/sh/divtab.c: Fix formatting and comments throughout the file.
20664 * config/sh/sh4-300.md: Likewise.
20665 * config/sh/sh4a.md: Likewise.
20666 * config/sh/constraints.md: Likewise.
20667 * config/sh/sh.md: Likewise.
20668 * config/sh/netbsd-elf.h: Likewise.
20669 * config/sh/predicates.md: Likewise.
20670 * config/sh/sh-protos.h: Likewise.
20671 * config/sh/ushmedia.h: Likewise.
20672 * config/sh/linux.h: Likewise.
20673 * config/sh/sh.c: Likewise.
20674 * config/sh/superh.h: Likewise.
20675 * config/sh/elf.h: Likewise.
20676 * config/sh/sh4.md: Likewise.
20677 * config/sh/sh.h: Likewise.
20678
1a04ac2b
JDA
206792013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20680
20681 * config/pa/constraints.md: Adjust unused letters. Change "T"
20682 constraint to match_test floating_point_store_memory_operand().
20683 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
20684 (base14_operand): New.
20685 (floating_point_store_memory_operand): New.
20686 (integer_store_memory_operand): Revise to use base14_operand and
20687 reg_plus_base_memory_operand.
20688 (move_dest_operand): Allow symbolic_memory_operands.
20689 (symbolic_memory_operand): Check for LO_SOM.
20690 (symbolic_operand): Change default case to break.
20691 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
20692 CONST_DOUBLE values to be reloaded by putting them into memory when
20693 the destination is a floating point register.
20694 (movdf): Remove code to handle CONST_DOUBLE.
20695 (movsf): Likewise.
20696 (reload_indf_r1): New.
20697 (reload_insf_r1): New.
20698 Consistently use "Q" and "T" constraints with integer and floating
20699 point move instructions, respectively.
20700 (movdi): Remove FAIL.
20701 Change predicate for source operand unamed DImode move from
20702 general_operand to move_src_operand.
20703 (umulsidi3): Change predicate for destination operand to
20704 register_operand.
20705 Likewise for similar unamed patterns.
20706 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
20707 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
20708 (hppa_legitimize_address): Simplify mask calculation.
20709 (pa_emit_move_sequence): Revised handling of secondary reloads from
20710 REG+D addresses for floating point loads and stores. Directly handle
20711 loading CONST0_RTX (mode) to a floating point register.
20712 (pa_secondary_reload): Handle reloading DF and SFmode constant values
20713 to floating point registers. Don't restrict secondary reloads to
20714 floating point registers to integer modes. Revise some comments and
20715 cleanup some code.
20716 (TARGET_LEGITIMATE_ADDRESS_P): Define.
20717 (pa_legitimate_address_p): New.
20718 (pa_legitimize_reload_address): New.
20719 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
20720 (STRICT_REG_OK_FOR_BASE_P): New.
20721 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
20722 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
20723
3bf65591
DE
207242013-02-03 David Edelsohn <dje.gcc@gmail.com>
20725 Andrew Dixie <andrewd@gentrack.com>
20726
20727 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
20728 flag set.
20729
c0a8a3e6
RS
207302013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
20731
20732 * expmed.c (extract_bit_field_1): Pass the full width of the
20733 structure to get_best_reg_extraction_insn.
20734
99113dff
DE
207352013-02-01 David Edelsohn <dje.gcc@gmail.com>
20736
20737 PR target/54601
20738 * configure.ac (use_cxa_atexit): Add AIX.
20739 * configure: Regenerate.
20740
20741 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
20742
ddd84654
JJ
207432013-02-01 Jakub Jelinek <jakub@redhat.com>
20744
20745 PR debug/54793
20746 * final.c (need_profile_function): New variable.
20747 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
20748 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
20749 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
20750 notes, targetm.asm_out.function_prologue doesn't emit anything,
20751 HAVE_prologue and profiler should be emitted before prologue,
20752 set need_profile_function instead of emitting it.
20753 (final_scan_insn): If need_profile_function, emit
20754 profile_function on the first NOTE_INSN_BASIC_BLOCK or
20755 NOTE_INSN_FUNCTION_BEG note.
20756
207572013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
20758
20759 * config/rs6000/rs6000.md (smulditi3): New.
20760 (umulditi3): New.
20761
ff2a9d88
RH
20762 * config/alpha/alpha.md (umulditi3): New.
20763
14d52b90
DE
207642013-02-01 David Edelsohn <dje.gcc@gmail.com>
20765
20766 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
20767 (ASM_OUTPUT_ALIGNED_LOCAL): New.
20768
8c7ca45c
RB
207692013-02-01 Richard Biener <rguenther@suse.de>
20770
20771 PR tree-optimization/56113
20772 * tree-ssa-structalias.c (label_visit): Reduce work for
20773 single-predecessor nodes.
20774
9f419393
EB
207752013-02-01 Eric Botcazou <ebotcazou@adacore.com>
20776
20777 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
20778 range isn't testing for zero.
20779
c5f4be84
SB
207802013-01-31 Steven Bosscher <steven@gcc.gnu.org>
20781
20782 PR middle-end/56113
20783 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
20784
dbdbd982
NC
207852013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
20786 Nick Clifton <nickc@redhat.com>
20787
20788 * config/v850/constraints.md (Q): Define as a memory constraint.
20789 * config/v850/predicates.md (label_ref_operand): New predicate.
20790 (e3v5_shift_operand): New predicate.
20791 (ior_operator): New predicate.
20792 * config/v850/t-v850: Add e3v5 multilib.
20793 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
20794 (v850_gen_movdi): Prototype.
20795 * config/v850/v850.c: Add support for e3v5 architecture.
20796 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
20797 TARGET_V850E_UP.
20798 (construct_save_jarl): Add e3v5 long JARL support.
20799 (v850_adjust_insn_length): New function. Adjust length of call
20800 insns when using e3v5 instructions.
20801 (v850_gen_movdi): New function: Generate instructions to move a
20802 DImode value.
20803 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
20804 (CPP_SPEC): Define __v850e3v5__ as appropriate.
20805 (TARGET_USE_FPU): Enable for e3v5.
20806 (CONST_OK_FOR_W): New macro.
20807 (ADJUST_INSN_LENGTH): Define.
20808 * config/v850/v850.md (UNSPEC_LOOP): Define.
20809 (attr cpu): Add v850e3v5.
20810 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
20811 (movdi): New pattern.
20812 (movdi_internal): New pattern.
20813 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
20814 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
20815 (cstoresf4): Likewise.
20816 (cstoredf4): Likewise.
20817 (insv): New pattern.
20818 (rotlso3_a): New pattern.
20819 (rotlsi3_b): New pattern
20820 (rotlsi3_v850e3v5): New pattern.
20821 (doloop_begin): New pattern.
20822 (fix_loop_counter): New pattern.
20823 (doloop_end): New pattern.
20824 (branch_normal): Add e3v5 long branch support.
20825 (branch_invert): Likewise.
20826 (branch_z_normal): Likewise.
20827 (branch_z_invert): Likewise.
20828 (branch_nz_normal): Likewise.
20829 (branch_nz_invert): Likewise.
20830 (call_internal_short): Add e3v5 register-indirect JARL support.
20831 (call_internal_long): Likewise.
20832 (call_value_internal_short): Likewise.
20833 (call_value_internal_long): Likewise.
20834 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
20835 (mloop): New option.
20836 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 20837 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 20838
73861a41
PK
208392013-01-31 Paul Koning <ni1d@arrl.net>
20840
20841 PR debug/55059
20842 PR debug/54508
20843 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
20844 children if parent is a class.
20845 (prune_unused_types_prune): Don't add DW_AT_declaration.
20846
e44978dc
RB
208472013-01-31 Richard Biener <rguenther@suse.de>
20848
20849 PR tree-optimization/56157
20850 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
20851 match up operand with SLP child.
20852
90b10dec
JM
208532013-01-31 Jason Merrill <jason@redhat.com>
20854
04d2dadd 20855 PR debug/54410
90b10dec
JM
20856 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
20857 parameters the first time.
20858 (gen_scheduled_generic_parms_dies): Check completeness here.
20859
6e616110
RB
208602013-01-31 Richard Biener <rguenther@suse.de>
20861
20862 PR middle-end/53073
20863 * common.opt (faggressive-loop-optimizations): New flag,
20864 enabled by default.
20865 * doc/invoke.texi (faggressive-loop-optimizations): Document.
20866 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
20867 infer_loop_bounds_from_undefined by it.
20868
636f59cf
RB
208692013-01-31 Richard Biener <rguenther@suse.de>
20870
20871 PR tree-optimization/56150
20872 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
20873 visit virtual operands.
20874 (find_uses_to_rename_bb): Likewise.
20875
208762013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
20877
20878 PR tree-optimization/56150
20879 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
20880 mixed store non-store stmts.
20881
32887460
JJ
208822013-01-30 Jakub Jelinek <jakub@redhat.com>
20883
e60e09a0
JJ
20884 PR sanitizer/55374
20885 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
20886 LIBASAN_EARLY_SPEC is defined.
20887 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
20888 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
20889 before %o.
20890 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
20891
32887460
JJ
20892 PR c++/55742
20893 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
20894 invalid args instead of ICEing on it.
20895 (ix86_valid_target_attribute_tree): Return error_mark_node if
20896 ix86_valid_target_attribute_inner_p failed.
20897 (ix86_valid_target_attribute_p): Return false only if
20898 ix86_valid_target_attribute_tree returned error_mark_node. Allow
20899 target("default") attribute.
20900 (sorted_attr_string): Change argument from const char * to tree,
20901 merge in all target attribute arguments rather than just one.
20902 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
20903 instead of free. Avoid using strcat.
20904 (ix86_mangle_function_version_assembler_name): Mangle
20905 target("default") as if no target attribute is present. Adjust
20906 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
20907 instead of xmalloc and XDELETEVEC instead of free.
20908 (ix86_function_versions): Don't return true if one of the decls
20909 doesn't have target attribute. If they don't and one of the decls
20910 is DECL_FUNCTION_VERSIONED, report an error. Adjust
20911 sorted_attr_string caller. Use XDELETEVEC instead of free.
20912 (ix86_supports_function_versions): Remove.
20913 (make_name): Fix up formatting.
20914 (make_dispatcher_decl): Remove resolver_name and its initialization.
20915 Avoid leaking memory.
20916 (is_function_default_version): Return true if there is
20917 target("default") attribute rather than no target attribute at all.
20918 (make_resolver_func): Avoid leaking memory.
20919 (ix86_generate_version_dispatcher_body): Likewise.
20920 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
20921 * target.def (supports_function_versions): Remove.
20922 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
20923 * doc/tm.texi: Regenerated.
20924
73cca0cc
VM
209252013-01-30 Vladimir Makarov <vmakarov@redhat.com>
20926
20927 PR rtl-optimization/56144
20928 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
20929 for values with side effects.
20930
11452e7b
RB
209312013-01-30 Richard Biener <rguenther@suse.de>
20932
20933 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
20934 (sparseset_pop): Likewise.
20935 * cfganal.c (compute_idf): Likewise. Increase work-stack size
20936 to be able to use quick_push in the worker loop.
20937
01cb1ef5
MP
209382013-01-30 Marek Polacek <polacek@redhat.com>
20939
20940 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
20941
e892936e
RB
209422013-01-30 Richard Biener <rguenther@suse.de>
20943
20944 PR lto/56147
6edc3e32 20945 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 20946
cc06c01d
GJL
209472013-01-30 Georg-Johann Lay <avr@gjlay.de>
20948
20949 PR tree-optimization/56064
20950 * fixed-value.c (fixed_from_double_int): New function.
20951 * fixed-value.h (fixed_from_double_int): New prototype.
20952 (const_fixed_from_double_int): New static inline function.
20953 * fold-const.c (native_interpret_fixed): New static function.
20954 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
20955 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
20956 (native_encode_fixed): New static function.
20957 (native_encode_expr) <FIXED_CST>: Use it.
20958 (native_interpret_int): Move double_int worker code to...
20959 * double-int.c (double_int::from_buffer): ...this new static method.
20960 * double-int.h (double_int::from_buffer): Prototype it.
20961
d394a308
RB
209622013-01-30 Richard Biener <rguenther@suse.de>
20963
20964 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
20965 New pointer-map and obstack.
20966 (init_alias_vars): Allocate pointer-map and obstack.
20967 (delete_points_to_sets): Free them.
20968 (find_what_var_points_to): Cache result.
20969 (find_what_p_points_to): Adjust for changed interface of
20970 find_what_var_points_to.
20971 (compute_points_to_sets): Likewise.
20972 (ipa_pta_execute): Likewise.
20973
20804d96
RO
209742013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20975
20976 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
20977 * configure: Regenerate.
20978 * config.in: Regenerate.
20979 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
20980 #nobits/#progbits if supported.
20981
a7ad88a2
OE
209822013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
20983
20984 PR target/56121
20985 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
20986 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
20987 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
20988
7af79f92
GY
209892013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20990
91bfca59
OE
20991 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
20992 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 20993
753bcf7b
GY
209942013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20995
91bfca59
OE
20996 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
20997 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 20998
8cbc2ea8
GY
209992013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21000
91bfca59
OE
21001 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
21002 declaration.
21003 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
21004 * config/arm/cortex-a7.md: New bypasses using
21005 arm_mac_accumulator_is_result.
8cbc2ea8 21006
697a3325
GY
210072013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21008
91bfca59 21009 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 21010 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
21011 (cortex_a7_fpfmad): New reservation.
21012 (cortex_a7_fpmacs): Use ffmas and update required units.
21013 (cortex_a7_fpmuld): Update required units and latency.
21014 (cortex_a7_fpmacd): Likewise.
21015 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
21016 (cortex_a7_neon). Likewise.
21017 (bypass) Update participating units.
697a3325 21018
29637783
GY
210192013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
21020
91bfca59
OE
21021 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
21022 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
21023 from fmac to ffma.
21024 * config/arm/vfp11.md (vfp_farith): Use ffmas.
21025 (vfp_fmul): Use ffmad.
21026 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
21027 (cortex_r4_fmacd): Use ffmad.
21028 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
21029 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
21030 (cortex_a9_fmacd): Use ffmad.
21031 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
21032 (cortex_a8_vfp_macd): Use ffmad.
21033 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
21034 (cortex_a5_fpmacd): Use ffmad.
21035 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
21036 (cortex_a15_vfp_macd): Use ffmad.
21037 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 21038
2ee8a2d5
JM
210392013-01-29 Jason Merrill <jason@redhat.com>
21040
21041 PR libstdc++/54314
21042 * varasm.c (default_assemble_visibility): Don't warn about
21043 visibility on artificial decls.
21044
78d087bc
RB
210452013-01-29 Richard Biener <rguenther@suse.de>
21046
21047 PR tree-optimization/56113
21048 * tree-ssa-structalias.c (equiv_class_lookup): Also return
21049 the bitmap leader.
21050 (label_visit): Free duplicate bitmaps and record the leader instead.
21051 (perform_var_substitution): Adjust.
21052
83ba4d6f
RB
210532013-01-29 Richard Biener <rguenther@suse.de>
21054
21055 PR tree-optimization/55270
21056 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
21057 the CFG, schedule loops for fixup.
21058
66dfe13f
NC
210592013-01-29 Nick Clifton <nickc@redhat.com>
21060
21061 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
21062 SP_REG.
21063
5a579c3b
LE
210642013-01-28 Leif Ekblad <leif@rdos.net>
21065
21066 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
21067 * config/i386/i386.h (TARGET_RDOS): New macro.
21068 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
21069 * config/i386/i386.c (ix86_option_override_internal): For 64bit
21070 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
21071 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
21072 DEFAULT_LARGE_SECTION_THRESHOLD.
21073 * config/i386/i386.md (R14_REG, R15_REG): New constants.
21074 * config/i386/rdos.h: New file.
21075 * config/i386/rdos64.h: New file.
21076
51e44392
BS
210772013-01-28 Bernd Schmidt <bernds@codesourcery.com>
21078
21079 PR other/54814
21080 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
21081 TEST_HARD_REG_BIT.
21082
db1fb332
JJ
210832013-01-28 Jakub Jelinek <jakub@redhat.com>
21084
21085 PR rtl-optimization/56117
21086 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
21087 call cselib_lookup_from_insn on the MEM before calling
21088 add_insn_mem_dependence.
21089
16917761
RB
210902013-01-28 Richard Biener <rguenther@suse.de>
21091
21092 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
21093 to a stmt that didn't have one.
21094 (copy_phis_for_bb): Likewise for PHI arguments.
21095 (copy_debug_stmt): Likewise for debug stmts.
21096
b9fc0497
RB
210972013-01-28 Richard Biener <rguenther@suse.de>
21098
21099 PR tree-optimization/56034
6edc3e32 21100 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
21101 (partition_builtin_p): Adjust.
21102 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
21103 it is the last partition.
21104 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
21105 up the vertex for the definition.
21106 (classify_partition): Classify whether a partition is a
21107 PKIND_REDUCTION, thus has uses outside of the loop.
21108 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
21109 Merge all PKIND_REDUCTION partitions into the last partition.
21110 (tree_loop_distribution): Seed partitions from reductions as well.
21111
aa710d25
JJ
211122013-01-28 Jakub Jelinek <jakub@redhat.com>
21113
0bfbca58
JJ
21114 PR tree-optimization/56125
21115 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
21116 pow(x,c) into sqrt(x) * powi(x, n/2) or
21117 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
21118 optimizing for size.
21119 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
21120 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
21121 integer.
21122
aa710d25
JJ
21123 PR tree-optimization/56094
21124 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
21125 to UNKNOWN_LOCATION while gimplifying expr.
21126
77dc5297
UB
211272013-01-27 Uros Bizjak <ubizjak@gmail.com>
21128
21129 PR target/56114
21130 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
21131 operand 0 in movabs insn template for -masm=intel asm alternative.
21132 (*movabs<mode>_2): Ditto for operand 1.
21133
0bfbca58 211342013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
21135
21136 PR target/54663
21137 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
21138 of microblaze-c.o
21139
0bfbca58 211402013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
21141
21142 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
21143 tm_file.
21144
0bfbca58 211452013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
21146
21147 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
21148 Undef to avoid warning.
21149
478f60f9
MH
211502013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
21151
21152 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
21153 * configure: Regenerate.
21154
d7fa6ee2
JJ
211552013-01-25 Jakub Jelinek <jakub@redhat.com>
21156
21157 PR tree-optimization/56098
21158 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
21159 for stmts with volatile ops.
21160 (cond_store_replacement): Don't optimize if assign has volatile ops.
21161 (cond_if_else_store_replacement_1): Don't optimize if either
21162 then_assign or else_assign have volatile ops.
21163 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
21164 volatile ops.
21165
f8fe87bd
GJL
211662013-01-25 Georg-Johann Lay <avr@gjlay.de>
21167
21168 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
21169
28398d0d
GJL
211702013-01-25 Georg-Johann Lay <avr@gjlay.de>
21171
21172 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
21173 missing ':' in asm example.
21174
b7d7d917
TB
211752013-01-25 Tejas Belagod <tejas.belagod@arm.com>
21176
21177 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
21178 entries into lane and laneq entries.
77dc5297
UB
21179 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
21180 Remove AdvSIMD scalar modes.
b7d7d917
TB
21181 (aarch64_sq<r>dmulh_laneq<mode>): New.
21182 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
21183 modes.
21184 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
21185 builtin implementations to relfect changes in RTL in aarch64-simd.md.
21186 * config/aarch64/iterators.md (VCOND): New.
21187 (VCONQ): New.
21188
556f9906
GJL
211892013-01-25 Georg-Johann Lay <avr@gjlay.de>
21190
21191 PR target/54222
21192 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
21193 Add NULL LIBNAME argument to existing definitions.
21194 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
21195 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
21196 * config/avr/avr.c (DEF_BUILTIN): Same.
21197 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
21198 (avr_expand_builtin): Expand to a vanilla call if a libgcc
21199 implementation is available (DECL_ASSEMBLER_NAME is set).
21200 (avr_fold_absfx): New static function.
21201 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
21202 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
21203 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
21204 AVR_BUILTIN_ABSLLK.
21205 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
21206 (abshk, absk, abslk, absllk): Provide as static inline functions.
21207
1f546bbb
MP
212082013-01-25 Marek Polacek <polacek@redhat.com>
21209
21210 PR tree-optimization/56035
21211 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
21212
7e184bd7
UB
212132012-01-24 Uros Bizjak <ubizjak@gmail.com>
21214
21215 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
21216 (*movtf_internal_rex64): Add (!o,C) alternative
21217 (*movxf_internal_rex64): Ditto.
21218 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
21219
f5ba49ac
SM
212202013-01-24 Shenghou Ma <minux.ma@gmail.com>
21221
21222 * doc/invoke.texi: fix typo.
21223 * doc/objc.texi: fix typo.
21224
a6343728
RS
212252013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
21226
21227 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
21228 for the first two alternatives.
21229
cd030c07
DN
212302013-01-24 Diego Novillo <dnovillo@google.com>
21231
77dc5297 21232 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
21233 (ggc-zone.o): Remove.
21234 * configure.ac: Remove option --with-gc.
21235 * configure: Re-generate.
21236 * doc/install.texi: Remove documentation for --with-gc.
21237 * gengtype.c (write_enum_defn): Remove. Update all users.
21238 (write_Types_process_field): Remove generation of gt_e_* argument.
21239 (output_type_enum): Remove. Update all users.
21240 (write_enum_defn): Remove. Update all users.
21241 (enum alloc_zone): Remove. Update all users.
77dc5297 21242 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
21243 * ggc-common.c (ggc_splay_alloc): Remove first argument.
21244 Update all callers.
21245 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 21246 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
21247 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
21248 Update all users.
aaf1e810 21249 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
21250 (struct alloc_zone): Remove.
21251 (ggc_internal_alloc_zone_stat): Remove.
21252 (ggc_internal_cleared_alloc_zone_stat): Remove.
21253 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
21254 (ggc_pch_count_object): Remove last argument. Update all users.
21255 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
21256 (struct alloc_zone): Remove.
21257 * ggc-zone.c: Remove.
77dc5297 21258 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
21259 (struct alloc_zone): Remove.
21260 (ggc_alloc_typed_stat): Remove.
21261 (ggc_alloc_typed): Remove.
21262 (ggc_splay_alloc): Remove first argument.
21263 (rtl_zone): Remove. Update all users.
21264 (tree_zone): Remove. Update all users.
21265 (tree_id_zone): Remove. Update all users.
21266 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 21267 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 21268 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 21269 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 21270
a861ffa4
GJL
212712013-01-24 Georg-Johann Lay <avr@gjlay.de>
21272
21273 * config/avr/avr.c (avr_out_fract): Make register numbers that
21274 might be outside of source operand signed.
21275
593c0ddd
UB
212762013-01-24 Uros Bizjak <ubizjak@gmail.com>
21277
21278 * config/i386/constraints.md (Yf): New constraint.
21279 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
21280 of f constraint to conditionaly disable x87 register preferences.
21281 (*movdf_internal): Ditto.
21282 (*movsf_internal): Ditto.
21283
e86c0101
SB
212842013-01-24 Steven Bosscher <steven@gcc.gnu.org>
21285
21286 PR inline-asm/55934
21287 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
21288 that have operands with impossible constraints.
21289 Add a FIXME for a speed-up opportunity.
21290 * lra-constraints.c (process_alt_operands): Verify that a class
21291 selected from constraints on asms is valid for the operand mode.
21292 (curr_insn_transform): Remove incorrect comment.
21293
f6fee35f
DE
212942013-01-23 David Edelsohn <dje.gcc@gmail.com>
21295
21296 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
21297 TOC operand is a valid symbol ref in the constant pool.
21298
212992013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 21300
aaf1e810 21301 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 21302
dc62d7d1
GJL
213032013-01-23 Georg-Johann Lay <avr@gjlay.de>
21304
21305 PR target/54222
21306 * config/avr/stdfix.h: New file.
21307 * t-avr (stdfix-gcc.h): New rule to build it.
21308 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
21309
2660d12d
KS
213102013-01-23 Kostya Serebryany <kcc@google.com>
21311
77dc5297
UB
21312 * config/darwin.h: remove dependency on
21313 CoreFoundation (asan on Mac OS).
2660d12d 21314
a70418fc
JJ
213152013-01-23 Jakub Jelinek <jakub@redhat.com>
21316
21317 PR target/49069
21318 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
21319 instead of cmpdi_operand for first comparison operand.
21320 Don't assert that comparison operands aren't both constants.
21321
47876a2a
JW
213222013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
21323
21324 * doc/install.texi (Downloading the Source): Update references to
21325 downloading separate components.
21326
213272013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
21328
21329 * doc/extend.texi (__int128): Improve grammar.
21330
47876a2a 213312013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
21332
21333 PR target/56028
21334 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
21335 alternative to (o,r).
21336 (*movdi_internal_rex64): Remove (!o,n) alternative.
21337 (DImode immediate->memory splitter): Remove.
21338 (DImode immediate->memory peephole2): Remove.
21339 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
21340 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
21341 alternative to (!o,*r).
21342 (*movtf_internal_sse): New pattern.
21343 (*movxf_internal_rex64): New pattern.
21344 (*movxf_internal): Disable for TARGET_64BIT.
21345 (*movdf_internal_rex64): Remove (!o,F) alternative.
21346
3a984f10
JJ
213472013-01-22 Jakub Jelinek <jakub@redhat.com>
21348
502498d5
JJ
21349 PR middle-end/56074
21350 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21351 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21352 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21353 stmt locations where LOCATION_LOCUS of the stmt location is
21354 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21355
3a984f10
JJ
21356 PR target/55686
21357 * config/i386/i386.md (UNSPEC_STOS): New.
21358 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21359 *strsetqi_1): Add UNSPEC_STOS.
21360
fa817f7f
PC
213612013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21362
21363 PR c++/56067
21364 * doc/invoke.texi: Remove left over -Wsynth example.
21365
8f498c1b
JJ
213662013-01-21 Jakub Jelinek <jakub@redhat.com>
21367
21368 PR tree-optimization/56051
21369 * fold-const.c (fold_binary_loc): Don't fold
21370 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21371 a narrowing conversion, or widening conversion from signed
21372 to unsigned.
21373
47876a2a 213742013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21375
21376 PR rtl-optimization/56023
21377 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21378 dependent on debug instruction.
21379
5b9db1bc
MJ
213802013-01-21 Martin Jambor <mjambor@suse.cz>
21381
21382 PR middle-end/56022
21383 * function.c (allocate_struct_function): Call
21384 invoke_set_current_function_hook earlier.
21385
e8bb7d68
JJ
213862013-01-21 Jakub Jelinek <jakub@redhat.com>
21387
21388 * reload1.c (init_reload): Only initialize reload_obstack
21389 during the first call.
21390
616a4e32
MP
213912013-01-21 Marek Polacek <polacek@redhat.com>
21392
21393 * cfgloop.c (verify_loop_structure): Fix up grammar.
21394
4401981b
YHH
213952013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21396
21397 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21398 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21399
8e87740b
RR
214002013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21401
21402 PR target/56058
21403 * config/arm/marvell-pj4.md: Update copyright year.
21404 Fix up use of alu to alu_reg and simple_alu_imm.
21405
47876a2a 214062013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21407
21408 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21409
89d56d79
VM
214102013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21411
21412 PR target/55433
21413 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21414 insn for secondary memory move when memory mode should be different.
89d56d79 21415
fe603553
JDA
214162013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21417
21418 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21419 atomic_storedi_1): New patterns.
21420
01284895
VK
214212013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21422
21423 btver2 pipeline descriptions.
21424 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21425 descriptions.
21426 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21427 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21428 type attributes.
21429 * config/i386/btver2.md: New file describing btver2 pipelines.
21430
5630e3e1
JL
214312013-01-19 Andrew Pinski <apinski@cavium.com>
21432
21433 PR tree-optimization/52631
21434 * tree-ssa-sccvn (visit_use): Before looking up the original
21435 statement, try looking up the simplified expression.
21436
650ae806
AG
214372013-01-19 Anthony Green <green@moxielogic.com>
21438
21439 * config/moxie/moxie.c (moxie_expand_prologue): Set
21440 current_function_static_stack_size.
21441
e300ec2d
JJ
214422013-01-18 Jakub Jelinek <jakub@redhat.com>
21443
21444 PR tree-optimization/56029
21445 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21446 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21447
a3d7af04
SS
214482013-01-18 Sharad Singhai <singhai@google.com>
21449
21450 PR tree-optimization/55995
21451 * dumpfile.c (dump_loc): Print location only if available.
21452 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21453
66aa7879
VM
214542013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21455
21456 PR target/55433
21457 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21458 secondary memory move.
21459 (inherit_reload_reg): Use rclass instead of cl for
21460 check_secondary_memory_needed_p.
21461
3f0fee7b
JJ
214622013-01-18 Jakub Jelinek <jakub@redhat.com>
21463
21464 PR middle-end/56015
21465 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21466 the case where writing real complex part of target modifies op1.
3f0fee7b 21467
70c67693
JG
214682013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21469
21470 * config/aarch64/aarch64-simd.md
21471 (aarch64_vcond_internal<mode>): Handle unordered cases.
21472 * config/aarch64/iterators.md (v_cmp_result): New.
21473
df8de9b3
YHH
214742013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21475 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21476
21477 * config/arm/marvell-pj4.md: New file.
21478 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21479 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21480 (generic_vfp): Likewise.
21481 * config/arm/arm-cores.def: Add marvell-pj4.
21482 * config/arm/arm-tune.md: Regenerate.
21483 * config/arm/arm-tables.opt: Regenerate.
21484 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21485 * doc/invoke.texi: Document marvell-pj4.
21486
be30c356
TB
214872013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21488
21489 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21490
0bfbca58 214912013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21492
21493 PR debug/54114
21494 PR debug/54402
21495 PR debug/49888
21496 * var-tracking.c (negative_power_of_two_p): New.
21497 (global_get_addr_cache, local_get_addr_cache): New.
21498 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21499 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21500 heading comment.
21501 (vt_stack_offset_p): Remove.
21502 (vt_canon_true_dep): Always canonicalize loc's address.
21503 (clobber_overlapping_mems): Make sure we have a MEM.
21504 (local_get_addr_clear_given_value): New.
21505 (val_reset): Clear local cached entries.
21506 (compute_bb_dataflow): Create and release the local cache.
21507 Disable duplicate MEMs clobbering.
21508 (emit_notes_in_bb): Clobber MEMs likewise.
21509 (vt_emit_notes): Create and release the local cache.
21510 (vt_initialize, vt_finalize): Create and release the global
21511 cache, respectively.
1f6bc337 21512 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21513
0bfbca58 215142013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21515
21516 PR libmudflap/53359
21517 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21518 not found in the symtab.
21519
0bfbca58 215202013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21521
c350ba53 21522 PR debug/56006
3aa03517
AO
21523 PR rtl-optimization/55547
21524 PR rtl-optimization/53827
21525 PR debug/53671
21526 PR debug/49888
21527 * alias.c (offset_overlap_p): New, factored out of...
21528 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21529 the conservative special case for symbolic constants. Don't
21530 adjust zero sizes on alignment.
21531
c664546f
JL
215322013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21533
21534 PR rtl-optimization/52573
21535 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21536 REG_UNUSED for the same register.
21537
1bd3f750
MP
215382013-01-17 Richard Biener <rguenther@suse.de>
21539 Marek Polacek <polacek@redhat.com>
21540
21541 PR rtl-optimization/55833
21542 * loop-unswitch.c (unswitch_loops): Move loop verification...
21543 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21544 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21545 Set it to true when we're removing a loop from hierarchy tree in
21546 an irreducible region.
21547 (fix_bb_placements): Adjust caller.
21548 (fix_loop_placements): Likewise.
21549
e52a8b71
GJL
215502013-01-17 Georg-Johann Lay <avr@gjlay.de>
21551
21552 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21553 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21554 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21555 Remove ID. Adjust comments.
21556 * config/avr/avr-c.c (avr_builtin_name): Remove.
21557 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21558 * config/avr/avr.c (avr_tolower): New static function.
21559 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21560 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21561 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21562 default expansion.
21563
8386a7ea
JH
215642013-01-17 Jan Hubicka <jh@suse.cz>
21565
610fb637 21566 PR tree-optimization/55273
8386a7ea
JH
21567 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21568
47876a2a 215692013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21570
21571 PR target/55981
21572 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21573 store through atomic_store<mode>_1.
21574 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21575
8222c37e
MJ
215762013-01-17 Martin Jambor <mjambor@suse.cz>
21577
21578 PR tree-optimizations/55264
21579 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21580 for virtual methods.
21581 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21582 virtual methods before inlining is over.
21583 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21584 virtual functions.
21585 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21586 non-virtual.
21587
79f01c76
VM
215882013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21589
21590 PR rtl-optimization/56005
21591 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21592 pending reads for prefetch.
21593
d0b6bb1b
IB
215942013-01-16 Ian Bolton <ian.bolton@arm.com>
21595
aaf1e810 21596 * config/aarch64/aarch64.md
d0b6bb1b
IB
21597 (*cstoresi_neg_uxtw): New pattern.
21598 (*cmovsi_insn_uxtw): New pattern.
21599 (*<optab>si3_uxtw): New pattern.
21600 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21601 (*<optab>si3_insn_uxtw): New pattern.
21602 (*bswapsi2_uxtw): New pattern.
21603
cb9cf03b
RB
216042013-01-16 Richard Biener <rguenther@suse.de>
21605
21606 * tree-inline.c (tree_function_versioning): Remove set but
21607 never used variable.
21608
2cfc56b9
RB
216092013-01-16 Richard Biener <rguenther@suse.de>
21610
21611 PR tree-optimization/55964
21612 * tree-flow.h (rename_variables_in_loop): Remove.
21613 (rename_variables_in_bb): Likewise.
21614 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21615 (copy_loop_before): Adjust and delete update-ssa status.
21616 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21617 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21618 (rename_variables_in_loop): Remove.
21619 (slpeel_update_phis_for_duplicate_loop): Likewise.
21620 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21621 use available cfg machinery instead of duplicating it.
21622 Update PHI nodes and perform poor-mans SSA update here.
21623 (slpeel_tree_peel_loop_to_edge): Adjust.
21624
c25a0c60
RB
216252013-01-16 Richard Biener <rguenther@suse.de>
21626
21627 PR tree-optimization/54767
21628 PR tree-optimization/53465
21629 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21630 (vrp_visit_phi_node): For PHI arguments coming via backedges
21631 drop all symbolical range information.
21632 (execute_vrp): Compute backedges.
21633
04b535af
RB
216342013-01-16 Richard Biener <rguenther@suse.de>
21635
21636 * doc/install.texi: Update CLooG and ISL requirements to
21637 0.18.0 and 0.11.1.
21638
8b0a1e0b
CB
216392013-01-16 Christian Bruel <christian.bruel@st.com>
21640
21641 PR target/55301
21642 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
21643 (broken_move): Handle UNSPECV_SP_SWITCH_B.
21644 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
21645
216462013-01-16 DJ Delorie <dj@redhat.com>
21647
21648 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
21649 (UNSPECV_SP_SWITCH_E): New.
21650 (sp_switch_1): Change to an unspec.
21651 (sp_switch_2): Change to an unspec. Don't use post-inc when we
21652 replace $r15.
21653
216542013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
21655
21656 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
21657 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
21658 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
21659 (expand_mem_thread_fence): Ditto.
21660 (expand_mem_signal_fence): Ditto.
21661 (expand_atomic_load): Ditto.
21662 (expand_atomic_store): Ditto.
21663
0bfbca58 216642013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
21665
21666 PR rtl-optimization/55547
21667 PR rtl-optimization/53827
21668 PR debug/53671
21669 PR debug/49888
21670 * alias.c (memrefs_conflict_p): Set sizes to negative after
21671 AND adjustments.
21672
305e3ac1
JJ
216732013-01-15 Jakub Jelinek <jakub@redhat.com>
21674
21675 PR target/55940
21676 * function.c (thread_prologue_and_epilogue_insns): Always
21677 add crtl->drap_reg to set_up_by_prologue.set, even if
21678 stack_realign_drap is false.
21679
f78ac4f2
JBG
216802013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21681
21682 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
21683 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
21684 *call): Fix indention.
21685
a78a8cc4
TV
216862013-01-15 Tom de Vries <tom@codesourcery.com>
21687
21688 PR target/55876
21689 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
21690 Update comment.
21691
0e80383f
VM
216922013-01-15 Vladimir Makarov <vmakarov@redhat.com>
21693
305e3ac1 21694 PR rtl-optimization/55153
0e80383f
VM
21695 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
21696
207b5956
MJ
216972013-01-15 Martin Jambor <mjambor@suse.cz>
21698
21699 PR tree-optimization/55920
21700 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
21701 accesses as grp_to_be_debug_replaced.
21702
a7818b54
JJ
217032013-01-15 Jakub Jelinek <jakub@redhat.com>
21704
21705 PR tree-optimization/55920
21706 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
21707 there is non-useless type conversion needed from debug rhs to lhs,
21708 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
21709
b0fe107e
JM
217102013-01-15 Joseph Myers <joseph@codesourcery.com>
21711 Mikael Pettersson <mikpe@it.uu.se>
21712
21713 PR target/43961
21714 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
21715 Thumb.
21716 (ASM_OUTPUT_CASE_LABEL): Remove.
21717 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
21718 * final.c (shorten_branches): Update alignment of labels before
21719 jump tables if CASE_VECTOR_SHORTEN_MODE.
21720
34ab62ee
RB
217212013-01-15 Richard Biener <rguenther@suse.de>
21722
21723 PR bootstrap/55961
21724 * system.h: Do not include gmp.h for building host tools.
21725
783a3a05
RB
217262013-01-15 Richard Biener <rguenther@suse.de>
21727
21728 PR middle-end/55882
21729 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
21730 account for bitpos when computing alignment.
21731
3a579e09
VY
217322013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
21733
21734 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
21735 (ix86_target_macros_internal): Likewise.
21736
21737 * config/i386/i386.c (m_CORE2I7): Removed.
21738 (m_CORE_HASWELL): New macro.
21739 (m_CORE_ALL): Likewise.
21740 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
21741 (initial_ix86_arch_features): Likewise.
21742 (processor_target_table): Initializations for Core avx2.
21743 (cpu_names): New names "core-avx2".
21744 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
21745 PROCESSOR_CORE_HASWELL.
21746 (ix86_issue_rate): New case.
21747 (ia32_multipass_dfa_lookahead): Likewise.
21748 (ix86_sched_init_global): Likewise.
21749
21750 * config/i386/i386.h (TARGET_HASWELL): New macro.
21751 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
21752 (processor_type): New PROCESSOR_HASWELL.
21753
955f5a07
JJ
217542013-01-15 Jakub Jelinek <jakub@redhat.com>
21755
ff784829
JJ
21756 PR tree-optimization/55955
21757 * tree-vect-loop.c (vectorizable_reduction): Give up early on
21758 *SHIFT_EXPR and *ROTATE_EXPR codes.
21759
955f5a07
JJ
21760 PR tree-optimization/48766
21761 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
21762 -ftrapv disable -fwrapv.
21763
aeb8b4e9
GJL
217642013-01-14 Georg-Johann Lay <avr@gjlay.de>
21765
21766 PR target/55974
21767 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
21768 etc. to 1 and not to __flash.
21769 Use LL suffix for __INT24_MAX__ with -mint8.
21770 Use ULL suffix for __UINT24_MAX__ with -mint8.
21771
1c494c6a
GJL
217722013-01-14 Georg-Johann Lay <avr@gjlay.de>
21773
21774 * config/avr/avr-arch.h
21775 (struct base_arch_s): Use typedef avr_arch_t instead.
21776 (struct arch_info_s): Use typedef avr_arch_info_t instead.
21777 (struct mcu_type_s): Use typedef avr_mcu_t instead.
21778 * config/avr/avr.c: Same.
21779 * config/avr/avr-devices.c: Same.
21780 * config/avr/driver-avr.c: Same.
21781 * config/avr/gen-avr-mmcu-texi.c: Same.
21782 * config/avr/avr-mcus.def: Adjust comment.
21783
a50344cb
TB
217842013-01-14 Tejas Belagod <tejas.belagod@arm.com>
21785
88e784e6
UB
21786 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
21787 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 21788
47876a2a 217892013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
21790 Andi Kleen <ak@linux.intel.com>
21791
21792 PR target/55948
21793 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
21794 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
21795 memmodel flag.
21796
00892272
GJL
217972013-01-14 Georg-Johann Lay <avr@gjlay.de>
21798
21799 * config/avr/avr-stdint.h: Remove trailing blanks.
21800 * config/avr/avr-log.h: Same.
21801 * config/avr/avr-arch.h: Same.
21802 * config/avr/avr-devices.c: Same.
21803 * config/avr/avr-dimode.md: Same.
21804 * config/avr/predicates.md: Same.
21805 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 21806
00892272
GJL
21807 * config/avr/avr-protos.h: Same. And:
21808 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
21809 (init_cumulative_args): Rename to avr_init_cumulative_args.
21810 (expand_prologue): Rename to avr_expand_prologue.
21811 (expand_epilogue): Rename to avr_expand_epilogue.
21812 (adjust_insn_length): Rename to avr_adjust_insn_length.
21813 (notice_update_cc): Rename to avr_notice_update_cc.
21814 (final_prescan_insn): Rename to avr_final_prescan_insn.
21815 * config/avr/avr.c: Same.
21816 * config/avr/avr.h: Same.
21817 * config/avr/avr.md: Remove trailing blanks.
21818 (prologue): Use avr_expand_prologue.
21819 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
21820
7bb01996
RB
218212013-01-14 Richard Biener <rguenther@suse.de>
21822
21823 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
21824 verify_location, collect_subblocks): New functions.
21825 (verify_gimple_in_cfg): Verify that locations only reference
21826 BLOCKs in the functions BLOCK tree.
21827
2724573f
RB
218282013-01-14 Richard Biener <rguenther@suse.de>
21829
21830 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
21831 PHI argument.
21832 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
21833 unshare reference.
21834 (insert_out_of_ssa_copy_on_edge): Likewise.
21835 (rewrite_close_phi_out_of_ssa): Likewise.
21836 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
21837 debug expressions.
21838 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
21839 propagated constants.
21840 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
21841 can not be shared.
21842
9a0bbab6
GJL
218432013-01-14 Georg-Johann Lay <avr@gjlay.de>
21844
21845 * config/avr/avr-modes.def: Add GPL copyright notice.
21846
45805f17
UB
218472013-01-13 Uros Bizjak <ubizjak@gmail.com>
21848
21849 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
21850 MEMMODEL_MASK to determine memory model.
21851 (atomic_store<mode>): Ditto from operands[2].
21852 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
21853
9d60be38
JJ
218542013-01-13 Jakub Jelinek <jakub@redhat.com>
21855
21856 PR fortran/55935
45805f17 21857 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
21858 (fold_gimple_assign): Don't call unshare_expr here.
21859 (fold_ctor_reference): Call unshare_expr.
21860
e7f49d92
TG
218612013-01-13 Terry Guo <terry.guo@arm.com>
21862
aaf1e810
EB
21863 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
21864 * doc/fragments.texi: Document MULTILIB_REUSE.
21865 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 21866 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 21867 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
21868 (tmpmultilib4): Ditto.
21869 (multilib_reuse): New multilib argument.
21870
fbd03a27
RS
218712013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
21872
21873 * Makefile.in: Update copyright.
21874
b3681f13
TV
218752013-01-12 Tom de Vries <tom@codesourcery.com>
21876
21877 PR middle-end/55890
21878 * calls.c (expand_call): Check if arg_nr is valid.
21879
3f287e4b
MM
218802013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21881
21882 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
21883 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
21884 documentation. Add missing '__' in front of
21885 __builtin_ia32_packssdw256.
3f287e4b 21886
1abcd5eb
AK
218872013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21888
21889 PR target/55719
21890 * config/s390/s390.c (s390_preferred_reload_class): Do not return
21891 NO_REGS for larl operands.
21892 (s390_reload_larl_operand): Use s390_load_address instead of
21893 emit_move_insn.
21894
980d0812
RB
218952013-01-11 Richard Biener <rguenther@suse.de>
21896
21897 * tree-cfg.c (verify_node_sharing_1): Split out from ...
21898 (verify_node_sharing): ... here.
21899 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
21900
7cb9fd07
EB
219012013-01-11 Eric Botcazou <ebotcazou@adacore.com>
21902
21903 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
21904 Substitute TREECHECKING.
21905 * configure: Regenerate.
21906 * Makefile.in (TREECHECKING): New.
21907
47876a2a 219082013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
21909
21910 PR tree-optimization/44061
21911 * tree-vrp.c (extract_range_basic): Compute zero as
21912 value-range for __builtin_constant_p of function parameters.
21913
d1e082c2
RS
219142013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
21915
45805f17 21916 Update copyright years.
d1e082c2 21917
f85021b0
VM
219182013-01-10 Vladimir Makarov <vmakarov@redhat.com>
21919
9d60be38 21920 PR rtl-optimization/55672
0160442c
VM
21921 * lra-eliminations.c (mark_not_eliminable): Permit addition with
21922 const to be eliminable.
f85021b0 21923
7a8b1ec4
DE
219242013-01-10 David Edelsohn <dje.gcc@gmail.com>
21925
21926 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
21927 * configure: Regenerate.
21928
ad2e5b71
RB
219292013-01-10 Richard Biener <rguenther@suse.de>
21930
ddf9322d 21931 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 21932
ffc5b2bb
RB
219332013-01-10 Richard Biener <rguenther@suse.de>
21934
21935 PR bootstrap/55792
21936 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
21937 locations for virtual PHI arguments.
21938 (rewrite_update_phi_arguments): Likewise.
21939
e1f674e4
JS
219402013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
21941
21942 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
21943 on to assembler.
21944
a57fc743
JJ
219452013-01-10 Jakub Jelinek <jakub@redhat.com>
21946
21947 PR tree-optimization/55921
21948 * tree-complex.c (expand_complex_asm): New function.
21949 (expand_complex_operations_1): Call it for GIMPLE_ASM.
21950
0ff4390d
AK
219512013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21952
21953 PR target/55718
21954 * config/s390/s390.c (s390_symref_operand_p)
21955 (s390_loadrelative_operand_p): Merge the two functions.
21956 (s390_check_qrst_address, print_operand_address): Add parameters
21957 to s390_loadrelative_operand_p invokation.
21958 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
21959 (s390_reload_larl_operand, s390_secondary_reload): Use
21960 s390_loadrelative_operand_p instead of s390_symref_operand_p.
21961 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
21962
6f557e0e
MS
219632013-01-09 Mike Stump <mikestump@comcast.net>
21964
21965 * dse.c (record_store): Remove unnecessary assert.
21966
7770c9e9
JH
219672013-01-09 Jan Hubicka <jh@suse.cz>
21968
21969 PR tree-optimization/55569
21970 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
21971 * cfgloop.h (scale_loop_profile): Likewise.
21972
a19b1432
JH
219732013-01-09 Jan Hubicka <jh@suse.cz>
21974
21975 PR lto/45375
ddf9322d
UB
21976 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
21977 functions.
a19b1432
JH
21978 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
21979
9a002da8
RS
219802013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
21981
21982 PR middle-end/55114
21983 * expr.h (maybe_emit_group_store): Declare.
21984 * expr.c (maybe_emit_group_store): New function.
21985 * builtins.c (expand_builtin_int_roundingfn): Call it.
21986 (expand_builtin_int_roundingfn_2): Likewise.
21987
511dcace
VM
219882013-01-09 Vladimir Makarov <vmakarov@redhat.com>
21989
e1f2b729 21990 PR rtl-optimization/55829
511dcace
VM
21991 * lra-constraints.c (match_reload): Add code for absent output.
21992 (curr_insn_transform): Add code for reloads of matched inputs
21993 without output.
21994
7b0fe4f4
UB
219952013-01-09 Uros Bizjak <ubizjak@gmail.com>
21996
21997 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
21998 attribute of movddup insn to DF.
21999 (*vec_interleave_lowv2df): Ditto.
22000 (vec_dupv2df): Ditto.
22001
870ca331
JH
220022013-01-09 Jan Hubicka <jh@suse.cz>
22003
22004 PR tree-optimiation/55875
22005 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
22006 EVERY_ITERATION parameter.
7b0fe4f4 22007 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
22008 (idx_infer_loop_bounds): Similarly here.
22009 (n_of_executions_at_most): Simplify
22010 to only test for cases where statement is dominated by the
7b0fe4f4 22011 particular bound; handle correctly the "postdominance" test.
870ca331
JH
22012 (scev_probably_wraps_p): Use max loop iterations info
22013 as a global bound first.
22014
6f575fe4 220152013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
22016 Nick Clifton <nickc@redhat.com>
22017
22018 * config/v850/v850.md (cbranchsf4): New pattern.
22019 (cstoresf4): New pattern.
22020 (cbranchdf4): New pattern.
22021 (cstoredf4): New pattern.
22022 (movsicc): Disallow floating point comparisons.
22023 (cmpsf_le_insn): Fix order of operators.
22024 (cmpsf_lt_insn): Likewise.
22025 (cmpsf_eq_insn): Likewise.
22026 (cmpdf_le_insn): Likewise.
22027 (cmpdf_lt_insn): Likewise.
22028 (cmpdf_eq_insn): Likewise.
22029 (cmpsf_ge_insn): Use LE comparison.
22030 (cmpdf_ge_insn): Likewise.
22031 (cmpsf_gt_insn): Use LT comparison.
22032 (cmpdf_gt_insn): Likewise.
22033 (cmpsf_ne_insn): Delete pattern.
22034 (cmpdf_ne_insn): Delete pattern.
22035 * config/v850/v850.c (v850_gen_float_compare): Use
22036 gen_cmpdf_eq_insn for NE comparison.
22037 (v850_float_z_comparison_operator)
22038 (v850_float_nz_comparison_operator): Move from here ...
22039 * config/v850/predicates.md: ... to here. Move GT and GE
22040 comparisons into v850_float_z_comparison_operator.
22041 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
22042 Delete prototype.
22043 (v850_float_nz_comparison_operator): Likewise.
22044
f0d54148
JDA
220452013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22046
22047 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
22048 with calls to gen_insvsi/gen_insvdi.
22049
8f01beca
VK
220502013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22051
22052 * config/i386/i386.c (initial_ix86_tune_features): Set up
22053 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
22054
2aa579ad
JJ
220552013-01-09 Steven Bosscher <steven@gcc.gnu.org>
22056 Jakub Jelinek <jakub@redhat.com>
22057
22058 PR tree-optimization/48189
22059 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
22060 If nitercst is 0, don't predict the exit edge.
22061
6edc3e32 220622013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
22063
22064 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
22065 in asm_fprintf with reg_names.
22066 (aarch64_print_operand_address): Likewise.
22067 (aarch64_return_addr): Likewise.
22068 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
22069
f6f94d94
JDA
220702013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22071
22072 * config/pa/pa.h (VAL_U6_BITS_P): Define.
22073 (INT_U6_BITS): Likewise.
22074 * config/pa/predicates.md (uint6_operand): New predicate.
22075 (shift5_operand, shift6_operand): Likewise.
22076 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
22077 arith32_operand.
22078 (lshrdi3): Use shift6_operand.
22079 (shrpsi4, shrpdi4): New insn patterns.
22080 (extzv): Delete expander.
22081 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
22082 predicates in unamed zero extract patterns. Tighten common constraint.
22083 (extv): Delete expander.
22084 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
22085 predicates in unamed sign extract patterns. Tighten common constraint.
22086 (insv): Delete expander.
22087 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
22088 predicates in unamed insert patterns. Tighten common constraint.
22089 Change uint32_operand predicate to uint6_operand predicate in unamed
22090 DImode pattern to insert constant values of type 1...1xxxx.
22091
36b72910
JH
220922013-01-04 Jan Hubicka <jh@suse.cz>
22093
22094 PR tree-optimization/55823
7b0fe4f4
UB
22095 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
22096 issue.
36b72910 22097
47876a2a 220982013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
22099 Uros Bizjak <ubizjak@gmail.com>
22100
22101 PR rtl-optimization/55845
22102 * df-problems.c (can_move_insns_across): Stop scanning at
22103 volatile_insn_p source instruction or give up if
22104 across_from .. across_to range contains any volatile_insn_p
22105 instructions.
22106
4369c11e
TB
221072013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22108
7b0fe4f4
UB
22109 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
22110 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
22111 Declare.
4369c11e 22112 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 22113 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 22114
aeb7e7c1
JJ
221152013-01-08 Jakub Jelinek <jakub@redhat.com>
22116
22117 PR fortran/55341
22118 * asan.c (asan_clear_shadow): New function.
22119 (asan_emit_stack_protection): Use it.
22120
a02ad1aa
TB
221212013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22122
22123 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
22124 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
22125 with tab instead of space.
22126
f90d87f5
NC
221272013-01-08 Nick Clifton <nickc@redhat.com>
22128
22129 * config/rl78/rl78.c (rl78_expand_prologue): Always select
22130 register bank 0 at the start of an interrupt handler.
83ffd964
NC
22131 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
22132 MDBH registers.
f90d87f5 22133
385eb93d
JG
221342013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22135
22136 * config/aarch64/aarch64-simd.md
22137 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
22138 (aarch64_simd_bsl): Likewise.
22139 (aarch64_vcond_internal<mode>): Likewise.
22140 (vcond<mode><mode>): Likewise.
22141 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
22142 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
22143
4dcd1054
JG
221442013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22145
22146 * config/aarch64/aarch64-builtins.c
22147 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
22148
4267a4a6
MJ
221492013-01-08 Martin Jambor <mjambor@suse.cz>
22150
22151 PR debug/55579
22152 * tree-sra.c (analyze_access_subtree): Return true also after
22153 potentially creating a debug-only replacement.
22154
5f4e6de3
JJ
221552013-01-08 Jakub Jelinek <jakub@redhat.com>
22156
3138f224
JJ
22157 PR middle-end/55890
22158 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
22159
5f4e6de3
JJ
22160 PR tree-optimization/54120
22161 * tree-vrp.c (range_fits_type_p): Don't allow
22162 src_precision < precision from signed vr to unsigned_p
22163 if vr->min or vr->max is negative.
22164 (simplify_float_conversion_using_ranges): Test can_float_p
22165 against CODE_FOR_nothing.
22166
f3ef18ff
JJ
221672013-01-08 Jakub Jelinek <jakub@redhat.com>
22168 Richard Biener <rguenther@suse.de>
22169
22170 PR middle-end/55851
22171 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
22172 types instead of just INTEGER_TYPE types.
22173
25c210f9
MK
221742013-01-07 Mark Kettenis <kettenis@openbsd.org>
22175
22176 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
22177 TF_SIZE): Define.
f90d87f5 22178
81826a7b
SE
221792013-01-07 Steve Ellcey <sellcey@mips.com>
22180
22181 PR target/42661
22182 * config/mips/mips.opt: Change mad to mmad to match documentation.
22183
35678514
GJL
221842013-01-07 Georg-Johann Lay <avr@gjlay.de>
22185
22186 PR target/55897
22187 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
22188 .progmemx.data now.
22189
e5669488
GJL
221902013-01-07 Georg-Johann Lay <avr@gjlay.de>
22191
22192 PR target/55897
22193 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
22194 (avr_addrspace_t): Add .section_name field.
22195 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
22196 array size.
22197 (avr_addrspace): Same. Initialize .section_name. Remove last
22198 NULL entry. Put __memx into .progmemx.data.
22199 (progmem_section_prefix): Remove.
22200 (avr_asm_init_sections): No need to initialize progmem_section.
22201 (avr_asm_named_section): Use avr_addrspace[].section_name to get
22202 section name prefix.
22203 (avr_asm_select_section): Ditto. And use get_unnamed_section to
22204 retrieve the progmem section.
22205 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
22206 boundary to run over avr_addrspace[].
22207 (avr_register_target_pragmas): Ditto.
22208
656e6f37
JJ
222092013-01-06 Jakub Jelinek <jakub@redhat.com>
22210
22211 * varasm.c (output_constant_def_contents): For asan_protect_global
22212 protected strings, adjust DECL_ALIGN if needed, before testing for
22213 anchored symbols.
22214 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
22215 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
22216 normal decls.
22217 (output_object_block): For asan protected decls, emit asan padding
22218 after their contents.
22219 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
22220 (asan_finish_file): Test it here instead.
22221
6edc3e32
UB
222222013-01-07 Nick Clifton <nickc@redhat.com>
22223 Matthias Klose <doko@debian.org>
22224 Doug Kwan <dougkwan@google.com>
22225 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
22226
22227 PR driver/55470
22228 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
22229
22230 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
22231
22232 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
22233
7b0fe4f4 22234 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
22235
22236 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
22237
2a095093
GJL
222382013-01-07 Georg-Johann Lay <avr@gjlay.de>
22239
f3b503f4 22240 PR target/54461
2a095093
GJL
22241 * doc/install.texi (Cross-Compiler-Specific Options): Document
22242 --with-avrlibc.
22243
383f9b34
TB
222442013-01-07 Tejas Belagod <tejas.belagod@arm.com>
22245
22246 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
22247 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
22248 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
22249 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
22250 vqmovun_high_s64): Fix source operand number and update copyright.
22251
3626621a
RB
222522013-01-07 Richard Biener <rguenther@suse.de>
22253
22254 PR middle-end/55890
22255 * gimple.h (gimple_call_builtin_p): New overload.
22256 * gimple.c (validate_call): New function.
22257 (gimple_call_builtin_p): Likewise.
22258 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22259 Use gimple_call_builtin_p.
22260 (find_func_clobbers): Likewise.
22261 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
22262 (strlen_optimize_stmt): Likewise.
22263
8b2ea410
JG
222642013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22265
22266 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
22267 (vld1q_dup_*): Likewise.
22268 (vld1_*): Likewise.
22269 (vld1q_*): Likewise.
22270 (vld1_lane_*): Likewise.
22271 (vld1q_lane_*): Likewise.
22272
9713d329
RB
222732013-01-07 Richard Biener <rguenther@suse.de>
22274
22275 * lto-streamer.h (LTO_minor_version): Bump to 2.
22276
3520f7cc
JG
222772013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22278
22279 * config/aarch64/aarch64-protos.h
22280 (aarch64_const_double_zero_rtx_p): Rename to...
22281 (aarch64_float_const_zero_rtx_p): ...this.
22282 (aarch64_float_const_representable_p): New.
22283 (aarch64_output_simd_mov_immediate): Likewise.
22284 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
22285 move immediate case.
22286 * config/aarch64/aarch64.c
22287 (aarch64_const_double_zero_rtx_p): Rename to...
22288 (aarch64_float_const_zero_rtx_p): ...this.
22289 (aarch64_print_operand): Allow printing of new constants.
22290 (aarch64_valid_floating_const): New.
22291 (aarch64_legitimate_constant_p): Check for valid floating-point
22292 constants.
22293 (aarch64_simd_valid_immediate): Likewise.
22294 (aarch64_vect_float_const_representable_p): New.
22295 (aarch64_float_const_representable_p): Likewise.
22296 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
22297 (aarch64_output_simd_mov_immediate): New.
22298 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
22299 (*movdf_aarch64): Likewise.
22300 * config/aarch64/constraints.md (Ufc): New.
22301 (Y): call aarch64_float_const_zero_rtx.
22302 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
22303
e167c04d
RB
223042013-01-07 Richard Biener <rguenther@suse.de>
22305
22306 PR tree-optimization/55888
22307 PR tree-optimization/55862
22308 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
22309 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
22310 not if it is contained therein.
22311
0139aaab
GJL
223122013-01-07 Georg-Johann Lay <avr@gjlay.de>
22313
22314 * config/avr/t-avr: Typo.
22315
4a176b23
GJL
223162013-01-07 Georg-Johann Lay <avr@gjlay.de>
22317
22318 PR55243
22319 * config/avr/t-avr: Don't automatically rebuild
22320 $(srcdir)/config/avr/t-multilib
22321 $(srcdir)/config/avr/avr-tables.opt
22322 $(srcdir)/doc/avr-mmcu.texi
22323 (avr-mcus): New phony target to build them on request.
22324 (s-avr-mlib, s-avr-mmcu-texi): Remove.
22325 * avr/avr-mcus.def: Adjust comments.
22326
c7afdc98
UB
223272013-01-07 Uros Bizjak <ubizjak@gmail.com>
22328
22329 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
22330
1ab05c31
RS
223312013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22332
22333 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
22334
488e3acc
RS
223352013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22336
22337 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
22338
a89599d2
DE
223392013-01-05 David Edelsohn <dje.gcc@gmail.com>
22340
22341 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
22342 to generate profiling.
22343 * config/rs6000/aix64.h (LIB_SPEC): Same.
22344
70f09188
AP
223452013-01-04 Andrew Pinski <apinski@cavium.com>
22346
22347 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
22348 New function.
22349 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
22350
918d445f
UB
223512013-01-04 Uros Bizjak <ubizjak@gmail.com>
22352
22353 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22354 unconditionally.
22355 (ix86_expand_move): Ditto.
22356 (ix86_zero_extend_to_Pmode): Ditto.
22357 (ix86_expand_call): Ditto.
22358 (ix86_expand_special_args_builtin): Ditto.
22359 (ix86_expand_builtin): Ditto.
22360
361618ec
RB
223612013-01-04 Richard Biener <rguenther@suse.de>
22362
22363 PR tree-optimization/55862
22364 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22365 translating them through PHI nodes.
22366
87eab554
MJ
223672013-01-04 Martin Jambor <mjambor@suse.cz>
22368
22369 PR tree-optimization/55755
22370 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22371 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22372
33879b9f
MP
223732013-01-04 Marek Polacek <polacek@redhat.com>
22374
22375 PR middle-end/55859
22376 * opts.c (default_options_optimization): Clarify error message.
22377
3068819a
RB
223782013-01-04 Richard Biener <rguenther@suse.de>
22379
22380 PR middle-end/55863
22381 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22382 reassociation.
22383
0e4ae794
JDA
223842013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22385
22386 PR target/53789
22387 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22388 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22389 references.
0e4ae794 22390
65c88cef
RH
223912013-01-03 Richard Henderson <rth@redhat.com>
22392
22393 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22394 after eliminating TLS symbols.
22395
8ac16127
MG
223962013-01-03 Marc Glisse <marc.glisse@inria.fr>
22397
22398 PR bootstrap/50167
22399 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22400 * graphite-poly.c (debug_gmp_value): Likewise.
22401
bb664f09
UB
224022013-01-03 Uros Bizjak <ubizjak@gmail.com>
22403
22404 PR target/55712
22405 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22406 selected code model, define __code_mode_small__, __code_model_medium__,
22407 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22408 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22409 xchg temporary register with %k. Declare temporary register as
22410 early clobbered.
22411 [__x86_64__]: For medium and large code models, preserve %rbx register.
22412
bcf1ef00
RB
224132013-01-03 Richard Biener <rguenther@suse.de>
22414
0506634a 22415 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22416 (dump_subscript): Adjust.
22417 (finalize_ddr_dependent): Do not dump redundant info.
22418 (analyze_siv_subscript): Adjust.
22419 (subscript_dependence_tester): Likewise.
22420 (compute_affine_dependence): Likewise.
22421
59fd17e3
RB
224222013-01-03 Richard Biener <rguenther@suse.de>
22423
22424 Revert
22425 2013-01-03 Richard Biener <rguenther@suse.de>
22426
22427 PR tree-optimization/55857
22428 * tree-vect-stmts.c (vectorizable_load): Do not setup
22429 re-alignment for invariant loads.
22430
22431 2013-01-02 Richard Biener <rguenther@suse.de>
22432
22433 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22434 invariant load do not generate a vector load from the scalar location.
59fd17e3 22435
595c2679
RB
224362013-01-03 Richard Biener <rguenther@suse.de>
22437
22438 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22439 for not vectorizing.
22440 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22441 not build INDIRECT_REFs, call get_name once only.
22442 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22443 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22444
90bb7d7a
RB
224452013-01-03 Richard Biener <rguenther@suse.de>
22446
22447 PR tree-optimization/55857
22448 * tree-vect-stmts.c (vectorizable_load): Do not setup
22449 re-alignment for invariant loads.
22450
f09b77ca
RB
224512013-01-03 Richard Biener <rguenther@suse.de>
22452
22453 PR lto/55848
22454 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22455 prefer a built-in decl.
22456
3461a16e
JJ
224572013-01-03 Jakub Jelinek <jakub@redhat.com>
22458
df8e2b4f
JJ
22459 * gcc.c (process_command): Update copyright notice dates.
22460 * gcov.c (print_version): Likewise.
22461 * gcov-dump.c (print_version): Likewise.
22462
3461a16e
JJ
22463 PR rtl-optimization/55838
22464 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22465 iv0.step, iv1.step and step.
22466
8b5546d6
JJ
224672013-01-03 Jakub Jelinek <jakub@redhat.com>
22468 Marc Glisse <marc.glisse@inria.fr>
22469
22470 PR tree-optimization/55832
22471 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22472 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22473 integer_{one,zero}_node.
22474
8ab1d2e9
JJ
224752013-01-03 Jakub Jelinek <jakub@redhat.com>
22476
22477 PR debug/54402
22478 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22479 * var-tracking.c (reverse_op): Don't add reverse ops to
22480 VALUEs that have already
0506634a 22481 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22482
5b9ad1d4
GP
224832013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22484
22485 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22486
e25a6711
TJ
224872013-01-02 Teresa Johnson <tejohnson@google.com>
22488
22489 * dumpfile.c (dump_loc): Print filename with location.
22490 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22491 new location_t parameter to emit complete unroll message with
22492 new dump framework.
22493 (canonicalize_loop_induction_variables): Compute loops location
22494 and pass to try_unroll_loop_completely.
22495 * loop-unroll.c (report_unroll_peel): New function.
22496 (peel_loops_completely): Use new dump format with location
22497 for main dumpfile message, and invoke report_unroll_peel on success.
22498 (decide_unrolling_and_peeling): Ditto.
22499 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22500 by report_unroll_peel.
22501 (decide_peel_completely): Ditto.
22502 (decide_unroll_constant_iterations): Ditto.
22503 (decide_unroll_runtime_iterations): Ditto.
22504 (decide_peel_simple): Ditto.
22505 (decide_unroll_stupid): Ditto.
22506 * cfgloop.c (get_loop_location): New function.
22507 * cfgloop.h (get_loop_location): Declare.
22508
77878621
ST
225092013-01-02 Sriraman Tallam <tmsriram@google.com>
22510
22511 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22512 NULL.
22513
9e65d03e
JDA
225142013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22515
22516 PR middle-end/55198
22517 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22518 BLKmode objects when EXPAND_MEMORY is specified.
22519
6a7da30f
ST
225202013-01-02 Sriraman Tallam <tmsriram@google.com>
22521
22522 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22523 in loop predicate.
22524 (fold_builtin_cpu): Do not share cpu model decls across statements.
22525
e78167f2
JM
225262013-01-02 Jason Merrill <jason@redhat.com>
22527
22528 PR c++/55804
22529 * tree.c (build_array_type_1): Revert earlier change.
22530
8c075fb4
YZ
225312013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22532
22533 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22534 "cortex-a57".
22535 * config/aarch64/aarch64-tune.md: Re-generate.
22536
0682ed3e
RB
225372013-01-02 Richard Biener <rguenther@suse.de>
22538
22539 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22540 invariant load do not generate a vector load from the scalar location.
0682ed3e 22541
b8f6a302
RB
225422013-01-02 Richard Biener <rguenther@suse.de>
22543
22544 PR bootstrap/55784
22545 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22546 * configure: Regenerate.
22547
04b80dbb
RS
225482013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22549
22550 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22551 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22552 (expand_builtin_int_roundingfn_2): Keep the original target around
22553 for the fallback case.
22554
635b0b0c
RS
225552013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22556
22557 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22558 to be clear for sign changes.
22559
42d57399
JH
225602013-01-01 Jan Hubicka <jh@suse.cz>
22561
22562 * ipa-inline-analysis.c: Fix formatting.
22563
5bb6669d
JJ
225642013-01-01 Jakub Jelinek <jakub@redhat.com>
22565
22566 PR tree-optimization/55831
22567 * tree-vect-loop.c (get_initial_def_for_induction): Use
22568 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22569\f
86a2db33 22570Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22571
22572Copying and distribution of this file, with or without modification,
22573are permitted in any medium without royalty provided the copyright
22574notice and this notice are preserved.