]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
ChangeLog: Add missing file to two entries.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
e1fb4ad3
RB
12013-09-12 Richard Biener <rguenther@suse.de>
2
3 PR tree-optimization/58404
4 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5 propagate non-invariant addresses into dereferences wrapped
6 in component references.
7
154c9188
RB
82013-09-12 Richard Biener <rguenther@suse.de>
9
10 PR tree-optimization/58402
11 * passes.def: Move pass_late_warn_uninitialized later.
12
7a300452
AM
132013-09-12 Andrew MacLeod <amacleod@redhat.com>
14
15 * tree-ssa.h: New. Move content from tree-flow.h and
16 tree-flow-inline.h.
17 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
18 Move prototypes belonging to tree-ssa.c.
19 * tree-flow-inline.h (redirect_edge_var_map_def,
20 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
21 tree-ssa.h.
22 * gimple.h: Adjust prototypes.
23 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to...
24 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
25 * tree.h: Move prototype to tree-ssa.h.
26 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
27 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
28 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
29 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
30 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
31 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
32 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
33 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
34 graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c,
35 graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c,
36 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c,
37 ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c,
38 ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c,
39 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
40 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
41 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
42 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
43 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
44 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
45 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
46 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
47 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
48 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
49 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
50 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
51 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
52 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
53 value-prof.c, var-tracking.c,
54 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
55
97463b2b
RB
562013-09-12 Richard Biener <rguenther@suse.de>
57
58 PR tree-optimization/58396
59 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
60 (build_rdg): Take a loop-nest parameter, fix memleaks.
61 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
62
80ecd89d
YR
632013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
64
65 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
66 for SLM.
67
893e85fa
CM
682013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
69
70 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
71 The FMA instruction names should have a 'v' prefix.
72
174ec470
RB
732013-09-12 Richard Biener <rguenther@suse.de>
74
75 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
76 (dot_rdg): Use popen instead of system in optional code.
77 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
78 (already_processed_vertex_p): Adjust.
79 (has_anti_or_output_dependence, predecessor_has_mem_write,
80 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
81 rdg_flag_uses): Remove.
82 (rdg_flag_vertex): Simplify.
83 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
84 remove recursion.
85 (build_rdg_partition_for_component): Process the first vertex
86 of a component only.
87 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
88
38c89763
AM
892013-09-12 Alan Modra <amodra@gmail.com>
90
91 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
92
3e3d9d17
DD
932013-09-11 DJ Delorie <dj@redhat.com>
94 Nick Clifton <nickc@redhat.com>
95
96 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
97 (rl78_stack_based_mem): New.
98 * config/rl78/constraints.md (Iv08): New.
99 (Iv16): New.
100 (Iv24): New.
101 (Is09): New.
102 (Is17): New.
103 (Is25): New.
104 (ISsi): New.
105 (IShi): New.
106 (ISqi): New.
107 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
108 (movhi): Likewise.
109 (movsi): Change from expand to insn-and-split.
110 (ashrsi3): Clobber AX.
111 (lshrsi3): New.
112 (ashlsi3): New.
113 (cbranchsi4): New.
114 * config/rl78/rl78.md (CC_REG): Fix.
115 (addsi3): Allow memory and immediate operands.
116 (addsi3_internal): Split into...
117 (addsi3_internal_virt): ...new, and ...
118 (addsi3_internal_real): ...new.
119 (subsi): New.
120 (subsi3_internal_virt): New.
121 (subsi3_internal_real): New.
122 (mulsi3): Add memory operand.
123 (mulsi3_rl78): Likewise.
124 (mulsi3_g13): Likewise.
125 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
126 (cbranchqi4_real): Add more constraint options.
127 (cbranchhi4_real): Expand pattern.
128 (cbranchhi4_real_signed): New.
129 (cbranchhi4_real_inverted): New.
130 (cbranchsi4_real_lt): New.
131 (cbranchsi4_real_ge): New.
132 (cbranchsi4_real_signed): New.
133 (cbranchsi4_real): New.
134 (peephole2): New.
893e85fa
CM
135 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
136 constant shifts.
3e3d9d17
DD
137 (lshrsi3_virt): Likewise.
138 (ashlsi3_virt): Likewise.
139 (cbranchqi4_virt_signed): New.
140 (cbranchhi4_virt_signed): New.
141 (cbranchsi4_virt): New.
142 * config/rl78/rl78.c: Whitespace fixes throughout.
143 (move_elim_pass): New.
144 (pass_data_rl78_move_elim): New.
145 (pass_rl78_move_elim): New.
146 (make_pass_rl78_move_elim): New.
147 (rl78_devirt_info): Run devirt earlier.
148 (rl78_move_elim_info): New.
149 (rl78_asm_file_start): Register it.
150 (rl78_split_movsi): New.
151 (rl78_as_legitimate_address): Allow virtual base registers when
152 appropriate.
153 (rl78_addr_space_convert): Remove spurious debug stuff.
154 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
155 (rl78_print_operand): More cases for not printing '#'.
156 (rl78_expand_compare): Remove most of the logic.
157 (content_memory): New.
158 (clear_content_memory): New.
159 (get_content_index): New.
160 (get_content_name): New.
161 (display_content_memory): New.
162 (update_content): New.
163 (record_content): New.
164 (already_contains): New.
165 (insn_ok_now): Re-recog insns with virtual registers.
166 (add_postponed_content_update): New.
167 (process_postponed_content_update): New.
168 (gen_and_emit_move): New.
893e85fa
CM
169 (transcode_memory_rtx): Record new location content.
170 Use gen_and_emit_move.
3e3d9d17
DD
171 (force_into_acc): New.
172 (move_to_acc): Use gen_and_emit_move.
173 (move_from_acc): Likewise.
174 (move_acc_to_reg): Likewise.
175 (move_to_x): Likewise.
176 (move_to_hl): Likewise.
177 (move_to_de): Likewise.
178 (rl78_alloc_physical_registers_op1): Record location content.
179 (has_constraint): New.
180 (rl78_alloc_physical_registers_op2): Record location content.
181 Optimize use of HL.
182 (rl78_alloc_physical_registers_ro1): Likewise.
183 (rl78_alloc_physical_registers_cmp): Likewise.
184 (rl78_alloc_physical_registers_umul): Likewise.
185 (rl78_alloc_address_registers_macax): New.
186 (rl78_alloc_physical_registers): Initialize and set location
187 content memory as needed.
188 (rl78_reorg): Make sure split2 is called.
189 (rl78_rtx_costs): New.
190
088845a5
RS
1912013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
192
193 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
194 for (not (neg ...)) and (neg (not ...)) cases.
195
5c2961cf
RB
1962013-09-11 Richard Biener <rguenther@suse.de>
197
198 PR middle-end/58377
199 * passes.def: Split critical edges before late uninit warning passes.
200 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
201
427e6a14
JJ
2022013-09-11 Jakub Jelinek <jakub@redhat.com>
203
204 PR tree-optimization/58385
205 * fold-const.c (build_range_check): If both low and high are NULL,
206 use omit_one_operand_loc to preserve exp side-effects.
207
df45c0cc
KT
2082013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
209
210 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
211
80ab0b19
RB
2122013-09-11 Richard Biener <rguenther@suse.de>
213
214 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
215 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
216 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
217 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
218 stmts_from_loop, known_dependences_p, build_empty_rdg,
219 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
220 * tree-loop-distribution.c: ... here.
221 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
222 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
223 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
224 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
225 * tree-loop-distribution.c: ... here.
226 * tree-loop-distribution.c: Include gimple-pretty-print.h.
227 (struct partition_s): Add loops member.
228 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
229 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
230 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
231
85a77221
AI
2322013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
233 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
234 Sergey Lega <sergey.s.lega@intel.com>
235 Anna Tikhonova <anna.tikhonova@intel.com>
236 Ilya Tocar <ilya.tocar@intel.com>
237 Andrey Turetskiy <andrey.turetskiy@intel.com>
238 Ilya Verbin <ilya.verbin@intel.com>
239 Kirill Yukhin <kirill.yukhin@intel.com>
240 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
241
242 * config/i386/constraints.md (k): New.
243 (Yk): Ditto.
244 * config/i386/i386.c (const regclass_map): Add new mask registers.
245 (dbx_register_map): Ditto.
246 (dbx64_register_map): Ditto.
247 (svr4_dbx_register_map): Ditto.
248 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
249 disabled.
250 (ix86_preferred_reload_class): Disable constants for mask registers.
251 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
252 (ix86_hard_regno_mode_ok): Support new mask registers.
253 (x86_order_regs_for_local_alloc): Ditto.
254 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
255 (FIXED_REGISTERS): Add new mask registers.
256 (CALL_USED_REGISTERS): Ditto.
257 (REG_ALLOC_ORDER): Ditto.
258 (VALID_MASK_REG_MODE): New.
259 (FIRST_MASK_REG): Ditto.
260 (LAST_MASK_REG): Ditto.
261 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
262 (MAYBE_MASK_CLASS_P): New.
263 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
264 (REG_CLASS_CONTENTS): Ditto.
265 (MASK_REGNO_P): New.
266 (ANY_MASK_REG_P): Ditto.
267 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
268 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
269 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
270 mask registers.
85a77221
AI
271 (attribute "type"): Add mskmov, msklog.
272 (attribute "length_immediate"): Support them.
273 (attribute "memory"): Ditto.
274 (attribute "prefix_0f"): Ditto.
275 (*movhi_internal): Support new mask registers.
276 (*movqi_internal): Ditto.
277 (define_split): Split out clobber pattern is a logic
278 insn on mask registers.
279 (*k<logic><mode>): New.
280 (*andhi_1): Extend to support mask regs.
281 (*andqi_1): Extend to support mask regs.
282 (kandn<mode>): New.
283 (define_split): Split and-not to and and not if operands
284 are not mask regs.
285 (*<code><mode>_1): Separate HI mode to new pattern...
286 (*<code>hi_1): This.
287 (*<code>qi_1): Extend to support mask regs.
288 (kxnor<mode>): New.
289 (kortestzhi): Ditto.
290 (kortestchi): Ditto.
291 (kunpckhi): Ditto.
292 (*one_cmpl<mode>2_1): Remove HImode and handle it...
293 (*one_cmplhi2_1): ...Here, now with mask registers support.
294 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
295 (HI/QImode arithmetics splitter): Don't split if mask registers
296 are used.
85a77221
AI
297 (HI/QImode not splitter): Ditto.
298 * config/i386/predicated.md (mask_reg_operand): New.
299 (general_reg_operand): Ditto.
300
7e570821
AI
3012013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
302
303 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
304 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
305
9e1376e9
JL
3062013-09-10 Jeff Law <law@redhat.com>
307
308 PR tree-optimization/58380
309 * tree-ssa-threadupdate.c (thread_block): Recognize another case
310 of threading through a buried loop header.
311
312 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
313 return value for single successor case.
314
5bbcb888
JH
3152013-09-10 Jan Hubicka <jh@suse.cz>
316
317 * ipa-devirt.c (ipa_devirt): Enable with LTO.
318
d742ff4b
RE
3192013-09-10 Richard Earnshaw <rearnsha@arm.com>
320
321 PR target/58361
322 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
323 support conditional execution.
324 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
325
b0681c9e
VM
3262013-09-10 Vladimir Makarov <vmakarov@redhat.com>
327
328 * lra.c (lra): Clear lra_optional_reload_pseudos before every
329 constraint pass.
330 * lra-constraints.c (curr_insn_transform): Switch on optional
331 reloads. Check destination too to check move insn.
332 (undo_optional_reloads): Add check that the original peudo did not
333 changed its allocation and the optional reload was inherited on
334 last inheritance pass. Break loop after deciding to keep optional
335 reload.
336 (lra_undo_inheritance): Add check that inherited pseudo still in
337 memory.
338
c9b1c957
JG
3392013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
340
341 * config/aarch64/aarch64.md (generic_sched): New.
342 * config/aarch64/aarch64-generic.md (load): Make conditional
343 on generic_sched attribute.
344 (nonload): Likewise.
345
82d618d3
JH
3462013-09-10 Jan Hubicka <jh@suse.cz>
347
348 * lto-cgraph.c: Include ipa-utils.h.
349 (compute_ltrans_boundary): Also add possible targets into the boundary.
350
668b6894
JH
3512013-09-10 Jan Hubicka <jh@suse.cz>
352
353 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
354 VAR_DECL of vtable rather than full expression.
355
4f90d3e0
JH
3562013-09-10 Jan Hubicka <jh@suse.cz>
357 Paolo Carlini <paolo.carlini@oracle.com>
358
359 * cgraphunit.c (analyze_functions): Save input_location, set it
360 to UNKNOWN_LOCATION and restore it at the end.
361
39e87baf
MJ
3622013-09-10 Martin Jambor <mjambor@suse.cz>
363
364 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
365 represented by a thunk.
366
581aedec
JL
3672013-09-10 Jeff Law <law@redhat.com>
368
369 PR tree-optimization/58343
370 * tree-ssa-threadupdate.c (thread_block): Identify and disable
371 jump threading requests through loop headers buried in the middle
372 of a jump threading path.
373
374 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
375 in return value/type.
376
84cf4ab6
JJ
3772013-09-10 Jakub Jelinek <jakub@redhat.com>
378
379 PR rtl-optimization/58365
380 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
381 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
382 it differs.
383
447dd906
RB
3842013-09-10 Richard Biener <rguenther@suse.de>
385
386 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
387 * tree-data-ref.c (create_rdg_vertices): Collect all data
388 references, signal failure to the caller, use data-ref API.
893e85fa
CM
389 (build_rdg): Compute data references only once. Maintain lifetime
390 of data references and data dependences from within RDG.
447dd906
RB
391 (free_rdg): Free dependence relations.
392 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
393 inventing extra dependences.
394 (distribute_loop): Update for RDG API changes.
395
f14a7324
KT
3962013-09-10 Kai Tietz <ktietz@redhat.com>
397
398 * doc/invoke.texi (fms-extensions): Document changed
399 behavior for ms-abi targets.
400 * config/i386/i386.c (ix86_option_override_internal):
401 Set default value of option -fms-extension for ms-abi targets.
402
ff131f26
MZ
4032013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
404
405 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
406
33115a2c
AM
4072013-09-10 Alan Modra <amodra@gmail.com>
408
409 PR target/58330
410 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
411
b6872a13
AM
4122013-09-10 Alan Modra <amodra@gmail.com>
413
414 * config/rs6000/predicates.md (add_cint_operand): New.
415 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
416 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
417 using add_cint_operand.
418 (largetoc_high_plus_aix): Likewise.
419
28fd0ba2
JJ
4202013-09-09 Jakub Jelinek <jakub@redhat.com>
421
422 PR tree-optimization/58364
423 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
424 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
425 the current range can't be an unconditional true or false.
426
552d99fe
JG
4272013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
428
429 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
430
f43245d1
UB
4312013-09-09 Uros Bizjak <ubizjak@gmail.com>
432
433 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
434
c9b0866a
PC
4352013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
436
437 PR c++/43452
438 * doc/invoke.texi (-Wdelete-incomplete): Document it.
439
78d8b9f0
IB
4402013-09-09 Ian Bolton <ian.bolton@arm.com>
441
442 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
443 NO_REGS for immediate that can't be moved directly into FP_REGS.
444
274b2532
KT
4452013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
446
447 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
448 comparison with negated operand.
c9b0866a
PC
449 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
450 RTL form.
274b2532 451
467a3558
RB
4522013-09-09 Richard Biener <rguenther@suse.de>
453
454 PR middle-end/58326
455 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
456 of a subloop record all its block as affecting loop-closed SSA form.
457
088c5368
RS
4582013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
459
460 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
461 of an rtx/bitpos pair.
462 (store_fixed_bit_field): Update accordingly.
463
69db2d57
RS
4642013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
465
466 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
467 GEN_INT.
468 * builtins.c (expand_errno_check): Likewise.
469 * dwarf2cfi.c (init_return_column_size): Likewise.
470 * except.c (sjlj_mark_call_sites): Likewise.
471 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
472 * lra-constraints.c (emit_inc): Likewise.
473 * ree.c (combine_set_extension): Likewise.
474 * regmove.c (fixup_match_2): Likewise.
475 * reload1.c (inc_for_reload): Likewise.
476
69a59f0f
RS
4772013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
478
479 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
480 (force_to_mode, simplify_shift_const_1, simplify_comparison):
481 Use gen_int_mode with the mode of the associated simplify_* call.
482 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
483 * expmed.c (expand_shift_1): Likewise.
484 * function.c (instantiate_virtual_regs_in_insn): Likewise.
485 * loop-iv.c (iv_number_of_iterations): Likewise.
486 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
487 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
488
2f1cd2eb
RS
4892013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
490
491 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
492 of the associated expand_* call.
493 (asan_emit_stack_protection): Likewise.
494 * builtins.c (round_trampoline_addr): Likewise.
495 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
496 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
497 (emit_store_flag): Likewise.
498 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
499 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
500 Likewise.
501 * function.c (instantiate_virtual_regs_in_insn): Likewise.
502 * ifcvt.c (noce_try_store_flag_constants): Likewise.
503 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
504 * modulo-sched.c (generate_prolog_epilog): Likewise.
505 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
506 (expand_ctz, expand_ffs, expand_unop): Likewise.
507
4789c0ce
RS
5082013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
509
510 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
511 of the associated gen_rtx_* call.
512 * caller-save.c (init_caller_save): Likewise.
513 * combine.c (find_split_point, make_extraction): Likewise.
514 (make_compound_operation): Likewise.
515 * dwarf2out.c (mem_loc_descriptor): Likewise.
516 * explow.c (plus_constant, probe_stack_range): Likewise.
517 * expmed.c (expand_mult_const): Likewise.
518 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
519 * reload1.c (init_reload): Likewise.
520 * valtrack.c (cleanup_auto_inc_dec): Likewise.
521 * var-tracking.c (adjust_mems): Likewise.
522 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
523 rather than gen_rtx_fmt_ee.
524
a811f7cb
JH
5252013-09-09 Jan Hubicka <jh@suse.cz>
526
527 PR middle-end/58294
528 * value-prof.c (gimple_ic): Copy also abnormal edges.
529
dcad1dd3
RS
5302013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
531
532 * asan.c (asan_shadow_cst): Use gen_int_mode.
533
daf5c770
JH
5342013-09-08 Jan Hubicka <jh@suse.cz>
535
536 * ipa-profile.c: Add toplevel comment.
537 (ipa_propagate_frequency_1): Be more conservative when profile is read.
538 (contains_hot_call_p): New function.
539 (ipa_propagate_frequency): Set frequencies based on counts when
540 profile is read.
541 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
542 profile; do not tamper with profile after inlining if it is read.
543
a12cd2db
JH
5442013-09-08 Jan Hubicka <jh@suse.cz>
545
546 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
547 speculative edges.
548
856a1588
JH
5492013-09-08 Jan Hubicka <jh@suse.cz>
550
551 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
552 summary generation.
553
4f4b0b73
JL
5542013-09-08 Jeff Law <law@redhat.com>
555
556 PR bootstrap/58340
557 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
558 of 'found'.
559
cc4029ee
AK
5602013-09-08 Andi Kleen <ak@linux.intel.com>
561
562 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
563
7b395ddd
JH
5642013-09-08 Jan Hubicka <jh@suse.cz>
565
566 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
567
c34c46dd
RS
5682013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
569
570 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
571 for non-debug insns.
572 * lra.c (new_insn_reg): Take the containing insn as a parameter.
573 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
574 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
575 accordingly.
576
3462aa02
JH
5772013-09-08 Jan Hubicka <jh@suse.cz>
578
579 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
580 targets and devirtualize to BUILT_IN_UNREACHABLE.
581 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
582 * ipa.c (walk_polymorphic_call_targets): New function.
583 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
584 functions; use the new timevar.
585 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
586 was removed from the program.
587 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
588 not consider it in the walk when its vtable is dead.
589 (possible_polymorphic_call_targets_1): Pass anonymous flag to
590 record_binfo.
591 (devirt_variable_node_removal_hook): New function.
592 (possible_polymorphic_call_targets): Also register
593 devirt_variable_node_removal_hook.
594 (ipa_devirt): Do not do non-speculative devirtualization.
595 (gate_ipa_devirt): One execute if devirtualizing speculatively.
596
26e5b0fd
JH
5972013-09-08 Jan Hubicka <jh@suse.cz>
598
599 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
600 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
601 varpool_remove_variable_insertion_hook): Declare.
602 * varpool.c (varpool_node_hook_list): New structure.
603 (first_varpool_node_removal_hook,
604 first_varpool_variable_insertion_hook): New variables.
605 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
606 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
607 varpool_remove_variable_insertion_hook,
608 varpool_call_variable_insertion_hooks): New functions.
609 (varpool_remove_node): Use it.
610
97f1f314 6112013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 612
97f1f314
PC
613 PR c++/54941
614 * diagnostic.c (diagnostic_build_prefix): When s.file is
615 "<built-in>" don't output line and column numbers.
6df2ca09 616
bcb650cb
JH
6172013-09-06 Jan Hubicka <jh@suse.cz>
618
619 * cgraphunit.c (expand_thunk): Get body before touching arguments.
620 * lto-streamer-out.c: Stream thunks, too.
621 * lto-streamer-in.c (input_function): Pop cfun here
622 (lto_read_body): Instead of here.
623
87f3fea8
CT
6242013-09-06 Caroline Tice <cmtice@google.com>
625
626 * doc/install.texi: Add documentation for the --enable-vtable-verify
627 and the --disable-libvtv configure options.
628
5e8d9b45
JL
6292013-09-06 Jeff Law <law@redhat.com>
630
631 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
632 edge implied equivalences into successor phis.
633
3a001aff
JR
6342013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
635
636 * resource.c (mark_referenced_resources): Handle COND_EXEC.
637
6382013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
639
640 * resource.c (mark_target_live_regs): Compute resources taking
641 into account if a call is predicated or not.
642
2c641f8b
EB
6432013-09-06 Eric Botcazou <ebotcazou@adacore.com>
644
645 * toplev.c (output_stack_usage): Be prepared for suffixes created by
646 the compiler in the function names.
647
a81b0a3d
JH
6482013-09-06 Jan Hubicka <jh@suse.cz>
649
650 PR middle-end/58094
651 * ipa-inline.c (has_caller_p): New function.
652 (want_inline_function_to_all_callers_p): Use it.
653 (sum_callers, inline_to_all_callers): Break out from ...
654 (ipa_inline): ... here.
655
68e4ca7e
JH
6562013-09-06 Jan Hubicka <jh@suse.cz>
657
2c641f8b
EB
658 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
659 only when AVX is enabled.
68e4ca7e 660
3c73e2fe
JG
6612013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
662
663 * config/aarch64/aarch64.md
664 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
665 is fpsimd_<load/store>2.
666 (load_pair<mode>): Likewise.
667 (store_pair<mode>): Likewise.
668
8c48eecd
JG
6692013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
670
671 * config/arm/types.md (type): Add "mrs" type.
672 * config/aarch64/aarch64.md
673 (aarch64_load_tp_hard): Make type "mrs".
674 * config/arm/arm.md
675 (load_tp_hard): Make type "mrs".
676 * config/arm/cortex-a15.md: Update with new attributes.
677 * config/arm/cortex-a5.md: Update with new attributes.
678 * config/arm/cortex-a53.md: Update with new attributes.
679 * config/arm/cortex-a7.md: Update with new attributes.
680 * config/arm/cortex-a8.md: Update with new attributes.
681 * config/arm/cortex-a9.md: Update with new attributes.
682 * config/arm/cortex-m4.md: Update with new attributes.
683 * config/arm/cortex-r4.md: Update with new attributes.
684 * config/arm/fa526.md: Update with new attributes.
685 * config/arm/fa606te.md: Update with new attributes.
686 * config/arm/fa626te.md: Update with new attributes.
687 * config/arm/fa726te.md: Update with new attributes.
688
9ea187a5
JG
6892013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
690
691 * config/aarch64/aarch64.md
692 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
693 (*movtf_aarch64): Likewise.
694 * config/arm/arm.md
695 (thumb1_movdi_insn): Use "multiple" for type where more than one
696 instruction is used for a move.
697 (*arm32_movhf): Likewise.
698 (*thumb_movdf_insn): Likewise.
699
292b89b3
JG
7002013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
701
702 * config/arm/types.md (type): Rename fcpys to fmov.
703 * config/arm/vfp.md
704 (*arm_movsi_vfp): Rename type fcpys as fmov.
705 (*thumb2_movsi_vfp): Likewise
706 (*movhf_vfp_neon): Likewise
707 (*movhf_vfp): Likewise
708 (*movsf_vfp): Likewise
709 (*thumb2_movsf_vfp): Likewise
710 (*movsfcc_vfp): Likewise
711 (*thumb2_movsfcc_vfp): Likewise
712 * config/aarch64/aarch64-simd.md
713 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
714 * config/aarch64/aarch64.md
715 (*movsi_aarch64): Replace type mov_reg with fmovs.
716 (*movdi_aarch64): Likewise
717 (*movsf_aarch64): Likewise
718 (*movdf_aarch64): Likewise
719 * config/arm/arm.c
720 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
721 * config/arm/iwmmxt.md
722 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
723 * config/arm/arm1020e.md: Update with new attributes.
724 * config/arm/cortex-a15-neon.md: Update with new attributes.
725 * config/arm/cortex-a5.md: Update with new attributes.
726 * config/arm/cortex-a53.md: Update with new attributes.
727 * config/arm/cortex-a7.md: Update with new attributes.
728 * config/arm/cortex-a8-neon.md: Update with new attributes.
729 * config/arm/cortex-a9.md: Update with new attributes.
730 * config/arm/cortex-m4-fpu.md: Update with new attributes.
731 * config/arm/cortex-r4f.md: Update with new attributes.
732 * config/arm/marvell-pj4.md: Update with new attributes.
733 * config/arm/vfp11.md: Update with new attributes.
734
6a24a83e
JG
7352013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
736
737 * config/aarch64/aarch64.md
738 (*madd<mode>): Fix type attribute.
739 (*maddsi_uxtw): Likewise.
740 (*msub<mode>): Likewise.
741 (*msubsi_uxtw): Likewise.
742 (<su_optab>maddsidi4): Likewise.
743 (<su_optab>msubsidi4): Likewise.
744
b86923f0
JG
7452013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
746
747 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
748 * config/arm/arm.md (core_cycles): Remove fdiv.
749 * config/arm/vfp.md:
750 (*sqrtsf2_vfp): Update for attribute changes.
751 (*sqrtdf2_vfp): Likewise.
752 * config/aarch64/aarch64.md:
753 (sqrt<mode>2): Update for attribute changes.
754 * config/arm/arm1020e.md: Update with new attributes.
755 * config/arm/cortex-a15-neon.md: Update with new attributes.
756 * config/arm/cortex-a5.md: Update with new attributes.
757 * config/arm/cortex-a53.md: Update with new attributes.
758 * config/arm/cortex-a7.md: Update with new attributes.
759 * config/arm/cortex-a8-neon.md: Update with new attributes.
760 * config/arm/cortex-a9.md: Update with new attributes.
761 * config/arm/cortex-m4-fpu.md: Update with new attributes.
762 * config/arm/cortex-r4f.md: Update with new attributes.
763 * config/arm/marvell-pj4.md: Update with new attributes.
764 * config/arm/vfp11.md: Update with new attributes.
765
7b49c9e1
JG
7662013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
767
768 * config/arm/types.md
769 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
770 * config/aarch64/aarch64.md
771 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
772 new attributes.
773 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
774 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
775 (float<GPI:mode><GPF:mode>2): Likewise.
776 * config/arm/vfp.md
777 (*truncsisf2_vfp): Update with new attributes.
778 (*truncsidf2_vfp): Likewise.
779 (fixuns_truncsfsi2): Likewise.
780 (fixuns_truncdfsi2): Likewise.
781 (*floatsisf2_vfp): Likewise.
782 (*floatsidf2_vfp): Likewise.
783 (floatunssisf2): Likewise.
784 (floatunssidf2): Likewise.
785 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
786 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
787 * config/arm/arm1020e.md: Update with new attributes.
788 * config/arm/cortex-a15-neon.md: Update with new attributes.
789 * config/arm/cortex-a5.md: Update with new attributes.
790 * config/arm/cortex-a53.md: Update with new attributes.
791 * config/arm/cortex-a7.md: Update with new attributes.
792 * config/arm/cortex-a8-neon.md: Update with new attributes.
793 * config/arm/cortex-a9.md: Update with new attributes.
794 * config/arm/cortex-m4-fpu.md: Update with new attributes.
795 * config/arm/cortex-r4f.md: Update with new attributes.
796 * config/arm/marvell-pj4.md: Update with new attributes.
797 * config/arm/vfp11.md: Update with new attributes.
798
e7df8af8
JG
7992013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
800
801 * config/aarch64/arm_neon.h
802 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
803 (vqtbx<1,2,3,4><q>_s8): Likewise.
804
594726e4
JG
8052013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
806
f43245d1
UB
807 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
808 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
809 (add<mode>3): Add type attribute.
810 (add<mode>3): Likewise.
811 (usadd<mode>3): Likewise.
812 (ssadd<mode>3): Likewise.
813 (sub<mode>3): Likewise.
814 (sub<mode>3): Likewise.
815 (ussub<mode>3): Likewise.
816 (sssub<mode>3): Likewise.
817 (ssmulsa3): Likewise.
818 (usmulusa3): Likewise.
819 (arm_usatsihi): Likewise.
820 * config/arm/vfp.md
821 (*movdi_vfp): Add types for all instructions.
822 (*movdi_vfp_cortexa8): Likewise.
823 (*movhf_vfp_neon): Likewise.
824 (*movhf_vfp): Likewise.
825 (*movdf_vfp): Likewise.
826 (*thumb2_movdf_vfp): Likewise.
827 (*thumb2_movdfcc_vfp): Likewise.
828 * config/arm/arm.md: Add type attribute to all insn patterns.
829 (*thumb1_adddi3): Add type attribute.
830 (*arm_adddi3): Likewise.
831 (*adddi_sesidi_di): Likewise.
832 (*adddi_zesidi_di): Likewise.
833 (*thumb1_addsi3): Likewise.
834 (addsi3_compare0): Likewise.
835 (*addsi3_compare0_scratch): Likewise.
836 (*compare_negsi_si): Likewise.
837 (cmpsi2_addneg): Likewise.
838 (*addsi3_carryin_<optab>): Likewise.
839 (*addsi3_carryin_alt2_<optab>): Likewise.
840 (*addsi3_carryin_clobercc_<optab>): Likewise.
841 (*subsi3_carryin): Likewise.
842 (*subsi3_carryin_const): Likewise.
843 (*subsi3_carryin_compare): Likewise.
844 (*subsi3_carryin_compare_const): Likewise.
845 (*arm_subdi3): Likewise.
846 (*thumb_subdi3): Likewise.
847 (*subdi_di_zesidi): Likewise.
848 (*subdi_di_sesidi): Likewise.
849 (*subdi_zesidi_di): Likewise.
850 (*subdi_sesidi_di): Likewise.
851 (*subdi_zesidi_ze): Likewise.
852 (thumb1_subsi3_insn): Likewise.
853 (*arm_subsi3_insn): Likewise.
854 (*anddi3_insn): Likewise.
855 (*anddi_zesidi_di): Likewise.
856 (*anddi_sesdi_di): Likewise.
857 (*ne_zeroextracts): Likewise.
858 (*ne_zeroextracts): Likewise.
859 (*ite_ne_zeroextr): Likewise.
860 (*ite_ne_zeroextr): Likewise.
861 (*anddi_notdi_di): Likewise.
862 (*anddi_notzesidi): Likewise.
863 (*anddi_notsesidi): Likewise.
864 (andsi_notsi_si): Likewise.
865 (thumb1_bicsi3): Likewise.
866 (*iordi3_insn): Likewise.
867 (*iordi_zesidi_di): Likewise.
868 (*iordi_sesidi_di): Likewise.
869 (*thumb1_iorsi3_insn): Likewise.
870 (*xordi3_insn): Likewise.
871 (*xordi_zesidi_di): Likewise.
872 (*xordi_sesidi_di): Likewise.
873 (*arm_xorsi3): Likewise.
874 (*andsi_iorsi3_no): Likewise.
875 (*smax_0): Likewise.
876 (*smax_m1): Likewise.
877 (*arm_smax_insn): Likewise.
878 (*smin_0): Likewise.
879 (*arm_smin_insn): Likewise.
880 (*arm_umaxsi3): Likewise.
881 (*arm_uminsi3): Likewise.
882 (*minmax_arithsi): Likewise.
883 (*minmax_arithsi_): Likewise.
884 (*satsi_<SAT:code>): Likewise.
885 (arm_ashldi3_1bit): Likewise.
886 (arm_ashrdi3_1bit): Likewise.
887 (arm_lshrdi3_1bit): Likewise.
888 (*arm_negdi2): Likewise.
889 (*thumb1_negdi2): Likewise.
890 (*arm_negsi2): Likewise.
891 (*thumb1_negsi2): Likewise.
892 (*negdi_extendsid): Likewise.
893 (*negdi_zero_extend): Likewise.
894 (*arm_abssi2): Likewise.
895 (*thumb1_abssi2): Likewise.
896 (*arm_neg_abssi2): Likewise.
897 (*thumb1_neg_abss): Likewise.
898 (one_cmpldi2): Likewise.
899 (extend<mode>di2): Likewise.
900 (*compareqi_eq0): Likewise.
901 (*arm_extendhisi2addsi): Likewise.
902 (*arm_movdi): Likewise.
903 (*thumb1_movdi_insn): Likewise.
904 (*arm_movt): Likewise.
905 (*thumb1_movsi_insn): Likewise.
906 (pic_add_dot_plus_four): Likewise.
907 (pic_add_dot_plus_eight): Likewise.
908 (tls_load_dot_plus_eight): Likewise.
909 (*thumb1_movhi_insn): Likewise.
910 (*thumb1_movsf_insn): Likewise.
911 (*movdf_soft_insn): Likewise.
912 (*thumb_movdf_insn): Likewise.
913 (cbranchsi4_insn): Likewise.
914 (cbranchsi4_scratch): Likewise.
915 (*negated_cbranchsi4): Likewise.
916 (*tbit_cbranch): Likewise.
917 (*tlobits_cbranch): Likewise.
918 (*tstsi3_cbranch): Likewise.
919 (*cbranchne_decr1): Likewise.
920 (*addsi3_cbranch): Likewise.
921 (*addsi3_cbranch_scratch): Likewise.
922 (*arm_cmpdi_insn): Likewise.
923 (*arm_cmpdi_unsig): Likewise.
924 (*arm_cmpdi_zero): Likewise.
925 (*thumb_cmpdi_zero): Likewise.
926 (*deleted_compare): Likewise.
927 (*mov_scc): Likewise.
928 (*mov_negscc): Likewise.
929 (*mov_notscc): Likewise.
930 (*cstoresi_eq0_thumb1_insn): Likewise.
931 (cstoresi_nltu_thumb1): Likewise.
932 (cstoresi_ltu_thu): Likewise.
933 (thumb1_addsi3_addgeu): Likewise.
934 (*arm_jump): Likewise.
935 (*thumb_jump): Likewise.
936 (*check_arch2): Likewise.
937 (arm_casesi_internal): Likewise.
938 (thumb1_casesi_dispatch): Likewise.
939 (*arm_indirect_jump): Likewise.
940 (*thumb1_indirect_jump): Likewise.
941 (nop): Likewise.
942 (*and_scc): Likewise.
943 (*ior_scc): Likewise.
944 (*compare_scc): Likewise.
945 (*cond_move): Likewise.
946 (*cond_arith): Likewise.
947 (*cond_sub): Likewise.
948 (*cmp_ite0): Likewise.
949 (*cmp_ite1): Likewise.
950 (*cmp_and): Likewise.
951 (*cmp_ior): Likewise.
952 (*ior_scc_scc): Likewise.
953 (*ior_scc_scc_cmp): Likewise.
954 (*and_scc_scc): Likewise.
955 (*and_scc_scc_cmp): Likewise.
956 (*and_scc_scc_nod): Likewise.
957 (*negscc): Likewise.
958 (movcond_addsi): Likewise.
959 (movcond): Likewise.
960 (*ifcompare_plus_move): Likewise.
961 (*if_plus_move): Likewise.
962 (*ifcompare_move_plus): Likewise.
963 (*if_move_plus): Likewise.
964 (*ifcompare_arith_arith): Likewise.
965 (*if_arith_arith): Likewise.
966 (*ifcompare_arith_move): Likewise.
967 (*if_arith_move): Likewise.
968 (*ifcompare_move_arith): Likewise.
969 (*if_move_arith): Likewise.
970 (*ifcompare_move_not): Likewise.
971 (*if_move_not): Likewise.
972 (*ifcompare_not_move): Likewise.
973 (*if_not_move): Likewise.
974 (*ifcompare_shift_move): Likewise.
975 (*if_shift_move): Likewise.
976 (*ifcompare_move_shift): Likewise.
977 (*if_move_shift): Likewise.
978 (*ifcompare_shift_shift): Likewise.
979 (*ifcompare_not_arith): Likewise.
980 (*ifcompare_arith_not): Likewise.
981 (*if_arith_not): Likewise.
982 (*ifcompare_neg_move): Likewise.
983 (*if_neg_move): Likewise.
984 (*ifcompare_move_neg): Likewise.
985 (*if_move_neg): Likewise.
986 (prologue_thumb1_interwork): Likewise.
987 (*cond_move_not): Likewise.
988 (*sign_extract_onebit): Likewise.
989 (*not_signextract_onebit): Likewise.
990 (stack_tie): Likewise.
991 (align_4): Likewise.
992 (align_8): Likewise.
993 (consttable_end): Likewise.
994 (consttable_1): Likewise.
995 (consttable_2): Likewise.
996 (consttable_4): Likewise.
997 (consttable_8): Likewise.
998 (consttable_16): Likewise.
999 (*thumb1_tablejump): Likewise.
1000 (prefetch): Likewise.
1001 (force_register_use): Likewise.
1002 (thumb_eh_return): Likewise.
1003 (load_tp_hard): Likewise.
1004 (load_tp_soft): Likewise.
1005 (tlscall): Likewise.
1006 (*arm_movtas_ze): Likewise.
1007 (*arm_rev): Likewise.
1008 (*arm_revsh): Likewise.
1009 (*arm_rev16): Likewise.
1010 * config/arm/thumb2.md
1011 (*thumb2_smaxsi3): Likewise.
1012 (*thumb2_sminsi3): Likewise.
1013 (*thumb32_umaxsi3): Likewise.
1014 (*thumb2_uminsi3): Likewise.
1015 (*thumb2_negdi2): Likewise.
1016 (*thumb2_abssi2): Likewise.
1017 (*thumb2_neg_abss): Likewise.
1018 (*thumb2_movsi_insn): Likewise.
1019 (tls_load_dot_plus_four): Likewise.
1020 (*thumb2_movhi_insn): Likewise.
1021 (*thumb2_mov_scc): Likewise.
1022 (*thumb2_mov_negs): Likewise.
1023 (*thumb2_mov_negs): Likewise.
1024 (*thumb2_mov_nots): Likewise.
1025 (*thumb2_mov_nots): Likewise.
1026 (*thumb2_movsicc_): Likewise.
1027 (*thumb2_movsfcc_soft_insn): Likewise.
1028 (*thumb2_indirect_jump): Likewise.
1029 (*thumb2_and_scc): Likewise.
1030 (*thumb2_ior_scc): Likewise.
1031 (*thumb2_ior_scc_strict_it): Likewise.
1032 (*thumb2_cond_move): Likewise.
1033 (*thumb2_cond_arith): Likewise.
1034 (*thumb2_cond_ari): Likewise.
1035 (*thumb2_cond_sub): Likewise.
1036 (*thumb2_negscc): Likewise.
1037 (*thumb2_movcond): Likewise.
1038 (thumb2_casesi_internal): Likewise.
1039 (thumb2_casesi_internal_pic): Likewise.
1040 (*thumb2_alusi3_short): Likewise.
1041 (*thumb2_mov<mode>_shortim): Likewise.
1042 (*thumb2_addsi_short): Likewise.
1043 (*thumb2_subsi_short): Likewise.
1044 (thumb2_addsi3_compare0): Likewise.
1045 (*thumb2_cbz): Likewise.
1046 (*thumb2_cbnz): Likewise.
1047 (*thumb2_one_cmplsi2_short): Likewise.
1048 (*thumb2_negsi2_short): Likewise.
1049 (*orsi_notsi_si): Likewise.
1050 * config/arm/arm1020e.md: Update with new attributes.
1051 * config/arm/arm1026ejs.md: Update with new attributes.
1052 * config/arm/arm1136jfs.md: Update with new attributes.
1053 * config/arm/arm926ejs.md: Update with new attributes.
1054 * config/arm/cortex-a15.md: Update with new attributes.
1055 * config/arm/cortex-a5.md: Update with new attributes.
1056 * config/arm/cortex-a53.md: Update with new attributes.
1057 * config/arm/cortex-a7.md: Update with new attributes.
1058 * config/arm/cortex-a8.md: Update with new attributes.
1059 * config/arm/cortex-a9.md: Update with new attributes.
1060 * config/arm/cortex-m4.md: Update with new attributes.
1061 * config/arm/cortex-r4.md: Update with new attributes.
1062 * config/arm/fa526.md: Update with new attributes.
1063 * config/arm/fa606te.md: Update with new attributes.
1064 * config/arm/fa626te.md: Update with new attributes.
1065 * config/arm/fa726te.md: Update with new attributes.
1066
1c83b673
JG
10672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1068
1069 * config/aarch64/aarch64-simd.md
1070 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
1071 <vwx> iterator to ensure correct register choice.
1072 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1073 (aarch64_sqdmull_n<mode>): Likewise.
1074 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1075 * config/aarch64/arm_neon.h
1076 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
1077 (vml<as><q>_n_<su>16): Likewise.
1078 (vml<as>l_high_lane<q>_<su>16): Likewise.
1079 (vml<as>l_high_n_<su>16): Likewise.
1080 (vml<as>l_lane<q>_<su>16): Likewise.
1081 (vml<as>l_n_<su>16): Likewise.
1082 (vmul<q>_lane<q>_<su>16): Likewise.
1083 (vmul<q>_n_<su>16): Likewise.
1084 (vmull_lane<q>_<su>16): Likewise.
1085 (vmull_n_<su>16): Likewise.
1086 (vmull_high_lane<q>_<su>16): Likewise.
1087 (vmull_high_n_<su>16): Likewise.
1088 (vqrdmulh<q>_n_s16): Likewise.
1089
bb1ae543
TB
10902013-09-06 Tejas Belagod <tejas.belagod@arm.com>
1091
1092 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
1093 have the correct lane parameter.
1094
f23c0742
RB
10952013-09-06 Richard Biener <rguenther@suse.de>
1096
1097 * cfganal.c (control_dependences::~control_dependences):
1098 Properly free all of the vector.
1099
c1d49770
KY
11002013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
1101
1102 PR target/58269
1103 * config/i386/i386.c (ix86_conditional_register_usage):
1104 Proper initialize extended SSE registers.
1105
6da47f52
JH
11062013-09-06 Jan Hubicka <jh@suse.cz>
1107
1108 PR tree-optimization/58311
1109 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
1110
11112013-09-06 Jan Hubicka <jh@suse.cz>
1112
1113 * Makefile.in (tree-sra.o): Update dependencies.
1114 * tree-sra.c: Include ipa-utils.h
1115 (scan_function): Use recursive_call_p.
1116 (has_caller_p): New function.
1117 (cgraph_for_node_and_aliases): Count also callers of aliases.
1118
fc11f321
JH
11192013-09-06 Jan Hubicka <jh@suse.cz>
1120
1121 PR middle-end/58094
1122 * cgraph.h (symtab_semantically_equivalent_p): Declare.
1123 * tree-tailcall.c: Include ipa-utils.h.
1124 (find_tail_calls): Use it.
1125 * ipa-pure-const.c (check_call): Likewise.
1126 * ipa-utils.c (recursive_call_p): New function.
1127 * ipa-utils.h (recursive_call_p): Dclare.
1128 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
1129 (symtab_semantically_equivalent_p): New function.
1130 * Makefile.in (tree-tailcall.o): Update dependencies.
1131
9a6af450
EB
11322013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1133
1134 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
1135 non-inlinable part.
1136
35f32ad4
RB
11372013-09-06 Richard Biener <rguenther@suse.de>
1138
1139 * lto-streamer.h (lto_global_var_decls): Remove.
1140 * Makefile.in (OBJS): Remove lto-symtab.o.
1141 (lto-symtab.o): Remove.
1142 (GTFILES): Remove lto-symtab.c
1143 * lto-symtab.c: Move to lto/
1144
d12a76f3
AK
11452013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1146
1147 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
1148 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
1149 (UNSPEC_FPINT_RINT): New constant definitions.
1150 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
1151 definition with 2 attributes.
1152 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
1153 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
1154 definitions.
1155
11562013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1157
f43245d1 1158 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
1159 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
1160 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
1161 attribute to "z196_alone".
1162 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
1163 "zEC12_simple".
1164
c8e9d8c3
RB
11652013-09-06 Richard Biener <rguenther@suse.de>
1166
1167 * basic-block.h (class control_dependences): New.
1168 * tree-ssa-dce.c (control_dependence_map): Remove.
1169 (cd): New global.
1170 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
1171 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
1172 find_pdom, find_control_dependence, find_all_control_dependences):
1173 Move to cfganal.c.
f43245d1
UB
1174 (mark_control_dependent_edges_necessary,
1175 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
1176 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
1177 * cfganal.c (set_control_dependence_map_bit,
1178 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
1179 find_all_control_dependences): Move from tree-ssa-dce.c and
1180 implement as methods of control_dependences class.
1181 (control_dependences::control_dependences): New.
1182 (control_dependences::~control_dependences): Likewise.
1183 (control_dependences::get_edges_dependent_on): Likewise.
1184 (control_dependences::get_edge): Likewise.
1185
7d2ba471
JH
11862013-09-04 Jan Hubicka <jh@suse.cz>
1187
1188 * tree.c (types_same_for_odr): Drop overactive check.
1189 * ipa-devirt.c (hash_type_name): Likewise.
1190
e18412fc
JH
11912013-09-04 Jan Hubicka <jh@suse.cz>
1192
1193 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
1194 (analyze_functions): ... here.
1195
d352b245
JH
11962013-09-04 Jan Hubicka <jh@suse.cz>
1197
1198 PR middle-end/58201
1199 * cgraphunit.c (analyze_functions): Clear AUX fields
1200 after processing; initialize assembler name has.
1201
770da076
JL
12022013-09-05 Jeff Law <law@redhat.com>
1203
1204 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
1205 from thread_around_empty_block. Record threading path into PATH.
1206 Recurse if threading through the initial block is successful.
1207 (thread_across_edge): Corresponding changes to slightly simplify.
1208
fe6f68e2
JG
12092013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1210
1211 * config/aarch64/aarch64.md
1212 (type): Remove frecpe, frecps, frecpx.
1213 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
1214 fix to be a TARGET_SIMD instruction.
1215 (aarch64_frecps): Remove.
1216 * config/aarch64/aarch64-simd.md
1217 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
1218 (aarch64_frecps<mode>): Handle all float/vector of float modes.
1219
6e4150e1
JG
12202013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1221 Sofiane Naci <sofiane.naci@arm.com>
1222
f43245d1 1223 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 1224 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
1225 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
1226 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
1227 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
1228 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
1229 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
1230 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
1231 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 1232 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 1233 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
1234 shift* types.
1235 * config/arm/arm-fixed.md: Update for attribute changes
1236 all occurrences of arlo_* types.
1237 * config/arm/thumb2.md: Update for attribute changes all occurrences
1238 of arlo_* types.
1239 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
1240 (cortexa7_older_only): Likewise.
1241 (cortexa7_younger): Likewise.
1242 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
1243 (1020alu_shift_op): Likewise.
1244 (1020alu_shift_reg_op): Likewise.
1245 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
1246 (alu_shift_op): Likewise.
1247 (alu_shift_reg_op): Likewise.
f43245d1 1248 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
1249 (11_alu_shift_op): Likewise.
1250 (11_alu_shift_reg_op): Likewise.
1251 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
1252 (9_alu_shift_reg_op): Likewise.
1253 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
1254 attribute changes.
1255 (cortex_a15_alu_shift): Likewise.
1256 (cortex_a15_alu_shift_reg): Likewise.
1257 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
1258 attribute changes.
1259 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
1260 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
1261 attribute changes.
6e4150e1 1262 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
1263 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
1264 attribute changes.
6e4150e1
JG
1265 (cortex_a7_alu_reg): Likewise.
1266 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
1267 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
1268 attribute changes.
6e4150e1
JG
1269 (cortex_a8_alu_shift): Likewise.
1270 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 1271 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 1272 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
1273 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
1274 attribute changes.
6e4150e1
JG
1275 * config/arm/cortex-r4.md
1276 (cortex_r4_alu): Update for attribute changes.
1277 (cortex_r4_mov): Likewise.
1278 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 1279 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 1280 (526_alu_shift_op): Likewise.
f43245d1
UB
1281 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
1282 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 1283 (626te_alu_shift_op): Likewise.
f43245d1 1284 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
1285 (726te_alu_shift_op): Likewise.
1286 (726te_alu_shift_reg_op): Likewise.
1287 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
1288 (mp626_alu_shift_op): Likewise.
1289 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
1290 (pj4_alu_conds): Likewise.
1291 (pj4_shift): Likewise.
1292 (pj4_shift_conds): Likewise.
1293 (pj4_alu_shift): Likewise.
1294 (pj4_alu_shift_conds): Likewise.
1295 * config/aarch64/aarch64.md: Update for attribute change
1296 all occurrences of arlo_* and shift* types.
1297
e6523306
MS
12982013-09-05 Mike Stump <mikestump@comcast.net>
1299
1300 * tree.h: Move documentation for tree_function_decl to tree-core.h
1301 with the declaration.
1302
80a18161
PB
13032013-09-05 Peter Bergner <bergner@vnet.ibm.com>
1304
1305 PR target/58139
1306 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
1307 looking for widest mode.
1308
6994430a
EB
13092013-09-05 Eric Botcazou <ebotcazou@adacore.com>
1310
1311 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
1312
e67f39f7
RB
13132013-09-05 Richard Biener <rguenther@suse.de>
1314
1315 PR tree-optimization/58137
1316 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1317 Do not create vectors of pointers.
1318 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
1319 types for the components of the vector initializer.
1320 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
1321 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
1322
568cda29
MJ
13232013-09-05 Martin Jambor <mjambor@suse.cz>
1324
1325 * ipa-prop.c (remove_described_reference): Accept missing references,
1326 return false if that hppens, otherwise return true.
1327 (cgraph_node_for_jfunc): New function.
1328 (try_decrement_rdesc_refcount): Likewise.
1329 (try_make_edge_direct_simple_call): Use them.
1330 (ipa_edge_removal_hook): Remove references from rdescs.
1331 (ipa_edge_duplication_hook): Clone rdescs and their references
1332 when the new edge has the same caller as the old one.
1333 * cgraph.c (cgraph_resolve_speculation): Remove speculative
1334 reference before removing any edges.
1335
5a200acb
RE
13362013-09-05 Richard Earnshaw <rearnsha@arm.com>
1337
1338 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
1339 initial store.
1340 * thumb2.md (thumb2_storewb_parisi): New pattern.
1341
5922847b
YZ
13422013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
1343
1344 * config/aarch64/aarch64-option-extensions.def: Add
1345 AARCH64_OPT_EXTENSION of 'crc'.
1346 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
1347 (AARCH64_ISA_CRC): Ditto.
1348 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
1349 description of the CRC extension.
1350
996746aa
AI
13512013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
1352
1353 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
1354 * config/rs6000/linux.h: Ditto.
1355 * alpha/linux.h: Ditto.
1356 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
1357 no_c99_libc_has_function.
1358 * config/c6x/uclinux-elf.h: Ditto.
1359 * config/lm32/uclinux-elf.h: Ditto.
1360 * config/m68k/uclinux.h: Ditto.
1361 * config/moxie/uclinux.h: Ditto.
1362 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
1363 (crisv32-*-linux*, cris-*-linux*): Ditto.
1364 * config/bfin/bfin.c: Include "tm_p.h".
1365
c370d99f
RB
13662013-09-05 Richard Biener <rguenther@suse.de>
1367
1368 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
1369 check for a definition without a basic-block.
1370
003bb7f3
JG
13712013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1372 Sofiane Naci <sofiane.naci@arm.com>
1373
1374 * config/aarch64/aarch64.md
1375 (*movti_aarch64): Rename r_2_f and f_2_r.
1376 (*movsf_aarch64): Likewise.
1377 (*movdf_aarch64): Likewise.
1378 (*movtf_aarch64): Likewise.
1379 (aarch64_movdi_<mode>low): Likewise.
1380 (aarch64_movdi_<mode>high): Likewise.
1381 (aarch64_mov<mode>high_di): Likewise.
1382 (aarch64_mov<mode>low_di): Likewise.
1383 (aarch64_movtilow_tilow): Likewise.
1384 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
1385 values to config/arm/types.md
1386 (attribute "conds"): Update for attribute change.
1387 (anddi3_insn): Likewise.
1388 (iordi3_insn): Likewise.
1389 (xordi3_insn): Likewise.
1390 (one_cmpldi2): Likewise.
1391 * config/arm/types.md (type): Add Neon types.
1392 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
1393 use "type" attribute.
1394 (movmisalign<mode>_neon_store): Likewise.
1395 (movmisalign<mode>_neon_load): Likewise.
1396 (vec_set<mode>_internal): Likewise.
1397 (vec_setv2di_internal): Likewise.
1398 (vec_extract<mode>): Likewise.
1399 (vec_extractv2di): Likewise.
1400 (add<mode>3_neon): Likewise.
1401 (adddi3_neon): Likewise.
1402 (sub<mode>3_neon): Likewise.
1403 (subdi3_neon): Likewise.
1404 (mul<mode>3_neon): Likewise.
1405 (mul<mode>3add<mode>_neon): Likewise.
1406 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
1407 (fma<VCVTF:mode>4)): Likewise.
1408 (fma<VCVTF:mode>4_intrinsic): Likewise.
1409 (fmsub<VCVTF:mode>4)): Likewise.
1410 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1411 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1412 (ior<mode>3): Likewise.
1413 (and<mode>3): Likewise.
1414 (anddi3_neon): Likewise.
1415 (orn<mode>3_neon): Likewise.
1416 (orndi3_neon): Likewise.
1417 (bic<mode>3_neon): Likewise.
1418 (bicdi3_neon): Likewise.
1419 (xor<mode>3): Likewise.
1420 (one_cmpl<mode>2): Likewise.
1421 (abs<mode>2): Likewise.
1422 (neg<mode>2): Likewise.
1423 (umin<mode>3_neon): Likewise.
1424 (umax<mode>3_neon): Likewise.
1425 (smin<mode>3_neon): Likewise.
1426 (smax<mode>3_neon): Likewise.
1427 (vashl<mode>3): Likewise.
1428 (vashr<mode>3_imm): Likewise.
1429 (vlshr<mode>3_imm): Likewise.
1430 (ashl<mode>3_signed): Likewise.
1431 (ashl<mode>3_unsigned): Likewise.
1432 (neon_load_count): Likewise.
1433 (ashldi3_neon_noclobber): Likewise.
1434 (signed_shift_di3_neon): Likewise.
1435 (unsigned_shift_di3_neon): Likewise.
1436 (ashrdi3_neon_imm_noclobber): Likewise.
1437 (lshrdi3_neon_imm_noclobber): Likewise.
1438 (widen_ssum<mode>3): Likewise.
1439 (widen_usum<mode>3): Likewise.
1440 (quad_halves_<code>v4si): Likewise.
1441 (quad_halves_<code>v4sf): Likewise.
1442 (quad_halves_<code>v8hi): Likewise.
1443 (quad_halves_<code>v16qi): Likewise.
1444 (reduc_splus_v2di): Likewise.
1445 (neon_vpadd_internal<mode>): Likewise.
1446 (neon_vpsmin<mode>): Likewise.
1447 (neon_vpsmax<mode>): Likewise.
1448 (neon_vpumin<mode>): Likewise.
1449 (neon_vpumax<mode>): Likewise.
1450 (ss_add<mode>_neon): Likewise.
1451 (us_add<mode>_neon): Likewise.
1452 (ss_sub<mode>_neon): Likewise.
1453 (us_sub<mode>_neon): Likewise.
1454 (neon_vadd<mode>_unspec): Likewise.
1455 (neon_vaddl<mode>): Likewise.
1456 (neon_vaddw<mode>): Likewise.
1457 (neon_vhadd<mode>): Likewise.
1458 (neon_vqadd<mode>): Likewise.
1459 (neon_vaddhn<mode>): Likewise.
1460 (neon_vmul<mode>): Likewise.
1461 (neon_vmla<mode>): Likewise.
1462 (neon_vmlal<mode>): Likewise.
1463 (neon_vmls<mode>): Likewise.
1464 (neon_vmlsl<mode>): Likewise.
1465 (neon_vqdmulh<mode>): Likewise.
1466 (neon_vqdmlal<mode>): Likewise.
1467 (neon_vqdmlsl<mode>): Likewise.
1468 (neon_vmull<mode>): Likewise.
1469 (neon_vqdmull<mode>): Likewise.
1470 (neon_vsub<mode>_unspec): Likewise.
1471 (neon_vsubl<mode>): Likewise.
1472 (neon_vsubw<mode>): Likewise.
1473 (neon_vqsub<mode>): Likewise.
1474 (neon_vhsub<mode>): Likewise.
1475 (neon_vsubhn<mode>): Likewise.
1476 (neon_vceq<mode>): Likewise.
1477 (neon_vcge<mode>): Likewise.
1478 (neon_vcgeu<mode>): Likewise.
1479 (neon_vcgt<mode>): Likewise.
1480 (neon_vcgtu<mode>): Likewise.
1481 (neon_vcle<mode>): Likewise.
1482 (neon_vclt<mode>): Likewise.
1483 (neon_vcage<mode>): Likewise.
1484 (neon_vcagt<mode>): Likewise.
1485 (neon_vtst<mode>): Likewise.
1486 (neon_vabd<mode>): Likewise.
1487 (neon_vabdl<mode>): Likewise.
1488 (neon_vaba<mode>): Likewise.
1489 (neon_vabal<mode>): Likewise.
1490 (neon_vmax<mode>): Likewise.
1491 (neon_vmin<mode>): Likewise.
1492 (neon_vpaddl<mode>): Likewise.
1493 (neon_vpadal<mode>): Likewise.
1494 (neon_vpmax<mode>): Likewise.
1495 (neon_vpmin<mode>): Likewise.
1496 (neon_vrecps<mode>): Likewise.
1497 (neon_vrsqrts<mode>): Likewise.
1498 (neon_vqabs<mode>): Likewise.
1499 (neon_vqneg<mode>): Likewise.
1500 (neon_vcls<mode>): Likewise.
1501 (clz<mode>2): Likewise.
1502 (popcount<mode>2): Likewise.
1503 (neon_vrecpe): Likewise.
1504 (neon_vrsqrte): Likewise.
1505 (neon_vget_lane<mode>_sext_internal): Likewise.
1506 (neon_vget_lane<mode>_zext_internal): Likewise.
1507 (neon_vdup_n<mode>): Likewise.
1508 (neon_vdup_nv2di): Likewise.
1509 (neon_vdpu_lane<mode>_internal): Likewise.
1510 (neon_vswp<mode>): Likewise.
1511 (float<mode><V_cvtto>2): Likewise.
1512 (floatuns<mode><V_cvtto>2): Likewise.
1513 (fix_trunc<mode><V_cvtto>)2): Likewise
1514 (fixuns_trunc<mode><V_cvtto)2): Likewise.
1515 (neon_vcvt<mode>): Likewise.
1516 (neon_vcvtv4sfv4hf): Likewise.
1517 (neon_vcvtv4hfv4sf): Likewise.
1518 (neon_vcvt_n<mode>): Likewise.
1519 (neon_vmovn<mode>): Likewise.
1520 (neon_vqmovn<mode>): Likewise.
1521 (neon_vqmovun<mode>): Likewise.
1522 (neon_vmovl<mode>): Likewise.
1523 (neon_vmul_lane<mode>): Likewise.
1524 (neon_vmull_lane<mode>): Likewise.
1525 (neon_vqdmull_lane<mode>): Likewise.
1526 (neon_vqdmulh_lane<mode>): Likewise.
1527 (neon_vmla_lane<mode>): Likewise.
1528 (neon_vmlal_lane<mode>): Likewise.
1529 (neon_vqdmlal_lane<mode>): Likewise.
1530 (neon_vmls_lane<mode>): Likewise.
1531 (neon_vmlsl_lane<mode>): Likewise.
1532 (neon_vqdmlsl_lane<mode>): Likewise.
1533 (neon_vext<mode>): Likewise.
1534 (neon_vrev64<mode>): Likewise.
1535 (neon_vrev32<mode>): Likewise.
1536 (neon_vrev16<mode>): Likewise.
1537 (neon_vbsl<mode>_internal): Likewise.
1538 (neon_vshl<mode>): Likewise.
1539 (neon_vqshl<mode>): Likewise.
1540 (neon_vshr_n<mode>): Likewise.
1541 (neon_vshrn_n<mode>): Likewise.
1542 (neon_vqshrn_n<mode>): Likewise.
1543 (neon_vqshrun_n<mode>): Likewise.
1544 (neon_vshl_n<mode>): Likewise.
1545 (neon_vqshl_n<mode>): Likewise.
1546 (neon_vqshlu_n<mode>): Likewise.
1547 (neon_vshll_n<mode>): Likewise.
1548 (neon_vsra_n<mode>): Likewise.
1549 (neon_vsri_n<mode>): Likewise.
1550 (neon_vsli_n<mode>): Likewise.
1551 (neon_vtbl1v8qi): Likewise.
1552 (neon_vtbl2v8qi): Likewise.
1553 (neon_vtbl3v8qi): Likewise.
1554 (neon_vtbl4v8qi): Likewise.
1555 (neon_vtbx1v8qi): Likewise.
1556 (neon_vtbx2v8qi): Likewise.
1557 (neon_vtbx3v8qi): Likewise.
1558 (neon_vtbx4v8qi): Likewise.
1559 (neon_vtrn<mode>_internal): Likewise.
1560 (neon_vzip<mode>_internal): Likewise.
1561 (neon_vuzp<mode>_internal): Likewise.
1562 (neon_vld1<mode>): Likewise.
1563 (neon_vld1_lane<mode>): Likewise.
1564 (neon_vld1_dup<mode>): Likewise.
1565 (neon_vld1_dupv2di): Likewise.
1566 (neon_vst1<mode>): Likewise.
1567 (neon_vst1_lane<mode>): Likewise.
1568 (neon_vld2<mode>): Likewise.
1569 (neon_vld2_lane<mode>): Likewise.
1570 (neon_vld2_dup<mode>): Likewise.
1571 (neon_vst2<mode>): Likewise.
1572 (neon_vst2_lane<mode>): Likewise.
1573 (neon_vld3<mode>): Likewise.
1574 (neon_vld3qa<mode>): Likewise.
1575 (neon_vld3qb<mode>): Likewise.
1576 (neon_vld3_lane<mode>): Likewise.
1577 (neon_vld3_dup<mode>): Likewise.
1578 (neon_vst3<mode>): Likewise.
1579 (neon_vst3qa<mode>): Likewise.
1580 (neon_vst3qb<mode>): Likewise.
1581 (neon_vst3_lane<mode>): Likewise.
1582 (neon_vld4<mode>): Likewise.
1583 (neon_vld4qa<mode>): Likewise.
1584 (neon_vld4qb<mode>): Likewise.
1585 (neon_vld4_lane<mode>): Likewise.
1586 (neon_vld4_dup<mode>): Likewise.
1587 (neon_vst4<mode>): Likewise.
1588 (neon_vst4qa<mode>): Likewise.
1589 (neon_vst4qb<mode>): Likewise.
1590 (neon_vst4_lane<mode>): Likewise.
1591 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1592 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1593 (neon_vec_<US>mult_lo_<mode>): Likewise.
1594 (neon_vec_<US>mult_hi_<mode>): Likewise.
1595 (neon_vec_<US>shiftl_<mode>): Likewise.
1596 (neon_unpack<US>_<mode>): Likewise.
1597 (neon_vec_<US>mult_<mode>): Likewise.
1598 (vec_pack_trunc_<mode>): Likewise.
1599 (neon_vec_pack_trunk_<mode>): Likewise.
1600 (neon_vabd<mode>_2): Likewise.
1601 (neon_vabd<mode>_3): Likewise.
1602 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
1603 (thumb2_movsi_vfp): Likewise.
1604 (movdi_vfp): Likewise.
1605 (movdi_vfp_cortexa8): Likewise.
1606 (movhf_vfp_neon): Likewise.
1607 (movhf_vfp): Likewiwse.
1608 (movsf_vfp): Likewiwse.
1609 (thumb2_movsf_vfp): Likewiwse.
1610 (movdf_vfp): Likewise.
1611 (thumb2_movdf_vfp): Likewise.
1612 (movsfcc_vfp): Likewise.
1613 (thumb2_movsfcc_vfp): Likewise.
1614 (movdfcc_vfp): Likewise.
1615 (thumb2_movdfcc_vfp): Likewise.
1616 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
1617 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
1618 (v10_v2c): Likewise.
1619 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
1620 attribute change.
1621 (cortex_a15_neon_int_2): Likewise.
1622 (cortex_a15_neon_int_3): Likewise.
1623 (cortex_a15_neon_int_4): Likewise.
1624 (cortex_a15_neon_int_5): Likewise.
1625 (cortex_a15_neon_vqneg_vqabs): Likewise.
1626 (cortex_a15_neon_vmov): Likewise.
1627 (cortex_a15_neon_vaba): Likewise.
1628 (cortex_a15_neon_vaba_qqq): Likewise.
1629 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1630 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
1631 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
1632 scalar_64_32_long_scalar): Likewise.
1633 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1634 (cortex_a15_neon_mla_qqq_8_16): Likewise.
1635 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1636 lotype_qdd_64_32_long): Likewise.
1637 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1638 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1639 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
1640 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1641 (cortex_a15_neon_shift_1): Likewise.
1642 (cortex_a15_neon_shift_2): Likewise.
1643 (cortex_a15_neon_shift_3): Likewise.
1644 (cortex_a15_neon_vshl_ddd): Likewise.
1645 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1646 (cortex_a15_neon_vsra_vrsra): Likewise.
1647 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
1648 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
1649 (cortex_a15_neon_fp_vmul_ddd): Likewise.
1650 (cortex_a15_neon_fp_vmul_qqd): Likewise.
1651 (cortex_a15_neon_fp_vmla_ddd): Likewise.
1652 (cortex_a15_neon_fp_vmla_qqq): Likewise.
1653 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
1654 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
1655 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1656 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1657 (cortex_a15_neon_bp_simple): Likewise.
1658 (cortex_a15_neon_bp_2cycle): Likewise.
1659 (cortex_a15_neon_bp_3cycle): Likewise.
1660 (cortex_a15_neon_vld1_1_2_regs): Likewise.
1661 (cortex_a15_neon_vld1_3_4_regs): Likewise.
1662 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1663 (cortex_a15_neon_vld2_4_regs): Likewise.
1664 (cortex_a15_neon_vld3_vld4): Likewise.
1665 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1666 (cortex_a15_neon_vst1_3_4_regs): Likewise.
1667 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
1668 (cortex_a15_neon_vst3_vst4): Likewise.
1669 (cortex_a15_neon_vld1_vld2_lane): Likewise.
1670 (cortex_a15_neon_vld3_vld4_lane" 10
1671 (cortex_a15_neon_vst1_vst2_lane): Likewise.
1672 (cortex_a15_neon_vst3_vst4_lane): Likewise.
1673 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
1674 (cortex_a15_neon_ldm_2): Likewise.0
1675 (cortex_a15_neon_stm_2): Likewise.
1676 (cortex_a15_neon_mcr): Likewise.
1677 (cortex_a15_neon_mcr_2_mcrr): Likewise.
1678 (cortex_a15_neon_mrc): Likewise.
1679 (cortex_a15_neon_mrrc): Likewise.
1680 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
1681 change.
1682 (cortex_a15_alu_shift): Likewise.
1683 (cortex_a15_alu_shift_reg): Likewise.
1684 (cortex_a15_mult32): Likewise.
1685 (cortex_a15_mult64): Likewise.
1686 (cortex_a15_block): Likewise.
1687 (cortex_a15_branch): Likewise.
1688 (cortex_a15_load1): Likewise.
1689 (cortex_a15_load3): Likewise.
1690 (cortex_a15_store1): Likewise.
1691 (cortex_a15_store3): Likewise.
1692 (cortex_a15_call): Likewise.
f43245d1 1693 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
1694 (cortex_a5_f2r): Likewise.
1695 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
1696 change.
1697 (cortex_a53_f2r): Likewise.
1698 * config/arm/cortex-a7.md
1699 (cortex_a7_branch): Update for attribute change.
1700 (cortex_a7_call): Likewise.
1701 (cortex_a7_alu_imm): Likewise.
1702 (cortex_a7_alu_reg): Likewise.
1703 (cortex_a7_alu_shift): Likewise.
1704 (cortex_a7_mul): Likewise.
1705 (cortex_a7_load1): Likewise.
1706 (cortex_a7_store1): Likewise.
1707 (cortex_a7_load2): Likewise.
1708 (cortex_a7_store2): Likewise.
1709 (cortex_a7_load3): Likewise.
1710 (cortex_a7_store3): Likewise.
1711 (cortex_a7_load4): Likewise.
1712 (cortex_a7_store4): Likewise.
1713 (cortex_a7_fpalu): Likewise.
1714 (cortex_a7_fconst): Likewise.
1715 (cortex_a7_fpmuls): Likewise.
1716 (cortex_a7_neon_mul): Likewise.
1717 (cortex_a7_fpmacs): Likewise.
1718 (cortex_a7_neon_mla: Likewise.
1719 (cortex_a7_fpmuld: Likewise.
1720 (cortex_a7_fpmacd: Likewise.
1721 (cortex_a7_fpfmad: Likewise.
1722 (cortex_a7_fdivs: Likewise.
1723 (cortex_a7_fdivd: Likewise.
1724 (cortex_a7_r2f: Likewise.
1725 (cortex_a7_f2r: Likewise.
1726 (cortex_a7_f_flags: Likewise.
1727 (cortex_a7_f_loads: Likewise.
1728 (cortex_a7_f_loadd: Likewise.
1729 (cortex_a7_f_stores: Likewise.
1730 (cortex_a7_f_stored: Likewise.
1731 (cortex_a7_neon): Likewise.
1732 * config/arm/cortex-a8-neon.md
1733 (cortex_a8_neon_mrc): Update for attribute change.
1734 (cortex_a8_neon_mrrc): Likewise.
1735 (cortex_a8_neon_int_1): Likewise.
1736 (cortex_a8_neon_int_2): Likewise.
1737 (cortex_a8_neon_int_3): Likewise.
1738 (cortex_a8_neon_int_4): Likewise.
1739 (cortex_a8_neon_int_5): Likewise.
1740 (cortex_a8_neon_vqneg_vqabs): Likewise.
1741 (cortex_a8_neon_vmov): Likewise.
1742 (cortex_a8_neon_vaba): Likewise.
1743 (cortex_a8_neon_vaba_qqq): Likewise.
1744 (cortex_a8_neon_vsma): Likewise.
1745 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1746 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
1747 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
1748 long_scalar): Likewise.
003bb7f3
JG
1749 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1750 (cortex_a8_neon_mla_qqq_8_16): Likewise.
1751 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1752 long_scalar_qdd_64_32_long): Likewise.
1753 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1754 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1755 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
1756 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1757 (cortex_a8_neon_shift_1): Likewise.
1758 (cortex_a8_neon_shift_2): Likewise.
1759 (cortex_a8_neon_shift_3): Likewise.
1760 (cortex_a8_neon_vshl_ddd): Likewise.
1761 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1762 (cortex_a8_neon_vsra_vrsra): Likewise.
1763 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
1764 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
1765 (cortex_a8_neon_fp_vsum): Likewise.
1766 (cortex_a8_neon_fp_vmul_ddd): Likewise.
1767 (cortex_a8_neon_fp_vmul_qqd): Likewise.
1768 (cortex_a8_neon_fp_vmla_ddd): Likewise.
1769 (cortex_a8_neon_fp_vmla_qqq): Likewise.
1770 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
1771 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
1772 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1773 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1774 (cortex_a8_neon_bp_simple): Likewise.
1775 (cortex_a8_neon_bp_2cycle): Likewise.
1776 (cortex_a8_neon_bp_3cycle): Likewise.
1777 (cortex_a8_neon_ldr): Likewise.
1778 (cortex_a8_neon_str): Likewise.
1779 (cortex_a8_neon_vld1_1_2_regs): Likewise.
1780 (cortex_a8_neon_vld1_3_4_regs): Likewise.
1781 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1782 (cortex_a8_neon_vld2_4_regs): Likewise.
1783 (cortex_a8_neon_vld3_vld4): Likewise.
1784 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1785 (cortex_a8_neon_vst1_3_4_regs): Likewise.
1786 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
1787 (cortex_a8_neon_vst3_vst4): Likewise.
1788 (cortex_a8_neon_vld1_vld2_lane): Likewise.
1789 (cortex_a8_neon_vld3_vld4_lane): Likewise.
1790 (cortex_a8_neon_vst1_vst2_lane): Likewise.
1791 (cortex_a8_neon_vst3_vst4_lane): Likewise.
1792 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
1793 (cortex_a8_neon_mcr): Likewise.
1794 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 1795 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
1796 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
1797 change.
1798 (ca9_neon_mrrc): Likewise.
1799 (cortex_a9_neon_int_1): Likewise.
1800 (cortex_a9_neon_int_2): Likewise.
1801 (cortex_a9_neon_int_3): Likewise.
1802 (cortex_a9_neon_int_4): Likewise.
1803 (cortex_a9_neon_int_5): Likewise.
1804 (cortex_a9_neon_vqneg_vqabs): Likewise.
1805 (cortex_a9_neon_vmov): Likewise.
1806 (cortex_a9_neon_vaba): Likewise.
1807 (cortex_a9_neon_vaba_qqq): Likewise.
1808 (cortex_a9_neon_vsma): Likewise.
1809 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1810 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
1811 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
1812 long_scalar): Likewise.
003bb7f3
JG
1813 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1814 (cortex_a9_neon_mla_qqq_8_16): Likewise.
1815 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1816 long_scalar_qdd_64_32_long): Likewise.
1817 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1818 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1819 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
1820 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1821 (cortex_a9_neon_shift_1): Likewise.
1822 (cortex_a9_neon_shift_2): Likewise.
1823 (cortex_a9_neon_shift_3): Likewise.
1824 (cortex_a9_neon_vshl_ddd): Likewise.
1825 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1826 (cortex_a9_neon_vsra_vrsra): Likewise.
1827 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
1828 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
1829 (cortex_a9_neon_fp_vsum): Likewise.
1830 (cortex_a9_neon_fp_vmul_ddd): Likewise.
1831 (cortex_a9_neon_fp_vmul_qqd): Likewise.
1832 (cortex_a9_neon_fp_vmla_ddd): Likewise.
1833 (cortex_a9_neon_fp_vmla_qqq): Likewise.
1834 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
1835 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
1836 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1837 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1838 (cortex_a9_neon_bp_simple): Likewise.
1839 (cortex_a9_neon_bp_2cycle): Likewise.
1840 (cortex_a9_neon_bp_3cycle): Likewise.
1841 (cortex_a9_neon_ldr): Likewise.
1842 (cortex_a9_neon_str): Likewise.
1843 (cortex_a9_neon_vld1_1_2_regs): Likewise.
1844 (cortex_a9_neon_vld1_3_4_regs): Likewise.
1845 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1846 (cortex_a9_neon_vld2_4_regs): Likewise.
1847 (cortex_a9_neon_vld3_vld4): Likewise.
1848 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1849 (cortex_a9_neon_vst1_3_4_regs): Likewise.
1850 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
1851 (cortex_a9_neon_vst3_vst4): Likewise.
1852 (cortex_a9_neon_vld1_vld2_lane): Likewise.
1853 (cortex_a9_neon_vld3_vld4_lane): Likewise.
1854 (cortex_a9_neon_vst1_vst2_lane): Likewise.
1855 (cortex_a9_neon_vst3_vst4_lane): Likewise.
1856 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
1857 (cortex_a9_neon_mcr): Likewise.
1858 (cortex_a9_neon_mcr_2_mcrr): Likewise.
1859 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
1860 (cortex_a9_fps): Likewise.
1861 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
1862 change.
1863 (cortex_m4_fmuls): Likewise.
1864 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
1865 change.
1866 (cortex_r4_mrc): Likewise.
1867 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 1868 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 1869 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
1870 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
1871 attribute change.
003bb7f3
JG
1872 (pj4_core_to_vfp): Likewise.
1873 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
1874 attribute change.
1875 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
1876 (vfp_fstore): Likewise.
1877 * doc/md.texi: Change references to neon_type to refer to type.
1878
fbe0dc78
DS
18792013-09-04 Dodji Seketeli <dodji@redhat.com>
1880
1881 * tree.h (DECL_BUILT_IN): Fix typo in comment.
1882
c167bc5b
DE
18832013-09-04 David Edelsohn <dje.gcc@gmail.com>
1884
1885 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
1886 lglobl if not weak.
1887
035cb59f
ER
18882013-09-04 Easwaran Raman <eraman@google.com>
1889
1890 PR middle-end/57370
1891 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
1892 (build_and_add_sum): Use it.
1893 (appears_later_in_bb): Simplify code.
1894
71191083
TJ
18952013-09-04 Teresa Johnson <tejohnson@google.com>
1896
1897 * dumpfile.c (dump_finish): Don't close stderr/stdout.
1898
0c488213
JG
18992013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
1900
1901 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
1902
61a74079
JH
19032013-09-04 Jan Hubicka <jh@suse.cz>
1904
1905 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
1906 * ipa-devirt.c: Include diganostic.h
1907 (odr_type_d): Add types and types_set.
1908 (hash_type_name): Work for types with vtables during LTO.
1909 (odr_hasher::remove): Fix comment; destroy types_set.
1910 (add_type_duplicate): New function,
1911 (get_odr_type): Use it.
1912 (dump_type_inheritance_graph): Dump type duplicates.
1913 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
1914 graph.
1915 * tree.c (types_same_for_odr): Give exact answers on types with
1916 virtual tables.
1917
24ba8195
DS
19182013-09-04 Dodji Seketeli <dodji@redhat.com>
1919
1920 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
1921 explaining their differences.
1922
0a04869e
SKS
19232013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
1924
1925 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
1926
3b18bc42
JL
19272013-09-03 Jeff Law <law@redhat.com>
1928
1929 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
1930 when not threading through a joiner block. Pass joiner/no joiner
1931 state to register_jump_thread.
1932 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
1933 state from argument rather than implying on path length.
1934 Dump the entire jump thread path into debugging dump.
1935 * tree-flow.h (register_jump_thread): Update prototype.
1936
ae84e151
XDL
19372013-08-29 Xinliang David Li <davidxl@google.com>
1938
1939 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1940 Remove a trivial gcc_assert.
1941
c716e67f
XDL
19422013-08-29 Xinliang David Li <davidxl@google.com>
1943
1944 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
1945 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
1946 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1947 Delay base decl alignment adjustment.
1948 * tree-vectorizer.c (vect_destroy_datarefs): New function.
1949 * tree-vectorizer.h: New data structure.
1950 (set_dr_misalignment): New function.
1951 (dr_misalignment): Ditto.
1952 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
1953 (vectorizable_load): Ditto.
1954 (ensure_base_align): New function.
1955 (vectorize_loops): Add dbg_cnt support.
1956 (execute_vect_slp): Ditto.
1957 * dbgcnt.def: New debug counter.
1958 * Makefile: New dependency.
1959
db8800bc
MI
19602013-09-03 Meador Inge <meadori@codesourcery.com>
1961
1962 Revert:
1963
1964 2013-08-30 Meador Inge <meadori@codesourcery.com>
1965
1966 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
1967
0d9b4f5c
DE
19682013-09-03 David Edelsohn <dje.gcc@gmail.com>
1969
1970 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
1971 function descriptor.
1972
29e810b9
RB
19732013-09-03 Richard Biener <rguenther@suse.de>
1974
1975 * tree-affine.c (add_elt_to_tree): Fix association issue,
1976 avoid useless converts and make sure to always return a
1977 properly typed result.
1978
dbfc2894
RB
19792013-09-03 Richard Biener <rguenther@suse.de>
1980
1981 PR middle-end/57656
1982 * fold-const.c (negate_expr_p): Fix division case.
1983 (negate_expr): Likewise.
1984
fa3bf4ce
RB
19852013-09-03 Richard Biener <rguenther@suse.de>
1986
1987 PR lto/58285
1988 * tree-streamer-out.c: Include tm.h.
1989 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
1990
a64bbb3f
JH
19912013-09-03 Jan Hubicka <jh@suse.cz>
1992
1993 * tree-profile.c (tree_profiling): Cleanup CFG when done.
1994
93ed07e2
AM
19952013-09-03 Alan Modra <amodra@gmail.com>
1996
1997 * config.gcc (powerpc*-*-linux*): Add support for little-endian
1998 multilibs to big-endian target and vice versa.
1999 * config/rs6000/t-linux64: Use := assignment on all vars.
2000 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2001 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2002 * config/rs6000/t-linux64le: New file.
2003 * config/rs6000/t-linux64bele: New file.
2004 * config/rs6000/t-linux64lebe: New file.
2005
07d6cd64
JH
20062013-09-02 Jan Hubicka <jh@suse.cz>
2007
2008 * ipa-inline-transform.c (inline_transform): Do not
2009 optimize_inline_calls when not optimizing.
2010
8e4c9a10
JH
20112013-09-02 Jan Hubicka <jh@suse.cz>
2012
2013 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
2014 duplicated nodes for assembler names.
2015 * symtab.c (symtab_unregister_node): Do not attempt to unlink
2016 hard registers from assembler name hash.
2017
c91061e6
JH
20182013-09-02 Jan Hubicka <jh@suse.cz>
2019
2020 * ipa-split.c (execute_split_functions): Split externally visible
2021 functions called once.
2022
2fd0985c
MJ
20232013-09-02 Martin Jambor <mjambor@suse.cz>
2024
2025 PR ipa/58106
2026 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
2027 linked list. When finding the correct duplicate, also consider also
2028 the caller in additon to its inlined_to node.
2029
91bd4114
JG
20302013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
2031
2032 * config/aarch64/aarch64-simd-builtins.def
2033 (dup_lane_scalar): Remove.
2034 * config/aarch64/aarch64-simd.md
2035 (aarch64_simd_dup): Add 'w->w' alternative.
2036 (aarch64_dup_lane<mode>): Allow for VALL.
2037 (aarch64_dup_lane_scalar<mode>): Remove.
2038 (aarch64_dup_lane_<vswap_width_name><mode>): New.
2039 (aarch64_get_lane_signed<mode>): Add w->w altenative.
2040 (aarch64_get_lane_unsigned<mode>): Likewise.
2041 (aarch64_get_lane<mode>): Likewise.
2042 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
2043 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
2044 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
2045 (VCON): Change container of V2SF.
2046 (vswap_width_name): Likewise.
2047 * config/aarch64/arm_neon.h
2048 (__aarch64_vdup_lane_any): New.
2049 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2050 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
2051 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2052
d617d2d8
EB
20532013-09-02 Eric Botcazou <ebotcazou@adacore.com>
2054
2055 PR middle-end/56382
2056 * expr.c (emit_move_complex): Do not move complex FP values as parts if
2057 the source or the destination is a single hard register.
2058
63fdb7be
RB
20592013-09-02 Richard Biener <rguenther@suse.de>
2060
2061 PR middle-end/57511
2062 * tree-scalar-evolution.c (instantiate_scev_name): Allow
2063 non-linear SCEVs.
2064
78de2333
RB
20652013-09-02 Richard Biener <rguenther@suse.de>
2066
2067 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
2068 arithmetic to sizetype.
2069
85ff4ec6
BC
20702013-09-02 Bin Cheng <bin.cheng@arm.com>
2071
2072 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2073 Find auto-increment use both before and after candidate.
2074
576016fe
MP
20752013-09-02 Marek Polacek <polacek@redhat.com>
2076
2077 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2078
08f835dc
JH
20792013-09-01 Jan Hubicka <jh@suse.cz>
2080
2081 * Makefile.in: Add ipa-profile.o
2082 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
2083 * cgraph.c (struct cgraph_propagate_frequency_data,
2084 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
2085 ipa-profile.c; replace cgraph_ by ipa_ prefix.
2086 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
2087 * ipa-inline-analysis.c: Include ipa-utils.h;
2088 drop duplicated cfgloop.h.
08f835dc
JH
2089 (inline_update_callee_summaries): Update.
2090 * ipa-profile.c: New file.
2091 * ipa-utils.h (ipa_propagate_frequency): Declare.
2092 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 2093 data-streamer.h, value-prof.h.
08f835dc
JH
2094 (symtab_remove_unreachable_nodes): Update profile.
2095 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
2096 account_time_size, cmp_counts, dump_histogram,
2097 ipa_profile_generate_summary, ipa_profile_write_summary,
2098 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
2099 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 2100 Move to ipa-profile.c.
08f835dc 2101
cec8583c
JDA
21022013-09-01 John David Anglin <danglin@gcc.gnu.org>
2103
2104 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
2105
bbc9396b
JH
21062013-09-01 Jan Hubicka <jh@suse.cz>
2107
2108 * common.opt (fdevirtualize-speculatively): New function.
2109 * invoke.texi (fdevirtualize-speculatively): Document.
2110 * ipa-devirt.c: Include ipa-inline.h
2111 (likely_target_p): New function.
2112 (ipa_devirt): New function.
2113 (gate_ipa_devirt): New function.
2114 (pass_data_ipa_devirt): New static var.
2115 (pass_ipa_devirt): Likewise.
2116 (make_pass_ipa_devirt): New function.
2117 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
2118 (common_handle_option): Disable devirtualization when
2119 value range profiling is available.
2120 * passes.def (pass_ipa_devirt): Add.
2121 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 2122 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 2123
0cea211e
IS
21242013-09-01 Iain Sandoe <iain@codesourcery.com>
2125
2126 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
2127 include sanitize(undefined).
2128
5e351e96
DN
21292013-08-31 Diego Novillo <dnovillo@google.com>
2130
2131 * Makefile.in (TREE_CORE_H): Define.
2132 (TREE_H): Use.
2133 (GTFILES): Add tree-core.h.
2134 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
2135 size the array.
2136 * tree-core.h: New file.
2137 Move all data structures, enum, typedefs, global
2138 declarations and constants from ...
2139 * tree.h: ... here.
2140
63bf9a90
JH
21412013-08-31 Jan Hubicka <jh@suse.cz>
2142
2143 * bulitins.c (expand_builtin): Do not early exit for gcov
2144 instrumented functions.
2145
5c0abd6a
MP
21462013-08-31 Marek Polacek <polacek@redhat.com>
2147
2148 * ubsan.c: Include tm_p.h.
2149
4843f032
JH
21502013-08-31 Jan Hubicka <jh@suse.cz>
2151
8356c89c
JH
2152 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
2153 warning.
2154
4843f032
JH
2155 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
2156 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 2157 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
2158 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
2159 (ipa_merge_profiles): New function.
2160 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
2161 (lto_input_function_body): Likewise.
5e581212
JH
2162 * ipa-utils.h (ipa_merge_profiles): Declare.
2163 * lto-streamer.h (lto_input_function_body): Update prototype.
2164 (emit_label_in_global_context_p): Remove.
2165 * lto-symtab.c: Include ipa-utils.h
2166 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 2167
57292ce9
JH
21682013-08-31 Jan Hubicka <jh@suse.cz>
2169
2170 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
2171
b9cbfeeb
JH
21722013-08-31 Jan Hubicka <jh@suse.cz>
2173
2174 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
2175
41dedebd
UB
21762013-08-31 Uros Bizjak <ubizjak@gmail.com>
2177
2178 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
2179 "cmp" RTX before signed_comparison_operator check to account
2180 for "code" changes.
2181
06d65050
JH
21822013-08-30 Jan Hubicka <jh@suse.cz>
2183
41dedebd 2184 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
2185 (detect_type_change_1): Rename to ...
2186 (detect_type_change): ... this one; early return on non-polymorphic
2187 types.
41dedebd 2188 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
2189 use of detect_type_change.
2190 (compute_complex_assign_jump_func): Add param_type parameter;
2191 update use of detect_type_change_ssa.
2192 (compute_complex_ancestor_jump_func): Likewise.
2193 (ipa_get_callee_param_type): New function.
2194 (ipa_compute_jump_functions_for_edge): Compute parameter type;
2195 update calls to the jump function computation functions.
2196
600b5b1d
TJ
21972013-08-30 Teresa Johnson <tejohnson@google.com>
2198 Steven Bosscher <steven@gcc.gnu.org>
2199
2200 * cfgrtl.c (fixup_new_cold_bb): New routine.
2201 (commit_edge_insertions): Invoke fixup_partitions.
2202 (find_partition_fixes): New routine.
2203 (fixup_partitions): Ditto.
2204 (verify_hot_cold_block_grouping): Update comments.
2205 (rtl_verify_edges): Invoke find_partition_fixes.
2206 (rtl_verify_bb_pointers): Update comments.
2207 (rtl_verify_bb_layout): Ditto.
2208 * basic-block.h (probably_never_executed_edge_p): Declare.
2209 (fixup_partitions): Ditto.
2210 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
2211 * bb-reorder.c (sanitize_hot_paths): New function.
2212 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
2213 sanitize_hot_paths.
2214 * predict.c (probably_never_executed_edge_p): New routine.
2215 * cfg.c (check_bb_profile): Add partition insanity warnings.
2216
0a6ea5c9
MI
22172013-08-30 Meador Inge <meadori@codesourcery.com>
2218
2219 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2220
de5a5fa1
MP
22212013-08-30 Marek Polacek <polacek@redhat.com>
2222
2223 * Makefile.in (ubsan.o): Add.
2224 (c-family/c-ubsan.o): Add.
2225 (builtins.o): Add ubsan.h dependency.
2226 * ubsan.h: New file.
2227 * ubsan.c: New file.
2228 * common.opt: Add -fsanitize=undefined option.
2229 (flag_sanitize): Add variable.
2230 (fsanitize=): Add option. Add Driver.
2231 (fsanitize=thread): Remove option.
2232 (fsanitize=address): Likewise.
2233 (static-libubsan): New option.
2234 * doc/invoke.texi: Document the new flag and -static-libubsan.
2235 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
2236 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
2237 * builtin-attrs.def (ATTR_COLD): Define.
2238 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
2239 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
2240 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
2241 * flag-types.h (sanitize_code): New enum.
2242 * opts.c (common_handle_option): Parse command line arguments
2243 of -fsanitize=. Add -fsanitize=unreachable option.
2244 * varasm.c (get_variable_section): Adjust.
2245 (assemble_noswitch_variable): Likewise.
2246 (assemble_variable): Likewise.
2247 (output_constant_def_contents): Likewise.
2248 (categorize_decl_for_section): Likewise.
2249 (place_block_symbol): Likewise.
2250 (output_object_block): Likewise.
2251 * builtins.def: Likewise.
2252 * toplev.c (compile_file): Likewise.
2253 (process_options): Likewise.
2254 * cppbuiltin.c: Likewise.
2255 * tsan.c (tsan_pass): Likewise.
2256 (tsan_gate): Likewise.
2257 (tsan_gate_O0): Likewise.
2258 * cfgexpand.c (partition_stack_vars): Likewise.
2259 (expand_stack_vars): Likewise.
2260 (defer_stack_allocation): Likewise.
2261 (expand_used_vars): Likewise.
2262 * cfgcleanup.c (old_insns_match_p): Likewise.
2263 * asan.c (asan_finish_file): Likewise.
2264 (asan_instrument): Likewise.
2265 (gate_asan): Likewise.
2266 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
2267 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
2268 (asan_global_struct): Use pointer_sized_int_node instead
2269 calling build_nonstandard_integer_type.
2270 (initialize_sanitizer_builtins): Likewise.
2271 (asan_finish_file): Likewise.
2272 * gcc.c: Document %{%:function(args):X}.
2273 (static_spec_functions): Add sanitize.
2274 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
2275 store funcval != NULL there.
2276 (do_spec_1): Adjust handle_spec_function caller.
2277 (handle_braces): Allow %:function(args) as condition.
2278 (sanitize_spec_function): New function.
2279 (ADD_STATIC_LIBUBSAN_LIBS): Define.
2280 (LIBUBSAN_SPEC): Likewise.
2281 (LIBUBSAN_EARLY_SPEC): Likewise.
2282 (SANITIZER_SPEC): Handle libubsan.
2283 (SANITIZER_EARLY_SPEC): Likewise.
2284 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
2285 instead of fsanitize=address.
2286 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
2287 instead of fsanitize=address*.
2288 * builtins.c: Include ubsan.h.
2289 (fold_builtin_0): Instrument __builtin_unreachable.
2290 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
2291 instead of flag_asan.
2292 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
2293 (pointer_sized_int_node): Define.
41dedebd 2294 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 2295
f07f30cf
MS
22962013-08-30 Mike Stump <mikestump@comcast.net>
2297
2298 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
2299 with RE patterns.
2300
8a41354f
JH
23012013-08-29 Jan Hubicka <jh@suse.cz>
2302
2303 * cgraph.c (cgraph_function_body_availability): Handle weakref
2304 correctly.
2305 * passes.def: Remove pass_fixup_cfg.
2306 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
2307 track when we need to remove functions.
2308 (gate_ipa_inline): Execute inlining always; add comment why.
2309 (pass_data_ipa_inline): Remove TODO_remove_functions.
2310 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
2311 do not produce summaries.
2312 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
2313 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
2314 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
2315 constant pool and vtable.
2316
dc8d7a0f
TB
23172013-08-30 Tejas Belagod <tejas.belagod@arm.com>
2318
41dedebd
UB
2319 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
2320 New arm_neon.h's internal macros to specify 64-bit constants.
2321 Avoid using stdint.h's macros.
dc8d7a0f 2322
ac7eacd2
JR
23232013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
2324
2325 * recog.c (verify_changes): Verify that changes[i].old is non-zero
2326 before applying REG_P.
2327
8b29fd4e
JJ
23282013-08-30 Jakub Jelinek <jakub@redhat.com>
2329
2330 PR tree-optimization/58277
2331 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
2332 after seeing too many stmts with vdef in between dombb and current
2333 bb, invalidate everything.
2334
26d75703
RB
23352013-08-30 Richard Biener <rguenther@suse.de>
2336
2337 * fold-const.c (fold_single_bit_test): Fix overflow test.
2338
f7e088e7
EB
23392013-08-30 Eric Botcazou <ebotcazou@adacore.com>
2340
2341 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
2342 and which can live in a register, always retrieve the value on entry.
2343 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
2344 passed by invisible reference specially.
2345 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
2346 (vt_add_function_parameter): Correctly deal with a parameter passed by
2347 invisible reference.
2348
23492013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
2350
2351 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
2352
6e8dad05
RB
23532013-08-30 Richard Biener <rguenther@suse.de>
2354
2355 PR tree-optimization/58228
2356 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
2357 allow invariant loads in nested loop vectorization.
2358
062ef2c8
RB
23592013-08-30 Richard Biener <rguenther@suse.de>
2360
2361 PR tree-optimization/58223
2362 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
2363 (has_anti_or_output_dependence): ... this and adjust to also
2364 look for output dependences.
2365 (mark_nodes_having_upstream_mem_writes): Adjust.
2366 (rdg_flag_uses): Likewise.
2367
7a764c60
RB
23682013-08-30 Richard Biener <rguenther@suse.de>
2369
2370 PR tree-optimization/58010
2371 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
2372 assert that we have a loop-closed PHI.
2373
82e9d642
JH
23742013-08-29 Jan Hubicka <jh@suse.cz>
2375
2376 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
2377 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
2378 * lto-section-in.c (lto_free_function_in_decl_state): New function.
2379 (lto_free_function_in_decl_state_for_node): New function.
2380
9cc1fb4b
XDL
23812013-08-29 Xinliang David Li <davidxl@google.com>
2382
41dedebd 2383 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
2384 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
2385 Emit alignment peeling message with default -fopt-info.
2386 (vect_loop_versioning): Emit loop version info message.
41dedebd 2387 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
2388 (execute_vect_slp): Ditto.
2389
440a5082
EB
23902013-08-29 Eric Botcazou <ebotcazou@adacore.com>
2391
2392 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
2393 of the clone from the DECL_NAME of the original function.
2394
3fa3690d
OE
23952013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
2396
2397 * passes.c (register_pass): Add overload.
2398 * tree-pass.h (register_pass): Forward declare it. Add comment.
2399
0170f33c
JH
24002013-08-29 Jan Hubicka <jh@suse.cz>
2401
41dedebd
UB
2402 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
2403 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
2404 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
2405 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
2406 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
2407 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 2408 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
2409 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
2410
103ff0d6
TJ
24112013-08-29 Teresa Johnson <tejohnson@google.com>
2412
2413 * dumpfile.c (dump_loc): Output column number.
2414 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
2415 * doc/invoke.texi: Document optall -fopt-info flag.
2416 * profile.c (read_profile_edge_counts): Use new dump framework.
2417 (compute_branch_probabilities): Ditto.
2418 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
2419 when pass not in any opt group.
2420 * pass_manager.h (pass_manager::get_pass_profile): New method.
2421 * value-prof.c (check_counter): Use new dump framework.
2422 (check_ic_target): Ditto.
2423 * coverage.c (get_coverage_counts): Ditto.
2424 (coverage_init): Setup new dump framework.
2425
301bbc16
RB
24262013-08-29 Richard Biener <rguenther@suse.de>
2427
2428 PR tree-optimization/58246
2429 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
2430 handle the dominance check inside a basic-block.
2431
1b275000
RB
24322013-08-29 Richard Biener <rguenther@suse.de>
2433
2434 PR middle-end/57287
2435 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
2436 of default defs that appear in abnormal PHI nodes.
2437
6b1184ba
RB
24382013-08-29 Richard Biener <rguenther@suse.de>
2439
2440 PR tree-optimization/57685
2441 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
2442 single-use operands to avoid exponential complexity.
2443
1b08b734
DC
24442013-08-28 Dehao Chen <dehao@google.com>
2445
2446 * ipa-inline.c (edge_badness): Fix integer underflow.
2447
48a3fa69
UB
24482013-08-28 Uros Bizjak <ubizjak@gmail.com>
2449
2450 * gtm-builtins.def (_ITM_free): Declare leaf.
2451
215f73e6
JJ
24522013-08-28 Jakub Jelinek <jakub@redhat.com>
2453
2454 PR target/58067
2455 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
2456 (*tls_local_dynamic_base_64_largepic): Likewise.
2457 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
2458 Remove predicate from call operand.
2459 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
2460 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
2461
34554d1a
JL
24622013-08-28 Jeff Law <law@redhat.com>
2463
2464 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
2465 checks for the number of predecessors and successors allowed.
2466 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
2467 which require copying a joiner block if there is a request which
2468 is a subpath that requires no joiner block copying.
2469
c01c111b
JH
24702013-08-28 Jan Hubicka <jh@suse.cz>
2471
2472 * lto-streamer-out.c (DFS_write_tree_body): Drop
2473 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
2474 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
2475 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
2476 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
2477 Do not read DECL_ERROR_ISSUED.
2478 (unpack_ts_decl_with_vis_value_fields): Do not read
2479 DECL_DEFER_OUTPUT.
48a3fa69
UB
2480 (lto_input_ts_binfo_tree_pointers): Do not read
2481 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
2482 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
2483 write DECL_ERROR_ISSUED..
2484 (pack_ts_decl_with_vis_value_fields): Do not write
2485 DECL_DEFER_OUTPUT.
2486 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 2487 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
2488 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
2489 * tree.h (tree_decl_common): Update comment.
2490 (DECL_ERROR_ISSUED): Remove.
2491
4b128ece
JJ
24922013-08-28 Jakub Jelinek <jakub@redhat.com>
2493
2494 PR middle-end/58257
2495 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
2496
12211b99 24972013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
2498
2499 * builtins.def (free): Declare leaf.
2500
8dce4dbc
DM
25012013-08-27 David Malcolm <dmalcolm@redhat.com>
2502
2503 * gdbhooks.py: New.
2504 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
2505 * configure: Regenerate.
2506
b8f6e610
MJ
25072013-08-27 Martin Jambor <mjambor@suse.cz>
2508
2509 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
2510 (ipa_ancestor_jf_data): Likewise.
2511 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
2512 (ipa_get_jf_pass_through_type_preserved): New function.
2513 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
2514 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 2515 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
2516 (ipa_get_jf_ancestor_result): Likewise.
2517 (propagate_vals_accross_pass_through): Use
2518 ipa_get_jf_pass_through_result to do all the value mappings.
2519 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
2520 type_preserved flag.
2521 (ipa_set_jf_cst_copy): New function.
2522 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
2523 (ipa_set_jf_arith_pass_through): Likewise.
2524 (ipa_set_ancestor_jf): Likewise.
2525 (compute_complex_assign_jump_func): Set type_preserved instead of
2526 punting.
2527 (ipa_compute_jump_functions_for_edge): Likewise.
2528 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
2529 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 2530 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
2531 (ipa_write_jump_function): Stream the type_preserved flags.
2532 (ipa_read_jump_function): Likewise.
2533
74bf76ed
JJ
25342013-08-27 Jakub Jelinek <jakub@redhat.com>
2535 Aldy Hernandez <aldyh@redhat.com>
2536
2537 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
2538 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
2539 * function.h (struct function): Add has_force_vect_loops and
2540 has_simduid_loops.
12211b99 2541 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
2542 * gimple.c (gimple_build_omp_critical): Add KIND argument and
2543 handle it.
2544 * gimple.def: Update CLAUSES comments.
2545 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
2546 (gimple_build_omp_for): Add argument to prototype.
2547 (gimple_omp_for_kind): New.
2548 (gimple_omp_for_set_kind): New.
2549 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
2550 GOVD_DATA_SHARE_CLASS.
2551 (enum omp_region_type): Add ORT_SIMD.
2552 (gimple_add_tmp_var): Handle ORT_SIMD.
2553 (gimplify_var_or_parm_decl): Same.
2554 (is_gimple_stmt): Same.
2555 (omp_firstprivatize_variable): Same.
2556 (omp_add_variable): Only use splay_tree_insert if lookup failed.
2557 (omp_notice_variable): Handle ORT_SIMD.
12211b99 2558 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
2559 (omp_check_private): Handle ORT_SIMD.
2560 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
2561 OMP_CLAUSE_SAFELEN.
2562 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
2563 Handle OMP_CLAUSE_LASTPRIVATE.
2564 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
2565 OMP_CLAUSE_SAFELEN.
2566 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
2567 (gimplify_expr): Handle OMP_SIMD.
2568 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
2569 (expand_GOMP_SIMD_VF): New.
2570 (expand_GOMP_SIMD_LAST_LANE): New.
2571 * internal-fn.def (GOMP_SIMD_LANE): New.
2572 (GOMP_SIMD_VF): New.
2573 (GOMP_SIMD_LAST_LANE): New.
2574 * omp-low.c: Include target.h.
2575 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
2576 OMP_CLAUSE_SAFELEN.
2577 (check_omp_nesting_restrictions): Same.
2578 (omp_max_vf): New.
2579 (lower_rec_simd_input_clauses): New.
2580 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
2581 OMP_CLAUSE_LINEAR.
2582 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
2583 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
2584 (expand_omp_build_assign): New.
2585 (expand_omp_for_init_counts): New.
2586 (expand_omp_for_init_vars): New.
2587 (extract_omp_for_update_vars): New.
2588 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
2589 and rewrite accordingly.
2590 (expand_omp_simd): New.
2591 (expand_omp_for): Use expand_omp_simd.
2592 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
2593 (lower_omp_for): Do not lower the body.
2594 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
2595 in their own loops.
2596 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
2597 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
2598 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
2599 (gate_tree_if_conversion): Similarly.
2600 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
2601 gimple_build_omp_for.
2602 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
2603 * tree-parloops (create_parallel_loop): Pass kind argument to
2604 gimple_build_omp_for.
2605 * tree-pretty-print.c (dump_omp_clause): Add cases for
2606 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
2607 OMP_CLAUSE__SIMDUID_.
2608 (dump_generic_node): Handle OMP_SIMD.
2609 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
2610 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
2611 unroll OMP_SIMD loops here.
12211b99 2612 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 2613 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 2614 loop->safelen.
74bf76ed
JJ
2615 (vect_analyze_data_refs): Handle simd loops.
2616 * tree-vect-loop.c (vectorizable_live_operation): Handle
2617 IFN_GOMP_SIMD*.
12211b99 2618 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
2619 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
2620 (vectorizable_load): Same.
12211b99 2621 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
2622 (struct simduid_to_vf): New.
2623 (simduid_to_vf::hash): New.
2624 (simduid_to-vf::equal): New.
2625 (struct simd_array_to_simduid): New.
2626 (simd_array_to_simduid::hash): New.
2627 (simd_array_to_simduid::equal): New.
2628 (adjust_simduid_builtins): New.
2629 (struct note_simd_array_uses_struct): New.
2630 (note_simd_array_uses_cb): New.
2631 (note_simd_array_uses): New.
2632 (vectorize_loops): Handle simd hints and adjust simd builtins
2633 accordingly.
2634 * tree-vectorizer.h (struct _stmt_vec_info): Add
2635 simd_lane_access_p field.
2636 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
2637 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
2638 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
2639 (omp_clause_code_name): Same.
2640 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
2641 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
2642 * tree.def (OMP_SIMD): New entry.
12211b99
UB
2643 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
2644 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
2645 (OMP_CLAUSE_DECL): Adjust range for new clauses.
2646 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
2647 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
2648 (OMP_CLAUSE_LINEAR_STEP): New.
2649 (OMP_CLAUSE_SAFELEN_EXPR): New.
2650 (OMP_CLAUSE__SIMDUID__DECL): New.
2651 (find_omp_clause): New prototype.
2652
d0cf4e84
L
26532013-08-27 H.J. Lu <hongjiu.lu@intel.com>
2654
2655 * config/i386/driver-i386.c (host_detect_local_cpu): Update
2656 Haswell processor detection.
2657
992592ec
CW
26582013-08-27 Christian Widmer <shadow@umbrox.de>
2659
2660 PR target/57927
2661 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
2662 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
2663 AVX2 capable processors.
2664
9116eb22
TB
26652013-08-27 Tejas Belagod <tejas.belagod@arm.com>
2666
2667 * config/aarch64/arm_neon.h: Replace all inline asm implementations
2668 of vget_low_* with implementations in terms of other intrinsics.
2669
1c5abb53
MG
26702013-08-27 Marc Glisse <marc.glisse@inria.fr>
2671
2672 PR middle-end/57219
2673 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
2674 values to -1, 0 and 1.
2675
2e100703
VP
26762013-08-27 Vidya Praveen <vidyapraveen@arm.com>
2677
2678 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
2679 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
2680 (<optab><mode>3_insn): Remove.
2681 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
2682 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
2683 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
2684 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
2685 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
2686 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
2687 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
2688 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
2689 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
2690 (ror<mode>3_insn): Likewise.
2691 * config/aarch64/predicates.md (aarch64_simd_register): New.
2692
4ded8276
RB
26932013-08-27 Richard Biener <rguenther@suse.de>
2694
2695 PR tree-optimization/57521
2696 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
2697 one edge is non-critical.
2698 (find_phi_replacement_condition): Make sure to use a non-critical
2699 edge. Cleanup and remove old bug workarounds.
2700 (bb_postdominates_preds): Remove.
2701 (if_convertible_loop_p_1): Do not compute post-dominators.
2702 (combine_blocks): Do not free post-dominators.
2703 (main_tree_if_conversion): Likewise.
2704 (pass_data_if_conversion): Add TODO_verify_ssa.
2705
5aa11061
DD
27062013-08-27 DJ Delorie <dj@redhat.com>
2707
2708 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
2709
fd91cfe3
YZ
27102013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
2711
2712 * function.c (assign_parm_find_data_types): Set passed_mode and
2713 nominal_mode to the TYPE_MODE of nominal_type for the built
2714 pointer type in case of the struct-pass-by-reference.
2715
907555ce
JR
27162013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
2717
2718 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
2719 (UINT16_TYPE): Change default to "unsigned int".
2720
67518c93
JR
2721 * config/avr/avr.opt (mfract-convert-truncate): New option.
2722 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
2723 is set, round negative fractional integers according to n1169
2724 when converting to integer types.
2725
d6d989fc
JH
27262013-08-26 Jan Hubicka <jh@suse.cz>
2727
2728 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
2729 methods can not be called indirectly when their address is not taken.
2730
2aa3da06
JH
27312013-08-26 Jan Hubicka <jh@suse.cz>
2732
12211b99
UB
2733 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
2734 ctor_for_folding.
2aa3da06 2735
0987ffe7
JH
27362013-08-26 Jan Hubicka <jh@suse.cz>
2737
2738 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
2739 can be unshared.
2740
befe8647
JR
27412013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
2742
2743 * reload.c (find_valid_class): Allow classes that do not include
2744 FIRST_PSEUDO_REGISTER - 1.
2745
a21e735e
JH
27462013-08-26 Jan Hubicka <jh@suse.cz>
2747
2748 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
2749 fix edge count/frequency when speculation failed; fix type check
2750 for the direct call.
2751
e067bd43
JH
27522013-08-26 Jan Hubicka <jh@suse.cz>
2753
2754 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
2755
e8aec975
JH
27562013-08-26 Jan Hubicka <jh@suse.cz>
2757
2758 * ipa-inline-transform.c (inline_transform): Be ready for basic block
2759 to be changed by edge redirection.
2760
d0b66480
JH
27612013-08-26 Jan Hubicka <jh@suse.cz>
2762
12211b99
UB
2763 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
2764 formating; add sanity check.
d0b66480
JH
2765 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
2766 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
2767 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
2768 (resolve_noninline_speculation): Update callee keys, too.
2769
0f9aaac7
JH
27702013-08-26 Jan Hubicka <jh@suse.cz>
2771
2772 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
2773 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
2774
4b37444e
JR
27752013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
2776
2777 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
2778 into proper place.
2779
5339fc0c
UB
27802013-08-26 Uros Bizjak <ubizjak@gmail.com>
2781
2782 * config/i386/i386.c (ix86_debug_options): Remove prototype.
2783 (x86_64_elf_select_section): Ditto.
2784 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
2785 arguments.
2786 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
2787 (output_set_got): Ditto.
2788 (ix86_unary_operator_ok): Ditto.
2789 (ix86_expand_builtin): Ditto.
2790
d5c3d3ef
JH
27912013-08-23 Jan Hubicka <jh@suse.cz>
2792
5339fc0c 2793 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 2794
5b1e7435
JH
27952013-08-23 Jan Hubicka <jh@suse.cz>
2796
2797 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
2798 (tree_decl_with_vis): Add FINAL field.
2799
ead69dac
JL
28002013-08-23 Jeff Law <law@redhat.com>
2801
2802 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
2803 the debugging dump when the expression is fully redundant.
2804
025311c4
GDR
28052013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2806
2807 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
2808 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
2809 * pretty-print.c (pp_formatted_text_data): Likewise.
2810 (pp_write_text_to_stream): Likewise.
2811 (pp_write_text_as_dot_label_to_stream): Likewise.
2812 (pp_append_r): Likewise.
2813 (pp_format): Likewise.
2814 (pp_flush): Likewise.
2815 (pp_clear_output_area): Likewise.
2816 (pp_append_text): Likewise.
2817 (pp_formatted_text): Likewise.
2818 (pp_remaining_character_count_for_line): Likewise.
2819 (pp_newline): Likewise.
2820 (pp_character): Likewise.
2821 (output_buffer::~output_buffer): Define.
2822 (pretty_printer::~pretty_printer): Destruct output buffer.
2823 * pretty-print.h (output_buffer::~output_buffer): Declare.
2824 (pretty_printer::~pretty_printer): Declare virtual.
2825
0cadbfaa
MG
28262013-08-24 Marc Glisse <marc.glisse@inria.fr>
2827
2828 PR other/57324
2829 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
2830 HOST_WIDE_INT_M1U): New macros.
2831 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
2832 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
2833 unsigned -1 for lshift.
2834 * cse.c (cse_insn): Likewise.
2835 * double-int.c (rshift_double, lshift_double): Likewise.
2836 * builtins.c (fold_builtin_bitop): Likewise.
2837 * combine.c (force_to_mode): Likewise.
2838 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
2839 * simplify-rtx.c (simplify_const_unary_operation,
2840 simplify_const_binary_operation): Likewise.
2841 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
2842 check_va_list_escapes): Likewise.
2843 * rtlanal.c (nonzero_bits1): Likewise.
2844 * expmed.c (expand_smod_pow2): Likewise.
2845 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
2846
009e5353
JH
28472013-08-23 Jan Hubicka <jh@suse.cz>
2848
2849 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
2850 as having address taken.
2851
c4be6568
JH
28522013-08-23 Jan Hubicka <jh@suse.cz>
2853
64cbf23d
JH
2854 * ipa-utils.h (method_class_type): Declare.
2855 * ipa-devirt.c (method_class_type): Export.
2856
c4be6568
JH
2857 * cgraphunit.c (analyze_functions): Do basic devirtualization;
2858 do not walk base classes of anonymous types.
2859
97aba8e9
KK
28602013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
2861
2862 PR rtl-optimization/58220
2863 PR regression/58221
2864 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
2865 handle SEQUENCE insns properly.
2866
0fc80001
GDR
28672013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2868
2869 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
2870 definition.
2871 (pp_newline_and_indent): Likewise.
2872 (pp_separate_with): Likewise.
2873 * pretty-print.c (pp_newline_and_flush): Define.
2874 (pp_newline_and_indent): Likewise.
2875 (pp_separate_with): Likewise.
2876
520a5868
JJ
28772013-08-23 Jakub Jelinek <jakub@redhat.com>
2878
2879 PR target/58218
2880 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
2881 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
2882
e500c62a
KY
28832013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
2884
f43245d1
UB
2885 * config/i386/predicates.md (ext_sse_reg_operand): New.
2886 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
2887 predicate to determine if EVEX is needed.
2888 (*movsi_internal): Ditto.
2889 (*movdf_internal): Ditto.
2890 (*movsf_internal): Ditto.
f43245d1 2891 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 2892
6b00d7dd
JJ
28932013-08-23 Jakub Jelinek <jakub@redhat.com>
2894
2895 PR tree-optimization/58209
2896 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
2897 (find_tail_calls): Give up for pointer result types if m is non-NULL.
2898 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
2899 emit POINTER_PLUS_EXPR.
2900 (create_tailcall_accumulator): For pointer result type accumulate in
2901 sizetype type.
2902
4f2a9f90
PC
29032013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
2904
2905 * configure.ac: Add backslashes missing from the last change.
2906 * configure: Regenerate.
2907
7bf4274e
JH
29082013-08-22 Jan Hubicka <jh@susue.cz>
2909
4f2a9f90
PC
2910 * ipa.c (function_and_variable_visibility): First remember function
2911 was global and then make it local.
7bf4274e 2912
1bea243d
JB
29132013-08-22 Julian Brown <julian@codesourcery.com>
2914
2915 * configure.ac: Add aarch64 to list of arches which use "nop" in
2916 debug_line test.
2917 * configure: Regenerate.
2918
bcba7ecc
AK
29192013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2920
2921 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
2922 gnu_libc_has_function.
2923 * config/s390/tpf.h: Likewise.
2924
4c495b0d
JH
29252013-08-22 Jan Hubicka <jh@susue.cz>
2926
2927 * timevar.c (validate_phases): Add cast.
2928
5e302bca
JH
29292013-08-22 Jan Hubicka <jh@susue.cz>
2930
2931 * timevar.c (validate_phases): Use size_t for memory.
2932 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
2933
da6ca2b5
GDR
29342013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
2935
2936 * pretty-print.h (output_buffer::output_buffer): Declare.
2937 (pretty_printer::pretty_printer): Likewise.
2938 (pp_construct): Remove.
2939 * pretty-print.c (output_buffer::output_buffer): Define.
2940 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
2941 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
2942 (print_gimple_expr): Likewise.
2943 (print_gimple_seq): Likewise.
2944 (gimple_dump_bb): Likewise.
2945 * sched-vis.c (dump_value_slim): Likewise.
2946 (dump_insn_slim): Likewise.
2947 (dump_rtl_slim): Likewise.
2948 (str_pattern_slim): Likewise.
2949 * tree-mudflap.c (mf_varname_tree): Likewise.
2950 * graph.c (print_graph_cfg): Likewise.
2951 (start_graph_dump): Likewise.
2952 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
2953 placement-new.
2954 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
2955 pretty printer initialization.
2956 * coretypes.h (diagnostic_context): Remove superflous type alias
2957 declaration.
2958 (pretty_printer): Likewise. Declare directly as a class.
2959 (pretty_print_info): Remove declaration as class.
2960 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
2961 and pp_clear_output_area.
2962 (asan_add_global): Likewise.
2963
0e1474e5
JH
29642013-08-22 Jan Hubicka <jh@suse.cz>
2965
2966 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
2967 * ipa-utils.h (update_type_inheritance_graph): Declare.
2968 (possible_polymorphic_call_target_p): Declare.
2969 (possible_polymorphic_call_target_p): New.
2970 * ipa-devirt.c: Update toplevel comments.
2971 (cached_polymorphic_call_targets): Move up.
2972 (odr_type_d): Move ID down.
2973 (polymorphic_type_binfo_p): Update comment.
2974 (odr_hasher::remove): Likewise;
2975 (get_odr_type): Set anonymous_namespace.
2976 (dump_odr_type): Dump it.
2977 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
2978 (maybe_record_node): Record node in cached_polymorphic_call_targets.
2979 (record_binfo): Add comment.
5339fc0c
UB
2980 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
2981 built.
0e1474e5
JH
2982 (devirt_node_removal_hook): Do not iCE when cache is freed.
2983 (possible_polymorphic_call_target_p): New predicate.
2984 (update_type_inheritance_graph): New function.
2985
3f97cb0b
AI
29862013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
2987 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2988 Sergey Lega <sergey.s.lega@intel.com>
2989 Anna Tikhonova <anna.tikhonova@intel.com>
2990 Ilya Tocar <ilya.tocar@intel.com>
2991 Andrey Turetskiy <andrey.turetskiy@intel.com>
2992 Ilya Verbin <ilya.verbin@intel.com>
2993 Kirill Yukhin <kirill.yukhin@intel.com>
2994 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2995
2996 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
2997 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
2998 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
2999 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
3000 (OPTION_MASK_ISA_AVX2_UNSET): Update.
3001 (OPTION_MASK_ISA_AVX512F_UNSET): New.
3002 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
3003 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
3004 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
3005 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
3006 OPT_mavx512pf, OPT_mavx512er cases.
3007 * config/i386/constraints.md (v): New constraint.
3008 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
3009 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
3010 (bit_AVX512CD): New.
3011 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3012 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
3013 * config/i386/i386-c.c (ix86_target_macros_internal):
3014 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
3015 __AVX512PF__.
3016 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
3017 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
3018 * config/i386/i386.c (regclass_map, dbx_register_map)
3019 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
3020 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
3021 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
3022 -mavx512pf options.
3023 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
3024 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
3025 -mavx512pf options. Fix formatting.
3026 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
3027 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
3028 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
3029 -mavx512cd, -mavx512pf options.
3030 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
3031 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
3032 (ix86_preferred_output_reload_class): Replace SSE_REGS with
3033 ALL_SSE_REGS.
3034 (ix86_hard_regno_mode_ok): Support 512-bit registers.
3035 (ix86_set_reg_reg_cost): Ditto.
3036 (x86_order_regs_for_local_alloc): Ditto.
3037 (MAX_VECT_LEN): Extend to 64-byte.
3038 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
3039 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
3040 (TARGET_AVX512ER, TARGET_AVX512CD): New.
3041 (BIGGEST_ALIGNMENT): Extend to 512-bits.
3042 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
3043 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
3044 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
3045 (SSE_REG_MODE_P): Support new modes.
3046 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
3047 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
3048 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
3049 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
3050 (REG_CLASS_CONTENTS): Add new registers.
3051 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
3052 (EXT_REX_SSE_REGNO_P): New.
3053 (HI_REGISTER_NAMES): Add new registers.
3054 * config/i386/i386.md: Define constants for new registers.
3055 (mode): Add new 512-bit modes.
3056 (prefix): Support evex prefix.
3057 (isa): Support avx512f, noavx512f, fma_avx512f.
3058 (ssemodesuffix): Add new 512-bit modes.
3059 (movxi): New.
3060 (*movxi_internal_avx512f): Ditto.
3061 (*movdi_internal): Replace constraint "x" with the new constraint "v".
3062 Support MODE_XI.
3063 (*movsi_internal): Likewise.
3064 (*movdf_internal): Likewise.
3065 (*movsf_internal): Likewise.
3066 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
3067 (<code><mode>3): Likewise.
5339fc0c
UB
3068 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
3069 New.
3f97cb0b
AI
3070 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
3071 with the new constraint "v".
3072 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
3073 modes.
3074 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
3075 with the new constraint "v".
3076 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
3077 (<sse2>_storedqu<avxsizesuffix>): Likewise.
3078 (*<plusminus_insn><mode>3): Likewise.
3079 (<sse>_vm<plusminus_insn><mode>3): Likewise.
3080 (*mul<mode>3): Likewise.
3081 (<sse>_vmmul<mode>3): Likewise.
3082 (<sse>_div<mode>3): Likewise.
3083 (<sse>_vmdiv<mode>3): Likewise.
3084 (<sse>_sqrt<mode>2): Likewise.
3085 (<sse>_vmsqrt<mode>2): Likewise.
3086 (*<code><mode>3_finite): Likewise.
3087 (*<code><mode>3) <smaxmin>: Likewise.
3088 (<sse>_vm<code><mode>3): Likewise.
3089 (*<code><mode>3) <any_logic>: Likewise.
3090 (*fma_fmadd_<mode>): Likewise.
3091 (*fma_fmsub_<mode>): Likewise.
3092 (*fma_fnmadd_<mode>): Likewise.
3093 (*fma_fnmsub_<mode>): Likewise.
3094 (*fma_fmaddsub_<mode>): Likewise.
3095 (*fma_fmsubadd_<mode>): Likewise.
3096 (*fmai_fmadd_<mode>): Likewise.
3097 (*fmai_fmsub_<mode>): Likewise.
3098 (*fmai_fnmadd_<mode>): Likewise.
3099 (*fmai_fnmsub_<mode>): Likewise.
3100 (sse_cvtsi2ss): Likewise.
3101 (sse_cvtsi2ssq): Likewise.
3102 (sse_cvtss2si): Likewise.
3103 (sse_cvtss2si_2): Likewise.
3104 (sse_cvtss2siq): Likewise.
3105 (sse_cvtss2siq_2): Likewise.
3106 (sse_cvttss2si): Likewise.
3107 (sse_cvtss2siq_2): Likewise.
3108 (float<sseintvecmodelower><mode>2): Likewise.
3109 (sse2_cvtsd2si_2): Likewise.
3110 (sse2_cvtsd2siq_2): Likewise.
3111 (*<plusminus_insn><mode>3): Likewise.
3112 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
3113 (*<sse4_1_avx2>_mul<mode>3): Likewise.
3114 (ashr<mode>3): Likewise.
3115 (<shift_insn><mode>3): Likewise.
3116 (avx2_<code><mode>3): Likewise.
3117 (*avx2_<code><mode>3): Likewise.
3118 (*andnot<mode>3): Likewise.
3119 (*<code><mode>3) <any_logic>: Likewise.
3120 (abs<mode>2): Likewise.
3121 (avx2_permvar<mode>): Likewise.
3122 (avx2_perm<mode>_1): Likewise.
3123 (*avx_vpermilp<mode>): Likewise.
3124 (avx_vpermilvar<mode>3): Likewise.
3125 (avx2_ashrv<mode>): Likewise.
3126 (avx2_<shift_insn>v<mode>): Likewise.
3127 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
3128 -mavx512cd.
3129 * doc/rtl.texi: Document XImode.
3130
dd5e8423
JL
31312013-08-21 Jeff Law <law@redhat.com>
3132
b9ebee5d
JL
3133 * tree-flow.h (register_jump_thread): Pass vector of edges
3134 instead of each important edge.
3135 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
3136 thread path into a vector and pass that to register_jump_thread.
3137 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
3138 passed in edge vector to the current 3-edge form.
3139
dd5e8423
JL
3140 Revert:
3141 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
3142
9bb6628e 3143 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
3144 delete_unmarked_insns removed anything.
3145
445dc8df
JR
31462013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
3147
3148 * reload.h (struct reg_equivs): Rename to ..
3149 (struct reg_equivs_s): .. this.
3150
e0df53dd
ML
31512013-08-20 Martin Liska <marxin.liska@gmail.com>
3152
3153 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
3154
e7d1d3eb
RO
31552013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3156
5339fc0c 3157 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 3158
5562e26e
JL
31592013-08-21 Jeff Law <law@redhat.com>
3160
3161 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
3162 simplify assignments too. If the RHS collapses to a singleton
3163 range, then return the value for the range.
3164
c7ecdec6
KY
31652013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
3166
3167 * config/i386/sse.md (V16): Rename to...
3168 (VMOVE): this.
3169 (mov<mode>): Update iterator name.
3170 (*mov<mode>_internal): Ditto.
3171 (push<mode>1): Ditto.
3172 (movmisalign<mode>): Ditto.
3173
bfa3b50a
JH
31742013-08-20 Jan Hubicka <jh@suse.cz>
3175
3176 PR bootstrap/58186
3177 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
3178 entry for direct edges.
3179 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
3180
6cd4d135
DM
31812013-08-20 David Malcolm <dmalcolm@redhat.com>
3182
3183 Revert my last two changes, r201865 and r201864:
3184
3185 Revert r201865:
3186 2013-08-20 David Malcolm <dmalcolm@redhat.com>
3187
3188 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
3189 instances can own GC refs.
3190
3191 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
3192 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
3193 (gcc::context::gt_pch_nx): Likewise.
3194 (gcc::context::gt_pch_nx): Likewise.
3195 * ggc.h (gt_ggc_mx <T>): New.
3196 (gt_pch_nx_with_op <T>): New.
3197 (gt_pch_nx <T>): New.
3198 * passes.c (opt_pass::gt_ggc_mx): New.
3199 (opt_pass::gt_pch_nx): New.
3200 (opt_pass::gt_pch_nx_with_op): New.
3201 (pass_manager::gt_ggc_mx): New.
3202 (pass_manager::gt_pch_nx): New.
3203 (pass_manager::gt_pch_nx_with_op): New.
3204 (pass_manager::operator new): Use
3205 ggc_internal_cleared_alloc_stat rather than xcalloc.
3206 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
3207 (pass_manager::gt_ggc_mx): New.
3208 (pass_manager::gt_pch_nx): New.
3209 (pass_manager::gt_pch_nx_with_op): New.
3210 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
3211 (opt_pass::operator new): New.
3212 (opt_pass::gt_ggc_mx): New.
3213 (opt_pass::gt_pch_nx): New.
3214 (opt_pass::gt_pch_nx_with_op): New.
3215
3216 Revert r201864:
3217 2013-08-20 David Malcolm <dmalcolm@redhat.com>
3218
3219 * Makefile.in (GTFILES): Add context.h.
3220 * context.c (gcc::context::operator new): New.
3221 (gcc::context::gt_ggc_mx): New.
3222 (gcc::context::gt_pch_nx): New.
3223 (gcc::context::gt_pch_nx): New.
3224 * context.h (gcc::context): Add GTY((user)) marking.
3225 (gcc::context::operator new): New.
3226 (gcc::context::gt_ggc_mx): New.
3227 (gcc::context::gt_pch_nx): New.
3228 (gcc::context::gt_pch_nx): New.
3229 (g): Add GTY marking.
3230 (gt_ggc_mx (gcc::context *)): New.
3231 (gt_pch_nx (gcc::context *)): New.
3232 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
3233 void *cookie)): New.
3234 * gengtype.c (open_base_files) <ifiles>: Add context.h.
3235
a046136a
AM
32362013-08-20 Alexey Makhalov <makhaloff@gmail.com>
3237
3238 * dce.c (fini_dce): Call df_analyze again just in case
3239 delete_unmarked_insns removed anything.
3240
67598720
TJ
32412013-08-20 Teresa Johnson <tejohnson@google.com>
3242
3243 PR rtl-optimizations/57451
3244 * final.c (reemit_insn_block_notes): Prevent lexical blocks
3245 from crossing split section boundaries.
3246
f8693faf
MGD
32472013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
3248
3249 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
3250 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
3251 with MULTLIB_DEFAULTS.
3252
7d0b9a9c
NC
32532013-08-20 Nick Clifton <nickc@redhat.com>
3254
3255 * target.def (narrow_volatile_bitfield): Note that the default
3256 value is false, not !TARGET_STRICT_ALIGN.
3257 * doc/tm.texi: Regenerate.
3258
8edb8dc8
PC
32592013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
3260
3261 Fix LIB_SPEC for systems without libpthread.
3262
3263 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
3264 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
3265 for Android.
3266 * config/i386/linux-common.h: Likewise.
3267 * config/mips/linux-common.h: Likewise.
3268
12211b99 32692013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
3270
3271 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
3272 checks.
3273
e42c64cb
DM
32742013-08-20 David Malcolm <dmalcolm@redhat.com>
3275
3276 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
3277 instances can own GC refs.
3278
3279 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
3280 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
3281 (gcc::context::gt_pch_nx): Likewise.
3282 (gcc::context::gt_pch_nx): Likewise.
3283 * ggc.h (gt_ggc_mx <T>): New.
3284 (gt_pch_nx_with_op <T>): New.
3285 (gt_pch_nx <T>): New.
3286 * passes.c (opt_pass::gt_ggc_mx): New.
3287 (opt_pass::gt_pch_nx): New.
3288 (opt_pass::gt_pch_nx_with_op): New.
3289 (pass_manager::gt_ggc_mx): New.
3290 (pass_manager::gt_pch_nx): New.
3291 (pass_manager::gt_pch_nx_with_op): New.
3292 (pass_manager::operator new): Use
3293 ggc_internal_cleared_alloc_stat rather than xcalloc.
3294 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
3295 (pass_manager::gt_ggc_mx): New.
3296 (pass_manager::gt_pch_nx): New.
3297 (pass_manager::gt_pch_nx_with_op): New.
3298 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
3299 (opt_pass::operator new): New.
3300 (opt_pass::gt_ggc_mx): New.
3301 (opt_pass::gt_pch_nx): New.
3302 (opt_pass::gt_pch_nx_with_op): New.
3303
910c02a0
DM
33042013-08-20 David Malcolm <dmalcolm@redhat.com>
3305
3306 * Makefile.in (GTFILES): Add context.h.
3307 * context.c (gcc::context::operator new): New.
3308 (gcc::context::gt_ggc_mx): New.
3309 (gcc::context::gt_pch_nx): New.
3310 (gcc::context::gt_pch_nx): New.
3311 * context.h (gcc::context): Add GTY((user)) marking.
3312 (gcc::context::operator new): New.
3313 (gcc::context::gt_ggc_mx): New.
3314 (gcc::context::gt_pch_nx): New.
3315 (gcc::context::gt_pch_nx): New.
3316 (g): Add GTY marking.
3317 (gt_ggc_mx (gcc::context *)): New.
3318 (gt_pch_nx (gcc::context *)): New.
3319 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
3320 void *cookie)): New.
3321 * gengtype.c (open_base_files) <ifiles>: Add context.h.
3322
af4b4236
AM
33232013-08-20 Alan Modra <amodra@gmail.com>
3324
3325 PR target/57865
3326 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
3327 (rs6000_emit_epilogue): Likewise.
3328
12211b99 33292013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
3330
3331 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
3332
e2323f5b
PB
33332013-08-19 Peter Bergner <bergner@vnet.ibm.com>
3334 Jakub Jelinek <jakub@redhat.com>
3335
3336 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
3337 (BUILT_IN_FABSD64): Likewise.
3338 (BUILT_IN_FABSD128): Likewise.
3339 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
3340 (fold_builtin_1): Likewise.
5339fc0c
UB
3341 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
3342 destination and source operands.
e2323f5b
PB
3343 (*abstd2_fpr): Likewise.
3344 (*nabstd2_fpr): Likewise.
3345
cfbf3ee8
RS
33462013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
3347
3348 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
3349 JUMP_P and INSN_P.
3350
d3136aeb
AH
33512013-08-19 Aldy Hernandez <aldyh@redhat.com>
3352
3353 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
3354 incomplete.
3355
d33d9e47
AI
33562013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
3357
3358 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
3359 * builtins.c (default_libc_has_function): New.
3360 (gnu_libc_has_function): Ditto.
3361 (no_c99_libc_has_function): Ditto.
3362 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
3363 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
3364 (fold_builtin_sincos): Likewise.
3365 (fold_builtin_cexp): Likewise.
3366 * builtins.def (DEF_C94_BUILTIN): Likewise.
3367 (DEF_C99_BUILTIN): Likewise.
3368 (DEF_C99_C90RES_BUILTIN): Likewise.
3369 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
3370 definitions to using this define.
3371 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 3372 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
3373 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
3374 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
3375 * config/darwin.h: Ditto.
3376 * config/elfos.h: Ditto.
3377 * config/freebsd.h: Ditto.
3378 * config/i386/cygming.h: Ditto.
3379 * config/i386/djgpp.h: Ditto.
3380 * config/i386/i386-interix.h: Ditto.
3381 * config/microblaze/microblaze.h: Ditto.
3382 * config/mmix/mmix.h: Ditto.
3383 * config/gnu-user.h: Ditto.
3384 * config/ia64/hpux.h: Ditto.
3385 * config/pa/pa-hpux.h: Ditto.
3386 * config/pdp11/pdp11.h: Ditto.
3387 * config/picochip/picochip.h: Ditto.
3388 * config/linux.h: Ditto.
3389 * config/netbsd.h: Ditto.
3390 * config/openbsd.h: Ditto.
3391 * config/rs6000/aix43.h: Ditto.
3392 * config/rs6000/aix51.h: Ditto.
3393 * config/rs6000/aix52.h: Ditto.
3394 * config/rs6000/aix53.h: Ditto.
3395 * config/rs6000/aix61.h: Ditto.
3396 * config/rs6000/darwin.h: Ditto.
3397 * config/rs6000/linux.h: Ditto.
3398 * config/rs6000/linux64.h: Ditto.
3399 * config/s390/tpf.h: Ditto.
3400 * config/sol2-10.h: Ditto.
3401 * config/sol2.h: Ditto.
3402 * config/vms/vms.h: Ditto.
3403 * config/vxworks.h: Ditto.
3404 * config/linux-android.c (linux_android_libc_has_function):
3405 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
3406 * config/linux-protos.h (linux_android_libc_has_function):
3407 New declaration.
3408 * config/i386/i386.c (ix86_libc_has_function): New.
3409 * config/i386/i386-protos.h
3410 (ix86_libc_has_function): New declaration.
3411 * config/i386/i386.md
3412 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
3413 ("isinf<mode>2): Likewise.
3414 * convert.c (convert_to_integer): Using new target hook
3415 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
3416 TARGET_C99_FUNCTIONS.
3417 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
3418 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
3419 * coretypes.h (function_class): New enum for different
3420 classes of functions.
3421 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
3422 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
3423 (TARGET_HAS_SINCOS): Likewise.
3424 (TARGET_LIBC_HAS_FUNCTION): New.
3425 * doc/tm.texi: Regenerated.
3426 * targhooks.h (default_libc_has_function): New declaration.
3427 (no_c99_libc_has_function): Ditto.
3428 (gnu_libc_has_function): Ditto.
3429 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
3430 and TARGET_HAS_SINCOS.
3431
eefe9a99
JH
34322013-08-18 Jan Hubicka <jh@suse.cz>
3433
3434 * Makeifle-in (ipa-devirt.o): New.
3435 (GTFILES): Add ipa-utils.h and ipa-devirt.c
3436 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
3437 (analyze_functions): Look into possible targets of polymorphic call.
3438 * dumpfile.c (dump_files): Add type-inheritance dump.
3439 * dumpfile.h (TDI_inheritance): New.
3440 * ipa-devirt.c: New file.
3441 * ipa-utils.h (odr_type_d): Forward declare.
3442 (odr_type): New type.
3443 (build_type_inheritance_graph): Declare.
3444 (possible_polymorphic_call_targets): Declare and introduce inline
3445 variant when only edge is pased.
3446 (dump_possible_polymorphic_call_targets): Likewise.
3447 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
3448 * tree.c (type_in_anonymous_namespace_p): Break out from ...
3449 (types_same_for_odr): ... here.
3450 * tree.h (type_in_anonymous_namespace_p): Declare.
3451
29b89442
JJ
34522013-08-18 Jakub Jelinek <jakub@redhat.com>
3453
3454 PR tree-optimization/58006
3455 * tree-parloops.c (take_address_of): Don't ICE if get_name
3456 returns NULL.
3457 (eliminate_local_variables_stmt): Remove clobber stmts.
3458
4f219961
EB
34592013-08-18 Eric Botcazou <ebotcazou@adacore.com>
3460
3461 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
3462 error message is issued for an alias to undefined symbol.
3463
1d5755ef
JH
34642013-08-18 Jan Hubicka <jh@suse.cz>
3465
3466 * cgraph.c (cgraph_create_indirect_edge): Discover
3467 polymorphic calls and record basic info into indirect_info.
3468 * gimple-fold.c (gimple_fold_call): When doing BINFO based
3469 devirtualization, ignore objc function calls.
3470 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
3471 call with no parm index info.
3472 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
3473 * tree.c (virtual_method_call_p): New function.
3474 * tree.h (virtual_method_call_p): Declare.
3475
5945bebf
JH
34762013-08-16 Jan Hubicka <jh@suse.cz>
3477
3478 PR middle-end/58179
3479 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
3480
47fa5d23
DE
34812013-08-16 David Edelsohn <dje.gcc@gmail.com>
3482
3483 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
3484 attribute.
3485
c74f54a0
DM
34862013-08-16 David Malcolm <dmalcolm@redhat.com>
3487
3488 * gengtype.c (type_for_name): Add special-case support for
3489 locating types within the "gcc::" namespace.
3490 (open_base_files): Emit a "using namespace gcc" directive.
3491
f758f299
MM
34922013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
3493
3494 PR target/58160
3495 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
3496 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
3497
3498 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
3499 array instead of each individual operand as a separate argument.
3500 (emit_fusion_gpr_load): Likewise.
3501 (expand_fusion_gpr_load): Add new function declaration.
3502
3503 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
3504 signature to have the operands passed as an array, instead of as
3505 separate arguments. Allow ZERO_EXTEND to be in the memory
3506 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
3507 depend on the register live/dead flags when peepholes are run.
3508 (expand_fusion_gpr_load): New function to be called from the
3509 peephole2 pass, to change the register that addis sets to be the
3510 target register.
3511 (emit_fusion_gpr_load): Change the calling signature to have the
3512 operands passed as an array, instead of as separate arguments.
3513 Allow ZERO_EXTEND to be in the memory address, and also
3514 SIGN_EXTEND if -mpower8-fusion-sign.
3515
3516 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
3517 unspec enumeration.
3518 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
3519 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 3520 depend on the register live/dead state when the peephole pass is done.
f758f299 3521
158f4e4f
DM
35222013-08-16 David Malcolm <dmalcolm@redhat.com>
3523
3524 * gengtype.c (create_user_defined_type): Ensure that the kind
3525 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
3526 declaration is seen before the GTY((user)) marking.
3527
22f8cea5
BE
35282013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
3529
3530 PR target/58105
3531 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
3532
c49bdb2e
JH
35332013-08-16 Jan Hubicka <jh@suse.cz>
3534
3535 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
3536 arugment expected_type.
3537 (gimple_fold_call): Use it.
3538 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
3539 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 3540 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
3541 (try_make_edge_direct_virtual_call): Likewise.
3542 * tree.c (obj_type_ref_class): New.
3543 * tree.h (obj_type_ref_class): Use it.
3544
4042dca9
GDR
35452013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
3546
3547 * sched-vis.c (rtl_slim_pp_initialized): Remove.
3548 (rtl_slim_pp): Likewise.
3549 (init_rtl_slim_pretty_print): Likewise.
3550 (dump_value_slim): Don't call it. Use local pretty printer.
3551 (dump_insn_slim): Likewise.
3552 (dump_rtl_slim): Likewise.
3553 (str_pattern_slim): Likewise.
3554 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
3555 Simplify.
3556
7a460594
JJ
35572013-08-16 Jakub Jelinek <jakub@redhat.com>
3558
639dc669
JJ
3559 PR tree-optimization/58164
3560 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
3561 walk gimple_goto_dest of GIMPLE_GOTO.
3562
7a460594
JJ
3563 PR tree-optimization/58165
3564 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
3565 bi_call must be the last stmt in a bb, don't split_block, instead
3566 use fallthru edge from it and give up if there is none.
3567 Release conds vector when returning early.
3568
e3c02cc7
XDL
35692013-08-14 Xinliang David Li <davidxl@google.com>
3570
3571 * config/i386/i386.c (ix86_option_override_internal):
3572 Remove unused variable and field.
3573
6469da2c
BS
35742013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3575
3576 PR target/57949
22f8cea5 3577 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
3578 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
3579 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
3580 and Linux, correct BLKmode alignment when 128-bit alignment is
3581 required and compatibility flag is not set.
22f8cea5
BE
3582 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
3583 for zero-size arguments when compatibility flag is not set.
6469da2c 3584
4ca890e2
JJ
35852013-08-14 Jakub Jelinek <jakub@redhat.com>
3586
3587 PR tree-optimization/58145
3588 * tree-sra.c (build_ref_for_offset): If prev_base has
3589 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
3590
daec1759 35912013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 3592
daec1759 3593 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 3594 Fix uninitialized variable error.
daec1759 3595
3ad20bd4
XDL
35962013-08-14 Xinliang David Li <davidxl@google.com>
3597
3598 * config/i386/i386.opt: Define two new options.
3599 * config/i386/x86-tune.def: Add arch selector field in macros.
3600 * config/i386/i386.h: Adjust macro definition.
3601 * config/i386/i386.c (ix86_option_override_internal):
3602 Refactor the code.
3603 (parse_mtune_ctrl_str): New function.
3604 (set_ix86_tune_features): New function.
3605 (ix86_function_specific_restore): Call the new helper function.
3606
e839e2a9
AB
36072013-08-14 Andrey Belevantsev <abel@ispras.ru>
3608
3609 PR rtl-optimization/57662
3610 * sel-sched.c (code_motion_process_successors): When the current insn
3611 is removed after the recursive traversal, break from the loop.
3612 Add comments and debug printouts.
3613
27ed665f
JJ
36142013-08-14 Jakub Jelinek <jakub@redhat.com>
3615 Alexandre Oliva <aoliva@redhat.com>
3616
3617 PR target/58067
3618 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
3619 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
3620 there also UNSPEC_PLTOFF.
3621
61c1a609
MP
36222013-08-14 Marek Polacek <polacek@redhat.com>
3623
3624 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
3625 NUM_CONDITIONS bit positions.
3626
0e901c67
CC
36272013-08-13 Cary Coutant <ccoutant@google.com>
3628
3629 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
3630 (attr_checksum): Hash vector contents instead of pointer.
3631 (attr_checksum_ordered): Likewise.
3632
061eff6d
UB
36332013-08-13 Uros Bizjak <ubizjak@gmail.com>
3634
3635 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
3636 when Pmode != word_mode. Add length_address attribute.
3637 (sse3_monitor_<mode>): Merge from sse3_monitor and
3638 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
3639 Pmode != word_mode. Update insn length attribute.
3640 * config/i386/i386.c (ix86_option_override_internal): Update
3641 ix86_gen_monitor selection for merged sse3_monitor insn.
3642
8ec9249b
JB
36432013-08-13 Julian Brown <julian@codesourcery.com>
3644
3645 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3646 perform invalid legitimization on greater-than-word-size modes for
3647 TARGET_E500_DOUBLE.
3648
761a8eb7
VM
36492013-08-13 Vladimir Makarov <vmakarov@redhat.com>
3650
3651 * ira.c (setup_class_translate_array): Use aclass instead of cl
3652 for classes not fully covered by allocno classes.
3653
99c2bd54
JJ
36542013-08-13 Jakub Jelinek <jakub@redhat.com>
3655
4029a5e0
JJ
3656 PR tree-optimization/57661
3657 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
3658 * tree-inline.c (tree_function_versioning): Initialize it.
3659 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
3660 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
3661 that is not being copied.
3662
99c2bd54
JJ
3663 PR sanitizer/56417
3664 * asan.c (instrument_strlen_call): Fix typo in comment.
3665 Use char * type even for the lhs of POINTER_PLUS_EXPR.
3666
b5f8f063
SE
36672013-08-13 Steve Ellcey <sellcey@mips.com>
3668
3669 * config/mips/mips.md (prefetch): Use lw instead of ld on
3670 loongson in 32bit mode.
3671
4de80584
NC
36722013-08-13 Nick Clifton <nickc@redhat.com>
3673
3674 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
3675
09ce3660
JH
36762013-08-13 Jan Hubicka <jh@suse.cz>
3677
3678 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
3679 introduced edge; fix typo in sanity check.
3680 (cgraph_resolve_speculation): Export; improve diagnostic.
3681 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
3682 speculation at type mismatch.
3683 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
3684 (cgraph_resolve_speculation): Declare.
3685 (symtab_can_be_discarded): New function.
3686 * value-prof.c (gimple_ic_transform): Remove actual transform code.
3687 * ipa-inline-transform.c (speculation_removed): New global var.
3688 (clone_inlined_nodes): See if speculation can be removed.
3689 (inline_call): If speculations was removed, we growths may not match.
3690 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
3691 (speculation_useful_p): New function.
3692 (resolve_noninline_speculation): New function.
3693 (inline_small_functions): Resolve useless speculations.
3694 * ipa-inline.h (speculation_useful_p): Declare
3695 * ipa.c (can_replace_by_local_alias): Simplify.
3696 (ipa_profile): Produce speculative calls in non-lto, too;
3697 add simple cost model; produce local aliases.
3698
f971dc24
DM
36992013-08-13 David Malcolm <dmalcolm@redhat.com>
3700
3701 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 3702 PASS_MANAGER_H.
f971dc24 3703
2e507b9a
PC
37042013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
3705
3706 * config/i386/i386.c (ix86_function_versions): Use error + inform.
3707
c97fd4b8
UB
37082013-08-12 Uros Bizjak <ubizjak@gmail.com>
3709
3710 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
3711 iterator instead of X87MODEF.
3712
37132013-08-12 Perez Read <netfirewall@gmail.com>
3714
3715 PR target/58132
3716 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
3717 operand 0 for intel asm alternative.
3718 (*movabs<mode>_2): Ditto for operand 1.
3719
f4f4204c
JG
37202013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
3721
3722 * config/aarch64/arm_none.h
3723 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
3724
133b1a8e
NC
37252013-08-12 Nick Clifton <nickc@redhat.com>
3726
3727 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
3728
15dd8b3a
YR
37292013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
3730
3731 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
3732 expand for QI/HImode operand to produce more effictive code for
3733 unsigned char(short) --> float(double) conversion.
3734
94109a6a
AM
37352013-08-12 Alexander Monakov <amonakov@ispras.ru>
3736
3737 * doc/invoke.texi: Mention that -ftls-model does not force the final
3738 model.
3739
4e115102
MP
37402013-08-12 Marek Polacek <polacek@redhat.com>
3741 Marc Glisse <marc.glisse@inria.fr>
3742
3743 PR tree-optimization/57980
3744 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
3745 when creating -1 constant.
3746
748d71f3
JH
37472013-08-10 Jan Hubicka <jh@suse.cz>
3748
1f97e193 3749 Workaround binutils PR14342.
748d71f3
JH
3750 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
3751 (gimple_init_edge_profiler): Likewise.
3752 (gimple_gen_ic_func_profiler): Likewise.
3753
5979aa54
JH
37542013-08-09 Jan Hubicka <jh@suse.cz>
3755
3756 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
3757
ad83025e
XDL
37582013-08-09 Xinliang David Li <davidxl@google.com>
3759
3760 * config/i386/stringop.def: New file.
3761 * config/i386/stringop.opt: New file.
3762 * config/i386/i386-opts.h: Include stringopt.def.
3763 * config/i386/i386.opt: Include stringopt.opt.
3764 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 3765 Override default size based stringop inline strategies with options.
ad83025e
XDL
3766 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
3767 New function.
3768
e59df5fd
JH
37692013-08-09 Jan Hubicka <jh@suse.cz>
3770
c97fd4b8 3771 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 3772
634ab819
JH
37732013-08-09 Jan Hubicka <jh@suse.cz>
3774
3775 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
3776 CGRAPH_FREQ_MAX.
3777 (dump_cgraph_node): Dump profile-id.
3778 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
3779 and common_target_probability.
3780 * lto-cgraph.c (lto_output_edge): Stream common targets.
3781 (lto_output_node): Stream profile ids.
3782 (input_node): Stream profile ids.
3783 (input_edge): Stream common targets.
3784 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
3785 * ipa.c: Include value-prof.h
3786 (ipa_profile_generate_summary): Turn indirect call statement histograms
3787 into common targets.
3788 (ipa_profile): Turn common targets into speculative edges.
3789
2fa3d31b
JH
37902013-08-09 Jan Hubicka <jh@suse.cz>
3791
3792 * cgraph.h (cgraph_node): Add profile_id.
3793 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 3794 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
3795 (del_node_map): Update.
3796 (find_func_by_funcdef_no): Replace by ...
3797 (find_func_by_profile_id): ... this one.
3798 (gimple_ic_transform): Do not remove useful histograms when
3799 speculation is not done; dump info when indirect call removal
3800 can happen at LTO.
3801 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
3802 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
3803 (__gcov_indirect_call_profiler_v2): .. this one.
3804 * profile.h (init_node_map): Update.
3805 * coverage.c (coverage_compute_profile_id): New function.
3806 * coverage.h (coverage_compute_profile_id): Declare.
3807 * tree-profile.c (init_ic_make_global_vars): Make
3808 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
3809 (gimple_init_edge_profiler): Update prototype of
3810 __gcov_indirect_call_profiler.
3811 (gimple_gen_ic_func_profiler): Simplify.
3812 (tree_profiling): Use init_node_map
3813
042ae7d2
JH
38142013-08-09 Jan Hubicka <jh@suse.cz>
3815
c97fd4b8
UB
3816 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
3817 non-speculative refs.
042ae7d2
JH
3818 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
3819 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
3820 (cgraph_set_call_stmt): Likewise.
3821 (cgraph_create_edge_1): Fix release checking compilatoin;
3822 clear lto_stmt_uid.
3823 (cgraph_free_edge): Free indirect info.
3824 (cgraph_turn_edge_to_speculative): New function.
3825 (cgraph_speculative_call_info): New function.
3826 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 3827 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
3828 (dump_cgraph_node): Dump speculation.
3829 (verify_edge_count_and_frequency): Accept speculative edges.
3830 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
3831 (verify_cgraph_node): Handle speculation.
3832 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
3833 (cgraph_set_call_stmt): Update prototype.
3834 (cgraph_make_edge_direct): Update prototype.
3835 (cgraph_speculative_call_info): Declare.
3836 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
3837 to change; update call of ipa_find_references.
3838 * ipa-ref.c (ipa_record_reference): Fix return value; clear
3839 lto_stmt_uid and speculative flags.
3840 (ipa_dump_references): Dump speculation.
3841 (ipa_clone_references): Clone speculative flag.
3842 (ipa_clone_referring): Likewise.
3843 (ipa_clone_ref): New function.
3844 (ipa_find_reference): Look into lto_stmt_uids
3845 (ipa_clear_stmts_in_references): Do not clear speculative calls.
3846 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
3847 (ipa_find_reference): Update declaration.
3848 (ipa_clone_ref): Declare.
3849 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
3850 stream speculative flag.
3851 (lto_output_ref): Stream statements uids and speculation.
3852 (input_ref): Likewise.
3853 (input_edge): Stream speuclation.
3854 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
3855 (cgraph_set_call_stmt_including_clones): Handle speculation.
3856 * ipa-inline.c (heap_edge_removal_hook): New function.
3857 (inline_small_functions): Register it.
3858 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
3859 also initialize refs.
3860 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
3861 edge to change.
3862 (try_make_edge_direct_simple_call): Likewise.
3863 (try_make_edge_direct_simple_call): Likewise.
3864 (update_indirect_edges_after_inlining): Likewise.
3865 (remove_described_reference): Look proper lto_stmt_uid.
3866 (propagate_controlled_uses): Likewise.
3867 (propagate_controlled_uses): Liekwise.
3868 * tree-inline.c (copy_bb): Copy speculative edges.
3869 (redirect_all_calls): New function.
c97fd4b8
UB
3870 (copy_cfg_body): Do redirection after loop info is updated.
3871 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 3872
aa1e10cc
JH
38732013-08-09 Jan Hubicka <jh@suse.cz>
3874
3875 * lto-streamer-out.c (output_function): Renumber PHIs.
3876 * lto-streamer-in.c (input_function): Likewise.
3877
66adb8eb
JG
38782013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
3879
3880 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
3881 (get_lane_unsigned): Likewise.
3882 (dup_lane_scalar): Likewise.
3883 (get_lane): enable for VALL.
3884 * config/aarch64/aarch64-simd.md
3885 (aarch64_dup_lane_scalar<mode>): Remove.
3886 (aarch64_get_lane_signed<mode>): Likewise.
3887 (aarch64_get_lane_unsigned<mode>): Likewise.
3888 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
3889 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
3890 (aarch64_get_lane<mode>): Enable for all vector modes.
3891 (aarch64_get_lanedi): Remove misleading constraints.
3892 * config/aarch64/arm_neon.h
3893 (__aarch64_vget_lane_any): Define.
3894 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
3895 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
3896 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
3897 * config/aarch64/iterators.md (VDQQH): New.
3898 (VDQQHS): Likewise.
3899 (vwcore): Likewise.
3900
1f65ae7a
EB
39012013-08-09 Eric Botcazou <ebotcazou@adacore.com>
3902
3903 * configure.ac: Add GAS check for LEON instructions on SPARC.
3904 * configure: Regenerate.
3905 * config.in: Likewise.
3906 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
3907 sparc*-*-* block.
3908 * config/sparc/sparc.opt (LEON, LEON3): New masks.
3909 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
3910 for LEON or LEON3.
3911 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
3912 (AS_LEON_FLAG): New macro.
3913 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
3914 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
3915 Deal with LEON and LEON3 for the memory model.
23a6cb78 3916 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
3917 (atomic_compare_and_swap<mode>_1): Likewise.
3918 (*atomic_compare_and_swap<mode>_1): Likewise.
3919
ff522f7f
ZC
39202013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3921
3922 * config/arm/neon.md (vcond): Fix floating-point vector
3923 comparisons against 0.
3924
cb1cca12
VM
39252013-08-08 Vladimir Makarov <vmakarov@redhat.com>
3926
3927 * lra-constraints.c (emit_spill_move): Remove assert.
3928 (process_alt_operands): Add more debugging
3929 output. Increase reject for spilling into memory. Decrease
3930 reject for reloading scratch.
3931 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
3932
a3719e31
SE
39332013-08-08 Steve Ellcey <sellcey@mips.com>
3934
3935 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
3936 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
3937 micromips incompatible. Add nan2008.
3938 (MULTILIB_DIRNAMES): Add nan2008.
3939 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
3940 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
3941 and micromips incompatible. Add nan2008.
3942 (MULTILIB_DIRNAMES): Add nan2008.
3943 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
3944
f40423e2
RS
39452013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
3946
3947 PR rtl-optimization/58079
3948 * combine.c (combine_simplify_rtx): Avoid using SUBST if
3949 simplify_comparison has widened a comparison with an integer.
3950
869b9125
KT
39512013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3952
3953 * config/arm/neon.md (movmisalign<mode>): Disable when we
3954 don't allow unaligned accesses.
3955 (*movmisalign<mode>_neon_store): Likewise.
3956 (*movmisalign<mode>_neon_load): Likewise.
3957 (*movmisalign<mode>_neon_store): Likewise.
3958 (*movmisalign<mode>_neon_load): Likewise.
3959
71cafea9
JH
39602013-08-08 Jan Hubicka <jh@suse.cz>
3961
3962 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
3963 (make_pass_rebuild_cgraph_edges): Also clear references.
3964 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
3965 * ipa-inline-transform.c (inline_transform): Remove all references
3966 after inlining.
c97fd4b8
UB
3967 * cgraphunit.c (expand_function): Remove all references after
3968 expansion.
71cafea9
JH
3969 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
3970 (ipa_find_reference): Rewrite to iterator.
3971 (remove_stmt_references): Likewise.
3972 (ipa_clear_stmts_in_references): New function.
3973 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
3974 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
3975 clear references.
71cafea9
JH
3976 * ipa-split.c (split_function): Remove references in split function.
3977
27d2e612
RE
39782013-08-08 Richard Earnshaw <rearnsha@arm.com>
3979
3980 PR target/57431
1f65ae7a 3981 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
3982 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
3983
5efc661c
RE
39842013-08-08 Richard Earnshaw <rearnsha@arm.com>
3985
3986 PR target/56979
1f65ae7a 3987 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
3988 suggested mode for the assignment isn't compatible with the
3989 registers required.
3990
f276d31d
BE
39912013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
3992
3993 PR target/58065
3994 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
3995
4b8bc035
XDL
39962013-08-07 Xinliang David Li <davidxl@google.com>
3997
3998 * config/i386/i386.opt: New option -mtune-ctrl=.
3999 * config/i386/x86-tune.def: New file.
4000 * config/i386/i386.h: include x86-tune.def.
4001 * config/i386/i386.c (ix86_option_override_internal):
4002 Parsing -mtune-ctrl= option and set tune features.
4003
12211b99 40042013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
4005
4006 PR other/12081
03b0ee0a 4007 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
4008 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
4009 to gen_2arg_fn_t.
4010
5cf6635b
EB
40112013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4012
4013 * rtl.h (update_alignments): Declare.
4014 * final.c (grow_label_align): New function extracted from...
4015 (shorten_branches): ...here. Call it.
4016 (update_alignments): New function.
4017 * reorg.c (sibling_labels): New variable.
4018 (get_label_before): Add SIBLING parameter. If it is non-zero, push
4019 the new label along with it onto the sibling_labels vector.
4020 (fill_simple_delay_slots): Adjust call to get_label_before.
4021 (fill_slots_from_thread): Likewise.
4022 (relax_delay_slots): Likewise.
4023 (make_return_insns): Likewise.
4024 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
4025
3c8ca1ab
EB
40262013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4027
4028 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
4029 document its semantics.
4030 (diagnostic_report_diagnostic): Adjust accordingly.
4031
5ee5b32c
DM
40322013-08-07 David Malcolm <dmalcolm@redhat.com>
4033
03b0ee0a 4034 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
4035 (sparc_option_override): ...and port to new C++ pass API.
4036 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
4037
abd566fa
PB
40382013-08-07 Peter Bergner <bergner@vnet.ibm.com>
4039
4040 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
4041
2077db1b
CT
40422013-08-06 Caroline Tice <cmtice@google.com>
4043
4044 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
4045 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
4046 * tree-pass.h: Add pass_vtable_verify.
4047 * varasm.c (assemble_variable): Add code to properly set the comdat
4048 section and name for the .vtable_map_vars section.
4049 (assemble_vtyv_preinit_initializer): New function.
4050 (default_sectin_type_flags): Make sure .vtable_map_vars section has
4051 LINK_ONCE flag.
4052 * output.h: Add function decl for assemble_vtv_preinit_initializer.
4053 * vtable-verify.c: New file.
4054 * vtable-verify.h: New file.
4055 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
4056 initialiation levels.
4057 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
4058 * passes.def: Insert pass_vtable_verify.
4059 * aclocal.m4: Reorder includes.
4060 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
4061 -fvtv-counts options.
4062 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
4063 as appropriate, if -fvtable-verify=... is used.
4064 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
4065 -fvtable-verify=... is used.
4066 * Makefile.in (OBJS): Add vtable-verify.o to list.
4067 (vtable-verify.o): Add new build rule.
4068 (GTFILES): Add vtable-verify.c to list.
4069 * common.opt (fvtable-verify=): New flag.
4070 (vtv_priority): Values for fvtable-verify= flag.
4071 (fvtv-counts): New flag.
4072 (fvtv-debug): New flag.
4073 * tree.h (save_vtable_map_decl): New extern function decl.
4074
03085d1c
DM
40752013-08-07 David Malcolm <dmalcolm@redhat.com>
4076
4077 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
4078 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
4079 (pass_data_rl78_devirt): ...new pass_data instance and...
4080 (make_pass_rl78_devirt): ...new function.
4081 (rl78_asm_file_start): Port pass registration to new C++ API.
4082
05555c4a
DM
40832013-08-07 David Malcolm <dmalcolm@redhat.com>
4084
4085 * coretypes.h (rtl_opt_pass): Add.
4086 (gcc::context): Add.
4087 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
4088 (epiphany_init): Port to new C++ pass API.
4089 (epiphany_optimize_mode_switching): Likewise.
4090 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
4091 (pass_manager::get_pass_mode_switching): New.
4092 (pass_manager::get_pass_peephole2): New.
4093 * mode-switching.c (pass_mode_switching): Add clone method.
4094 * recog.c (pass_peephole2): Add clone method.
4095 (pass_split_all_insns): Add clone method.
4096
c5a12e26
DM
40972013-08-06 David Malcolm <dmalcolm@redhat.com>
4098
03b0ee0a
UB
4099 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
4100 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 4101
a2e2a668
JH
41022013-08-06 Jan Hubicka <jh@suse.cz>
4103
4104 * cgraph.c (cgraph_get_body): New function based on lto.c
4105 implementation.
4106 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
4107 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
4108 LTO paths.
a2e2a668
JH
4109 * cgraphunit.c (expand_function): Get body prior expanding.
4110 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
4111 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
4112 really need.
a2e2a668
JH
4113 * passes.c (do_per_function_toporder): Get body.
4114 * tree-inline.c (expand_call_inline): Get body prior inlining it.
4115 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
4116
15682f24
MJ
41172013-08-06 Martin Jambor <mjambor@suse.cz>
4118
4119 PR fortran/57987
4120 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
4121 is not re-finalized. Rename second parameter to no_collect.
4122
78f6dd68
MJ
41232013-08-06 Martin Jambor <mjambor@suse.cz>
4124
4125 PR middle-end/58041
4126 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
4127 MEM_REF has proper alignment information.
4128
12211b99 41292013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
4130
4131 PR other/12081
4132 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
4133 class insn_gen_fn.
4134 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
4135 rtx (*) (rtx, ...) with insn_gen_fn.
4136 * genoutput.c (output_insn_data): Cast gen_? function pointers to
4137 insn_gen_fn::stored_funcptr. Add initializer braces.
4138
8ac69a6c
DM
41392013-08-05 David Malcolm <dmalcolm@redhat.com>
4140
4141 Rewrite how instances of passes are cloned to remove assumptions
4142 about their sizes (thus allowing pass subclasses to have
4143 additional data fields, albeit non-GC-managed ones at this point).
4144
4145 * passes.c (make_pass_instance): Now that passes have clone
4146 methods, rewrite this function to eliminate XNEW and memcpy
4147 calls that used hardcoded sizes. Since this function no longer
4148 creates pass instances, rename it to...
03b0ee0a
UB
4149 (add_pass_instance): ...this. Document the old way that passes were
4150 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
4151 (next_pass_1): Add an initial_pass argument for use by
4152 add_pass_instance.
4153 (position_pass): When adding multiple instances of a pass, use
4154 the pass's clone method, rather than relying on the XNEW/memcpy
4155 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
4156 (pass_manager::pass_manager): When invoking next_pass_1, also supply
4157 the initial instance of the current pass within the pass manager.
8ac69a6c 4158
27a4cd48
DM
41592013-08-05 David Malcolm <dmalcolm@redhat.com>
4160
4161 This is the automated part of the conversion of passes from C
4162 structs to C++ classes.
4163
4164 Patch autogenerated by refactor_passes.py from
4165 https://github.com/davidmalcolm/gcc-refactoring-scripts
4166 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
4167
4168 * asan.c (pass_asan): Convert from a global struct to a subclass of
4169 gimple_opt_pass along with...
4170 (pass_data_asan): ...new pass_data instance and...
4171 (make_pass_asan): ...new function.
4172 (pass_asan_O0): Convert from a global struct to a subclass of
4173 gimple_opt_pass along with...
4174 (pass_data_asan_O0): ...new pass_data instance and...
4175 (make_pass_asan_O0): ...new function.
4176 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
4177 subclass of rtl_opt_pass along with...
4178 (pass_data_inc_dec): ...new pass_data instance and...
4179 (make_pass_inc_dec): ...new function.
4180 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
4181 a subclass of rtl_opt_pass along with...
4182 (pass_data_reorder_blocks): ...new pass_data instance and...
4183 (make_pass_reorder_blocks): ...new function.
4184 (pass_duplicate_computed_gotos): Convert from a global struct to a
4185 subclass of rtl_opt_pass along with...
4186 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
4187 (make_pass_duplicate_computed_gotos): ...new function.
4188 (pass_partition_blocks): Convert from a global struct to a subclass of
4189 rtl_opt_pass along with...
4190 (pass_data_partition_blocks): ...new pass_data instance and...
4191 (make_pass_partition_blocks): ...new function.
4192 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
4193 struct to a subclass of rtl_opt_pass along with...
4194 (pass_data_branch_target_load_optimize1): ...new pass_data instance
4195 and...
4196 (make_pass_branch_target_load_optimize1): ...new function.
4197 (pass_branch_target_load_optimize2): Convert from a global struct to a
4198 subclass of rtl_opt_pass along with...
4199 (pass_data_branch_target_load_optimize2): ...new pass_data instance
4200 and...
4201 (make_pass_branch_target_load_optimize2): ...new function.
4202 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
4203 of rtl_opt_pass along with...
4204 (pass_data_jump): ...new pass_data instance and...
4205 (make_pass_jump): ...new function.
4206 (pass_jump2): Convert from a global struct to a subclass of
4207 rtl_opt_pass along with...
4208 (pass_data_jump2): ...new pass_data instance and...
4209 (make_pass_jump2): ...new function.
4210 * cfgexpand.c (pass_expand): Convert from a global struct to a
4211 subclass of rtl_opt_pass along with...
4212 (pass_data_expand): ...new pass_data instance and...
4213 (make_pass_expand): ...new function.
4214 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
4215 of rtl_opt_pass along with...
4216 (pass_data_free_cfg): ...new pass_data instance and...
4217 (make_pass_free_cfg): ...new function.
4218 (pass_into_cfg_layout_mode): Convert from a global struct to a
4219 subclass of rtl_opt_pass along with...
4220 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
4221 (make_pass_into_cfg_layout_mode): ...new function.
4222 (pass_outof_cfg_layout_mode): Convert from a global struct to a
4223 subclass of rtl_opt_pass along with...
4224 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
4225 (make_pass_outof_cfg_layout_mode): ...new function.
4226 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
4227 struct to a subclass of gimple_opt_pass along with...
4228 (pass_data_build_cgraph_edges): ...new pass_data instance and...
4229 (make_pass_build_cgraph_edges): ...new function.
4230 (pass_rebuild_cgraph_edges): Convert from a global struct to a
4231 subclass of gimple_opt_pass along with...
4232 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
4233 (make_pass_rebuild_cgraph_edges): ...new function.
4234 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
4235 subclass of gimple_opt_pass along with...
4236 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
4237 and...
4238 (make_pass_remove_cgraph_callee_edges): ...new function.
4239 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
4240 struct to a subclass of rtl_opt_pass along with...
4241 (pass_data_stack_adjustments): ...new pass_data instance and...
4242 (make_pass_stack_adjustments): ...new function.
4243 * combine.c (pass_combine): Convert from a global struct to a subclass
4244 of rtl_opt_pass along with...
4245 (pass_data_combine): ...new pass_data instance and...
4246 (make_pass_combine): ...new function.
4247 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
4248 global struct to a subclass of rtl_opt_pass along with...
4249 (pass_data_compare_elim_after_reload): ...new pass_data instance
4250 and...
4251 (make_pass_compare_elim_after_reload): ...new function.
4252 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
4253 of rtl_opt_pass along with...
4254 (pass_data_rtl_cprop): ...new pass_data instance and...
4255 (make_pass_rtl_cprop): ...new function.
4256 * cse.c (pass_cse): Convert from a global struct to a subclass of
4257 rtl_opt_pass along with...
4258 (pass_data_cse): ...new pass_data instance and...
4259 (make_pass_cse): ...new function.
4260 (pass_cse2): Convert from a global struct to a subclass of
4261 rtl_opt_pass along with...
4262 (pass_data_cse2): ...new pass_data instance and...
4263 (make_pass_cse2): ...new function.
4264 (pass_cse_after_global_opts): Convert from a global struct to a
4265 subclass of rtl_opt_pass along with...
4266 (pass_data_cse_after_global_opts): ...new pass_data instance and...
4267 (make_pass_cse_after_global_opts): ...new function.
4268 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
4269 of rtl_opt_pass along with...
4270 (pass_data_ud_rtl_dce): ...new pass_data instance and...
4271 (make_pass_ud_rtl_dce): ...new function.
4272 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
4273 rtl_opt_pass along with...
4274 (pass_data_fast_rtl_dce): ...new pass_data instance and...
4275 (make_pass_fast_rtl_dce): ...new function.
4276 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
4277 a subclass of rtl_opt_pass along with...
4278 (pass_data_df_initialize_opt): ...new pass_data instance and...
4279 (make_pass_df_initialize_opt): ...new function.
4280 (pass_df_initialize_no_opt): Convert from a global struct to a
4281 subclass of rtl_opt_pass along with...
4282 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
4283 (make_pass_df_initialize_no_opt): ...new function.
4284 (pass_df_finish): Convert from a global struct to a subclass of
4285 rtl_opt_pass along with...
4286 (pass_data_df_finish): ...new pass_data instance and...
4287 (make_pass_df_finish): ...new function.
4288 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
4289 rtl_opt_pass along with...
4290 (pass_data_rtl_dse1): ...new pass_data instance and...
4291 (make_pass_rtl_dse1): ...new function.
4292 (pass_rtl_dse2): Convert from a global struct to a subclass of
4293 rtl_opt_pass along with...
4294 (pass_data_rtl_dse2): ...new pass_data instance and...
4295 (make_pass_rtl_dse2): ...new function.
4296 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
4297 subclass of rtl_opt_pass along with...
4298 (pass_data_dwarf2_frame): ...new pass_data instance and...
4299 (make_pass_dwarf2_frame): ...new function.
4300 * except.c (pass_set_nothrow_function_flags): Convert from a global
4301 struct to a subclass of rtl_opt_pass along with...
4302 (pass_data_set_nothrow_function_flags): ...new pass_data instance
4303 and...
4304 (make_pass_set_nothrow_function_flags): ...new function.
4305 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
4306 subclass of rtl_opt_pass along with...
4307 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
4308 and...
4309 (make_pass_convert_to_eh_region_ranges): ...new function.
4310 * final.c (pass_compute_alignments): Convert from a global struct to a
4311 subclass of rtl_opt_pass along with...
4312 (pass_data_compute_alignments): ...new pass_data instance and...
4313 (make_pass_compute_alignments): ...new function.
4314 (pass_final): Convert from a global struct to a subclass of
4315 rtl_opt_pass along with...
4316 (pass_data_final): ...new pass_data instance and...
4317 (make_pass_final): ...new function.
4318 (pass_shorten_branches): Convert from a global struct to a subclass of
4319 rtl_opt_pass along with...
4320 (pass_data_shorten_branches): ...new pass_data instance and...
4321 (make_pass_shorten_branches): ...new function.
4322 (pass_clean_state): Convert from a global struct to a subclass of
4323 rtl_opt_pass along with...
4324 (pass_data_clean_state): ...new pass_data instance and...
4325 (make_pass_clean_state): ...new function.
4326 * function.c (pass_instantiate_virtual_regs): Convert from a global
4327 struct to a subclass of rtl_opt_pass along with...
4328 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
4329 (make_pass_instantiate_virtual_regs): ...new function.
4330 (pass_leaf_regs): Convert from a global struct to a subclass of
4331 rtl_opt_pass along with...
4332 (pass_data_leaf_regs): ...new pass_data instance and...
4333 (make_pass_leaf_regs): ...new function.
4334 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
4335 subclass of rtl_opt_pass along with...
4336 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
4337 and...
4338 (make_pass_thread_prologue_and_epilogue): ...new function.
4339 (pass_match_asm_constraints): Convert from a global struct to a
4340 subclass of rtl_opt_pass along with...
4341 (pass_data_match_asm_constraints): ...new pass_data instance and...
4342 (make_pass_match_asm_constraints): ...new function.
4343 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
4344 subclass of rtl_opt_pass along with...
4345 (pass_data_rtl_fwprop): ...new pass_data instance and...
4346 (make_pass_rtl_fwprop): ...new function.
4347 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
4348 rtl_opt_pass along with...
4349 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
4350 (make_pass_rtl_fwprop_addr): ...new function.
4351 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
4352 rtl_opt_pass along with...
4353 (pass_data_rtl_pre): ...new pass_data instance and...
4354 (make_pass_rtl_pre): ...new function.
4355 (pass_rtl_hoist): Convert from a global struct to a subclass of
4356 rtl_opt_pass along with...
4357 (pass_data_rtl_hoist): ...new pass_data instance and...
4358 (make_pass_rtl_hoist): ...new function.
4359 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
4360 subclass of gimple_opt_pass along with...
4361 (pass_data_lower_cf): ...new pass_data instance and...
4362 (make_pass_lower_cf): ...new function.
4363 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
4364 from a global struct to a subclass of gimple_opt_pass along with...
4365 (pass_data_strength_reduction): ...new pass_data instance and...
4366 (make_pass_strength_reduction): ...new function.
4367 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
4368 of rtl_opt_pass along with...
4369 (pass_data_rtl_ifcvt): ...new pass_data instance and...
4370 (make_pass_rtl_ifcvt): ...new function.
4371 (pass_if_after_combine): Convert from a global struct to a subclass of
4372 rtl_opt_pass along with...
4373 (pass_data_if_after_combine): ...new pass_data instance and...
4374 (make_pass_if_after_combine): ...new function.
4375 (pass_if_after_reload): Convert from a global struct to a subclass of
4376 rtl_opt_pass along with...
4377 (pass_data_if_after_reload): ...new pass_data instance and...
4378 (make_pass_if_after_reload): ...new function.
4379 * init-regs.c (pass_initialize_regs): Convert from a global struct to
4380 a subclass of rtl_opt_pass along with...
4381 (pass_data_initialize_regs): ...new pass_data instance and...
4382 (make_pass_initialize_regs): ...new function.
4383 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
4384 of ipa_opt_pass_d along with...
4385 (pass_data_ipa_cp): ...new pass_data instance and...
4386 (make_pass_ipa_cp): ...new function.
4387 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
4388 global struct to a subclass of gimple_opt_pass along with...
4389 (pass_data_inline_parameters): ...new pass_data instance and...
4390 (make_pass_inline_parameters): ...new function.
4391 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
4392 subclass of gimple_opt_pass along with...
4393 (pass_data_early_inline): ...new pass_data instance and...
4394 (make_pass_early_inline): ...new function.
4395 (pass_ipa_inline): Convert from a global struct to a subclass of
4396 ipa_opt_pass_d along with...
4397 (pass_data_ipa_inline): ...new pass_data instance and...
4398 (make_pass_ipa_inline): ...new function.
4399 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
4400 struct to a subclass of gimple_opt_pass along with...
4401 (pass_data_local_pure_const): ...new pass_data instance and...
4402 (make_pass_local_pure_const): ...new function.
4403 (pass_ipa_pure_const): Convert from a global struct to a subclass of
4404 ipa_opt_pass_d along with...
4405 (pass_data_ipa_pure_const): ...new pass_data instance and...
4406 (make_pass_ipa_pure_const): ...new function.
4407 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
4408 to a subclass of ipa_opt_pass_d along with...
4409 (pass_data_ipa_reference): ...new pass_data instance and...
4410 (make_pass_ipa_reference): ...new function.
4411 * ipa-split.c (pass_split_functions): Convert from a global struct to
4412 a subclass of gimple_opt_pass along with...
4413 (pass_data_split_functions): ...new pass_data instance and...
4414 (make_pass_split_functions): ...new function.
4415 (pass_feedback_split_functions): Convert from a global struct to a
4416 subclass of gimple_opt_pass along with...
4417 (pass_data_feedback_split_functions): ...new pass_data instance and...
4418 (make_pass_feedback_split_functions): ...new function.
4419 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
4420 global struct to a subclass of simple_ipa_opt_pass along with...
4421 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
4422 instance and...
4423 (make_pass_ipa_function_and_variable_visibility): ...new function.
4424 (pass_ipa_free_inline_summary): Convert from a global struct to a
4425 subclass of simple_ipa_opt_pass along with...
4426 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
4427 (make_pass_ipa_free_inline_summary): ...new function.
4428 (pass_ipa_whole_program_visibility): Convert from a global struct to a
4429 subclass of ipa_opt_pass_d along with...
4430 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
4431 and...
4432 (make_pass_ipa_whole_program_visibility): ...new function.
4433 (pass_ipa_profile): Convert from a global struct to a subclass of
4434 ipa_opt_pass_d along with...
4435 (pass_data_ipa_profile): ...new pass_data instance and...
4436 (make_pass_ipa_profile): ...new function.
4437 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
4438 ipa_opt_pass_d along with...
4439 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
4440 (make_pass_ipa_cdtor_merge): ...new function.
4441 * ira.c (pass_ira): Convert from a global struct to a subclass of
4442 rtl_opt_pass along with...
4443 (pass_data_ira): ...new pass_data instance and...
4444 (make_pass_ira): ...new function.
4445 (pass_reload): Convert from a global struct to a subclass of
4446 rtl_opt_pass along with...
4447 (pass_data_reload): ...new pass_data instance and...
4448 (make_pass_reload): ...new function.
4449 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
4450 subclass of rtl_opt_pass along with...
4451 (pass_data_cleanup_barriers): ...new pass_data instance and...
4452 (make_pass_cleanup_barriers): ...new function.
4453 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
4454 of rtl_opt_pass along with...
4455 (pass_data_loop2): ...new pass_data instance and...
4456 (make_pass_loop2): ...new function.
4457 (pass_rtl_loop_init): Convert from a global struct to a subclass of
4458 rtl_opt_pass along with...
4459 (pass_data_rtl_loop_init): ...new pass_data instance and...
4460 (make_pass_rtl_loop_init): ...new function.
4461 (pass_rtl_loop_done): Convert from a global struct to a subclass of
4462 rtl_opt_pass along with...
4463 (pass_data_rtl_loop_done): ...new pass_data instance and...
4464 (make_pass_rtl_loop_done): ...new function.
4465 (pass_rtl_move_loop_invariants): Convert from a global struct to a
4466 subclass of rtl_opt_pass along with...
4467 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
4468 (make_pass_rtl_move_loop_invariants): ...new function.
4469 (pass_rtl_unswitch): Convert from a global struct to a subclass of
4470 rtl_opt_pass along with...
4471 (pass_data_rtl_unswitch): ...new pass_data instance and...
4472 (make_pass_rtl_unswitch): ...new function.
4473 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
4474 subclass of rtl_opt_pass along with...
4475 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
4476 and...
4477 (make_pass_rtl_unroll_and_peel_loops): ...new function.
4478 (pass_rtl_doloop): Convert from a global struct to a subclass of
4479 rtl_opt_pass along with...
4480 (pass_data_rtl_doloop): ...new pass_data instance and...
4481 (make_pass_rtl_doloop): ...new function.
4482 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
4483 a subclass of rtl_opt_pass along with...
4484 (pass_data_lower_subreg): ...new pass_data instance and...
4485 (make_pass_lower_subreg): ...new function.
4486 (pass_lower_subreg2): Convert from a global struct to a subclass of
4487 rtl_opt_pass along with...
4488 (pass_data_lower_subreg2): ...new pass_data instance and...
4489 (make_pass_lower_subreg2): ...new function.
4490 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
4491 struct to a subclass of ipa_opt_pass_d along with...
4492 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
4493 (make_pass_ipa_lto_gimple_out): ...new function.
4494 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
4495 of ipa_opt_pass_d along with...
4496 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
4497 (make_pass_ipa_lto_finish_out): ...new function.
4498 * mode-switching.c (pass_mode_switching): Convert from a global struct
4499 to a subclass of rtl_opt_pass along with...
4500 (pass_data_mode_switching): ...new pass_data instance and...
4501 (make_pass_mode_switching): ...new function.
4502 * modulo-sched.c (pass_sms): Convert from a global struct to a
4503 subclass of rtl_opt_pass along with...
4504 (pass_data_sms): ...new pass_data instance and...
4505 (make_pass_sms): ...new function.
4506 * omp-low.c (pass_expand_omp): Convert from a global struct to a
4507 subclass of gimple_opt_pass along with...
4508 (pass_data_expand_omp): ...new pass_data instance and...
4509 (make_pass_expand_omp): ...new function.
4510 (pass_lower_omp): Convert from a global struct to a subclass of
4511 gimple_opt_pass along with...
4512 (pass_data_lower_omp): ...new pass_data instance and...
4513 (make_pass_lower_omp): ...new function.
4514 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
4515 of gimple_opt_pass along with...
4516 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
4517 (make_pass_diagnose_omp_blocks): ...new function.
4518 * passes.c (pass_early_local_passes): Convert from a global struct to
4519 a subclass of simple_ipa_opt_pass along with...
4520 (pass_data_early_local_passes): ...new pass_data instance and...
4521 (make_pass_early_local_passes): ...new function.
4522 (pass_all_early_optimizations): Convert from a global struct to a
4523 subclass of gimple_opt_pass along with...
4524 (pass_data_all_early_optimizations): ...new pass_data instance and...
4525 (make_pass_all_early_optimizations): ...new function.
4526 (pass_all_optimizations): Convert from a global struct to a subclass
4527 of gimple_opt_pass along with...
4528 (pass_data_all_optimizations): ...new pass_data instance and...
4529 (make_pass_all_optimizations): ...new function.
4530 (pass_all_optimizations_g): Convert from a global struct to a subclass
4531 of gimple_opt_pass along with...
4532 (pass_data_all_optimizations_g): ...new pass_data instance and...
4533 (make_pass_all_optimizations_g): ...new function.
4534 (pass_rest_of_compilation): Convert from a global struct to a subclass
4535 of rtl_opt_pass along with...
4536 (pass_data_rest_of_compilation): ...new pass_data instance and...
4537 (make_pass_rest_of_compilation): ...new function.
4538 (pass_postreload): Convert from a global struct to a subclass of
4539 rtl_opt_pass along with...
4540 (pass_data_postreload): ...new pass_data instance and...
4541 (make_pass_postreload): ...new function.
4542 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
4543 subclass of rtl_opt_pass along with...
4544 (pass_data_gcse2): ...new pass_data instance and...
4545 (make_pass_gcse2): ...new function.
4546 * postreload.c (pass_postreload_cse): Convert from a global struct to
4547 a subclass of rtl_opt_pass along with...
4548 (pass_data_postreload_cse): ...new pass_data instance and...
4549 (make_pass_postreload_cse): ...new function.
4550 * predict.c (pass_profile): Convert from a global struct to a subclass
4551 of gimple_opt_pass along with...
4552 (pass_data_profile): ...new pass_data instance and...
4553 (make_pass_profile): ...new function.
4554 (pass_strip_predict_hints): Convert from a global struct to a subclass
4555 of gimple_opt_pass along with...
4556 (pass_data_strip_predict_hints): ...new pass_data instance and...
4557 (make_pass_strip_predict_hints): ...new function.
4558 * recog.c (pass_peephole2): Convert from a global struct to a subclass
4559 of rtl_opt_pass along with...
4560 (pass_data_peephole2): ...new pass_data instance and...
4561 (make_pass_peephole2): ...new function.
4562 (pass_split_all_insns): Convert from a global struct to a subclass of
4563 rtl_opt_pass along with...
4564 (pass_data_split_all_insns): ...new pass_data instance and...
4565 (make_pass_split_all_insns): ...new function.
4566 (pass_split_after_reload): Convert from a global struct to a subclass
4567 of rtl_opt_pass along with...
4568 (pass_data_split_after_reload): ...new pass_data instance and...
4569 (make_pass_split_after_reload): ...new function.
4570 (pass_split_before_regstack): Convert from a global struct to a
4571 subclass of rtl_opt_pass along with...
4572 (pass_data_split_before_regstack): ...new pass_data instance and...
4573 (make_pass_split_before_regstack): ...new function.
4574 (pass_split_before_sched2): Convert from a global struct to a subclass
4575 of rtl_opt_pass along with...
4576 (pass_data_split_before_sched2): ...new pass_data instance and...
4577 (make_pass_split_before_sched2): ...new function.
4578 (pass_split_for_shorten_branches): Convert from a global struct to a
4579 subclass of rtl_opt_pass along with...
4580 (pass_data_split_for_shorten_branches): ...new pass_data instance
4581 and...
4582 (make_pass_split_for_shorten_branches): ...new function.
4583 * ree.c (pass_ree): Convert from a global struct to a subclass of
4584 rtl_opt_pass along with...
4585 (pass_data_ree): ...new pass_data instance and...
4586 (make_pass_ree): ...new function.
4587 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
4588 subclass of rtl_opt_pass along with...
4589 (pass_data_stack_regs): ...new pass_data instance and...
4590 (make_pass_stack_regs): ...new function.
4591 (pass_stack_regs_run): Convert from a global struct to a subclass of
4592 rtl_opt_pass along with...
4593 (pass_data_stack_regs_run): ...new pass_data instance and...
4594 (make_pass_stack_regs_run): ...new function.
4595 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
4596 subclass of rtl_opt_pass along with...
4597 (pass_data_cprop_hardreg): ...new pass_data instance and...
4598 (make_pass_cprop_hardreg): ...new function.
4599 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
4600 subclass of rtl_opt_pass along with...
4601 (pass_data_reginfo_init): ...new pass_data instance and...
4602 (make_pass_reginfo_init): ...new function.
4603 * regmove.c (pass_regmove): Convert from a global struct to a subclass
4604 of rtl_opt_pass along with...
4605 (pass_data_regmove): ...new pass_data instance and...
4606 (make_pass_regmove): ...new function.
4607 * regrename.c (pass_regrename): Convert from a global struct to a
4608 subclass of rtl_opt_pass along with...
4609 (pass_data_regrename): ...new pass_data instance and...
4610 (make_pass_regrename): ...new function.
4611 * reorg.c (pass_delay_slots): Convert from a global struct to a
4612 subclass of rtl_opt_pass along with...
4613 (pass_data_delay_slots): ...new pass_data instance and...
4614 (make_pass_delay_slots): ...new function.
4615 (pass_machine_reorg): Convert from a global struct to a subclass of
4616 rtl_opt_pass along with...
4617 (pass_data_machine_reorg): ...new pass_data instance and...
4618 (make_pass_machine_reorg): ...new function.
4619 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
4620 of rtl_opt_pass along with...
4621 (pass_data_sched): ...new pass_data instance and...
4622 (make_pass_sched): ...new function.
4623 (pass_sched2): Convert from a global struct to a subclass of
4624 rtl_opt_pass along with...
4625 (pass_data_sched2): ...new pass_data instance and...
4626 (make_pass_sched2): ...new function.
4627 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
4628 to a subclass of rtl_opt_pass along with...
4629 (pass_data_stack_ptr_mod): ...new pass_data instance and...
4630 (make_pass_stack_ptr_mod): ...new function.
4631 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
4632 to a subclass of rtl_opt_pass along with...
4633 (pass_data_rtl_store_motion): ...new pass_data instance and...
4634 (make_pass_rtl_store_motion): ...new function.
4635 * tracer.c (pass_tracer): Convert from a global struct to a subclass
4636 of gimple_opt_pass along with...
4637 (pass_data_tracer): ...new pass_data instance and...
4638 (make_pass_tracer): ...new function.
4639 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
4640 to a subclass of gimple_opt_pass along with...
4641 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
4642 (make_pass_diagnose_tm_blocks): ...new function.
4643 (pass_lower_tm): Convert from a global struct to a subclass of
4644 gimple_opt_pass along with...
4645 (pass_data_lower_tm): ...new pass_data instance and...
4646 (make_pass_lower_tm): ...new function.
4647 (pass_tm_init): Convert from a global struct to a subclass of
4648 gimple_opt_pass along with...
4649 (pass_data_tm_init): ...new pass_data instance and...
4650 (make_pass_tm_init): ...new function.
4651 (pass_tm_mark): Convert from a global struct to a subclass of
4652 gimple_opt_pass along with...
4653 (pass_data_tm_mark): ...new pass_data instance and...
4654 (make_pass_tm_mark): ...new function.
4655 (pass_tm_edges): Convert from a global struct to a subclass of
4656 gimple_opt_pass along with...
4657 (pass_data_tm_edges): ...new pass_data instance and...
4658 (make_pass_tm_edges): ...new function.
4659 (pass_tm_memopt): Convert from a global struct to a subclass of
4660 gimple_opt_pass along with...
4661 (pass_data_tm_memopt): ...new pass_data instance and...
4662 (make_pass_tm_memopt): ...new function.
4663 (pass_ipa_tm): Convert from a global struct to a subclass of
4664 simple_ipa_opt_pass along with...
4665 (pass_data_ipa_tm): ...new pass_data instance and...
4666 (make_pass_ipa_tm): ...new function.
4667 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
4668 subclass of gimple_opt_pass along with...
4669 (pass_data_call_cdce): ...new pass_data instance and...
4670 (make_pass_call_cdce): ...new function.
4671 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
4672 subclass of gimple_opt_pass along with...
4673 (pass_data_build_cfg): ...new pass_data instance and...
4674 (make_pass_build_cfg): ...new function.
4675 (pass_split_crit_edges): Convert from a global struct to a subclass of
4676 gimple_opt_pass along with...
4677 (pass_data_split_crit_edges): ...new pass_data instance and...
4678 (make_pass_split_crit_edges): ...new function.
4679 (pass_warn_function_return): Convert from a global struct to a
4680 subclass of gimple_opt_pass along with...
4681 (pass_data_warn_function_return): ...new pass_data instance and...
4682 (make_pass_warn_function_return): ...new function.
4683 (pass_warn_function_noreturn): Convert from a global struct to a
4684 subclass of gimple_opt_pass along with...
4685 (pass_data_warn_function_noreturn): ...new pass_data instance and...
4686 (make_pass_warn_function_noreturn): ...new function.
4687 (pass_warn_unused_result): Convert from a global struct to a subclass
4688 of gimple_opt_pass along with...
4689 (pass_data_warn_unused_result): ...new pass_data instance and...
4690 (make_pass_warn_unused_result): ...new function.
4691 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
4692 a subclass of gimple_opt_pass along with...
4693 (pass_data_merge_phi): ...new pass_data instance and...
4694 (make_pass_merge_phi): ...new function.
4695 * tree-complex.c (pass_lower_complex): Convert from a global struct to
4696 a subclass of gimple_opt_pass along with...
4697 (pass_data_lower_complex): ...new pass_data instance and...
4698 (make_pass_lower_complex): ...new function.
4699 (pass_lower_complex_O0): Convert from a global struct to a subclass of
4700 gimple_opt_pass along with...
4701 (pass_data_lower_complex_O0): ...new pass_data instance and...
4702 (make_pass_lower_complex_O0): ...new function.
4703 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
4704 subclass of gimple_opt_pass along with...
4705 (pass_data_lower_eh): ...new pass_data instance and...
4706 (make_pass_lower_eh): ...new function.
4707 (pass_refactor_eh): Convert from a global struct to a subclass of
4708 gimple_opt_pass along with...
4709 (pass_data_refactor_eh): ...new pass_data instance and...
4710 (make_pass_refactor_eh): ...new function.
4711 (pass_lower_resx): Convert from a global struct to a subclass of
4712 gimple_opt_pass along with...
4713 (pass_data_lower_resx): ...new pass_data instance and...
4714 (make_pass_lower_resx): ...new function.
4715 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
4716 of gimple_opt_pass along with...
4717 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
4718 (make_pass_lower_eh_dispatch): ...new function.
4719 (pass_cleanup_eh): Convert from a global struct to a subclass of
4720 gimple_opt_pass along with...
4721 (pass_data_cleanup_eh): ...new pass_data instance and...
4722 (make_pass_cleanup_eh): ...new function.
4723 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
4724 to a subclass of simple_ipa_opt_pass along with...
4725 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
4726 (make_pass_ipa_lower_emutls): ...new function.
4727 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
4728 a subclass of gimple_opt_pass along with...
4729 (pass_data_if_conversion): ...new pass_data instance and...
4730 (make_pass_if_conversion): ...new function.
4731 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
4732 subclass of gimple_opt_pass along with...
4733 (pass_data_build_ssa): ...new pass_data instance and...
4734 (make_pass_build_ssa): ...new function.
4735 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
4736 global struct to a subclass of gimple_opt_pass along with...
4737 (pass_data_loop_distribution): ...new pass_data instance and...
4738 (make_pass_loop_distribution): ...new function.
4739 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
4740 subclass of gimple_opt_pass along with...
4741 (pass_data_mudflap_1): ...new pass_data instance and...
4742 (make_pass_mudflap_1): ...new function.
4743 (pass_mudflap_2): Convert from a global struct to a subclass of
4744 gimple_opt_pass along with...
4745 (pass_data_mudflap_2): ...new pass_data instance and...
4746 (make_pass_mudflap_2): ...new function.
4747 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
4748 subclass of gimple_opt_pass along with...
4749 (pass_data_mudflap_1): ...new pass_data instance and...
4750 (make_pass_mudflap_1): ...new function.
4751 (pass_mudflap_2): Convert from a global struct to a subclass of
4752 gimple_opt_pass along with...
4753 (pass_data_mudflap_2): ...new pass_data instance and...
4754 (make_pass_mudflap_2): ...new function.
4755 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
4756 gimple_opt_pass along with...
4757 (pass_data_nrv): ...new pass_data instance and...
4758 (make_pass_nrv): ...new function.
4759 (pass_return_slot): Convert from a global struct to a subclass of
4760 gimple_opt_pass along with...
4761 (pass_data_return_slot): ...new pass_data instance and...
4762 (make_pass_return_slot): ...new function.
4763 * tree-object-size.c (pass_object_sizes): Convert from a global struct
4764 to a subclass of gimple_opt_pass along with...
4765 (pass_data_object_sizes): ...new pass_data instance and...
4766 (make_pass_object_sizes): ...new function.
4767 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
4768 global struct to a subclass of gimple_opt_pass along with...
4769 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
4770 and...
4771 (make_pass_cleanup_cfg_post_optimizing): ...new function.
4772 (pass_fixup_cfg): Convert from a global struct to a subclass of
4773 gimple_opt_pass along with...
4774 (pass_data_fixup_cfg): ...new pass_data instance and...
4775 (make_pass_fixup_cfg): ...new function.
4776 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
4777 (make_pass_mudflap_1): ...new function.
4778 (pass_mudflap_2): Replace declaration with that of...
4779 (make_pass_mudflap_2): ...new function.
4780 (pass_asan): Replace declaration with that of...
4781 (make_pass_asan): ...new function.
4782 (pass_asan_O0): Replace declaration with that of...
4783 (make_pass_asan_O0): ...new function.
4784 (pass_tsan): Replace declaration with that of...
4785 (make_pass_tsan): ...new function.
4786 (pass_tsan_O0): Replace declaration with that of...
4787 (make_pass_tsan_O0): ...new function.
4788 (pass_lower_cf): Replace declaration with that of...
4789 (make_pass_lower_cf): ...new function.
4790 (pass_refactor_eh): Replace declaration with that of...
4791 (make_pass_refactor_eh): ...new function.
4792 (pass_lower_eh): Replace declaration with that of...
4793 (make_pass_lower_eh): ...new function.
4794 (pass_lower_eh_dispatch): Replace declaration with that of...
4795 (make_pass_lower_eh_dispatch): ...new function.
4796 (pass_lower_resx): Replace declaration with that of...
4797 (make_pass_lower_resx): ...new function.
4798 (pass_build_cfg): Replace declaration with that of...
4799 (make_pass_build_cfg): ...new function.
4800 (pass_early_tree_profile): Replace declaration with that of...
4801 (make_pass_early_tree_profile): ...new function.
4802 (pass_cleanup_eh): Replace declaration with that of...
4803 (make_pass_cleanup_eh): ...new function.
4804 (pass_sra): Replace declaration with that of...
4805 (make_pass_sra): ...new function.
4806 (pass_sra_early): Replace declaration with that of...
4807 (make_pass_sra_early): ...new function.
4808 (pass_early_ipa_sra): Replace declaration with that of...
4809 (make_pass_early_ipa_sra): ...new function.
4810 (pass_tail_recursion): Replace declaration with that of...
4811 (make_pass_tail_recursion): ...new function.
4812 (pass_tail_calls): Replace declaration with that of...
4813 (make_pass_tail_calls): ...new function.
4814 (pass_tree_loop): Replace declaration with that of...
4815 (make_pass_tree_loop): ...new function.
4816 (pass_tree_loop_init): Replace declaration with that of...
4817 (make_pass_tree_loop_init): ...new function.
4818 (pass_lim): Replace declaration with that of...
4819 (make_pass_lim): ...new function.
4820 (pass_tree_unswitch): Replace declaration with that of...
4821 (make_pass_tree_unswitch): ...new function.
4822 (pass_predcom): Replace declaration with that of...
4823 (make_pass_predcom): ...new function.
4824 (pass_iv_canon): Replace declaration with that of...
4825 (make_pass_iv_canon): ...new function.
4826 (pass_scev_cprop): Replace declaration with that of...
4827 (make_pass_scev_cprop): ...new function.
4828 (pass_empty_loop): Replace declaration with that of...
4829 (make_pass_empty_loop): ...new function.
4830 (pass_record_bounds): Replace declaration with that of...
4831 (make_pass_record_bounds): ...new function.
4832 (pass_graphite): Replace declaration with that of...
4833 (make_pass_graphite): ...new function.
4834 (pass_graphite_transforms): Replace declaration with that of...
4835 (make_pass_graphite_transforms): ...new function.
4836 (pass_if_conversion): Replace declaration with that of...
4837 (make_pass_if_conversion): ...new function.
4838 (pass_loop_distribution): Replace declaration with that of...
4839 (make_pass_loop_distribution): ...new function.
4840 (pass_vectorize): Replace declaration with that of...
4841 (make_pass_vectorize): ...new function.
4842 (pass_slp_vectorize): Replace declaration with that of...
4843 (make_pass_slp_vectorize): ...new function.
4844 (pass_complete_unroll): Replace declaration with that of...
4845 (make_pass_complete_unroll): ...new function.
4846 (pass_complete_unrolli): Replace declaration with that of...
4847 (make_pass_complete_unrolli): ...new function.
4848 (pass_parallelize_loops): Replace declaration with that of...
4849 (make_pass_parallelize_loops): ...new function.
4850 (pass_loop_prefetch): Replace declaration with that of...
4851 (make_pass_loop_prefetch): ...new function.
4852 (pass_iv_optimize): Replace declaration with that of...
4853 (make_pass_iv_optimize): ...new function.
4854 (pass_tree_loop_done): Replace declaration with that of...
4855 (make_pass_tree_loop_done): ...new function.
4856 (pass_ch): Replace declaration with that of...
4857 (make_pass_ch): ...new function.
4858 (pass_ccp): Replace declaration with that of...
4859 (make_pass_ccp): ...new function.
4860 (pass_phi_only_cprop): Replace declaration with that of...
4861 (make_pass_phi_only_cprop): ...new function.
4862 (pass_build_ssa): Replace declaration with that of...
4863 (make_pass_build_ssa): ...new function.
4864 (pass_build_alias): Replace declaration with that of...
4865 (make_pass_build_alias): ...new function.
4866 (pass_build_ealias): Replace declaration with that of...
4867 (make_pass_build_ealias): ...new function.
4868 (pass_dominator): Replace declaration with that of...
4869 (make_pass_dominator): ...new function.
4870 (pass_dce): Replace declaration with that of...
4871 (make_pass_dce): ...new function.
4872 (pass_dce_loop): Replace declaration with that of...
4873 (make_pass_dce_loop): ...new function.
4874 (pass_cd_dce): Replace declaration with that of...
4875 (make_pass_cd_dce): ...new function.
4876 (pass_call_cdce): Replace declaration with that of...
4877 (make_pass_call_cdce): ...new function.
4878 (pass_merge_phi): Replace declaration with that of...
4879 (make_pass_merge_phi): ...new function.
4880 (pass_split_crit_edges): Replace declaration with that of...
4881 (make_pass_split_crit_edges): ...new function.
4882 (pass_pre): Replace declaration with that of...
4883 (make_pass_pre): ...new function.
4884 (pass_profile): Replace declaration with that of...
4885 (make_pass_profile): ...new function.
4886 (pass_strip_predict_hints): Replace declaration with that of...
4887 (make_pass_strip_predict_hints): ...new function.
4888 (pass_lower_complex_O0): Replace declaration with that of...
4889 (make_pass_lower_complex_O0): ...new function.
4890 (pass_lower_complex): Replace declaration with that of...
4891 (make_pass_lower_complex): ...new function.
4892 (pass_lower_vector): Replace declaration with that of...
4893 (make_pass_lower_vector): ...new function.
4894 (pass_lower_vector_ssa): Replace declaration with that of...
4895 (make_pass_lower_vector_ssa): ...new function.
4896 (pass_lower_omp): Replace declaration with that of...
4897 (make_pass_lower_omp): ...new function.
4898 (pass_diagnose_omp_blocks): Replace declaration with that of...
4899 (make_pass_diagnose_omp_blocks): ...new function.
4900 (pass_expand_omp): Replace declaration with that of...
4901 (make_pass_expand_omp): ...new function.
4902 (pass_expand_omp_ssa): Replace declaration with that of...
4903 (make_pass_expand_omp_ssa): ...new function.
4904 (pass_object_sizes): Replace declaration with that of...
4905 (make_pass_object_sizes): ...new function.
4906 (pass_strlen): Replace declaration with that of...
4907 (make_pass_strlen): ...new function.
4908 (pass_fold_builtins): Replace declaration with that of...
4909 (make_pass_fold_builtins): ...new function.
4910 (pass_stdarg): Replace declaration with that of...
4911 (make_pass_stdarg): ...new function.
4912 (pass_early_warn_uninitialized): Replace declaration with that of...
4913 (make_pass_early_warn_uninitialized): ...new function.
4914 (pass_late_warn_uninitialized): Replace declaration with that of...
4915 (make_pass_late_warn_uninitialized): ...new function.
4916 (pass_cse_reciprocals): Replace declaration with that of...
4917 (make_pass_cse_reciprocals): ...new function.
4918 (pass_cse_sincos): Replace declaration with that of...
4919 (make_pass_cse_sincos): ...new function.
4920 (pass_optimize_bswap): Replace declaration with that of...
4921 (make_pass_optimize_bswap): ...new function.
4922 (pass_optimize_widening_mul): Replace declaration with that of...
4923 (make_pass_optimize_widening_mul): ...new function.
4924 (pass_warn_function_return): Replace declaration with that of...
4925 (make_pass_warn_function_return): ...new function.
4926 (pass_warn_function_noreturn): Replace declaration with that of...
4927 (make_pass_warn_function_noreturn): ...new function.
4928 (pass_cselim): Replace declaration with that of...
4929 (make_pass_cselim): ...new function.
4930 (pass_phiopt): Replace declaration with that of...
4931 (make_pass_phiopt): ...new function.
4932 (pass_forwprop): Replace declaration with that of...
4933 (make_pass_forwprop): ...new function.
4934 (pass_phiprop): Replace declaration with that of...
4935 (make_pass_phiprop): ...new function.
4936 (pass_tree_ifcombine): Replace declaration with that of...
4937 (make_pass_tree_ifcombine): ...new function.
4938 (pass_dse): Replace declaration with that of...
4939 (make_pass_dse): ...new function.
4940 (pass_nrv): Replace declaration with that of...
4941 (make_pass_nrv): ...new function.
4942 (pass_rename_ssa_copies): Replace declaration with that of...
4943 (make_pass_rename_ssa_copies): ...new function.
4944 (pass_sink_code): Replace declaration with that of...
4945 (make_pass_sink_code): ...new function.
4946 (pass_fre): Replace declaration with that of...
4947 (make_pass_fre): ...new function.
4948 (pass_check_data_deps): Replace declaration with that of...
4949 (make_pass_check_data_deps): ...new function.
4950 (pass_copy_prop): Replace declaration with that of...
4951 (make_pass_copy_prop): ...new function.
4952 (pass_vrp): Replace declaration with that of...
4953 (make_pass_vrp): ...new function.
4954 (pass_uncprop): Replace declaration with that of...
4955 (make_pass_uncprop): ...new function.
4956 (pass_return_slot): Replace declaration with that of...
4957 (make_pass_return_slot): ...new function.
4958 (pass_reassoc): Replace declaration with that of...
4959 (make_pass_reassoc): ...new function.
4960 (pass_rebuild_cgraph_edges): Replace declaration with that of...
4961 (make_pass_rebuild_cgraph_edges): ...new function.
4962 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
4963 (make_pass_remove_cgraph_callee_edges): ...new function.
4964 (pass_build_cgraph_edges): Replace declaration with that of...
4965 (make_pass_build_cgraph_edges): ...new function.
4966 (pass_local_pure_const): Replace declaration with that of...
4967 (make_pass_local_pure_const): ...new function.
4968 (pass_tracer): Replace declaration with that of...
4969 (make_pass_tracer): ...new function.
4970 (pass_warn_unused_result): Replace declaration with that of...
4971 (make_pass_warn_unused_result): ...new function.
4972 (pass_diagnose_tm_blocks): Replace declaration with that of...
4973 (make_pass_diagnose_tm_blocks): ...new function.
4974 (pass_lower_tm): Replace declaration with that of...
4975 (make_pass_lower_tm): ...new function.
4976 (pass_tm_init): Replace declaration with that of...
4977 (make_pass_tm_init): ...new function.
4978 (pass_tm_mark): Replace declaration with that of...
4979 (make_pass_tm_mark): ...new function.
4980 (pass_tm_memopt): Replace declaration with that of...
4981 (make_pass_tm_memopt): ...new function.
4982 (pass_tm_edges): Replace declaration with that of...
4983 (make_pass_tm_edges): ...new function.
4984 (pass_split_functions): Replace declaration with that of...
4985 (make_pass_split_functions): ...new function.
4986 (pass_feedback_split_functions): Replace declaration with that of...
4987 (make_pass_feedback_split_functions): ...new function.
4988 (pass_strength_reduction): Replace declaration with that of...
4989 (make_pass_strength_reduction): ...new function.
4990 (pass_ipa_lower_emutls): Replace declaration with that of...
4991 (make_pass_ipa_lower_emutls): ...new function.
4992 (pass_ipa_function_and_variable_visibility): Replace declaration with
4993 that of...
4994 (make_pass_ipa_function_and_variable_visibility): ...new function.
4995 (pass_ipa_tree_profile): Replace declaration with that of...
4996 (make_pass_ipa_tree_profile): ...new function.
4997 (pass_early_local_passes): Replace declaration with that of...
4998 (make_pass_early_local_passes): ...new function.
4999 (pass_ipa_whole_program_visibility): Replace declaration with that
5000 of...
5001 (make_pass_ipa_whole_program_visibility): ...new function.
5002 (pass_ipa_lto_gimple_out): Replace declaration with that of...
5003 (make_pass_ipa_lto_gimple_out): ...new function.
5004 (pass_ipa_increase_alignment): Replace declaration with that of...
5005 (make_pass_ipa_increase_alignment): ...new function.
5006 (pass_ipa_inline): Replace declaration with that of...
5007 (make_pass_ipa_inline): ...new function.
5008 (pass_ipa_free_lang_data): Replace declaration with that of...
5009 (make_pass_ipa_free_lang_data): ...new function.
5010 (pass_ipa_free_inline_summary): Replace declaration with that of...
5011 (make_pass_ipa_free_inline_summary): ...new function.
5012 (pass_ipa_cp): Replace declaration with that of...
5013 (make_pass_ipa_cp): ...new function.
5014 (pass_ipa_reference): Replace declaration with that of...
5015 (make_pass_ipa_reference): ...new function.
5016 (pass_ipa_pure_const): Replace declaration with that of...
5017 (make_pass_ipa_pure_const): ...new function.
5018 (pass_ipa_pta): Replace declaration with that of...
5019 (make_pass_ipa_pta): ...new function.
5020 (pass_ipa_lto_finish_out): Replace declaration with that of...
5021 (make_pass_ipa_lto_finish_out): ...new function.
5022 (pass_ipa_tm): Replace declaration with that of...
5023 (make_pass_ipa_tm): ...new function.
5024 (pass_ipa_profile): Replace declaration with that of...
5025 (make_pass_ipa_profile): ...new function.
5026 (pass_ipa_cdtor_merge): Replace declaration with that of...
5027 (make_pass_ipa_cdtor_merge): ...new function.
5028 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
5029 of...
5030 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5031 (pass_init_datastructures): Replace declaration with that of...
5032 (make_pass_init_datastructures): ...new function.
5033 (pass_fixup_cfg): Replace declaration with that of...
5034 (make_pass_fixup_cfg): ...new function.
5035 (pass_expand): Replace declaration with that of...
5036 (make_pass_expand): ...new function.
5037 (pass_instantiate_virtual_regs): Replace declaration with that of...
5038 (make_pass_instantiate_virtual_regs): ...new function.
5039 (pass_rtl_fwprop): Replace declaration with that of...
5040 (make_pass_rtl_fwprop): ...new function.
5041 (pass_rtl_fwprop_addr): Replace declaration with that of...
5042 (make_pass_rtl_fwprop_addr): ...new function.
5043 (pass_jump): Replace declaration with that of...
5044 (make_pass_jump): ...new function.
5045 (pass_jump2): Replace declaration with that of...
5046 (make_pass_jump2): ...new function.
5047 (pass_lower_subreg): Replace declaration with that of...
5048 (make_pass_lower_subreg): ...new function.
5049 (pass_cse): Replace declaration with that of...
5050 (make_pass_cse): ...new function.
5051 (pass_fast_rtl_dce): Replace declaration with that of...
5052 (make_pass_fast_rtl_dce): ...new function.
5053 (pass_ud_rtl_dce): Replace declaration with that of...
5054 (make_pass_ud_rtl_dce): ...new function.
5055 (pass_rtl_dce): Replace declaration with that of...
5056 (make_pass_rtl_dce): ...new function.
5057 (pass_rtl_dse1): Replace declaration with that of...
5058 (make_pass_rtl_dse1): ...new function.
5059 (pass_rtl_dse2): Replace declaration with that of...
5060 (make_pass_rtl_dse2): ...new function.
5061 (pass_rtl_dse3): Replace declaration with that of...
5062 (make_pass_rtl_dse3): ...new function.
5063 (pass_rtl_cprop): Replace declaration with that of...
5064 (make_pass_rtl_cprop): ...new function.
5065 (pass_rtl_pre): Replace declaration with that of...
5066 (make_pass_rtl_pre): ...new function.
5067 (pass_rtl_hoist): Replace declaration with that of...
5068 (make_pass_rtl_hoist): ...new function.
5069 (pass_rtl_store_motion): Replace declaration with that of...
5070 (make_pass_rtl_store_motion): ...new function.
5071 (pass_cse_after_global_opts): Replace declaration with that of...
5072 (make_pass_cse_after_global_opts): ...new function.
5073 (pass_rtl_ifcvt): Replace declaration with that of...
5074 (make_pass_rtl_ifcvt): ...new function.
5075 (pass_into_cfg_layout_mode): Replace declaration with that of...
5076 (make_pass_into_cfg_layout_mode): ...new function.
5077 (pass_outof_cfg_layout_mode): Replace declaration with that of...
5078 (make_pass_outof_cfg_layout_mode): ...new function.
5079 (pass_loop2): Replace declaration with that of...
5080 (make_pass_loop2): ...new function.
5081 (pass_rtl_loop_init): Replace declaration with that of...
5082 (make_pass_rtl_loop_init): ...new function.
5083 (pass_rtl_move_loop_invariants): Replace declaration with that of...
5084 (make_pass_rtl_move_loop_invariants): ...new function.
5085 (pass_rtl_unswitch): Replace declaration with that of...
5086 (make_pass_rtl_unswitch): ...new function.
5087 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
5088 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5089 (pass_rtl_doloop): Replace declaration with that of...
5090 (make_pass_rtl_doloop): ...new function.
5091 (pass_rtl_loop_done): Replace declaration with that of...
5092 (make_pass_rtl_loop_done): ...new function.
5093 (pass_web): Replace declaration with that of...
5094 (make_pass_web): ...new function.
5095 (pass_cse2): Replace declaration with that of...
5096 (make_pass_cse2): ...new function.
5097 (pass_df_initialize_opt): Replace declaration with that of...
5098 (make_pass_df_initialize_opt): ...new function.
5099 (pass_df_initialize_no_opt): Replace declaration with that of...
5100 (make_pass_df_initialize_no_opt): ...new function.
5101 (pass_reginfo_init): Replace declaration with that of...
5102 (make_pass_reginfo_init): ...new function.
5103 (pass_inc_dec): Replace declaration with that of...
5104 (make_pass_inc_dec): ...new function.
5105 (pass_stack_ptr_mod): Replace declaration with that of...
5106 (make_pass_stack_ptr_mod): ...new function.
5107 (pass_initialize_regs): Replace declaration with that of...
5108 (make_pass_initialize_regs): ...new function.
5109 (pass_combine): Replace declaration with that of...
5110 (make_pass_combine): ...new function.
5111 (pass_if_after_combine): Replace declaration with that of...
5112 (make_pass_if_after_combine): ...new function.
5113 (pass_ree): Replace declaration with that of...
5114 (make_pass_ree): ...new function.
5115 (pass_partition_blocks): Replace declaration with that of...
5116 (make_pass_partition_blocks): ...new function.
5117 (pass_match_asm_constraints): Replace declaration with that of...
5118 (make_pass_match_asm_constraints): ...new function.
5119 (pass_regmove): Replace declaration with that of...
5120 (make_pass_regmove): ...new function.
5121 (pass_split_all_insns): Replace declaration with that of...
5122 (make_pass_split_all_insns): ...new function.
5123 (pass_fast_rtl_byte_dce): Replace declaration with that of...
5124 (make_pass_fast_rtl_byte_dce): ...new function.
5125 (pass_lower_subreg2): Replace declaration with that of...
5126 (make_pass_lower_subreg2): ...new function.
5127 (pass_mode_switching): Replace declaration with that of...
5128 (make_pass_mode_switching): ...new function.
5129 (pass_sms): Replace declaration with that of...
5130 (make_pass_sms): ...new function.
5131 (pass_sched): Replace declaration with that of...
5132 (make_pass_sched): ...new function.
5133 (pass_ira): Replace declaration with that of...
5134 (make_pass_ira): ...new function.
5135 (pass_reload): Replace declaration with that of...
5136 (make_pass_reload): ...new function.
5137 (pass_clean_state): Replace declaration with that of...
5138 (make_pass_clean_state): ...new function.
5139 (pass_branch_prob): Replace declaration with that of...
5140 (make_pass_branch_prob): ...new function.
5141 (pass_value_profile_transformations): Replace declaration with that
5142 of...
5143 (make_pass_value_profile_transformations): ...new function.
5144 (pass_postreload_cse): Replace declaration with that of...
5145 (make_pass_postreload_cse): ...new function.
5146 (pass_gcse2): Replace declaration with that of...
5147 (make_pass_gcse2): ...new function.
5148 (pass_split_after_reload): Replace declaration with that of...
5149 (make_pass_split_after_reload): ...new function.
5150 (pass_branch_target_load_optimize1): Replace declaration with that
5151 of...
5152 (make_pass_branch_target_load_optimize1): ...new function.
5153 (pass_thread_prologue_and_epilogue): Replace declaration with that
5154 of...
5155 (make_pass_thread_prologue_and_epilogue): ...new function.
5156 (pass_stack_adjustments): Replace declaration with that of...
5157 (make_pass_stack_adjustments): ...new function.
5158 (pass_peephole2): Replace declaration with that of...
5159 (make_pass_peephole2): ...new function.
5160 (pass_if_after_reload): Replace declaration with that of...
5161 (make_pass_if_after_reload): ...new function.
5162 (pass_regrename): Replace declaration with that of...
5163 (make_pass_regrename): ...new function.
5164 (pass_cprop_hardreg): Replace declaration with that of...
5165 (make_pass_cprop_hardreg): ...new function.
5166 (pass_reorder_blocks): Replace declaration with that of...
5167 (make_pass_reorder_blocks): ...new function.
5168 (pass_branch_target_load_optimize2): Replace declaration with that
5169 of...
5170 (make_pass_branch_target_load_optimize2): ...new function.
5171 (pass_leaf_regs): Replace declaration with that of...
5172 (make_pass_leaf_regs): ...new function.
5173 (pass_split_before_sched2): Replace declaration with that of...
5174 (make_pass_split_before_sched2): ...new function.
5175 (pass_compare_elim_after_reload): Replace declaration with that of...
5176 (make_pass_compare_elim_after_reload): ...new function.
5177 (pass_sched2): Replace declaration with that of...
5178 (make_pass_sched2): ...new function.
5179 (pass_stack_regs): Replace declaration with that of...
5180 (make_pass_stack_regs): ...new function.
5181 (pass_stack_regs_run): Replace declaration with that of...
5182 (make_pass_stack_regs_run): ...new function.
5183 (pass_df_finish): Replace declaration with that of...
5184 (make_pass_df_finish): ...new function.
5185 (pass_compute_alignments): Replace declaration with that of...
5186 (make_pass_compute_alignments): ...new function.
5187 (pass_duplicate_computed_gotos): Replace declaration with that of...
5188 (make_pass_duplicate_computed_gotos): ...new function.
5189 (pass_variable_tracking): Replace declaration with that of...
5190 (make_pass_variable_tracking): ...new function.
5191 (pass_free_cfg): Replace declaration with that of...
5192 (make_pass_free_cfg): ...new function.
5193 (pass_machine_reorg): Replace declaration with that of...
5194 (make_pass_machine_reorg): ...new function.
5195 (pass_cleanup_barriers): Replace declaration with that of...
5196 (make_pass_cleanup_barriers): ...new function.
5197 (pass_delay_slots): Replace declaration with that of...
5198 (make_pass_delay_slots): ...new function.
5199 (pass_split_for_shorten_branches): Replace declaration with that of...
5200 (make_pass_split_for_shorten_branches): ...new function.
5201 (pass_split_before_regstack): Replace declaration with that of...
5202 (make_pass_split_before_regstack): ...new function.
5203 (pass_convert_to_eh_region_ranges): Replace declaration with that
5204 of...
5205 (make_pass_convert_to_eh_region_ranges): ...new function.
5206 (pass_shorten_branches): Replace declaration with that of...
5207 (make_pass_shorten_branches): ...new function.
5208 (pass_set_nothrow_function_flags): Replace declaration with that of...
5209 (make_pass_set_nothrow_function_flags): ...new function.
5210 (pass_dwarf2_frame): Replace declaration with that of...
5211 (make_pass_dwarf2_frame): ...new function.
5212 (pass_final): Replace declaration with that of...
5213 (make_pass_final): ...new function.
5214 (pass_rtl_seqabstr): Replace declaration with that of...
5215 (make_pass_rtl_seqabstr): ...new function.
5216 (pass_release_ssa_names): Replace declaration with that of...
5217 (make_pass_release_ssa_names): ...new function.
5218 (pass_early_inline): Replace declaration with that of...
5219 (make_pass_early_inline): ...new function.
5220 (pass_inline_parameters): Replace declaration with that of...
5221 (make_pass_inline_parameters): ...new function.
5222 (pass_update_address_taken): Replace declaration with that of...
5223 (make_pass_update_address_taken): ...new function.
5224 (pass_convert_switch): Replace declaration with that of...
5225 (make_pass_convert_switch): ...new function.
5226 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
5227 to a subclass of simple_ipa_opt_pass along with...
5228 (pass_data_ipa_tree_profile): ...new pass_data instance and...
5229 (make_pass_ipa_tree_profile): ...new function.
5230 * tree-sra.c (pass_sra_early): Convert from a global struct to a
5231 subclass of gimple_opt_pass along with...
5232 (pass_data_sra_early): ...new pass_data instance and...
5233 (make_pass_sra_early): ...new function.
5234 (pass_sra): Convert from a global struct to a subclass of
5235 gimple_opt_pass along with...
5236 (pass_data_sra): ...new pass_data instance and...
5237 (make_pass_sra): ...new function.
5238 (pass_early_ipa_sra): Convert from a global struct to a subclass of
5239 gimple_opt_pass along with...
5240 (pass_data_early_ipa_sra): ...new pass_data instance and...
5241 (make_pass_early_ipa_sra): ...new function.
5242 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
5243 subclass of gimple_opt_pass along with...
5244 (pass_data_ccp): ...new pass_data instance and...
5245 (make_pass_ccp): ...new function.
5246 (pass_fold_builtins): Convert from a global struct to a subclass of
5247 gimple_opt_pass along with...
5248 (pass_data_fold_builtins): ...new pass_data instance and...
5249 (make_pass_fold_builtins): ...new function.
5250 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
5251 subclass of gimple_opt_pass along with...
5252 (pass_data_copy_prop): ...new pass_data instance and...
5253 (make_pass_copy_prop): ...new function.
5254 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
5255 global struct to a subclass of gimple_opt_pass along with...
5256 (pass_data_rename_ssa_copies): ...new pass_data instance and...
5257 (make_pass_rename_ssa_copies): ...new function.
5258 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
5259 subclass of gimple_opt_pass along with...
5260 (pass_data_dce): ...new pass_data instance and...
5261 (make_pass_dce): ...new function.
5262 (pass_dce_loop): Convert from a global struct to a subclass of
5263 gimple_opt_pass along with...
5264 (pass_data_dce_loop): ...new pass_data instance and...
5265 (make_pass_dce_loop): ...new function.
5266 (pass_cd_dce): Convert from a global struct to a subclass of
5267 gimple_opt_pass along with...
5268 (pass_data_cd_dce): ...new pass_data instance and...
5269 (make_pass_cd_dce): ...new function.
5270 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
5271 subclass of gimple_opt_pass along with...
5272 (pass_data_dominator): ...new pass_data instance and...
5273 (make_pass_dominator): ...new function.
5274 (pass_phi_only_cprop): Convert from a global struct to a subclass of
5275 gimple_opt_pass along with...
5276 (pass_data_phi_only_cprop): ...new pass_data instance and...
5277 (make_pass_phi_only_cprop): ...new function.
5278 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
5279 subclass of gimple_opt_pass along with...
5280 (pass_data_dse): ...new pass_data instance and...
5281 (make_pass_dse): ...new function.
5282 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
5283 a subclass of gimple_opt_pass along with...
5284 (pass_data_forwprop): ...new pass_data instance and...
5285 (make_pass_forwprop): ...new function.
5286 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
5287 struct to a subclass of gimple_opt_pass along with...
5288 (pass_data_tree_ifcombine): ...new pass_data instance and...
5289 (make_pass_tree_ifcombine): ...new function.
5290 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
5291 subclass of gimple_opt_pass along with...
5292 (pass_data_ch): ...new pass_data instance and...
5293 (make_pass_ch): ...new function.
5294 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
5295 subclass of gimple_opt_pass along with...
5296 (pass_data_tree_loop): ...new pass_data instance and...
5297 (make_pass_tree_loop): ...new function.
5298 (pass_tree_loop_init): Convert from a global struct to a subclass of
5299 gimple_opt_pass along with...
5300 (pass_data_tree_loop_init): ...new pass_data instance and...
5301 (make_pass_tree_loop_init): ...new function.
5302 (pass_lim): Convert from a global struct to a subclass of
5303 gimple_opt_pass along with...
5304 (pass_data_lim): ...new pass_data instance and...
5305 (make_pass_lim): ...new function.
5306 (pass_tree_unswitch): Convert from a global struct to a subclass of
5307 gimple_opt_pass along with...
5308 (pass_data_tree_unswitch): ...new pass_data instance and...
5309 (make_pass_tree_unswitch): ...new function.
5310 (pass_predcom): Convert from a global struct to a subclass of
5311 gimple_opt_pass along with...
5312 (pass_data_predcom): ...new pass_data instance and...
5313 (make_pass_predcom): ...new function.
5314 (pass_vectorize): Convert from a global struct to a subclass of
5315 gimple_opt_pass along with...
5316 (pass_data_vectorize): ...new pass_data instance and...
5317 (make_pass_vectorize): ...new function.
5318 (pass_graphite): Convert from a global struct to a subclass of
5319 gimple_opt_pass along with...
5320 (pass_data_graphite): ...new pass_data instance and...
5321 (make_pass_graphite): ...new function.
5322 (pass_graphite_transforms): Convert from a global struct to a subclass
5323 of gimple_opt_pass along with...
5324 (pass_data_graphite_transforms): ...new pass_data instance and...
5325 (make_pass_graphite_transforms): ...new function.
5326 (pass_check_data_deps): Convert from a global struct to a subclass of
5327 gimple_opt_pass along with...
5328 (pass_data_check_data_deps): ...new pass_data instance and...
5329 (make_pass_check_data_deps): ...new function.
5330 (pass_iv_canon): Convert from a global struct to a subclass of
5331 gimple_opt_pass along with...
5332 (pass_data_iv_canon): ...new pass_data instance and...
5333 (make_pass_iv_canon): ...new function.
5334 (pass_scev_cprop): Convert from a global struct to a subclass of
5335 gimple_opt_pass along with...
5336 (pass_data_scev_cprop): ...new pass_data instance and...
5337 (make_pass_scev_cprop): ...new function.
5338 (pass_record_bounds): Convert from a global struct to a subclass of
5339 gimple_opt_pass along with...
5340 (pass_data_record_bounds): ...new pass_data instance and...
5341 (make_pass_record_bounds): ...new function.
5342 (pass_complete_unroll): Convert from a global struct to a subclass of
5343 gimple_opt_pass along with...
5344 (pass_data_complete_unroll): ...new pass_data instance and...
5345 (make_pass_complete_unroll): ...new function.
5346 (pass_complete_unrolli): Convert from a global struct to a subclass of
5347 gimple_opt_pass along with...
5348 (pass_data_complete_unrolli): ...new pass_data instance and...
5349 (make_pass_complete_unrolli): ...new function.
5350 (pass_parallelize_loops): Convert from a global struct to a subclass
5351 of gimple_opt_pass along with...
5352 (pass_data_parallelize_loops): ...new pass_data instance and...
5353 (make_pass_parallelize_loops): ...new function.
5354 (pass_loop_prefetch): Convert from a global struct to a subclass of
5355 gimple_opt_pass along with...
5356 (pass_data_loop_prefetch): ...new pass_data instance and...
5357 (make_pass_loop_prefetch): ...new function.
5358 (pass_iv_optimize): Convert from a global struct to a subclass of
5359 gimple_opt_pass along with...
5360 (pass_data_iv_optimize): ...new pass_data instance and...
5361 (make_pass_iv_optimize): ...new function.
5362 (pass_tree_loop_done): Convert from a global struct to a subclass of
5363 gimple_opt_pass along with...
5364 (pass_data_tree_loop_done): ...new pass_data instance and...
5365 (make_pass_tree_loop_done): ...new function.
5366 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
5367 struct to a subclass of gimple_opt_pass along with...
5368 (pass_data_cse_reciprocals): ...new pass_data instance and...
5369 (make_pass_cse_reciprocals): ...new function.
5370 (pass_cse_sincos): Convert from a global struct to a subclass of
5371 gimple_opt_pass along with...
5372 (pass_data_cse_sincos): ...new pass_data instance and...
5373 (make_pass_cse_sincos): ...new function.
5374 (pass_optimize_bswap): Convert from a global struct to a subclass of
5375 gimple_opt_pass along with...
5376 (pass_data_optimize_bswap): ...new pass_data instance and...
5377 (make_pass_optimize_bswap): ...new function.
5378 (pass_optimize_widening_mul): Convert from a global struct to a
5379 subclass of gimple_opt_pass along with...
5380 (pass_data_optimize_widening_mul): ...new pass_data instance and...
5381 (make_pass_optimize_widening_mul): ...new function.
5382 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
5383 subclass of gimple_opt_pass along with...
5384 (pass_data_phiopt): ...new pass_data instance and...
5385 (make_pass_phiopt): ...new function.
5386 (pass_cselim): Convert from a global struct to a subclass of
5387 gimple_opt_pass along with...
5388 (pass_data_cselim): ...new pass_data instance and...
5389 (make_pass_cselim): ...new function.
5390 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
5391 subclass of gimple_opt_pass along with...
5392 (pass_data_phiprop): ...new pass_data instance and...
5393 (make_pass_phiprop): ...new function.
5394 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
5395 subclass of gimple_opt_pass along with...
5396 (pass_data_pre): ...new pass_data instance and...
5397 (make_pass_pre): ...new function.
5398 (pass_fre): Convert from a global struct to a subclass of
5399 gimple_opt_pass along with...
5400 (pass_data_fre): ...new pass_data instance and...
5401 (make_pass_fre): ...new function.
5402 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
5403 subclass of gimple_opt_pass along with...
5404 (pass_data_reassoc): ...new pass_data instance and...
5405 (make_pass_reassoc): ...new function.
5406 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
5407 subclass of gimple_opt_pass along with...
5408 (pass_data_sink_code): ...new pass_data instance and...
5409 (make_pass_sink_code): ...new function.
5410 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
5411 subclass of gimple_opt_pass along with...
5412 (pass_data_strlen): ...new pass_data instance and...
5413 (make_pass_strlen): ...new function.
5414 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
5415 struct to a subclass of gimple_opt_pass along with...
5416 (pass_data_build_alias): ...new pass_data instance and...
5417 (make_pass_build_alias): ...new function.
5418 (pass_build_ealias): Convert from a global struct to a subclass of
5419 gimple_opt_pass along with...
5420 (pass_data_build_ealias): ...new pass_data instance and...
5421 (make_pass_build_ealias): ...new function.
5422 (pass_ipa_pta): Convert from a global struct to a subclass of
5423 simple_ipa_opt_pass along with...
5424 (pass_data_ipa_pta): ...new pass_data instance and...
5425 (make_pass_ipa_pta): ...new function.
5426 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
5427 subclass of gimple_opt_pass along with...
5428 (pass_data_uncprop): ...new pass_data instance and...
5429 (make_pass_uncprop): ...new function.
5430 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
5431 global struct to a subclass of gimple_opt_pass along with...
5432 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
5433 (make_pass_late_warn_uninitialized): ...new function.
5434 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
5435 to a subclass of gimple_opt_pass along with...
5436 (pass_data_init_datastructures): ...new pass_data instance and...
5437 (make_pass_init_datastructures): ...new function.
5438 (pass_early_warn_uninitialized): Convert from a global struct to a
5439 subclass of gimple_opt_pass along with...
5440 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
5441 (make_pass_early_warn_uninitialized): ...new function.
5442 (pass_update_address_taken): Convert from a global struct to a
5443 subclass of gimple_opt_pass along with...
5444 (pass_data_update_address_taken): ...new pass_data instance and...
5445 (make_pass_update_address_taken): ...new function.
5446 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
5447 struct to a subclass of gimple_opt_pass along with...
5448 (pass_data_release_ssa_names): ...new pass_data instance and...
5449 (make_pass_release_ssa_names): ...new function.
5450 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
5451 subclass of gimple_opt_pass along with...
5452 (pass_data_stdarg): ...new pass_data instance and...
5453 (make_pass_stdarg): ...new function.
5454 * tree-switch-conversion.c (pass_convert_switch): Convert from a
5455 global struct to a subclass of gimple_opt_pass along with...
5456 (pass_data_convert_switch): ...new pass_data instance and...
5457 (make_pass_convert_switch): ...new function.
5458 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
5459 to a subclass of gimple_opt_pass along with...
5460 (pass_data_tail_recursion): ...new pass_data instance and...
5461 (make_pass_tail_recursion): ...new function.
5462 (pass_tail_calls): Convert from a global struct to a subclass of
5463 gimple_opt_pass along with...
5464 (pass_data_tail_calls): ...new pass_data instance and...
5465 (make_pass_tail_calls): ...new function.
5466 * tree-vect-generic.c (pass_lower_vector): Convert from a global
5467 struct to a subclass of gimple_opt_pass along with...
5468 (pass_data_lower_vector): ...new pass_data instance and...
5469 (make_pass_lower_vector): ...new function.
5470 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
5471 gimple_opt_pass along with...
5472 (pass_data_lower_vector_ssa): ...new pass_data instance and...
5473 (make_pass_lower_vector_ssa): ...new function.
5474 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
5475 to a subclass of gimple_opt_pass along with...
5476 (pass_data_slp_vectorize): ...new pass_data instance and...
5477 (make_pass_slp_vectorize): ...new function.
5478 (pass_ipa_increase_alignment): Convert from a global struct to a
5479 subclass of simple_ipa_opt_pass along with...
5480 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
5481 (make_pass_ipa_increase_alignment): ...new function.
5482 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
5483 gimple_opt_pass along with...
5484 (pass_data_vrp): ...new pass_data instance and...
5485 (make_pass_vrp): ...new function.
5486 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
5487 subclass of simple_ipa_opt_pass along with...
5488 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
5489 (make_pass_ipa_free_lang_data): ...new function.
5490 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
5491 gimple_opt_pass along with...
5492 (pass_data_tsan): ...new pass_data instance and...
5493 (make_pass_tsan): ...new function.
5494 (pass_tsan_O0): Convert from a global struct to a subclass of
5495 gimple_opt_pass along with...
5496 (pass_data_tsan_O0): ...new pass_data instance and...
5497 (make_pass_tsan_O0): ...new function.
5498 * var-tracking.c (pass_variable_tracking): Convert from a global
5499 struct to a subclass of rtl_opt_pass along with...
5500 (pass_data_variable_tracking): ...new pass_data instance and...
5501 (make_pass_variable_tracking): ...new function.
5502 * web.c (pass_web): Convert from a global struct to a subclass of
5503 rtl_opt_pass along with...
5504 (pass_data_web): ...new pass_data instance and...
5505 (make_pass_web): ...new function.
5506 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
5507 declaration with that of...
5508 (make_pass_mode_switch_use): ...new function.
5509 (pass_resolve_sw_modes): Replace declaration with that of...
5510 (make_pass_resolve_sw_modes): ...new function.
5511 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
5512 from a global struct to a subclass of rtl_opt_pass along with...
5513 (pass_data_mode_switch_use): ...new pass_data instance and...
5514 (make_pass_mode_switch_use): ...new function.
5515 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
5516 from a global struct to a subclass of rtl_opt_pass along with...
5517 (pass_data_resolve_sw_modes): ...new pass_data instance and...
5518 (make_pass_resolve_sw_modes): ...new function.
5519 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
5520 struct to a subclass of rtl_opt_pass along with...
5521 (pass_data_insert_vzeroupper): ...new pass_data instance and...
5522 (make_pass_insert_vzeroupper): ...new function.
5523 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
5524 global struct to a subclass of rtl_opt_pass along with...
5525 (pass_data_work_around_errata): ...new pass_data instance and...
5526 (make_pass_work_around_errata): ...new function.
5527 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
5528 struct to a subclass of rtl_opt_pass along with...
5529 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
5530 (make_pass_mips_machine_reorg2): ...new function.
5531
6a389ed5
DM
55322013-08-05 David Malcolm <dmalcolm@redhat.com>
5533
5534 * passes.c (pass_manager::operator new): New.
5535
f7695dbf
DM
55362013-08-05 David Malcolm <dmalcolm@redhat.com>
5537
5538 Handwritten part of conversion of passes to C++ classes.
5539
5540 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
5541 (toplev.o): Add dep on PASS_MANAGER_H.
5542 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
5543 of early local pases to reflect this moving from a global to a
5544 member of gcc::pass_manager.
5545 (cgraph_add_new_function): Likewise.
5546 * lto-cgraph.c (lto_output_node): Update for conversion of
5547 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
5548 * passes.c (opt_pass::clone): New.
5549 (opt_pass::gate): New.
5550 (opt_pass::execute): New.
5551 (opt_pass::opt_pass): New.
5552 (pass_manager::execute_early_local_passes): New.
5553 (pass_manager::execute_pass_mode_switching): new.
5554 (finish_optimization_passes): Convert to...
5555 (pass_manager::finish_optimization_passes): ...this.
5556 (finish_optimization_passes): Update for conversion of passes to
5557 C++ classes.
5558 (register_dump_files_1): Use has_gate since we cannot portably
5559 check a vtable entry against NULL.
5560 (dump_one_pass): Likewise.
5561 (ipa_write_summaries_2): Likewise.
5562 (ipa_write_optimization_summaries_1): Likewise.
5563 (ipa_read_summaries_1): Likewise.
5564 (ipa_read_optimization_summaries_1): Likewise.
5565 (execute_ipa_stmt_fixups): Likewise.
5566 (pass_manager::pass_manager): Rewrite pass-creation, invoking
5567 pass-creation functions rather than wiring up globals, and
5568 storing the results in fields of pass_manager generated using
5569 pass-instances.def.
5570 (pass_manager::dump_profile_report): Update for conversion of
5571 passes to C++ classes.
5572 (pass_manager::execute_ipa_summary_passes): Likewise.
5573 (execute_one_ipa_transform_pass): Likewise.
5574 (execute_one_pass): Use has_gate and has_execute since we cannot
5575 portably check a vtable entry against NULL.
5576 * pass_manager.h (pass_manager::finish_optimization_passes): New.
5577 (pass_manager): Use pass-instances.def to add fields for the
5578 various pass instances.
5579 * toplev.c (finalize): Update for move of
5580 finish_optimization_passes to a method of gcc::pass_manager.
5581 * toplev.h (finish_optimization_passes): Move to method of class
5582 pass_manager.
5583 * tree-pass.h (struct pass_data): New.
03b0ee0a 5584 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
5585 (opt_pass::gate): Convert to virtual function.
5586 (opt_pass::~opt_pass): New.
5587 (opt_pass::clone): New.
5588 (opt_pass::execute): Convert to virtual function.
5589 (opt_pass::opt_pass): New.
5590 (opt_pass::ctxt_): new.
5591 (gimple_opt_pass): Convert to subclass of opt_pass.
5592 (gimple_opt_pass::gimple_opt_pass): New.
5593 (rtl_opt_pass): Convert to subclass of opt_pass.
5594 (rtl_opt_pass::rtl_opt_pass): New.
5595 (ipa_opt_pass_d): Convert to subclass of opt_pass.
5596 (ipa_opt_pass_d::ipa_opt_pass_d): New.
5597 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
5598 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
5599 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
5600 invocation of pass_mode_switching to reflect this moving from a
5601 global to a member of gcc::pass_manager.
5602 (ix86_option_override): Rework how pass_insert_vzeroupper is
5603 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 5604 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 5605
d0b2f831
RE
56062013-08-05 Richard Earnshaw <rearnsha@arm.com>
5607
5608 PR rtl-optimization/57708
5609 * recog.c (peep2_find_free_register): Validate all regs in a
5610 multi-reg mode.
5611
51a5c0c2
JH
56122013-08-05 Jan Hubicka <jh@suse.cz>
5613
5614 PR lto/57602
03b0ee0a
UB
5615 * cgraph.c (verify_cgraph_node): Accept local flags from other
5616 partitions.
51a5c0c2
JH
5617 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
5618 (function_and_variable_visibility): Likewise.
5619 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
5620
65f0a120
GDR
56212013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
5622
5623 * graph.c (init_graph_slim_pretty_print): Remove.
5624 (print_graph_cfg): Do not call it. Use local pretty printer.
5625 (start_graph_dump): Likewise.
5626
b3f80694
GDR
56272013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
5628
5629 * gimple-pretty-print.c (buffer): Remove.
5630 (initialized): Likewise.
5631 (maybe_init_pretty_print): Likewise.
5632 (print_gimple_stmt): Do not call it. Use non-static local
5633 pretty_printer variable.
5634 (print_gimple_expr): Likewise.
5635 (print_gimple_seq): Likewise.
5636 (gimple_dump_bb): Likewise.
5637
11a877b3
GDR
56382013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
5639
5640 * asan.c (asan_pp): Remove.
5641 (asan_pp_initialized): Likewise.
5642 (asan_pp_initialize): Likewise.
5643 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
5644 (asan_emit_stack_protection): Tidy. Use local pretty printer.
5645 (asan_add_global): Likewise.
5646
b066401f
GDR
56472013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
5648
5649 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
5650 * diagnostic.h (diagnostic_flush_buffer): Adjust.
5651 * pretty-print.c (pp_formatted_text_data): Likewise.
5652 (pp_indent): Rename from pp_base_indent.
5653 (pp_format): Rename from pp_base_format.
5654 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
5655 (pp_format_verbatim): Rename from pp_base_format_verbatim.
5656 (pp_flush): Rename from pp_base_flush.
5657 (pp_set_line_maximum_length): Rename from
5658 pp_base_set_line_maximum_length.
5659 (pp_clear_output_area): Rename from pp_base_clear_output_area.
5660 (pp_set_prefix): Rename from pp_base_set_prefix.
5661 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
5662 (pp_emit_prefix): Rename from pp_base_emit_prefix.
5663 (pp_append_text): Rename from pp_base_append_text.
5664 (pp_formatted_text): Rename from pp_base_formatted_text.
5665 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
5666 (pp_remaining_character_count_for_line): Rename from
5667 pp_base_remaining_character_count_for_line.
5668 (pp_newline): Rename from pp_base_newline.
5669 (pp_character): Rename from pp_base_character.
5670 (pp_string): Rename from pp_base_string.
5671 (pp_maybe_space): Rename from pp_base_maybe_space.
5672 * asan.c (asan_pp_string): Adjust.
5673 (asan_emit_stack_protection): Likewise.
5674 (asan_add_global): Likewise.
5675 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
5676 * tree-mudflap.c (mf_varname_tree): Likewise.
5677 * tree-pretty-print.c (pp_tree_identifier): Rename from
5678 pp_base_tree_identifier.
5679 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
5680 Declare as function.
5681
137a1a27
GDR
56822013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
5683
5684 * pretty-print.h (pp_bar_bar): New.
5685 (pp_ampersand_ampersand): Likewise.
5686 (pp_less_equal): Likewise.
5687 (pp_greater_equal): Likewise.
5688 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
5689 printer functions instead of pp_string or operators and punctuators.
5690 (dump_gimple_call): Likewise.
5691 (dump_gimple_omp_for): Likewise.
5692 (dump_gimple_transaction): Likewise.
5693 (dump_gimple_phi): Likewise.
5694 (pp_gimple_stmt_1): Likewise.
5695 * sched-vis.c (print_insn): Likewise.
5696 * tree-mudflap.c (mf_varname_tree): Likewise.
5697 * tree-pretty-print.c (dump_block_node): Likewise.
5698 (dump_generic_node): Likewise.
5699
815effe1
JH
57002013-08-02 Jan Hubicka <jh@suse.cz>
5701
5702 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
5703 boundaries.
5704 * lto-streamer-out.c (tree_is_indexable): Results decls and
5705 parm decls are not indexable.
5706 (DFS_write_tree_body): Do not follow args and results.
5707 (hash_tree): Likewise.
5708 (output_functions): Rearrange so struct function is needed
5709 only when real body is output; be able to also ouptut abstract
5710 functions; output DECL_ARGUMENTS and DECL_RESULT.
5711 (lto_output): When not in WPA, ale store abstract functions.
5712 (write_symbol): Do not care about RESULT_DECL.
5713 (output_symbol_p): Handle correctly sbtract decls.
5714 * lto-streamer-in.c (input_function): Rearrange so struct
5715 function can be NULL at entry; allow streaming of
5716 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
5717 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
5718 sanity check during LTO.
5719 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
5720 RESULT_DECl and DECL_ARGUMENTS.
5721 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
5722 Likewise.
5723
07838b13
GDR
57242013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
5725
5726 * pretty-print.h (pp_underscore): New.
5727 (pp_comma): Tidy.
5728 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
5729 printer functions instead of pp_character.
5730 (dump_binary_rhs): Likewise.
5731 (dump_ternary_rhs): Likewise.
5732 (dump_gimple_call_args): Likewise.
5733 (pp_points_to_solution): Likewise.
5734 (dump_gimple_call): Likewise.
5735 (dump_gimple_switch): Likewise.
5736 (dump_gimple_cond): Likewise.
5737 (dump_gimple_bind): Likewise.
5738 (dump_gimple_try): Likewise.
5739 (dump_gimple_omp_for): Likewise.
5740 (dump_gimple_omp_continue): Likewise.
5741 (dump_gimple_omp_single): Likewise.
5742 (dump_gimple_omp_sections): Likewise.
5743 (dump_gimple_omp_block): Likewise.
5744 (dump_gimple_omp_critical): Likewise.
5745 (dump_gimple_transaction): Likewise.
5746 (dump_gimple_asm): Likewise.
5747 (dump_gimple_phi): Likewise.
5748 (dump_gimple_omp_parallel): Likewise.
5749 (dump_gimple_omp_task): Likewise.
5750 (dump_gimple_omp_atomic_load): Likewise.
5751 (dump_gimple_omp_atomic_store): Likewise.
5752 (dump_gimple_mem_ops): Likewise.
5753 (pp_gimple_stmt_1): Likewise.
5754 (pp_cfg_jump): Likewise.
5755 (dump_implicit_edges): Likewise.
5756 (gimple_dump_bb_for_graph): Likewise.
5757 * graph.c (draw_cfg_node): Likewise.
5758 * langhooks.c (lhd_print_error_function): Likewise.
5759 * sched-vis.c (print_exp): Likewise.
5760 (print_value): Likewise.
5761 (print_pattern): Likewise.
5762 (print_insn): Likewise.
5763 (rtl_dump_bb_for_graph): Likewise.
5764 * tree-pretty-print.c (dump_function_declaration): Likewise.
5765 (dump_array_domain): Likewise.
5766 (dump_omp_clause): Likewise.
5767 (dump_location): Likewise.
5768 (dump_generic_node): Likewise.
5769 (print_struct_decl): Likewise.
5770 * diagnostic.c (diagnostic_show_locus): Use pp_space.
5771
bb0d2039
BS
57722013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
5773
5774 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
5775 candidate table when replacing a candidate statement.
5776 (replace_rhs_if_not_dup): Likewise.
5777 (replace_one_candidate): Likewise.
5778
bc0ec027 57792013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 5780 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
5781
5782 * cgraphunit.c (add_new_function): Fix logic when adding from
5783 late IPA pass.
5784 (assemble_thunk): Rename to ...
03b0ee0a
UB
5785 (expand_thunk); .. this one; export; get it working with
5786 general functions; make produced gimple valid.
bc0ec027
JH
5787 * cgraph.h (expand_thunk): Declare.
5788
0e8853ee
JH
57892013-08-02 Jan Hubicka <jh@suse.cz>
5790
03b0ee0a
UB
5791 * ipa-cp.c (gather_context_independent_values): Use
5792 ipa_get_param_move_cost.
5793 (get_replacement_map): Remove PARAM; move parameter folding
5794 into tree-inline.c
0e8853ee
JH
5795 (create_specialized_node): Update.
5796 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
5797 assert that we have gimple body; update move_cost.
5798 (count_formal_params): Assert that we have gimple body.
5799 (ipa_dump_param): New function.
5800 (ipa_alloc_node_params): Break out from ...
5801 (ipa_initialize_node_params): ... here.
5802 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
5803 (ipa_write_node_info): Stream move costs.
5804 (ipa_read_node_info): Read move costs.
5805 (ipa_update_after_lto_read): Do not recompute node params.
5806 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
5807 (ipa_get_param): Check we are not in WPA.
5808 (ipa_get_param_move_cost): New.
5809 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
5810 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
5811 parm numbers to be present.
5812
ecee672b
VM
58132013-08-02 Vladimir Makarov <vmakarov@redhat.com>
5814
5815 PR rtl-optimization/58048
5816 * lra-constraints.c (process_alt_operands): Don't check asm
5817 operand on register.
5818
13ec0527
EB
58192013-08-02 Eric Botcazou <ebotcazou@adacore.com>
5820
5821 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
5822 the implied StoreLoad barrier for atomic operations if before.
5823
af15184a
JH
58242013-08-02 Jan Hubicka <jh@suse.cz>
5825 Martin Liska <marxin.liska@gmail.com>
5826
03b0ee0a
UB
5827 * cgraph.c (cgraph_function_body_availability): Do not check
5828 cgraph flags.
af15184a
JH
5829 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
5830 symtab_node_availability): Declare.
5831 * ipa.c (can_replace_by_local_alias): New.
5832 (function_and_variable_visibility): Use it.
03b0ee0a
UB
5833 * symtab.c (symtab_for_node_and_aliases,
5834 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 5835
01e54ef8
VM
58362013-08-02 Vladimir Makarov <vmakarov@redhat.com>
5837
5838 PR rtl-optimization/57963
03b0ee0a 5839 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
5840 (lra_constraints): Use them.
5841
e2fd7ca7
SN
58422013-08-02 Sofiane Naci <sofiane.naci@arm.com>
5843
03b0ee0a
UB
5844 * config/arm/types.md (define_attr "type"): Add "load_acq"
5845 and "store_rel".
e2fd7ca7
SN
5846 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
5847 changes.
5848 (cortex_a53_store1): Likewise.
5849
0dcc26c3
JH
58502013-08-01 Jan Hubicka <jh@suse.cz>
5851
03b0ee0a
UB
5852 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
5853 partitions are not needed.
0dcc26c3 5854
0bd72901
UB
58552013-08-01 Uros Bizjak <ubizjak@gmail.com>
5856
5857 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
5858 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
5859 MAYBE_NON_Q_CLASS_P where appropriate.
5860
12123452
JH
58612013-08-01 Jan Hubicka <jh@suse.cz>
5862
5863 * cgraph.h (release_function_body): Declare.
5864 * tree.c (free_lang_data_in_decl): Free, parameters and return values
5865 of unused delcarations.
5866
ce852f9c
KT
58672013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5868
03b0ee0a
UB
5869 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
5870 RTL form when subtracting a constant.
ce852f9c 5871
c743b246
KT
58722013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5873
5874 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
5875 Generate canonical plus rtx with negated immediate instead of minus
5876 where appropriate.
5877 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
5878
c0c123ef
JH
58792013-08-01 Jan Hubicka <jh@suse.cz>
5880
5881 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
5882 (cgraph_release_function_body): Likewise.
5883 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
5884 * cgraph.h (cgrpah_node): Rename abstract_and_needed
5885 to used_as_abstract_origin.
5886 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
5887 symbols used as abstract origins.
5888 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
5889 * ipa.c (symtab_remove_unreachable_nodes): Recompute
5890 used_as_abstract_origin.
c0c123ef 5891 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
5892 used_as_abstract_origin; be ready for DECL_RESULT and
5893 DECL_ARGUMENTS to be NULL.
c0c123ef 5894
0bd72901
UB
5895 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
5896 for abstract functions.
5897 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
5898 real symbols.
c0c123ef 5899
1f029433
JH
59002013-08-01 Jan Hubicka <jh@suse.cz>
5901
5902 * profile.c (compute_value_histograms): Fix thinko.
5903
c451f4d6
SN
59042013-08-01 Sofiane Naci <sofiane.naci@arm.com>
5905
5906 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
5907 aarch-common-protos.h to extra_headers.
5908 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
5909 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
5910 * config/aarch64/t-aarch64 (aarch-common.o): Define.
5911
34b512f5
SN
59122013-08-01 Sofiane Naci <sofiane.naci@arm.com>
5913
5914 * config/aarch64/aarch64.md (define_attr "type"): Delete.
5915 Include "../arm/types.md". Define "type" attribute for all patterns.
5916 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
5917 attribute changes.
5918
d86e633a
MM
59192013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
5920
5921 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
5922 to support power8 load fusion.
5923 (fusion_gpr_mem_load): Likewise.
5924
5925 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
5926
5927 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
5928 declarations for power8 load fusion.
5929 (emit_fusion_gpr_load): Likewise.
5930
5931 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5932 tuning for power8, turn on fusion mode by default. Turn on sign
5933 extending fusion mode if normal fusion mode is on, and we are at
5934 -O2 or -O3.
5935 (fusion_gpr_load_p): New function, return true if we can fuse an
5936 addis instruction with a dependent load to a GPR.
5937 (emit_fusion_gpr_load): Emit the instructions for power8 load
5938 fusion to GPRs.
5939
0bd72901 5940 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
5941 (VSX load fusion peepholes): New peepholes to fuse together an
5942 addi instruction with a VSX load instruction.
5943
5944 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
5945 peepholes to fuse an addis instruction with a load to a GPR base
5946 register. If we are supporting sign extending fusions, convert
5947 sign extending loads to zero extending loads and add an explicit
5948 sign extension.
5949
c3f35647
SN
59502013-07-31 Sofiane Naci <sofiane.naci@arm.com>
5951
5952 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
5953 aarch-common-protos.h to extra_headers.
5954 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
5955 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
5956 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
5957 (arm_no_early_alu_shift_dep): Likewise.
5958 (arm_no_early_alu_shift_value_dep): Likewise.
5959 (arm_no_early_mul_dep): Likewise.
5960 (arm_no_early_store_addr_dep): Likewise.
5961 (arm_mac_accumulator_is_mul_result): Likewise.
5962 (arm_mac_accumulator_is_result): Likewise.
c3f35647 5963 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
5964 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
5965 here to ...
c3f35647 5966 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
5967 (arm_no_early_alu_shift_dep): Likewise.
5968 (arm_no_early_alu_shift_value_dep): Likewise.
5969 (arm_no_early_mul_dep): Likewise.
5970 (arm_no_early_store_addr_dep): Likewise.
5971 (arm_mac_accumulator_is_mul_result): Likewise.
5972 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
5973 * config/arm/aarch-common-protos.h: ... here. New file.
5974 * config/arm/t-arm (aarch-common.o): Define.
5975
59762013-07-31 Sofiane Naci <sofiane.naci@arm.com>
5977
5978 * config/arm/arm.md: Include new file "types.md".
5979 (define_attr "type"): Move from here to ...
5980 (define_attr "mul32"): Likewise.
5981 (define_attr "mul64"): Likewise.
5982 * config/arm/types.md: ... here. New file.
5983
228c1313
SH
59842013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
5985
5986 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
5987 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
5988
d6e9046d 59892013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
5990
5991 * gen-pass-instances.awk: Fix offset of substr().
5992
a167b052
DM
59932013-07-31 David Malcolm <dmalcolm@redhat.com>
5994
5995 * Makefile.in (pass-instances.def): New.
5996 (passes.o): Replace dependency on passes.def with one on
5997 pass-instances.def
5998
5999 * gen-pass-instances.awk: New.
6000
6001 * passes.c (pass_manager::pass_manager): Use pass-instances.def
6002 rather than passes.def, updating local definition of NEXT_PASS
6003 macro to add an extra NUM parameter (currently unused).
6004
315f8c0e
DM
60052013-07-30 David Malcolm <dmalcolm@redhat.com>
6006
6007 * Makefile.in (PASS_MANAGER_H): New.
6008 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
6009 (passes.o): Likewise.
6010 (statistics.o): Likewise.
6011 (cgraphunit.o): Likewise.
6012 (context.o): Depend on PASS_MANAGER_H.
6013
6014 * pass_manager.h: New.
6015
6016 * cgraphunit.c (cgraph_add_new_function): Update for moves
6017 of globals to fields of pass_manager.
6018 (analyze_function): Likewise.
6019 (expand_function): Likewise.
6020 (ipa_passes): Likewise.
6021 (compile): Likewise.
6022
6023 * context.c (context::context): New.
6024 * context.h (context::context): New.
6025 (context::get_passes): New.
6026 (context::passes_): New.
6027
6028 * lto-cgraph.c (input_node): Update for moves of globals to
6029 fields of pass_manager.
6030
6031 * passes.c (all_passes): Remove, in favor of a field of the
6032 same name within the new class pass_manager.
6033 (all_small_ipa_passes): Likewise.
6034 (all_lowering_passes): Likewise.
6035 (all_regular_ipa_passes): Likewise.
6036 (all_late_ipa_passes): Likewise.
6037 (all_lto_gen_passes): Likewise.
6038 (passes_by_id): Likewise.
6039 (passes_by_id_size): Likewise.
6040 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6041 the new class pass_manager.
6042 (set_pass_for_id): Convert to...
6043 (pass_manager::set_pass_for_id): ...method.
6044 (get_pass_for_id): Convert to...
6045 (pass_manager::get_pass_for_id): ...method.
6046 (register_one_dump_file): Move body of implementation into...
6047 (pass_manager::register_one_dump_file): ...here.
6048 (register_dump_files_1): Convert to...
6049 (pass_manager::register_dump_files_1): ...method.
6050 (register_dump_files): Convert to...
6051 (pass_manager::register_dump_files): ...method.
6052 (create_pass_tab): Update for moves of globals to fields of
6053 pass_manager.
6054 (dump_passes): Move body of implementation into...
6055 (pass_manager::dump_passes): ...here.
6056 (register_pass): Move body of implementation into...
6057 (pass_manager::register_pass): ...here.
6058 (init_optimization_passes): Convert into...
6059 (pass_manager::pass_manager): ...constructor for new
6060 pass_manager class, and initialize the pass_lists array.
6061 (check_profile_consistency): Update for moves of globals to
6062 fields of pass_manager.
6063 (dump_profile_report): Move body of implementation into...
6064 (pass_manager::dump_profile_report): ...here.
6065 (ipa_write_summaries_1): Update for moves of pass lists from
6066 being globals to fields of pass_manager.
6067 (ipa_write_optimization_summaries): Likewise.
6068 (ipa_read_summaries): Likewise.
6069 (ipa_read_optimization_summaries): Likewise.
6070 (execute_all_ipa_stmt_fixups): Likewise.
6071
6072 * statistics.c (statistics_fini): Update for moves of globals to
6073 fields of pass_manager.
6074
6075 * toplev.c (general_init): Replace call to
6076 init_optimization_passes with construction of the pass_manager
6077 instance.
6078
6079 * tree-pass.h (all_passes): Remove, in favor of a field of the
6080 same name within the new class pass_manager.
6081 (all_small_ipa_passes): Likewise.
6082 (all_lowering_passes): Likewise.
6083 (all_regular_ipa_passes): Likewise.
6084 (all_lto_gen_passes): Likewise.
6085 (all_late_ipa_passes): Likewise.
6086 (passes_by_id): Likewise.
6087 (passes_by_id_size): Likewise.
6088 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6089 the new class pass_manager.
6090 (get_pass_for_id): Remove.
6091
02cab1c1
RE
60922013-07-30 Richard Earnshaw <rearnsha@arm.com>
6093
6094 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
6095 configs.
6096
b2d3f886
RE
60972013-07-30 Richard Earnshaw <rearnsha@arm.com>
6098
6099 * arm.md (mulhi3): New expand pattern.
6100
605e86fa
JH
61012013-07-30 Jan Hubicka <jh@suse.cz>
6102 Martin Liska <marxin.liska@gmail.com>
6103
6104 * profile.c (compute_value_histograms): Do not ICE when
6105 there is mismatch only on some counters.
6106
14a87636
ZC
61072013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6108
6109 PR rtl-optimization/57637
6110 * function.c (move_insn_for_shrink_wrap): Also check the
6111 GEN set of the LIVE problem for the liveness analysis
6112 if it exists, otherwise give up.
6113
0100cd3f
BS
61142013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6115
6116 PR tree-optimization/57993
6117 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
6118 replaced statement in the candidate table.
6119 (phi_add_costs): Return infinite cost when the hidden basis does
6120 not dominate all phis on which the candidate is dependent.
6121 (replace_one_candidate): Record replaced statement in the
6122 candidate table.
6123
f0d811f7
JR
61242013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
6125
6126 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
6127 (ashlv2si3): New expander.
6128 (*ashlv2si3_i): New define_insn_and_split.
6129 * predicates.md (float_operation): Allow patterns with three
6130 basic sub-patterns.
6131
bba33211
JR
6132 PR rtl-optimization/58021
6133 * mode-switching.c (create_pre_exit): Always split off preceding
6134 insns if we are not at the basic block head.
6135
ff3f3951
MR
61362013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
6137
6138 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
6139 (UCLIBC_DYNAMIC_LINKER): New macro.
6140 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
6141 `-mnan=2008'.
6142 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
6143 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
6144 `-mnan=2008'.
6145 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
6146 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
6147 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
6148 for SF and DF modes. Use ieee_quad_format for TF mode.
6149 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
6150 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
6151 (mips_option_override): Handle `-mnan=legacy'.
6152 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
6153 `-mabs=2008' and `-mnan=2008'.
6154 (OPTION_DEFAULT_SPECS): Add "nan" default.
6155 (ASM_SPEC): Handle `-mnan='.
6156 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
6157 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
6158 comment accordingly.
6159 (neg<mode>2): Likewise.
6160 * config/mips/mips.opt (mabs, mnan): New options.
6161 * doc/install.texi (Configuration): Document `--with-nan=' option.
6162 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
6163 `-mnan=' options.
6164 (MIPS Options): Document them.
6165 * config.gcc <mips*-*-*>: Handle `--with-nan='.
6166 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
6167 * configure: Regenerate.
6168 * config.in: Regenerate.
6169
576e2f37
UB
61702013-07-29 Uros Bizjak <ubizjak@gmail.com>
6171
6172 * config/i386/i386.md (float post-reload splitters): Do not check
6173 for subregs of SSE registers.
6174
61752013-07-29 Uros Bizjak <ubizjak@gmail.com>
6176 H.J. Lu <hongjiu.lu@intel.com>
6177
6178 PR target/57954
6179 PR target/57988
6180 * config/i386/i386.md (post-reload splitter
6181 to avoid partial SSE reg dependency stalls): New pattern.
6182
a71f0749
DV
61832013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6184
6185 * config/s390/s390.md ("movcc"): Swap load and store instructions.
6186
4c97f1cc
JR
61872013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
6188
6189 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6190 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
6191
b0c733d8
CC
61922013-07-26 Cary Coutant <ccoutant@google.com>
6193
6194 * dwarf2out.c (die_checksum_ordered): Don't include template
6195 instantiations in signature.
6196 (is_template_parameter): New function.
6197 (is_template_instantiation): New function.
6198 (generate_skeleton_bottom_up): Don't include template instantiations
6199 in type unit DIE.
6200 (generate_skeleton): Likewise.
6201 (break_out_comdat_types): Move recursive call to break out nested
6202 types earlier.
6203 (prune_unused_types_mark_generic_parms_dies): Call
6204 is_template_parameter.
6205
040d8a1c
IB
62062013-07-26 Ian Bolton <ian.bolton@arm.com>
6207
6208 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
6209 uses vector registers.
89fdc743 6210 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 6211
85bd4ac6 62122013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 6213 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
6214
6215 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 6216 where appropriate.
85bd4ac6
KT
6217 * config/arm/arm.md (movcond_addsi): New splitter.
6218
b6051207
SA
62192013-07-25 Sterling Augustine <saugustine@google.com>
6220
6221 * dwarf2out.c (size_of_pubnames): Move code to...
6222 (include_pubname_in_output): ...here. New.
6223 (want_pubnames): Rearrange.
6224 (output_pubnames): Call include_pubname_in_output. Move assertion.
6225
41a7c215
CM
62262013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
6227
6228 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
6229
62302013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
6231
6232 PR target/38836
6233 * doc/extend.texi: Remove obsolete builtins. Fix
6234 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
6235
49bde175
JH
62362013-07-25 Jan Hubicka <jh@suse.cz>
6237
6238 * cgraph.c (release_function_body): Break out from ...
6239 (cgraph_release_function_body): ... this one; also release DECL_RESULT
6240 and DECL_ARGUMENTS.
6241 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
6242 old_tree in the map.
6243 (create_specialized_node): Update.
6244 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
6245 into index.
41a7c215
CM
6246 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
6247 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
6248 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
6249 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
6250 DECL_RESULT.
6251
4870352d
KT
62522013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6253
6254 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
6255 addsi3_carryin_alt2_<optab>): Correct output template.
6256
1d6aee1c
KT
62572013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6258
6259 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
6260 Adjust for arm_restrict_it.
6261 Remove trailing whitespace.
6262
c7cafd75
MK
62632013-07-25  Mark Kettenis  <kettenis@openbsd.org>
6264
017d38f5
MK
6265 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
6266 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
6267
c7cafd75
MK
6268 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
6269
00b7527b
VM
62702013-07-25 Vladimir Makarov <vmakarov@redhat.com>
6271
6272 PR rtl-optimization/57960
6273 * lra-constraints.c (process_alt_operands): Use the right mode
6274 when checking strict_low.
6275
4f63dfc6
JH
62762013-07-25 Jan Hubicka <jh@suse.cz>
6277
6278 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
6279 * cgraph.c (cgraph_remove_node): Do not release function body
6280 when in cgraph streaming.
6281 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
6282 in other partitions are not considered reachable; fix handling of
6283 clones.
4f63dfc6 6284
e6dcfa18
RR
62852013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6286
6287 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
6288
0b93d3b6
RR
62892013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6290
6291 PR target/19599
6292 PR target/57731
bb80c2eb 6293 PR target/57837
e6dcfa18 6294 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 6295 Ss with US. Adjust output for v5 and v4t.
41a7c215 6296 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 6297
0b93d3b6
RR
6298 * config/arm/constraints.md ("Ss"): Rename to US.
6299
690688b3
TG
63002013-07-25 Terry Guo <terry.guo@arm.com>
6301
6302 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
6303 shift_add/shift_sub0/shift_sub1 RTXs.
6304
a4ad093b 63052013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 6306 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
6307
6308 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
6309 (altivec_vpks<VI_char>ss): Likewise.
6310 (altivec_vpks<VI_char>us): Likewise.
6311 (altivec_vpku<VI_char>us): Likewise.
6312 (altivec_vpku<VI_char>um): Likewise.
6313
8c5005ce
DM
63142013-07-24 David Malcolm <dmalcolm@redhat.com>
6315
6316 Introduce context class.
6317
6318 * Makefile.in (CONTEXT_H): New.
6319 (OBJS): Add context.o.
6320 (toplev.o): Add CONTEXT_H to dependencies.
6321 (context.o): New.
6322
41a7c215 6323 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
6324
6325 * context.c: New.
6326
6327 * context.h: New.
6328
ce4a9422
JR
63292013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
6330
6331 PR rtl-optimization/57968
6332 * mode-switching.c (create_pre_exit): Allow instructions that
6333 don't set a return register to need a non-exit mode.
6334
493f4c9e 63352013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 6336 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 6337
b5860fd3
WS
6338 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
6339 operands to vperm for little endian.
6340 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
6341 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 6342
73792b92 63432013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 6344 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
6345
6346 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
6347 two operands for little-endian.
6348
14c21302
SE
63492013-07-23 Steve Ellcey <sellcey@mips.com>
6350
6351 * config/mips/mips.c (mips_case_values_threshold): New.
6352 (TARGET_CASE_VALUES_THRESHOLD): Define.
6353
a6056198 63542013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 6355 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
6356
6357 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
6358 selection of field for vector splat in little endian mode.
6359
dd7a40e1
MM
63602013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6361
6362 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
6363 expanders to rs6000.md.
6364 (ior<mode>3): Likewise.
6365 (and<mode>3): Likewise.
6366 (one_cmpl<mode>2): Likewise.
6367 (nor<mode>3): Likewise.
6368 (andc<mode>3): Likewise.
6369 (eqv<mode>3): Likewise.
6370 (nand<mode>3): Likewise.
6371 (orc<mode>3): Likewise.
6372
6373 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
6374 declaration.
6375
6376 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
6377 to split multi-word logical operations.
6378 (rs6000_split_logical_di): Likewise.
6379 (rs6000_split_logical): Likewise.
6380
6381 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
6382 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
6383 and allow TImode operations in 32-bit.
6384 (vsx_and<mode>3_64bit): Likewise.
6385 (vsx_ior<mode>3_32bit): Likewise.
6386 (vsx_ior<mode>3_64bit): Likewise.
6387 (vsx_xor<mode>3_32bit): Likewise.
6388 (vsx_xor<mode>3_64bit): Likewise.
6389 (vsx_one_cmpl<mode>2_32bit): Likewise.
6390 (vsx_one_cmpl<mode>2_64bit): Likewise.
6391 (vsx_nor<mode>3_32bit): Likewise.
6392 (vsx_nor<mode>3_64bit): Likewise.
6393 (vsx_andc<mode>3_32bit): Likewise.
6394 (vsx_andc<mode>3_64bit): Likewise.
6395 (vsx_eqv<mode>3_32bit): Likewise.
6396 (vsx_eqv<mode>3_64bit): Likewise.
6397 (vsx_nand<mode>3_32bit): Likewise.
6398 (vsx_nand<mode>3_64bit): Likewise.
6399 (vsx_orc<mode>3_32bit): Likewise.
6400 (vsx_orc<mode>3_64bit): Likewise.
6401
6402 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
6403 logical types in GPRs.
6404
6405 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
6406 logical insns to rs6000.md, and allow TImode operations in
6407 32-bit.
6408 (altivec_ior<mode>3): Likewise.
6409 (altivec_xor<mode>3): Likewise.
6410 (altivec_one_cmpl<mode>2): Likewise.
6411 (altivec_nor<mode>3): Likewise.
6412 (altivec_andc<mode>3): Likewise.
6413
6414 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
6415 attributes for moving the 128-bit logical operations into
6416 rs6000.md.
6417 (BOOL_REGS_OUTPUT): Likewise.
6418 (BOOL_REGS_OP1): Likewise.
6419 (BOOL_REGS_OP2): Likewise.
6420 (BOOL_REGS_UNARY): Likewise.
6421 (BOOL_REGS_AND_CR0): Likewise.
6422 (one_cmpl<mode>2): Add support for DI logical operations on
6423 32-bit, splitting the operations to 32-bit.
6424 (anddi3): Likewise.
6425 (iordi3): Likewise.
6426 (xordi3): Likewise.
6427 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
6428 changes to combine the 32/64-bit code, allow logical operations on
6429 TI mode in 32-bit, and to use similar match_operator patterns like
6430 scalar mode uses. Combine the Altivec and VSX code for logical
6431 operations, and move it here.
6432 (ior<mode>3, 128-bit types): Likewise.
6433 (xor<mode>3, 128-bit types): Likewise.
6434 (one_cmpl<mode>3, 128-bit types): Likewise.
6435 (nor<mode>3, 128-bit types): Likewise.
6436 (andc<mode>3, 128-bit types): Likewise.
6437 (eqv<mode>3, 128-bit types): Likewise.
6438 (nand<mode>3, 128-bit types): Likewise.
6439 (orc<mode>3, 128-bit types): Likewise.
6440 (and<mode>3_internal): Likewise.
6441 (bool<mode>3_internal): Likewise.
6442 (boolc<mode>3_internal1): Likewise.
6443 (boolc<mode>3_internal2): Likewise.
6444 (boolcc<mode>3_internal1): Likewise.
6445 (boolcc<mode>3_internal2): Likewise.
6446 (eqv<mode>3_internal1): Likewise.
6447 (eqv<mode>3_internal2): Likewise.
6448 (one_cmpl1<mode>3_internal): Likewise.
6449
12211b99 64502013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
6451
6452 * config/microblaze/microblaze.c (microblaze_expand_prologue):
6453 Rename flag_stack_usage to flag_stack_usage_info.
6454
12211b99 64552013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 6456
a5f257fd
ME
6457 * config/microblaze/sync.md: New file.
6458 * config/microblaze/microblaze.md: Include sync.md
6459 * config/microblaze/microblaze.c: Add print_operand 'y'.
6460 * config/microblaze/constraints.md: Add memory_contraint
6461 'Q' which is a single register.
450b0ebb 6462
49fba14f
EB
64632013-07-23 Eric Botcazou <ebotcazou@adacore.com>
6464
6465 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
6466
c7b3b99f
PCC
64672013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
6468
6469 * reload.c (find_reloads): Exit loop once we find this operand
6470 cannot be reloaded somehow for this alternative.
6471
6472 * reload.c (find_reloads): Exit loop once we find a hard register.
6473
6474 * rtlanal.c (computed_jump_p): Exit loop once we find label
6475 reference is used.
6476
6477 * i386.c (ix86_pad_returns): Exit loop after setting replace.
6478
6479 * cfgloopmanip.c (remove_path): Exit loop after setting
6480 irred_invalidated.
6481
6482 * gensupport.c (subst_dup): Avoid loop if code is not
6483 MATCH_DUP nor MATCH_OP_DUP.
6484
c8fbf1fa
NBJ
64852013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
6486
6487 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
6488
9259db42
YZ
64892013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
6490
6491 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
6492 true for SP_REGNUM if mode == ptr_mode.
6493 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
6494 with value R0_REGNUM + 31.
6495
00edcfbe
YZ
64962013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
6497
6498 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
6499 pad pointer-typed argument downward.
6500
43be9a95
YZ
65012013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
6502
6503 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
6504 and __ILP32__ when the ILP32 model is in use.
6505
28514dda
YZ
65062013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
6507
6508 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
6509 (aarch64_load_symref_appropriately): In the case of
6510 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
6511 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
6512 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
6513 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
6514 if 'mode' doesn't equal to 'ptr_mode'.
6515 (aarch64_output_mi_thunk): Add an assertion on the alignment of
6516 'vcall_offset'; change to call aarch64_emit_move differently depending
6517 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
6518 to calculate the upper bound of 'vcall_offset'.
6519 (aarch64_cannot_force_const_mem): Change to also return true if
6520 mode != ptr_mode.
6521 (aarch64_legitimize_reload_address): In the case of large
6522 displacements, add new local variable 'xmode' and an assertion
6523 based on it; change to use 'xmode' to generate the new rtx and
6524 reload.
6525 (aarch64_asm_trampoline_template): Change to generate the template
6526 differently depending on TARGET_ILP32 or not; change to use
6527 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
6528 (aarch64_trampoline_size): Removed.
6529 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
6530 and replace immediate literals with it. Change to use 'ptr_mode'
6531 instead of 'DImode' and call convert_memory_address if the mode
6532 of 'fnaddr' doesn't equal to 'ptr_mode'.
6533 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
6534 to output symbol.
6535 (aarch64_elf_asm_destructor): Likewise.
6536 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
6537 on TARGET_ILP32 instead of aarch64_trampoline_size.
6538 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
6539 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
6540 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
6541 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
6542 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
6543 (storewb_pair<GPI:mode>_<P:mode>): ... this.
6544 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
6545 depending on the value of 'mode'.
6546 (add_losym_<mode>): New.
6547 (ldr_got_small_<mode>): New, based on ldr_got_small.
6548 (ldr_got_small): Remove.
6549 (ldr_got_small_sidi): New.
6550 * config/aarch64/iterators.md (P): New.
6551 (PTR): Change to 'ptr_mode' in the condition.
6552
17a819cb
YZ
65532013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
6554
6555 * config.gcc (aarch64*-*-*): Support --with-abi.
6556 (aarch64*-*-elf): Support --with-multilib-list.
6557 (aarch64*-*-linux*): Likewise.
6558 (supported_defaults): Add abi to aarch64*-*-*.
6559 * configure.ac: Mention AArch64 for --with-multilib-list.
6560 * configure: Re-generated.
6561 * config/aarch64/biarchilp32.h: New file.
6562 * config/aarch64/biarchlp64.h: New file.
6563 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
6564 (ABI_SPEC): Ditto.
6565 (MULTILIB_DEFAULTS): Ditto.
6566 (DRIVER_SELF_SPECS): Ditto.
6567 (ASM_SPEC): Update to also substitute -mabi.
6568 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
6569 file whose name depends on -mabi= and -mbig-endian.
6570 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
6571 TARGET_ILP32.
6572 (POINTER_SIZE): New define.
6573 (POINTERS_EXTEND_UNSIGNED): Ditto.
6574 (enum aarch64_abi_type): New enumeration tag.
6575 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
6576 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
6577 (TARGET_ILP32): New define.
6578 * config/aarch64/aarch64.opt (mabi): New.
6579 (aarch64_abi): New.
6580 (ilp32, lp64): New values for -mabi.
6581 * config/aarch64/t-aarch64 (comma): New define.
6582 (MULTILIB_OPTIONS): Ditto.
6583 (MULTILIB_DIRNAMES): Ditto.
6584 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
6585 * doc/invoke.texi: Document -mabi for AArch64.
6586
9f9cbdce
GJL
65872013-07-23 Georg-Johann Lay <avr@gjlay.de>
6588
6589 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
6590
7061977b 65912013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 6592 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
6593
6594 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
6595 endianness when selecting field to splat.
6596
75a41878
EC
65972013-07-22 Eric Christopher <echristo@gmail.com>
6598
6599 * dwarf2out.c (die_odr_checksum): New function to use
6600 CHECKSUM_ macros and ULEB128 for DIE tag.
6601 (generate_type_signature): Use.
41a7c215 6602
38ae58ca
EB
66032013-07-22 Eric Botcazou <ebotcazou@adacore.com>
6604
6605 * config.gcc (sparc*-*-*): Accept leon3 processor.
6606 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
6607 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
6608 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
6609 * config/sparc/sparc.opt (enum processor_type): Add leon3.
6610 (mfix-ut699): Adjust comment.
6611 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
6612 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
6613 (CPP_CPU_SPEC): Likewise.
6614 (ASM_CPU_SPEC): Likewise.
6615 * config/sparc/sparc.c (leon3_cost): New constant.
6616 (sparc_option_override): Add leon3 support.
6617 (mem_ref): New function.
6618 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
6619 (sparc_do_work_around_errata): Look into the instruction in the delay
6620 slot and adjust accordingly. Add fix for the data cache nullify issues
6621 of the UT699. Change insertion position for the NOP.
6622 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
6623 (leon3_load): New reservation.
6624 (leon_store): Bump latency to 2.
6625 (grfpu): New automaton.
6626 (grfpu_alu): New unit.
6627 (grfpu_ds): Likewise.
6628 (leon_fp_alu): Adjust.
6629 (leon_fp_mult): Delete.
6630 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
6631 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
6632 * config/sparc/sparc.md (cpu): Add leon3.
6633 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
6634 (swapsi): Likewise.
6635 (atomic_test_and_set): Likewise.
6636 (ldstub): Likewise.
6637
04dfc6df
JU
66382013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
6639
6640 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
6641 default for R5900 targets.
6642 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
6643 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
6644 * config/mips/mips.c (mips_option_override): Report an error for
6645 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
6646 for -march=r5900 -mhard-float.
6647
c7b3b99f 66482013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
6649
6650 * df-problems.c (can_move_insns_across): Exit loop once we
6651 find a non-fixed, non-global register.
6652
6653 * ipa-pure-const.c (propagate_nothrow): Exit loop after
6654 setting can_throw.
6655
6656 * omega.c (omega_eliminate_red): Break after setting red_found.
6657 (omega_problem_has_red_equations): Similarly after setting found.
6658 (omega_query_variable): Similarly after setting coupled.
6659
9b6e6981
MP
66602013-07-22 Marek Polacek <polacek@redhat.com>
6661
6662 * gimplify.c: Don't include gimple.h twice.
6663
5e5f7673
KT
66642013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6665
6666 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
6667 instead of TARGET_THUMB1.
6668 (Pz): New constraint.
6669 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
6670 encodings.
6671 (compare_negsi_si): Likewise.
6672 (compare_addsi2_op0): Likewise.
6673 (compare_addsi2_op1): Likewise.
6674 (addsi3_carryin_<optab>): Likewise.
6675 (addsi3_carryin_alt2_<optab>): Likewise.
6676 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
6677 for arm_restrict_it.
6678 (subsi3_carryin): Likewise.
6679 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
6680 (minmax_arithsi): Disable for arm_restrict_it.
6681 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
6682 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
6683 (satsi_<SAT:code>_shift): Likewise.
6684 (arm_shiftsi3): Add alternative for 16-bit encoding.
6685 (arm32_movhf): Disable for arm_restrict_it.
6686 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
6687 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
6688
859abddd
SN
66892013-07-22 Sofiane Naci <sofiane.naci@arm.com>
6690
6691 * config/arm/arm.md (attribute "insn"): Delete.
6692 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
6693 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
6694 (not_shiftsi): Update for attribute change.
6695 (not_shiftsi_compare0): Likewise.
6696 (not_shiftsi_compare0_scratch): Likewise.
6697 (arm_one_cmplsi2): Likewise.
6698 (thumb1_one_cmplsi2): Likewise.
6699 (notsi_compare0): Likewise.
6700 (notsi_compare0_scratch): Likewise.
6701 (thumb1_movdi_insn): Likewise.
6702 (arm_movsi_insn): Likewise.
6703 (movhi_insn_arch4): Likewise.
6704 (movhi_bytes): Likewise.
6705 (arm_movqi_insn): Likewise.
6706 (thumb1_movqi_insn): Likewise.
6707 (arm32_movhf): Likewise.
6708 (thumb1_movhf): Likewise.
6709 (arm_movsf_soft_insn): Likewise.
6710 (thumb1_movsf_insn): Likewise.
6711 (thumb_movdf_insn): Likewise.
6712 (movsicc_insn): Likewise.
6713 (movsfcc_soft_insn): Likewise.
6714 (and_scc): Likewise.
6715 (cond_move): Likewise.
6716 (if_move_not): Likewise.
6717 (if_not_move): Likewise.
6718 (if_shift_move): Likewise.
6719 (if_move_shift): Likewise.
6720 (if_shift_shift): Likewise.
6721 (if_not_arith): Likewise.
6722 (if_arith_not): Likewise.
6723 (cond_move_not): Likewise.
6724 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
6725 (neon_mov<mode>): Likewise.
6726 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
6727 (thumb2_movsi_vfp): Likewise.
6728 (movsf_vfp): Likewise.
6729 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
6730 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
6731 change.
859abddd
SN
6732 (cortexa7_older_only): Likewise.
6733 (cortexa7_younger): Likewise.
6734 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
6735 (1020alu_shift_op): Likewise.
6736 (1020alu_shift_reg_op): Likewise.
6737 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
6738 (alu_shift_op): Likewise.
6739 (alu_shift_reg_op): Likewise.
6740 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
6741 (11_alu_shift_op): Likewise.
6742 (11_alu_shift_reg_op): Likewise.
6743 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
6744 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
6745 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6746 change.
859abddd
SN
6747 (cortex_a15_alu_shift): Likewise.
6748 (cortex_a15_alu_shift_reg): Likewise.
6749 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
6750 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
6751 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
6752 change.
859abddd 6753 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
6754 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
6755 change.
859abddd
SN
6756 (cortex_a7_alu_reg): Likewise.
6757 (cortex_a7_alu_shift): Likewise.
6758 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
6759 (cortex_a8_alu_shift): Likewise.
6760 (cortex_a8_alu_shift_reg): Likewise.
6761 (cortex_a8_mov): Likewise.
6762 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
6763 (cortex_a9_dp_shift): Likewise.
6764 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
6765 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
6766 (cortex_r4_mov): Likewise.
6767 (cortex_r4_alu_shift): Likewise.
6768 (cortex_r4_alu_shift_reg): Likewise.
6769 * config/arm/fa526.md (526_alu_op): Update for attribute change.
6770 (526_alu_shift_op): Likewise.
6771 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
6772 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
6773 (626te_alu_shift_op): Likewise.
6774 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
6775 (726te_alu_op): Likewise.
6776 (726te_alu_shift_op): Likewise.
6777 (726te_alu_shift_reg_op): Likewise.
6778 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
6779 (mp626_alu_shift_op): Likewise.
6780 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
6781 (pj4_alu_e1_conds): Likewise.
6782 (pj4_alu): Likewise.
6783 (pj4_alu_conds): Likewise.
6784 (pj4_shift): Likewise.
6785 (pj4_shift_conds): Likewise.
6786 (pj4_alu_shift): Likewise.
6787 (pj4_alu_shift_conds): Likewise.
6788
95b97fac
KT
67892013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6790
6791 * config/arm/predicates.md (shiftable_operator_strict_it):
6792 New predicate.
6793 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
6794 Disable cond_exec version for arm_restrict_it.
6795 (thumb2_smaxsi3): Convert to generate cond_exec.
6796 (thumb2_sminsi3): Likewise.
6797 (thumb32_umaxsi3): Likewise.
6798 (thumb2_uminsi3): Likewise.
6799 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
6800 (thumb2_neg_abssi2): Likewise.
6801 (thumb2_mov_scc): Add alternative for 16-bit encoding.
6802 (thumb2_movsicc_insn): Adjust alternatives.
6803 (thumb2_mov_negscc): Disable for arm_restrict_it.
6804 (thumb2_mov_negscc_strict_it): New pattern.
6805 (thumb2_mov_notscc_strict_it): New pattern.
6806 (thumb2_mov_notscc): Disable for arm_restrict_it.
6807 (thumb2_ior_scc): Likewise.
6808 (thumb2_ior_scc_strict_it): New pattern.
6809 (thumb2_cond_move): Adjust for arm_restrict_it.
6810 (thumb2_cond_arith): Disable for arm_restrict_it.
6811 (thumb2_cond_arith_strict_it): New pattern.
6812 (thumb2_cond_sub): Adjust for arm_restrict_it.
6813 (thumb2_movcond): Likewise.
6814 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
6815 (thumb2_zero_extendhisi2_v6): Likewise.
6816 (thumb2_zero_extendqisi2_v6): Likewise.
6817 (orsi_notsi_si): Likewise.
6818 (orsi_not_shiftsi_si): Likewise.
6819
d5a6ef82
GJL
68202013-07-22 Georg-Johann Lay <avr@gjlay.de>
6821
6822 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
6823 instruction sequence is 1 byte shorter.
6824
d9e71154
UB
68252013-07-22 Uros Bizjak <ubizjak@gmail.com>
6826
6827 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
6828 it is not needed after split.
6829
8c6381ec
IS
68302013-07-20 Iain Sandoe <iain@codesourcery.com>
6831
6832 PR target/51784
6833 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
6834 second label for nonlocal goto receivers. Don't output pic base labels
6835 unless we're producing PIC; mark that action unreachable().
6836 (ix86_save_reg): If the function contains a nonlocal label, save the
6837 PIC base reg.
6838 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 6839 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
6840 (update_pic_label_number_if_needed): New.
6841 (machopic_output_function_base_name): Adjust for nonlocal receiver
6842 case.
6843 (machopic_should_output_picbase_label): New.
6844 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
6845 (nonlocal_goto_receiver): New insn and split.
6846
d05d0709
JG
68472013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
6848
6849 * config/aarch64/aarch64-builtins.c
6850 (aarch64_fold_builtin): Fold abs in all modes.
6851 * config/aarch64/aarch64-simd-builtins.def
6852 (abs): Enable for all modes.
6853 * config/aarch64/arm_neon.h
6854 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
6855 (vabs_f64): Add missing intrinsic.
6856
ba590e63
IB
68572013-07-19 Ian Bolton <ian.bolton@arm.com>
6858
6859 * config/aarch64/arm_neon.h (vabs_s64): New function
6860
02371798
GJL
68612013-07-19 Georg-Johann Lay <avr@gjlay.de>
6862
6863 PR target/57516
6864 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
6865 * config/avr/avr.md (adjust_len): Add `round'.
6866 * config/avr/avr-protos.h (avr_out_round): New prototype.
6867 (avr_out_plus): Add `out_label' argument.
6868 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
6869 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
6870 Handle the case where `insn' is just a pattern.
6871 (avr_out_bitop): Handle the case where `insn' is just a pattern.
6872 (avr_out_round): New function.
6873 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
6874
12211b99 68752013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
6876
6877 * config/microblaze/microblaze.c (microblaze_expand_prologue):
6878 Add check for flag_stack_usage to handle -fstack-usage support
6879
12211b99 68802013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
6881
6882 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
6883 interaction for new Power8 flags and VSX.
6884
df9dda2d
ST
68852013-07-18 Sriraman Tallam <tmsriram@google.com>
6886
6887 PR middle-end/57698
6888 * tree-inline.c (expand_call_inline): Emit errors during
6889 early_inlining only if optimization is not turned on.
6890
0f9cdef4
DM
68912013-07-18 David Malcolm <dmalcolm@redhat.com>
6892
6893 * passes.def: New.
6894
6895 * passes.c (init_optimization_passes): Move the construction of
6896 the pass hierarchy into a new passes.def file.
6897
6898 * Makefile.in (passes.o): Add dependency on passes.def.
6899
2efa4087
DM
69002013-07-18 David Malcolm <dmalcolm@redhat.com>
6901
6902 * passes.c (init_optimization_passes): Introduce macros for
6903 constructing the tree of passes (INSERT_PASSES_AFTER,
6904 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
6905 TERMINATE_PASS_LIST).
6906
bc404e1b
VM
69072013-07-18 Vladimir Makarov <vmakarov@redhat.com>
6908 Wei Mi <wmi@google.com>
6909
6910 PR rtl-optimization/57878
6911 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
6912 top.
6913 (reload_pseudo_compare_func): Check nregs first for reload
6914 pseudos.
6915
d675843f
DM
69162013-07-18 David Malcolm <dmalcolm@redhat.com>
6917
6918 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
6919
c7b3b99f 69202013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
6921
6922 * read-rtl.c (validate_const_int): Once an invalid character is
6923 seen, quit the loop.
6924
6925 * gengtype.c (write_roots): Similarly once we find the "deletable"
6926 or "if_marked" option.
6927
52fceb44
SN
69282013-07-18 Sofiane Naci <sofiane.naci@arm.com>
6929
6930 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
6931 "xtab" and "sat". Move value "clz" from here to ...
6932 (attriubte "type"): ... here.
6933 (satsi_<SAT:code>): Delete "insn" attribute.
6934 (satsi_<SAT:code>_shift): Likewise.
6935 (arm_zero_extendqisi2addsi): Likewise.
6936 (arm_extendqisi2addsi): Likewise.
6937 (clzsi2): Update for attribute changes.
6938 (rbitsi2): Likewise.
371e77e3
UB
6939 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
6940 attribute.
52fceb44
SN
6941 (arm_usatsihi): Likewise.
6942 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
6943
006bd006
SN
69442013-07-18 Sofiane Naci <sofiane.naci@arm.com>
6945
6946 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
6947 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
6948 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
6949 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
6950 in alphabetical order.
6951 (attribute "core_cycles"): Update for attribute changes.
6952 (arm_addsi3): Likewise.
6953 (addsi3_compare0): Likewise.
6954 (addsi3_compare0_scratch): Likewise.
6955 (addsi3_compare_op1): Likewise.
6956 (addsi3_compare_op2): Likewise.
6957 (compare_addsi2_op0): Likewise.
6958 (compare_addsi2_op1): Likewise.
6959 (addsi3_carryin_shift_<optab>): Likewise.
6960 (subsi3_carryin_shift): Likewise.
6961 (rsbsi3_carryin_shift): Likewise.
6962 (arm_subsi3_insn): Likewise.
6963 (subsi3_compare0): Likewise.
6964 (subsi3_compare): Likewise.
6965 (arm_andsi3_insn): Likewise.
6966 (thumb1_andsi3_insn): Likewise.
6967 (andsi3_compare0): Likewise.
6968 (andsi3_compare0_scratch): Likewise.
6969 (zeroextractsi_compare0_scratch
6970 (andsi_not_shiftsi_si): Likewise.
6971 (iorsi3_insn): Likewise.
6972 (iorsi3_compare0): Likewise.
6973 (iorsi3_compare0_scratch): Likewise.
6974 (arm_xorsi3): Likewise.
6975 (thumb1_xorsi3_insn): Likewise.
6976 (xorsi3_compare0): Likewise.
6977 (xorsi3_compare0_scratch): Likewise.
6978 (satsi_<SAT:code>_shift): Likewise.
6979 (rrx): Likewise.
6980 (arm_shiftsi3): Likewise.
6981 (shiftsi3_compare0): Likewise.
6982 (not_shiftsi): Likewise.
6983 (not_shiftsi_compare0): Likewise.
6984 (not_shiftsi_compare0_scratch): Likewise.
6985 (arm_one_cmplsi2): Likewise.
6986 (thumb_one_complsi2): Likewise.
6987 (notsi_compare0): Likewise.
6988 (notsi_compare0_scratch): Likewise.
6989 (thumb1_zero_extendhisi2): Likewise.
6990 (arm_zero_extendhisi2): Likewise.
6991 (arm_zero_extendhisi2_v6): Likewise.
6992 (arm_zero_extendhisi2addsi): Likewise.
6993 (thumb1_zero_extendqisi2): Likewise.
6994 (thumb1_zero_extendqisi2_v6): Likewise.
6995 (arm_zero_extendqisi2): Likewise.
6996 (arm_zero_extendqisi2_v6): Likewise.
6997 (arm_zero_extendqisi2addsi): Likewise.
6998 (thumb1_extendhisi2): Likewise.
6999 (arm_extendhisi2): Likewise.
7000 (arm_extendhisi2_v6): Likewise.
7001 (arm_extendqisi): Likewise.
7002 (arm_extendqisi_v6): Likewise.
7003 (arm_extendqisi2addsi): Likewise.
7004 (thumb1_extendqisi2): Likewise.
7005 (thumb1_movdi_insn): Likewise.
7006 (arm_movsi_insn): Likewise.
7007 (movsi_compare0): Likewise.
7008 (movhi_insn_arch4): Likewise.
7009 (movhi_bytes): Likewise.
7010 (arm_movqi_insn): Likewise.
7011 (thumb1_movqi_insn): Likewise.
7012 (arm32_movhf): Likewise.
7013 (thumb1_movhf): Likewise.
7014 (arm_movsf_soft_insn): Likewise.
7015 (thumb1_movsf_insn): Likewise.
7016 (movdf_soft_insn): Likewise.
7017 (thumb_movdf_insn): Likewise.
7018 (arm_cmpsi_insn): Likewise.
7019 (cmpsi_shiftsi): Likewise.
7020 (cmpsi_shiftsi_swp): Likewise.
7021 (arm_cmpsi_negshiftsi_si): Likewise.
7022 (movsicc_insn): Likewise.
7023 (movsfcc_soft_insn): Likewise.
7024 (arith_shiftsi): Likewise.
7025 (arith_shiftsi_compare0
7026 (arith_shiftsi_compare0_scratch
7027 (sub_shiftsi): Likewise.
7028 (sub_shiftsi_compare0
7029 (sub_shiftsi_compare0_scratch
7030 (and_scc): Likewise.
7031 (cond_move): Likewise.
7032 (if_plus_move): Likewise.
7033 (if_move_plus): Likewise.
7034 (if_move_not): Likewise.
7035 (if_not_move): Likewise.
7036 (if_shift_move): Likewise.
7037 (if_move_shift): Likewise.
7038 (if_shift_shift): Likewise.
7039 (if_not_arith): Likewise.
7040 (if_arith_not): Likewise.
7041 (cond_move_not): Likewise.
7042 (thumb1_ashlsi3): Set type attribute.
7043 (thumb1_ashrsi3): Likewise.
7044 (thumb1_lshrsi3): Likewise.
7045 (thumb1_rotrsi3): Likewise.
7046 (shiftsi3_compare0_scratch): Likewise.
7047 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
7048 (neon_mov<mode>): Likewise.
371e77e3
UB
7049 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
7050 attribute changes.
006bd006
SN
7051 (thumb2_movsi_insn): Likewise.
7052 (thumb2_cmpsi_neg_shiftsi): Likewise.
7053 (thumb2_extendqisi_v6): Likewise.
7054 (thumb2_zero_extendhisi2_v6): Likewise.
7055 (thumb2_zero_extendqisi2_v6): Likewise.
7056 (thumb2_shiftsi3_short): Likewise.
7057 (thumb2_addsi3_compare0_scratch): Likewise.
7058 (orsi_not_shiftsi_si): Likewise.
7059 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7060 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
7061 changes.
7062 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
7063 (1020alu_shift_op): Likewise.
7064 (1020alu_shift_reg_op): Likewise.
7065 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
7066 (alu_shift_op): Likewise.
7067 (alu_shift_reg_op): Likewise.
7068 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
7069 (11_alu_shift_op): Likewise.
7070 (11_alu_shift_reg_op): Likewise.
7071 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
7072 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7073 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7074 changes.
006bd006
SN
7075 (cortex_a15_alu_shift): Likewise.
7076 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
7077 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
7078 changes.
006bd006
SN
7079 (cortex_a5_alu_shift): Likewise.
7080 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
7081 changes.
7082 (cortex_a53_alu_shift): Likewise.
7083 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7084 changes.
7085 (cortex_a7_alu_reg): Likewise.
7086 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
7087 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
7088 changes.
006bd006
SN
7089 (cortex_a8_alu_shift): Likewise.
7090 (cortex_a8_alu_shift_reg): Likewise.
7091 (cortex_a8_mov): Likewise.
7092 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
7093 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
7094 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
7095 changes.
7096 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
7097 changes.
006bd006
SN
7098 (cortex_r4_mov): Likewise.
7099 (cortex_r4_alu_shift): Likewise.
7100 (cortex_r4_alu_shift_reg): Likewise.
7101 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
7102 (526_alu_shift_op): Likewise.
7103 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
7104 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
7105 (626te_alu_shift_op): Likewise.
7106 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
7107 (726te_alu_op): Likewise.
7108 (726te_alu_shift_op): Likewise.
7109 (726te_alu_shift_reg_op): Likewise.
7110 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
7111 (mp626_alu_shift_op): Likewise.
7112 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
7113 (pj4_alu_e1_conds): Likewise.
7114 (pj4_alu): Likewise.
7115 (pj4_alu_conds): Likewise.
7116 (pj4_shift): Likewise.
7117 (pj4_shift_conds): Likewise.
7118 (pj4_alu_shift): Likewise.
7119 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
7120 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7121 changes.
006bd006
SN
7122 (cortexa7_older_only): Likewise.
7123 (cortexa7_younger): Likewise.
7124
651df1b2
DM
71252013-07-18 David Malcolm <dmalcolm@redhat.com>
7126
7127 * ipa-pure-const.c (generate_summary): Rename to...
7128 (pure_const_generate_summary): ... this.
7129
ea717bd7
IS
71302013-07-17 Iain Sandoe <iain@codesourcery.com>
7131
7132 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
7133
a1259a13
YR
71342013-07-17 Yvan Roux <yvan.roux@linaro.org>
7135
7136 PR target/57909
7137 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
7138 usage in HI mode.
7139
167f68ed
AK
71402013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7141
7142 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
7143 enabled without -march=zEC12.
7144 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
7145 flags to be set.
7146
f900a982
MR
71472013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7148
7149 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
7150 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
7151 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
7152 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
7153 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
7154 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
7155 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
7156 ISA_HAS_FP4.
7157 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
7158 and ISA_HAS_NMADD3_NMSUB3.
7159 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
7160 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
7161 (nmsub4<mode>, nmsub3<mode>): Likewise.
7162 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
7163
d4ed27eb
MR
71642013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7165
7166 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
7167 TARGET_MIPS5400 checking.
7168
7a5add18
PB
71692013-07-16 Jakub Jelinek <jakub@redhat.com>
7170 Peter Bergner <bergner@vnet.ibm.com>
7171
7172 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
7173 registers in the comment.
7174 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
7175 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
7176 rather than FIRST_PSEUDO_REGISTERS.
7177
71782013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
7179
7180 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
7181 enable extra ISA flags with TARGET_HTM.
7182
d2ab0929
MR
71832013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7184
7185 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
7186 Fix comment typos.
7187
839c74bc
CH
71882013-07-15 Cong Hou <congh@google.com>
7189
7190 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
7191 in compare function for sorting.
7192
7a5add18 71932013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
7194
7195 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
7196 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
7197 * config/rs6000/rs6000.opt: Add -mhtm option.
7198 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
7199 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
7200 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7201 __HTM__ if the HTM instructions are available.
7202 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
7203 htm_spr_reg_operand): New define_predicates.
7204 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
7205 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
7206 Include htm.md.
7207 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
7208 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
7209 HTM builtin functions.
7210 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
7211 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
7212 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
7213 (rs6000_builtin_mask_calculate): Likewise.
7214 (rs6000_option_override_internal): Likewise.
7215 (bdesc_htm): Add new HTM builtin support.
7216 (htm_spr_num): New function.
7217 (htm_spr_regno): Likewise.
7218 (rs6000_htm_spr_icode): Likewise.
7219 (htm_expand_builtin): Likewise.
7220 (htm_init_builtins): Likewise.
7221 (rs6000_expand_builtin): Add support for HTM builtin functions.
7222 (rs6000_init_builtins): Likewise.
371e77e3
UB
7223 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
7224 option.
0258b6e4
PB
7225 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
7226 (TARGET_HTM, MASK_HTM): Define macros.
7227 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
7228 (FIXED_REGISTERS): Likewise.
7229 (CALL_USED_REGISTERS): Likewise.
7230 (CALL_REALLY_USED_REGISTERS): Likewise.
7231 (REG_ALLOC_ORDER): Likewise.
7232 (enum reg_class): Likewise.
7233 (REG_CLASS_NAMES): Likewise.
7234 (REG_CLASS_CONTENTS): Likewise.
7235 (REGISTER_NAMES): Likewise.
7236 (ADDITIONAL_REGISTER_NAMES): Likewise.
7237 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
7238 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
7239 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
7240 * config/rs6000/htm.md: New file.
7241 * config/rs6000/htmintrin.h: New file.
7242 * config/rs6000/htmxlintrin.h: New file.
7243
87dd8ab0
MS
72442013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
7245
7246 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
7247 Define SYMBOL_TINY_GOT, update comment.
7248 * config/aarch64/aarch64.c
7249 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
7250 (aarch64_expand_mov_immediate): Likewise.
7251 (aarch64_print_operand): Likewise.
7252 (aarch64_classify_symbol): Likewise.
7253 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
7254 (ldr_got_tiny): Define.
7255
52d676b6
TG
72562013-07-13 Tobias Grosser <tobias@grosser.es>
7257
7258 PR tree-optimization/54094
7259 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
7260 scheduling dimension for the parallelism check from the polyhedral
7261 information in the AST.
7262 * graphite-dependences.c (carries_deps): Do not assume the schedule is
7263 in 2D + 1 form.
7264
286e8fc1
JM
72652013-07-13 Jason Merrill <jason@redhat.com>
7266
7267 * print-tree.c (debug_vec_tree): Use debug_raw.
7268 (debug_raw (vec<tree, va_gc> &)): New.
7269 (debug_raw (vec<tree, va_gc> *)): New.
7270 * tree.h: Declare them.
7271
e43257e8
BC
72722013-07-13 Bin Cheng <bin.cheng@arm.com>
7273
7274 * ifcvt.c (ifcvt_after_combine): New static variable.
7275 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
7276 for size.
7277 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
7278 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
7279 rest_of_handle_if_after_reload): Pass new argument for if_convert.
7280
da582d46
MR
72812013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
7282
7283 * config/mips/mips.c (mips_expand_call): Remove empty statement.
7284
18b0ea8f
MM
72852013-07-12 Michael Matz <matz@suse.de>
7286
7287 PR middle-end/55771
7288 * convert.c (convert_to_real): Reject non-float inner types.
7289
e4f0f84d
TB
72902013-07-12 Tejas Belagod <tejas.belagod@arm.com>
7291
7292 * config/aarch64/aarch64-protos.h
7293 (aarch64_simd_immediate_valid_for_move): Remove.
7294 * config/aarch64/aarch64.c (simd_immediate_info): New member.
7295 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
7296 cases.
7297 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
7298
76500022
SE
72992013-07-11 Steve Ellcey <sellcey@mips.com>
7300
7301 * config/mips/mips.c (mips_conditional_register_usage): Do not
7302 use t[0-7] registers in MIPS16 mode when optimizing for size.
7303
78039734
ST
73042013-07-11 Sriraman Tallam <tmsriram@google.com>
7305
7306 * config/i386/i386.c (dispatch_function_versions): Fix array
7307 indexing of function_version_info to match actual_versions.
7308
7b24b675
TJ
73092013-07-11 Teresa Johnson <tejohnson@google.com>
7310
7311 * vec.h (struct va_gc): Move release out-of-line.
7312 (va_gc::release): Call ggc_free on released vec.
7313
85d4cbb8
UW
73142013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7315
7316 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
7317 Require GOT register as additional operand in UNSPEC.
7318 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
7319 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
7320 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
7321 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
7322 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
7323 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
7324 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
7325
52b3f9e2
GJL
73262013-07-11 Georg-Johann Lay <avr@gjlay.de>
7327
7328 PR target/57631
7329 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
7330 name seen by assembler/linker rather if available.
7331
3f3e266e
AS
73322013-07-11 Andreas Schwab <schwab@suse.de>
7333
7334 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
7335
21231ca6
VM
73362013-07-10 Vladimir Makarov <vmakarov@redhat.com>
7337
371e77e3 7338 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 7339
d331d374
JM
73402013-07-10 Joseph Myers <joseph@codesourcery.com>
7341
673c2f63
JM
7342 * doc/tm.texi.in: Move hook documentation to ....
7343 * target.def: ... here.
7344
d331d374
JM
7345 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
7346 text on @hook line.
7347 * doc/tm.texi: Regenerate.
7348
dfeadaa0
PC
73492013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
7350
7351 PR c++/57869
7352 * doc/invoke.texi: Document -Wconditionally-supported.
7353
bb6f2bac
GJL
73542013-07-10 Georg-Johann Lay <avr@gjlay.de>
7355
7356 PR target/57844
7357 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
7358 of my_fp.
7359
5219b232
GJL
73602013-07-10 Georg-Johann Lay <avr@gjlay.de>
7361
7362 PR target/57506
7363 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
7364 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
7365 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
7366 Remove duplicate devices.
7367 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
7368 * config/avr/t-multilib: Regenerate.
7369 * config/avr/avr-tables.opt: Regenerate.
7370 * doc/avr-mmcu.texi: Regenerate.
7371
283045c0
GJL
73722013-07-10 Georg-Johann Lay <avr@gjlay.de>
7373
7374 PR target/56987
7375 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
7376
ceb2d59f 73772013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 7378
ceb2d59f
GS
7379 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
7380 the cost of MULT when optimizing for size.
7381
055e0a99
JBG
73822013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7383
7384 * config/cr16/cr16-protos.h: Don't include target.h.
7385
ef43e868
JM
73862013-07-09 Joseph Myers <joseph@codesourcery.com>
7387
7388 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
7389 adjust register size for TDmode and TFmode for VSX registers.
7390
4a283fdf
KT
73912013-07-08 Kai Tietz <ktietz@redhat.com>
7392
7393 PR target/56892
7394 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
7395 hook_bool_const_tree_true.
7396
2cf4c39e
AK
73972013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7398
7399 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
7400 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
7401 * config/s390/s390.md: Define FPR*_REGNUM constants.
7402 Fix FPR2_REGNUM constant (18 -> 17).
7403 ("*trunc<BFP:mode><DFP_ALL:mode>2")
7404 ("*trunc<DFP_ALL:mode><BFP:mode>2")
7405 ("trunc<BFP:mode><DFP_ALL:mode>2")
7406 ("trunc<DFP_ALL:mode><BFP:mode>2")
7407 ("*extend<BFP:mode><DFP_ALL:mode>2")
7408 ("*extend<DFP_ALL:mode><BFP:mode>2")
7409 ("extend<BFP:mode><DFP_ALL:mode>2")
7410 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
7411 FPR4_REGNUM.
7412
e6ac0270 74132013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 7414
6a2fa4b2 7415 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 7416
b89b22fc
AK
74172013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7418
7419 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
7420 and cfun_fpr_bit_p to cfun_fpr_save_p.
7421 (s390_frame_area, s390_register_info, s390_frame_info)
7422 (s390_emit_prologue, s390_emit_epilogue)
7423 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
7424 register numbers.
7425 * config/s390/s390.h: Define *_REGNUM macros for floating point
7426 register numbers.
7427
07f398aa
EB
74282013-07-08 Eric Botcazou <ebotcazou@adacore.com>
7429
7430 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
7431
75fefa91
PCC
74322013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
7433
7434 PR rtl-optimization/57786
7435 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
7436 and break out of the loop when it is set to false.
7437
046f1eee
JJ
74382013-07-08 Jakub Jelinek <jakub@redhat.com>
7439
8140c065
JJ
7440 PR target/57819
7441 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
7442 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
7443 (const_int 63)) 0)).
7444 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
7445 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
7446 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
7447
046f1eee
JJ
7448 PR rtl-optimization/57829
7449 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
7450 mask bits outside of mode are just sign-extension from mode to HWI.
7451
930b700b
MZ
74522013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
7453
7454 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
7455 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
7456 adjust_address instead of change_address to keep info about alignment.
7457 (emit_strmov): Remove.
7458 (emit_memmov): New function.
7459 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
7460 (expand_movmem_epilogue): Likewise and return updated rtx for
7461 destination.
7462 (expand_constant_movmem_prologue): Likewise and return updated rtx for
7463 destination and source.
7464 (decide_alignment): Refactor, handle vector_loop.
7465 (ix86_expand_movmem): Likewise.
7466 (ix86_expand_setmem): Likewise.
7467 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
7468
7b9d1bd8
UB
74692013-07-07 Uros Bizjak <ubizjak@gmail.com>
7470
7471 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
7472 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
7473
eabb5f48
UB
74742013-07-06 Uros Bizjak <ubizjak@gmail.com>
7475
7476 * config/i386/sse.md (sse_movlhps): Change alternative 3
7477 of operand 2 to "m".
7478
74792013-07-06 Uros Bizjak <ubizjak@gmail.com>
7480
7481 PR target/57807
7482 * config/i386/sse.md (iptr): New mode attribute.
7483 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
7484 (<sse>_vm<plusminus_insn><mode>3): Ditto.
7485 (<sse>_vmmul<mode>3): Ditto.
7486 (<sse>_vmdiv<mode>3): Ditto.
7487 (sse_vmrcpv4sf2): Ditto.
7488 (<sse>_vmsqrt<mode>2): Ditto.
7489 (sse_vmrsqrtv4sf2): Ditto.
7490 (<sse>_vm<code><mode>3): Ditto.
7491 (avx_vmcmp<mode>3): Ditto.
7492 (<sse>_vmmaskcmp<mode>3): Ditto.
7493 (<sse>_comi): Ditto.
7494 (<sse>_ucomi): Ditto.
7495 (*xop_vmfrcz_<mode>): Ditto.
7496 (*fmai_fmadd_<mode>): Ditto.
7497 (*fmai_fmsub_<mode>): Ditto.
7498 (*fmai_fnmadd_<mode>): Ditto.
7499 (*fmai_fnmsub_<mode>): Ditto.
7500 (*fma4i_vmfmadd_<mode>): Ditto.
7501 (*fma4i_vmfmsub_<mode>): Ditto.
7502 (*fma4i_vmfnmadd_<mode>): Ditto.
7503 (*fma4i_vmfnmsub_<mode>): Ditto.
7504 (*xop_vmfrcz_<mode>): Ditto.
7505 (sse_cvtps2pi): Ditto.
7506 (sse_cvttps2pi): Ditto.
7507 (sse_cvtss2si): Ditto.
7508 (sse_cvtss2si_2): Ditto.
7509 (sse_cvtss2siq_2): Ditto.
7510 (sse_cvttss2si): Ditto.
7511 (sse_cvttss2siq): Ditto.
7512 (sse_cvtsd2si): Ditto.
7513 (sse_cvtsd2si_2): Ditto.
7514 (sse_cvtsd2siq_2): Ditto.
7515 (sse_cvttsd2si): Ditto.
7516 (sse_cvttsd2siq): Ditto.
7517 (sse_cvtsd2ss): Ditto.
7518 (sse_cvtss2sd): Ditto.
7519 (avx2_pbroadcast<mode>): Ditto.
7520 (avx2_pbroadcast<mode>_1): Ditto.
7521 (*avx_vperm_broadcast_v4sf): Ditto.
7522
7523 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
7524 (sse_movlhps): Ditto.
7525 (sse_storehps): Ditto.
7526 (sse_loadhps): Ditto.
7527 (sse_storelps): Ditto.
7528 (sse_loadlps): Ditto.
7529 (*vec_concatv4sf): Ditto.
7530 (*vec_interleave_highv2df): Ditto.
7531 (*vec_interleave_lowv2df): Ditto.
7532 (*vec_extractv2df_1_sse): Ditto.
7533 (*vec_extractv2df_0_sse): Ditto.
7534 (sse2_storelpd): Ditto.
7535 (sse2_loadlpd): Ditto.
7536 (sse2_movsd): Ditto.
7537 (*vec_concatv4si): Ditto.
7538 (vec_concatv2di): Ditto.
7539
7540 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
7541 for Intel asm dialect.
7542 (mmx_punpcklwd): Ditto.
7543 (mmx_punpckldq): Ditto.
7544
7545 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
7546 for intel assembler dialect.
7547
1f6eac90
JJ
75482013-07-06 Jakub Jelinek <jakub@redhat.com>
7549
7550 PR target/29776
7551 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
7552 for BUILT_IN_C{LZ,LRSB}*.
7553 * tree.h (CASE_INT_FN): Add FN##IMAX case.
7554 * tree-vrp.c (extract_range_basic): Handle
7555 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
7556 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
7557 fall thru to code calling set_value*.
7558 * builtins.c (expand_builtin): Remove *IMAX cases.
7559 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
7560 if width is bigger than 2*HWI.
7561
2b778c9d
VM
75622013-07-05 Vladimir Makarov <vmakarov@redhat.com>
7563
7564 PR rtl-optimization/55342
7565 * lra-int.h (lra_subreg_reload_pseudos): New.
7566 * lra.c: Add undoing optional reloads to the block diagram.
7567 (lra_subreg_reload_pseudos): New.
7568 (lra_optional_reload_pseudos): Change comments.
7569 (lra): Init and clear lra_subreg_reload_pseudos. Clear
7570 lra_optional_reload_pseudos after undo transformations.
7571 * lra-assigns.c (pseudo_prefix_title): New.
7572 (lra_setup_reg_renumber): Use it.
7573 (spill_for): Ditto. Check subreg reload pseudos too.
7574 (assign_by_spills): Consider subreg reload pseudos too.
7575 * lra-constraints.c (simplify_operand_subreg): Use
7576 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
7577 (curr_insn_transform): Recognize and do optional reloads.
7578 (undo_optional_reloads): New.
7579 (lra_undo_inheritance): Call undo_optional_reloads.
7580
207156e4
TQ
75812013-07-05 Thomas Quinot <quinot@adacore.com>
7582
7583 * tree-complex.c (expand_complex_operations_1): Fix typo.
7584
8990e73a
TB
75852013-07-04 Tejas Belagod <tejas.belagod@arm.com>
7586
7587 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
7588 (tune_params): New member 'const vec_costs'.
7589 * config/aarch64/aarch64.c (generic_vector_cost): New.
7590 (generic_tunings): New member 'generic_vector_cost'.
7591 (aarch64_builtin_vectorization_cost): New.
7592 (aarch64_add_stmt_cost): New.
7593 (TARGET_VECTORIZE_ADD_STMT_COST): New.
7594 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
7595
f7bc421d
JJ
75962013-07-03 Jakub Jelinek <jakub@redhat.com>
7597
7598 PR target/57777
7599 * config/i386/predicates.md (vsib_address_operand): Disallow
7600 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
7601
e90d1568
HPN
76022013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
7603
7604 PR middle-end/55030
7605 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
7606 expand_builtin_setjmp_receiver.
7607 (expand_label): Adjust, call expand_builtin_setjmp_receiver
7608 with NULL for the label parameter.
7609 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
7610 the frame-pointer. Adjust comments.
7611 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
7612 only if LABEL is non-NULL.
7613
cbd7413b
YZ
76142013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
7615
7616 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
7617 (ARM_ABI_AAPCS64): Ditto.
7618 (arm_abi): Ditto.
7619 (ARM_DEFAULT_ABI): Ditto.
7620
dec11868
JG
76212013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
7622
7623 * config/aarch64/aarch64-builtins.c
7624 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
7625 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
7626 (st1): Likewise.
7627 * config/aarch64/aarch64-simd.md
7628 (aarch64_ld1<VALL:mode>): New.
7629 (aarch64_st1<VALL:mode>): Likewise.
7630 * config/aarch64/arm_neon.h
7631 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
7632
786fb9b6
ST
76332013-07-02 Sriraman Tallam <tmsriram@google.com>
7634
0ba6aff3
UB
7635 * config/i386/i386.c (gate_insert_vzeroupper): Check if
7636 target ISA is AVX.
786fb9b6
ST
7637 (ix86_option_override_internal):Turn on all -mavx target flags by
7638 default as they are dependent on AVX anyway.
7639
4b043553
CC
76402013-07-02 Cary Coutant <ccoutant@google.com>
7641
7642 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
7643 deterministic hash.
7644 (loc_checksum_ordered): Likewise.
7645 (hash_loc_operands): Remove inline keyword.
7646
c4e87a13
JJ
76472013-07-02 Jakub Jelinek <jakub@redhat.com>
7648
7649 PR tree-optimization/57741
7650 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
7651 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
7652 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
7653 Allow REAL_CST step_exprs if flag_associative_math.
7654 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
7655
26366d28
IB
76562013-07-02 Ian Bolton <ian.bolton@arm.com>
7657
0ba6aff3 7658 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 7659
2879bb2b
IB
76602013-07-02 Ian Bolton <ian.bolton@arm.com>
7661
7662 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
7663
afc5e8a6
KT
76642013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7665
7666 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
7667 encoding.
7668 (iorsi3_insn): Likewise.
7669 (arm_xorsi3): Likewise.
7670
31f8442b
SN
76712013-07-01 Sofiane Naci <sofiane.naci@arm.com>
7672
7673 * arm.md (attribute "wtype"): Delete. Move attribute values from here
7674 to ...
7675 (attribute "type"): ... here, and prefix with "wmmx_".
7676 (attribute "core_cycles"): Update for attribute changes.
7677 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
7678 (tbcstv4hi): Likewise.
7679 (tbcstv2si): Likewise.
7680 (iwmmxt_iordi3): Likewise.
7681 (iwmmxt_xordi3): Likewise.
7682 (iwmmxt_anddi3): Likewise.
7683 (iwmmxt_nanddi3): Likewise.
7684 (iwmmxt_arm_movdi): Likewise.
7685 (iwmmxt_movsi_insn): Likewise.
7686 (mov<mode>_internal): Likewise.
7687 (and<mode>3_iwmmxt): Likewise.
7688 (ior<mode>3_iwmmxt): Likewise.
7689 (xor<mode>3_iwmmxt): Likewise.
7690 (add<mode>3_iwmmxt): Likewise.
7691 (ssaddv8qi3): Likewise.
7692 (ssaddv4hi3): Likewise.
7693 (ssaddv2si3): Likewise.
7694 (usaddv8qi3): Likewise.
7695 (usaddv4hi3): Likewise.
7696 (usaddv2si3): Likewise.
7697 (sub<mode>3_iwmmxt): Likewise.
7698 (sssubv8qi3): Likewise.
7699 (sssubv4hi3): Likewise.
7700 (sssubv2si3): Likewise.
7701 (ussubv8qi3): Likewise.
7702 (ussubv4hi3): Likewise.
7703 (ussubv2si3): Likewise.
7704 (mulv4hi3_iwmmxt): Likewise.
7705 (smulv4hi3_highpart): Likewise.
7706 (umulv4hi3_highpart): Likewise.
7707 (iwmmxt_wmacs): Likewise.
7708 (iwmmxt_wmacsz): Likewise.
7709 (iwmmxt_wmacu): Likewise.
7710 (iwmmxt_wmacuz): Likewise.
7711 (iwmmxt_clrdi): Likewise.
7712 (iwmmxt_clrv8qi): Likewise.
7713 (iwmmxt_clr4hi): Likewise.
7714 (iwmmxt_clr2si): Likewise.
7715 (iwmmxt_uavgrndv8qi3): Likewise.
7716 (iwmmxt_uavgrndv4hi3): Likewise.
7717 (iwmmxt_uavgv8qi3): Likewise.
7718 (iwmmxt_uavgv4hi3): Likewise.
7719 (iwmmxt_tinsrb): Likewise.
7720 (iwmmxt_tinsrh): Likewise.
7721 (iwmmxt_tinsrw): Likewise.
7722 (iwmmxt_textrmub): Likewise.
7723 (iwmmxt_textrmsb): Likewise.
7724 (iwmmxt_textrmuh): Likewise.
7725 (iwmmxt_textrmsh): Likewise.
7726 (iwmmxt_textrmw): Likewise.
7727 (iwmxxt_wshufh): Likewise.
7728 (eqv8qi3): Likewise.
7729 (eqv4hi3): Likewise.
7730 (eqv2si3): Likewise.
7731 (gtuv8qi3): Likewise.
7732 (gtuv4hi3): Likewise.
7733 (gtuv2si3): Likewise.
7734 (gtv8qi3): Likewise.
7735 (gtv4hi3): Likewise.
7736 (gtv2si3): Likewise.
7737 (smax<mode>3_iwmmxt): Likewise.
7738 (umax<mode>3_iwmmxt): Likewise.
7739 (smin<mode>3_iwmmxt): Likewise.
7740 (umin<mode>3_iwmmxt): Likewise.
7741 (iwmmxt_wpackhss): Likewise.
7742 (iwmmxt_wpackwss): Likewise.
7743 (iwmmxt_wpackdss): Likewise.
7744 (iwmmxt_wpackhus): Likewise.
7745 (iwmmxt_wpackwus): Likewise.
7746 (iwmmxt_wpackdus): Likewise.
7747 (iwmmxt_wunpckihb): Likewise.
7748 (iwmmxt_wunpckihh): Likewise.
7749 (iwmmxt_wunpckihw): Likewise.
7750 (iwmmxt_wunpckilb): Likewise.
7751 (iwmmxt_wunpckilh): Likewise.
7752 (iwmmxt_wunpckilw): Likewise.
7753 (iwmmxt_wunpckehub): Likewise.
7754 (iwmmxt_wunpckehuh): Likewise.
7755 (iwmmxt_wunpckehuw): Likewise.
7756 (iwmmxt_wunpckehsb): Likewise.
7757 (iwmmxt_wunpckehsh): Likewise.
7758 (iwmmxt_wunpckehsw): Likewise.
7759 (iwmmxt_wunpckelub): Likewise.
7760 (iwmmxt_wunpckeluh): Likewise.
7761 (iwmmxt_wunpckeluw): Likewise.
7762 (iwmmxt_wunpckelsb): Likewise.
7763 (iwmmxt_wunpckelsh): Likewise.
7764 (iwmmxt_wunpckelsw): Likewise.
7765 (ror<mode>3): Likewise.
7766 (ashr<mode>3_iwmmxt): Likewise.
7767 (lshr<mode>3_iwmmxt): Likewise.
7768 (ashl<mode>3_iwmmxt): Likewise.
7769 (ror<mode>3_di): Likewise.
7770 (ashr<mode>3_di): Likewise.
7771 (lshr<mode>3_di): Likewise.
7772 (ashl<mode>3_di): Likewise.
7773 (iwmmxt_wmadds): Likewise.
7774 (iwmmxt_wmaddu): Likewise.
7775 (iwmmxt_tmia): Likewise.
7776 (iwmmxt_tmiaph): Likewise.
7777 (iwmmxt_tmiabb): Likewise.
7778 (iwmmxt_tmiatb): Likewise.
7779 (iwmmxt_tmiabt): Likewise.
7780 (iwmmxt_tmiatt): Likewise.
7781 (iwmmxt_tmovmskb): Likewise.
7782 (iwmmxt_tmovmskh): Likewise.
7783 (iwmmxt_tmovmskw): Likewise.
7784 (iwmmxt_waccb): Likewise.
7785 (iwmmxt_wacch): Likewise.
7786 (iwmmxt_waccw): Likewise.
7787 (iwmmxt_waligni): Likewise.
7788 (iwmmxt_walignr): Likewise.
7789 (iwmmxt_walignr0): Likewise.
7790 (iwmmxt_walignr1): Likewise.
7791 (iwmmxt_walignr2): Likewise.
7792 (iwmmxt_walignr3): Likewise.
7793 (iwmmxt_wsadb): Likewise.
7794 (iwmmxt_wsadh): Likewise.
7795 (iwmmxt_wsadbz): Likewise.
7796 (iwmmxt_wsadhz): Likewise.
7797 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
7798 (iwmmxt_wabsdiffb): Likewise.
7799 (iwmmxt_wabsdiffh): Likewise.
7800 (iwmmxt_wabsdiffw): Likewise.
7801 (iwmmxt_waddsubhx): Likewise
7802 (iwmmxt_wsubaddhx): Likewise.
7803 (addc<mode>3): Likewise.
7804 (iwmmxt_avg4): Likewise.
7805 (iwmmxt_avg4r): Likewise.
7806 (iwmmxt_wmaddsx): Likewise.
7807 (iwmmxt_wmaddux): Likewise.
7808 (iwmmxt_wmaddsn): Likewise.
7809 (iwmmxt_wmaddun): Likewise.
7810 (iwmmxt_wmulwsm): Likewise.
7811 (iwmmxt_wmulwum): Likewise.
7812 (iwmmxt_wmulsmr): Likewise.
7813 (iwmmxt_wmulumr): Likewise.
7814 (iwmmxt_wmulwsmr): Likewise.
7815 (iwmmxt_wmulwumr): Likewise.
7816 (iwmmxt_wmulwl): Likewise.
7817 (iwmmxt_wqmulm): Likewise.
7818 (iwmmxt_wqmulwm): Likewise.
7819 (iwmmxt_wqmulmr): Likewise.
7820 (iwmmxt_wqmulwmr): Likewise.
7821 (iwmmxt_waddbhusm): Likewise.
7822 (iwmmxt_waddbhusl): Likewise.
7823 (iwmmxt_wqmiabb): Likewise.
7824 (iwmmxt_wqmiabt): Likewise.
7825 (iwmmxt_wqmiatb): Likewise.
7826 (iwmmxt_wqmiatt): Likewise.
7827 (iwmmxt_wqmiabbn): Likewise.
7828 (iwmmxt_wqmiabtn): Likewise.
7829 (iwmmxt_wqmiatbn): Likewise.
7830 (iwmmxt_wqmiattn): Likewise.
7831 (iwmmxt_wmiabb): Likewise.
7832 (iwmmxt_wmiabt): Likewise.
7833 (iwmmxt_wmiatb): Likewise.
7834 (iwmmxt_wmiatt): Likewise.
7835 (iwmmxt_wmiabbn): Likewise.
7836 (iwmmxt_wmiabtn): Likewise.
7837 (iwmmxt_wmiatbn): Likewise.
7838 (iwmmxt_wmiattn): Likewise.
7839 (iwmmxt_wmiawbb): Likewise.
7840 (iwmmxt_wmiawbt): Likewise.
7841 (iwmmxt_wmiawtb): Likewise.
7842 (iwmmxt_wmiawtt): Likewise.
7843 (iwmmxt_wmiawbbn): Likewise.
7844 (iwmmxt_wmiawbtn): Likewise.
7845 (iwmmxt_wmiawtbn): Likewise.
7846 (iwmmxt_wmiawttn): Likewise.
7847 (iwmmxt_wmerge): Likewise.
7848 (iwmmxt_tandc<mode>3): Likewise.
7849 (iwmmxt_torc<mode>3): Likewise.
7850 (iwmmxt_torvsc<mode>3): Likewise.
7851 (iwmmxt_textrc<mode>3): Likewise.
7852 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
7853 (wmmxt_pack): Likewise.
7854 (wmmxt_mult_c1): Likewise.
7855 (wmmxt_mult_c2): Likewise.
7856 (wmmxt_alu_c1): Likewise.
7857 (wmmxt_alu_c2): Likewise.
7858 (wmmxt_alu_c3): Likewise.
7859 (wmmxt_transfer_c1): Likewise.
7860 (wmmxt_transfer_c2): Likewise.
7861 (wmmxt_transfer_c3): Likewise.
7862 (marvell_f_iwmmxt_wstr): Likewise.
7863 (marvell_f_iwmmxt_wldr): Likewise.
7864
bdb7bf8a
YZ
78652013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
7866
0ba6aff3 7867 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 7868
e6631d38
VM
78692013-06-28 Vladimir Makarov <vmakarov@redhat.com>
7870
7871 Revert:
7872 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
7873 * lra-constraints.c (need_for_split_p): Check call used hard regs
7874 living through calls.
7875
7876 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
7877 call used regs for call insn.
7878
53c1275b
JJ
78792013-06-28 Jakub Jelinek <jakub@redhat.com>
7880
7881 PR target/57736
0ba6aff3
UB
7882 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
7883 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 7884
1141ed3f
BI
78852013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
7886
7887 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 7888
e32e4c4a
VM
78892013-06-28 Vladimir Makarov <vmakarov@redhat.com>
7890
7891 * lra-constraints.c (need_for_split_p): Check call used hard regs
7892 living through calls.
7893
f161bfd3
MM
78942013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7895
7896 PR target/57744
7897 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
7898 to tie with any other modes. Eliminate Altivec vector mode tests,
7899 since these are a subset of ALTIVEC or VSX vector modes. Simplify
7900 code, to return 0 if testing MODE2 for a condition, if we've
7901 already tested MODE1 for the same condition.
7902
7eda14e1
MS
79032013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
7904
7905 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
7906 layout.
7907
c822f852
MS
79082013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
7909
7910 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
7911 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
7912
da4f13a4
MS
79132013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
7914
0ba6aff3
UB
7915 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
7916 Define.
da4f13a4
MS
7917 (aarch64_symbolic_constant_p): Remove.
7918 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
7919 static. Fix line length and white space.
7920 (aarch64_symbolic_constant_p): Remove.
7921 * config/aarch64/predicates.md (aarch64_valid_symref):
7922 Use aarch64_classify_symbol_expression.
7923
956a95a5
KT
79242013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7925
7926 * config/arm/constraints.md (Ts): New constraint.
7927 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
7928 16-bit encodings.
7929 (compare_scc): Use "Ts" constraint for operand 0.
7930 (ior_scc_scc): Likewise.
7931 (and_scc_scc): Likewise.
7932 (and_scc_scc_nodom): Likewise.
7933 (ior_scc_scc_cmp): Likewise for operand 7.
7934 (and_scc_scc_cmp): Likewise.
7935 * config/arm/thumb2.md (thumb2_movsi_insn):
7936 Add alternatives for 16-bit encodings.
7937 (thumb2_movhi_insn): Likewise.
7938 (thumb2_movsicc_insn): Likewise.
7939 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
7940 (thumb2_negscc): Use "Ts" constraint.
7941 Move mvn instruction outside cond_exec block.
7942 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
7943 for 16-bit encodings.
7944
31dfce10
KT
79452013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7946
7947 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
7948 encoding.
7949 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
7950 (mulsi3subsi): Likewise.
7951 (mulsidi3adddi): Likewise.
7952 (mulsidi3_v6): Likewise.
7953 (umulsidi3_v6): Likewise.
7954 (umulsidi3adddi_v6): Likewise.
7955 (smulsi3_highpart_v6): Likewise.
7956 (umulsi3_highpart_v6): Likewise.
7957 (mulhisi3tb): Likewise.
7958 (mulhisi3bt): Likewise.
7959 (mulhisi3tt): Likewise.
7960 (maddhisi4): Likewise.
7961 (maddhisi4tb): Likewise.
7962 (maddhisi4tt): Likewise.
7963 (maddhidi4): Likewise.
7964 (maddhidi4tb): Likewise.
7965 (maddhidi4tt): Likewise.
7966 (zeroextractsi_compare0_scratch): Likewise.
7967 (insv_zero): Likewise.
7968 (insv_t2): Likewise.
7969 (anddi_notzesidi_di): Likewise.
7970 (anddi_notsesidi_di): Likewise.
7971 (andsi_notsi_si): Likewise.
7972 (iordi_zesidi_di): Likewise.
7973 (xordi_zesidi_di): Likewise.
7974 (andsi_iorsi3_notsi): Likewise.
7975 (smax_0): Likewise.
7976 (smax_m1): Likewise.
7977 (smin_0): Likewise.
7978 (not_shiftsi): Likewise.
7979 (unaligned_loadsi): Likewise.
7980 (unaligned_loadhis): Likewise.
7981 (unaligned_loadhiu): Likewise.
7982 (unaligned_storesi): Likewise.
7983 (unaligned_storehi): Likewise.
7984 (extv_reg): Likewise.
7985 (extzv_t2): Likewise.
7986 (divsi3): Likewise.
7987 (udivsi3): Likewise.
7988 (arm_zero_extendhisi2addsi): Likewise.
7989 (arm_zero_extendqisi2addsi): Likewise.
7990 (compareqi_eq0): Likewise.
7991 (arm_extendhisi2_v6): Likewise.
7992 (arm_extendqisi2addsi): Likewise.
7993 (arm_movt): Likewise.
7994 (thumb2_ldrd): Likewise.
7995 (thumb2_ldrd_base): Likewise.
7996 (thumb2_ldrd_base_neg): Likewise.
7997 (thumb2_strd): Likewise.
7998 (thumb2_strd_base): Likewise.
7999 (thumb2_strd_base_neg): Likewise.
8000 (arm_negsi2): Add alternative for 16-bit encoding.
8001 (arm_one_cmplsi2): Likewise.
8002
1572e697
KT
80032013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8004
8005 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
8006 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
8007 (movdfcc): Likewise.
8008 * config/arm/vfp.md (*thumb2_movsf_vfp):
8009 Disable predication for arm_restrict_it.
8010 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
8011 (*thumb2_movdfcc_vfp): Likewise.
8012 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
8013 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
8014 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
8015 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
8016 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
8017 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
8018 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
8019 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
8020 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
8021 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
8022 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
8023 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
8024 Disable predication for arm_restrict_it.
8025
ebf8f0ea
KY
80262013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
8027
8028 * config/i386/bmiintrin.h (_bextr_u32): New.
8029 (_bextr_u64): Ditto.
8030
a290fcda
RS
80312013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
8032
8033 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
8034 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
8035 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
8036 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
8037 * config/mips/n32-elf.h: ...this new file.
8038
ea169996
MG
80392013-06-27 Marc Glisse <marc.glisse@inria.fr>
8040
8041 PR target/57224
8042 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
8043 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
8044
12211b99 80452013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
8046
8047 * config/mips/mips-tables.opt: Regenerate.
8048 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 8049 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 8050 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 8051
2444244e
JJ
80522013-06-27 Jakub Jelinek <jakub@redhat.com>
8053
cd06d2a2
JJ
8054 PR target/57623
8055 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
8056 constraints of operand 1 and 2.
8057
2444244e
JJ
8058 PR target/57623
8059 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
8060 to match RTL canonicalization. Swap predicates and
8061 constraints of operand 1 and 2.
8062
2f259720
VM
80632013-06-27 Vladimir Makarov <vmakarov@redhat.com>
8064
0ba6aff3
UB
8065 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
8066 Process OP_INOUT regs for splitting too.
2f259720 8067
fef4d2b3
JJ
80682013-06-27 Jakub Jelinek <jakub@redhat.com>
8069
8070 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
8071 decl before the loop, initialize to NULL.
8072 (vectorizable_load): Initialize ptr_incr to NULL.
8073
79ee9826
MJ
80742013-06-27 Martin Jambor <mjambor@suse.cz>
8075
8076 PR lto/57208
8077 * ipa-ref.h (ipa_maybe_record_reference): Declare.
8078 * ipa-ref.c (ipa_maybe_record_reference): New function.
8079 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
8080 * ipa-cp.c (create_specialized_node): Record potential references from
8081 aggvals.
8082 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
8083
e18b4a81
YZ
80842013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8085
8086 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
8087 parameter 'mode' of type 'enum machine_mode mode'; change to pass
8088 'mode' to force_reg.
8089 (aarch64_add_offset): Update calls to aarch64_force_temporary.
8090 (aarch64_expand_mov_immediate): Likewise.
8091
9c023bf0
YZ
80922013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8093
8094 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
8095 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
8096
5a3fe9b6
AK
80972013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8098
8099 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
8100 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8101 (struct machine_function): Add tbegin_p.
8102 (s390_canonicalize_comparison): Fold CC mode compares to
8103 conditional jump if possible.
8104 (s390_emit_jump): Return the emitted jump.
8105 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
8106 Handle CCRAWmode compares.
8107 (s390_option_override): Default to -mhtm if available.
8108 (s390_reg_clobbered_rtx): Handle floating point regs as well.
8109 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
8110 FPRs instead of df_regs_ever_live_p.
8111 (s390_optimize_nonescaping_tx): New function.
8112 (s390_init_frame_layout): Extend clobbered_regs array to cover
8113 FPRs as well.
8114 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
8115 (s390_expand_tbegin): New function.
8116 (enum s390_builtin): New enum definition.
8117 (code_for_builtin): New array definition.
8118 (s390_init_builtins): New function.
8119 (s390_expand_builtin): New function.
8120 (TARGET_INIT_BUILTINS): Define.
8121 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 8122 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
8123 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
8124 (s390_alc_comparison): Likewise.
8125 * config/s390/s390-modes.def: Add CCRAWmode.
8126 * config/s390/s390.h (processor_flags): Add PF_TX.
8127 (TARGET_CPU_HTM): Define macro.
8128 (TARGET_HTM): Define macro.
8129 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
8130 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
8131 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8132 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 8133 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
8134 (TBEGIN_MASK, TBEGINC_MASK): New constants.
8135 ("*cc_to_int"): Move up.
8136 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
8137 constants other than 0.
8138 ("*ccraw_to_int"): New insn and splitter definition.
8139 ("tbegin", "tbegin_nofloat", "tbegin_retry")
8140 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
8141 ("tx_assist"): New expander.
8142 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
8143 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
8144 * config/s390/s390.opt: Add -mhtm option.
8145 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
8146 * config/s390/htmxlintrin.h: New file.
8147 * config/s390/htmintrin.h: New file.
8148 * config/s390/s390intrin.h: New file.
8149 * doc/extend.texi: Document htm builtins.
8150 * config.gcc: Add the new header files to extra_headers.
8151
9e216629
TS
81522013-06-26 Thomas Schwinge <thomas@codesourcery.com>
8153
8154 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 8155 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 8156
fd8c65e7 81572013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8158 Pat Haugen <pthaugen@us.ibm.com>
8159 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
8160
8161 * config/rs6000/power8.md: New.
8162 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
8163 setting for power8 entry.
8164 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
8165 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
8166 test for Power4/Power5 only.
8167 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
8168 support.
8169 (force_new_group): Adjust comment.
8170 * config/rs6000/rs6000.md: Include power8.md.
8171
b24a2ce5
GY
81722013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
8173
8174 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
8175 * config/arm/arm-protos.h (arm_max_conditional_execute): New
8176 declaration.
8177 (tune_params): Update comment.
8178 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
8179 (arm_max_conditional_execute): New function.
8180 (thumb2_final_prescan_insn): Use max_insn_skipped and
8181 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
8182
f6fdeb62
JJ
81832013-06-25 Jakub Jelinek <jakub@redhat.com>
8184
8185 PR tree-optimization/57705
8186 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
8187 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 8188 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
8189 (get_initial_def_for_induction): Handle SSA_NAME IV step.
8190
c13bc3d9
MJ
81912013-06-25 Martin Jambor <mjambor@suse.cz>
8192
8193 PR middle-end/57670
8194 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
8195 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
8196 calls in the dump.
8197 (ipa_note_param_call): Initialize member_ptr flag.
8198 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
8199 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
8200 (ipa_write_indirect_edge_info): Stream member_ptr flag.
8201 (ipa_read_indirect_edge_info): Likewise.
8202
8a845901
RB
82032013-06-25 Richard Biener <rguenther@suse.de>
8204
8205 PR middle-end/56977
8206 * passes.c (init_optimization_passes): Move pass_fold_builtins
8207 and pass_dce earlier with -Og.
8208
33be0bec
EB
82092013-06-25 Eric Botcazou <ebotcazou@adacore.com>
8210
8211 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
8212 <BIT_FIELD_REF>: Remove trailing TAB.
8213 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
8214 remove blank line.
8215
5fe8e757
MJ
82162013-06-24 Martin Jambor <mjambor@suse.cz>
8217
8218 PR tree-optimization/57358
8219 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
8220 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
8221 (ipa_analyze_params_uses): Generate pessimistic info when true.
8222
44a60244
MJ
82232013-06-24 Martin Jambor <mjambor@suse.cz>
8224
8225 PR tree-optimization/57539
8226 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
8227 global.inlined_to of the new node to it. All callers changed.
8228 * ipa-inline-transform.c (clone_inlined_nodes): New variable
8229 inlining_into, pass it to cgraph_clone_node.
8230 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
8231 ipa_free_edge_args_substructures.
8232 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
8233 rdesc linked list. Do not assert rdesc edges have inlined caller.
8234 Assert we have found an rdesc in the rdesc list.
8235
7c5848b8
RB
82362013-06-24 Richard Biener <rguenther@suse.de>
8237
0ba6aff3 8238 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
8239 (pointer_set_lookup): Declare.
8240 (class pointer_map): New template class implementing a
8241 generic pointer to T map.
8242 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
8243 pointer_map<T>::contains, pointer_map<T>::insert,
8244 pointer_map<T>::traverse): New functions.
8245 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
8246 (pointer_set_lookup): New function.
8247 (pointer_set_contains): Use pointer_set_lookup.
8248 (pointer_set_insert): Likewise.
8249 (insert_aux): Remove.
8250 (struct pointer_map_t): Embed a pointer_set_t.
8251 (pointer_map_create): Adjust.
8252 (pointer_map_destroy): Likewise.
8253 (pointer_map_contains): Likewise.
8254 (pointer_map_insert): Likewise.
8255 (pointer_map_traverse): Likewise.
8256 * tree-streamer.h (struct streamer_tree_cache_d): Use a
8257 pointer_map<unsigned> instead of a pointer_map_t.
8258 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
8259 (streamer_tree_cache_lookup): Likewise.
8260 (streamer_tree_cache_create): Likewise.
8261 (streamer_tree_cache_delete): Likewise.
8262 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
8263 pointer_map<unsigned> instead of a pointer_map_t.
8264 (lto_init_tree_ref_encoder): Adjust.
8265 (lto_destroy_tree_ref_encoder): Likewise.
8266 * lto-section-out.c (lto_output_decl_index): Likewise.
8267 (lto_record_function_out_decl_state): Likewise.
8268 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
8269
3dbc97a9
RB
82702013-06-24 Richard Biener <rguenther@suse.de>
8271
8272 PR tree-optimization/57488
8273 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
8274
8345965a
AM
82752013-06-24 Alan Modra <amodra@gmail.com>
8276
8277 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
8278 (gen_easy_altivec_constant): Likewise.
8279 * config/rs6000/predicates.md (easy_vector_constant_add_self,
8280 easy_vector_constant_msb): Likewise.
8281
b7df379f
JJ
82822013-06-23 Jakub Jelinek <jakub@redhat.com>
8283
8284 PR target/57688
8285 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
8286 add missing return true.
8287
12211b99 82882013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
8289
8290 PR target/52483
8291 * config/sh/predicates.md (general_extend_operand): Invoke
8292 general_movsrc_operand for memory operands.
8293 (general_movsrc_operand): Allow reg+reg addressing, do not use
8294 general_operand for memory operands.
8295
97db2bf7
ST
82962013-06-23 Sriraman Tallam <tmsriram@google.com>
8297
8298 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
8299 when current target options does not apply.
8300 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
8301 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
8302 * config/i386/bmiintrin.h: Pass appropriate target
8303 attributes to header.
97db2bf7
ST
8304 * config/i386/mmintrin.h: Ditto.
8305 * config/i386/nmmintrin.h: Ditto.
8306 * config/i386/avx2intrin.h: Ditto.
8307 * config/i386/fxsrintrin.h: Ditto.
8308 * config/i386/tbmintrin.h: Ditto.
8309 * config/i386/xsaveintrin.h: Ditto.
8310 * config/i386/f16cintrin.h: Ditto.
8311 * config/i386/xtestintrin.h: Ditto.
8312 * config/i386/xsaveoptintrin.h: Ditto.
8313 * config/i386/bmi2intrin.h: Ditto.
8314 * config/i386/lzcntintrin.h: Ditto.
8315 * config/i386/smmintrin.h: Ditto.
8316 * config/i386/wmmintrin.h: Ditto.
8317 * config/i386/x86intrin.h: Remove all header include guards.
8318 * config/i386/prfchwintrin.h: Ditto.
8319 * config/i386/pmmintrin.h: Ditto.
8320 * config/i386/tmmintrin.h: Ditto.
8321 * config/i386/xmmintrin.h: Ditto.
8322 * config/i386/popcntintrin.h: Ditto.
8323 * config/i386/rdseedintrin.h: Ditto.
8324 * config/i386/ammintrin.h: Ditto.
8325 * config/i386/emmintrin.h: Ditto.
8326 * config/i386/immintrin.h: Remove all header include guards.
8327 * config/i386/fma4intrin.h: Ditto.
8328 * config/i386/lwpintrin.h: Ditto.
8329 * config/i386/xopintrin.h: Ditto.
8330 * config/i386/ia32intrin.h: Ditto.
8331 * config/i386/avxintrin.h: Ditto.
8332 * config/i386/rtmintrin.h: Ditto.
8333 * config/i386/fmaintrin.h: Ditto.
8334 * config/i386/mm3dnow.h: Ditto.
8335
495e6879
ST
83362013-06-22 Sriraman Tallam <tmsriram@google.com>
8337
8338 * common/config/i386/i386-common.c: Handle LZCNT.
8339
11e8f687
AK
83402013-06-22 Andi Kleen <ak@linux.intel.com>
8341
8342 * doc/extend.texi: Use __atomic_store_n instead of
8343 __atomic_store in HLE example.
8344
12211b99 83452013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
8346
8347 * config/sh/sh.c: Remove <cstdlib> workaround.
8348
927f908b
AK
83492013-06-21 Andi Kleen <ak@linux.intel.com>
8350
0ba6aff3 8351 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 8352
cca410b6
AK
83532013-06-21 Andi Kleen <ak@linux.intel.com>
8354
8355 * doc/extend.texi: Document that __atomic_clear and
8356 __atomic_test_and_set should only be used with bool.
8357
d84db1ed
JH
83582013-06-20 Jan Hubicka <jh@suse.cz>
8359
8360 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
8361 types_same_for_odr.
8362 * tree.c (decls_same_for_odr): New function.
8363 (same_for_edr): New function.
8364 (types_same_for_odr): New function.
8365 (get_binfo_at_offset): Use it.
8366 * tree.h (types_same_for_odr): Declare.
8367
12211b99 83682013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
8369 Jason Merrill <jason@redhat.com>
8370
8371 * system.h: Include <cstdlib> as well as <stdlib.h>.
8372
49b4ff63
UB
83732013-06-20 Uros Bizjak <ubizjak@gmail.com>
8374
8375 PR target/57655
8376 * config/i386/i386.c (construct_container): Report error if
8377 long double is used with disabled x87 float returns.
8378
7a89ad00
JH
83792013-06-20 Jan Hubicka <jh@suse.cz>
8380
8381 * lto-cgraph.c (input_symtab): Do not set cgraph state.
8382
12211b99 83832013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
8384
8385 PR rtl-optimization/57425
8386 PR rtl-optimization/57569
8387 * alias.c (write_dependence_p): Remove parameters mem_mode and
8388 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
8389 Changed all callers.
8390 (canon_anti_dependence): Get comments and semantics in sync.
8391 Add parameter mem_canonicalized. Changed all callers.
8392 * rtl.h (canon_anti_dependence): Update prototype.
8393
d16e9a99
RB
83942013-06-20 Richard Biener <rguenther@suse.de>
8395
8396 * data-streamer-in.c (streamer_read_uhwi): Optimize single
8397 byte case, inline streamer_read_uchar and defer section
8398 overrun check.
8399
c3a9b91b
RB
84002013-06-20 Richard Biener <rguenther@suse.de>
8401
8402 PR tree-optimization/57584
8403 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
8404 SSA names into the expanded expression that take part in
8405 abnormal coalescing.
8406
371e77e3 84072013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
8408
8409 * gcov.c (print_usage): Handle new option.
8410 (process_args): Ditto.
8411 (get_gcov_intermediate_filename): New function.
8412 (output_intermediate_file): New function.
8413 (output_gcov_file): New function
8414 (generate_results): Handle new option.
8415 (release_function): Relase demangled name.
8416 (read_graph_file): Handle demangled name.
8417 (output_lines): Ditto.
8418 * doc/gcov.texi: Document gcov intermediate format.
8419
11f5b71a
VM
84202013-06-19 Vladimir Makarov <vmakarov@redhat.com>
8421
8422 PR bootstrap/57604
8423 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
8424 (lra_emit_add): Use the functions. Add comment about Y as an
8425 address segment.
8426
e1f9340b
DE
84272013-06-19 David Edelsohn <dje.gcc@gmail.com>
8428
8429 PR driver/57652
8430 * collect2.c (collect_atexit): New.
8431 (collect_exit): Delete.
8432 (main): Register collect_atexit with atexit.
8433 (collect_wait): Change collect_exit to exit.
8434 (do_wait): Same.
8435 * collect2.h (collect_exit): Delete.
8436 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
8437
e3f9e0ac
WM
84382013-06-19 Wei Mi <wmi@google.com>
8439
8440 PR rtl-optimization/57518
8441 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
8442 if regno is used in paradoxical subreg.
8443 (update_equiv_regs): Check pdx_subregs[regno] before
8444 set a reg to be equivalent with a mem.
8445
a09f1a76
MK
84462013-06-19 Matthias Klose <doko@ubuntu.com>
8447
8448 PR driver/57651
8449 * file-find.h (find_a_file): Add a mode parameter.
8450 * file-find.c (find_a_file): Likewise.
8451 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
8452 with X_OK for the executables.
8453 * collect2.c (main): Call find_a_file with X_OK.
8454
7d18b0ad
SE
84552013-06-19 Steve Ellcey <sellcey@mips.com>
8456
8457 PR target/56942
8458 * config/mips/mips.md (casesi_internal_mips16_<mode>):
8459 Use NEXT_INSN instead of next_real_insn.
8460
6a6dac52
JH
84612013-06-19 Jan Hubicka <jh@suse.cz>
8462
8463 * cgraph.h (const_value_known_p): Replace by ...
8464 (ctor_for_folding): .. this one.
8465 * cgraphunit.c (process_function_and_variable_attributes): Use it.
8466 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
8467 * expr.c (expand_expr_real_1): Likewise.
8468 (string_constant): Likewise.
8469 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
8470 * ipa.c (process_references): Likewise.
8471 (symtab_remove_unreachable_nodes): Likewise.
8472 * ipa-inline-analysis.c (param_change_prob): Likewise.
8473 * gimple-fold.c (canonicalize_constructor_val): Likewise.
8474 (get_base_constructor): Likwise.
8475 * varpool.c (varpool_remove_node): Likewise.
8476 (varpool_remove_initializer): LIkewise.
8477 (dump_varpool_node): LIkwise.
8478 (const_value_known_p): Rewrite to ...
8479 (ctor_for_folding): ... this one.
8480
216c12ab
JJ
84812013-06-19 Jakub Jelinek <jakub@redhat.com>
8482
8483 PR driver/57651
8484 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
8485 PERSONALITY in $PATH derived prefixes.
8486
d53e2f99
JL
84872013-06-19 Jeff Law <law@redhat.com>
8488
ecdbf306
JL
8489 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
8490 in comment.
8491
d53e2f99
JL
8492 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
8493 (simplify_bitwise_binary): Use it to simpify certain binary ops on
8494 booleans.
8495
89e7fc04
SN
84962013-06-19 Sofiane Naci <sofiane.naci@arm.com>
8497
8498 * config/arm/vfp.md: Move VFP instruction classification documentation
8499 to ...
8500 * config/arm/arm.md: ... here. Update instruction classification
8501 documentation.
8502
5e7f6aaa
RE
85032013-06-19 Richard Earnshaw <rearnsha@arm.com>
8504
8505 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
8506 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
8507 pattern. Use more efficient sequences on ARMv5 and Thumb2.
8508
5fdc1e5d
SB
85092013-06-19 Steven Bosscher <steven@gcc.gnu.org>
8510
8511 PR target/57609
8512 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
8513 with NEXT_INSN. Use tablejump_p to check for jump table data
8514 insns.
8515
e952afba
PC
85162013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
8517
8518 PR c++/56544
8519 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
8520 that now in C++ the value is correct per the C++ standards.
8521
3fd0303a
RB
85222013-06-19 Richard Biener <rguenther@suse.de>
8523
8524 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
8525 for global context.
8526
b04e4b08
AK
85272013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8528
8529 Revert:
8530 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8531
8532 PR target/57609
8533 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
8534 with next_active_insn.
8535
bef8491a
ST
85362013-06-18 Sriraman Tallam <tmsriram@google.com>
8537
8538 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
8539 functions are inlined during failures to flag an error.
8540 * tree-inline.c (expand_call_inline): Allow the error to be flagged
8541 in early inline pass.
22fc7d3d 8542
c21b257d
L
85432013-06-18 H.J. Lu <hongjiu.lu@intel.com>
8544
8545 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
8546 in comments.
8547
33255ae3
JB
85482013-06-18 Julian Brown <julian@codesourcery.com>
8549
8550 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
8551 Permit virtual register pre-reload if !strict.
8552 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
8553 change.
8554 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
8555 prototype.
8556 * config/arm/neon.md (movmisalign<mode>): Use
8557 neon_perm_struct_or_reg_operand instead of
8558 neon_struct_or_register_operand.
8559 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
8560 neon_permissive_struct_operand instead of neon_struct_operand.
8561 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
8562 neon_vector_mem_operand.
8563 * config/arm/predicates.md (neon_struct_operand): Adjust call to
8564 neon_vector_mem_operand.
8565 (neon_permissive_struct_operand): New.
8566 (neon_struct_or_register_operand): Rename to...
8567 (neon_perm_struct_or_reg_operand): This. Adjust call to
8568 neon_vector_mem_operand.
8569
d579fcda
RB
85702013-06-18 Richard Biener <rguenther@suse.de>
8571
8572 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
8573 * lto-streamer.h: Include pointer-set.h.
8574 (struct lto_decl_slot): Remove.
8575 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
8576 Remove next_index entry.
8577 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
8578 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
8579 (lto_init_tree_ref_encoder): Adjust.
8580 (lto_destroy_tree_ref_encoder): Likewise.
8581 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
8582 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
8583 (lto_output_decl_index): Adjust.
8584 (lto_new_out_decl_state): Likewise.
8585 (lto_record_function_out_decl_state): Likewise.
8586 * lto-streamer-out.c (copy_function): Likewise.
8587
31ee20ba
RB
85882013-06-18 Richard Biener <rguenther@suse.de>
8589
8590 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
8591 * cgraphunit.c: Include cfgloop.h.
8592 (init_lowered_empty_function): Initialize the loop tree.
8593 (assemble_thunk): Insert new BBs into loops.
8594
ac0511f2
RB
85952013-06-18 Richard Biener <rguenther@suse.de>
8596
8597 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
8598 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
8599 the map from cache entry to cache index optional.
8600 (streamer_tree_cache_replace_tree): Adjust accordingly.
8601 (streamer_tree_cache_append): Likewise.
8602 (streamer_tree_cache_delete): Likewise.
8603 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
8604 streamer cache map from cache entry to cache index.
8605 * lto-streamer-out.c (create_output_block): Adjust.
8606
09485a08
SN
86072013-06-18 Sofiane Naci <sofiane.naci@arm.com>
8608
22fc7d3d
UB
8609 * config/arm/arm.md (attribute "insn"): Move multiplication and
8610 division attributes to...
09485a08
SN
8611 (attribute "type"): ... here. Remove mult.
8612 (attribute "mul32"): New attribute.
8613 (attribute "mul64"): Add umaal.
8614 (*arm_mulsi3): Update attributes.
8615 (*arm_mulsi3_v6): Likewise.
8616 (*thumb_mulsi3): Likewise.
8617 (*thumb_mulsi3_v6): Likewise.
8618 (*mulsi3_compare0): Likewise.
8619 (*mulsi3_compare0_v6): Likewise.
8620 (*mulsi_compare0_scratch): Likewise.
8621 (*mulsi_compare0_scratch_v6): Likewise.
8622 (*mulsi3addsi): Likewise.
8623 (*mulsi3addsi_v6): Likewise.
8624 (*mulsi3addsi_compare0): Likewise.
8625 (*mulsi3addsi_compare0_v6): Likewise.
8626 (*mulsi3addsi_compare0_scratch): Likewise.
8627 (*mulsi3addsi_compare0_scratch_v6): Likewise.
8628 (*mulsi3subsi): Likewise.
8629 (*mulsidi3adddi): Likewise.
8630 (*mulsi3addsi_v6): Likewise.
8631 (*mulsidi3adddi_v6): Likewise.
8632 (*mulsidi3_nov6): Likewise.
8633 (*mulsidi3_v6): Likewise.
8634 (*umulsidi3_nov6): Likewise.
8635 (*umulsidi3_v6): Likewise.
8636 (*umulsidi3adddi): Likewise.
8637 (*umulsidi3adddi_v6): Likewise.
8638 (*smulsi3_highpart_nov6): Likewise.
8639 (*smulsi3_highpart_v6): Likewise.
8640 (*umulsi3_highpart_nov6): Likewise.
8641 (*umulsi3_highpart_v6): Likewise.
8642 (mulhisi3): Likewise.
8643 (*mulhisi3tb): Likewise.
8644 (*mulhisi3bt): Likewise.
8645 (*mulhisi3tt): Likewise.
8646 (maddhisi4): Likewise.
8647 (*maddhisi4tb): Likewise.
8648 (*maddhisi4tt): Likewise.
8649 (maddhidi4): Likewise.
8650 (*maddhidi4tb): Likewise.
8651 (*maddhidi4tt): Likewise.
8652 (divsi3): Likewise.
8653 (udivsi3): Likewise.
8654 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
8655 (thumb2_mulsi_short_compare0): Likewise.
8656 (thumb2_mulsi_short_compare0_scratch): Likewise.
8657 * config/arm/arm1020e.md (1020mult1): Update attribute change.
8658 (1020mult2): Likewise.
8659 (1020mult3): Likewise.
8660 (1020mult4): Likewise.
8661 (1020mult5): Likewise.
8662 (1020mult6): Likewise.
22fc7d3d
UB
8663 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
8664 change.
09485a08
SN
8665 (cortex_a15_mult64): Likewise.
8666 (cortex_a15_sdiv): Likewise.
8667 (cortex_a15_udiv): Likewise.
8668 * config/arm/arm1026ejs.md (mult1): Update attribute change.
8669 (mult2): Likewise.
8670 (mult3): Likewise.
8671 (mult4): Likewise.
8672 (mult5): Likewise.
8673 (mult6): Likewise.
8674 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
8675 (pj4_ir_div): Likewise.
8676 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
8677 (11_mult2): Likewise.
8678 (11_mult3): Likewise.
8679 (11_mult4): Likewise.
8680 (11_mult5): Likewise.
8681 (11_mult6): Likewise.
8682 (11_mult7): Likewise.
8683 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
8684 (cortex_a8_mla): Likewise.
8685 (cortex_a8_mull): Likewise.
8686 (cortex_a8_smulwy): Likewise.
8687 (cortex_a8_smlald): Likewise.
8688 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
8689 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
8690 (cortex_r4_mul_3): Likewise.
8691 (cortex_r4_mla_4): Likewise.
8692 (cortex_r4_mla_3): Likewise.
8693 (cortex_r4_smlald): Likewise.
8694 (cortex_r4_mull): Likewise.
8695 (cortex_r4_sdiv): Likewise.
8696 (cortex_r4_udiv): Likewise.
8697 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
8698 (cortex_a7_idiv): Likewise.
8699 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
8700 (9_mult2): Likewise.
8701 (9_mult3): Likewise.
8702 (9_mult4): Likewise.
8703 (9_mult5): Likewise.
8704 (9_mult6): Likewise.
8705 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
8706 (cortex_a53_sdiv): Likewise.
8707 (cortex_a53_udiv): Likewise.
8708 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
8709 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
8710 (mp626_mult2): Likewise.
8711 (mp626_mult3): Likewise.
8712 (mp626_mult4): Likewise.
8713 * config/arm/fa526.md (526_mult1): Update attribute change.
8714 (526_mult2): Likewise.
8715 * config/arm/arm-generic.md (mult): Update attribute change.
8716 (mult_ldsched_strongarm): Likewise.
8717 (mult_ldsched): Likewise.
8718 (multi_cycle): Likewise.
8719 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
8720 * config/arm/fa606te.md (606te_mult1): Update attribute change.
8721 (606te_mult2): Likewise.
8722 (606te_mult3): Likewise.
8723 (606te_mult4): Likewise.
8724 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
8725 (cortex_a9_mac16): Likewise.
8726 (cortex_a9_multiply): Likewise.
8727 (cortex_a9_mac): Likewise.
8728 (cortex_a9_multiply_long): Likewise.
8729 * config/arm/fa626te.md (626te_mult1): Update attribute change.
8730 (626te_mult2): Likewise.
8731 (626te_mult3): Likewise.
8732 (626te_mult4): Likewise.
8733
8951f345
RB
87342013-06-18 Richard Biener <rguenther@suse.de>
8735
8736 PR lto/57334
8737 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
8738
d8101d05
AK
87392013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8740
8741 PR target/57609
8742 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
8743 with next_active_insn.
8744
69eff9da
AM
87452013-06-18 Alan Modra <amodra@gmail.com>
8746
8747 * config/rs6000/rs6000.h (enum data_align): New.
8748 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
8749 (DATA_ABI_ALIGNMENT): Define.
8750 (CONSTANT_ALIGNMENT): Correct comment.
8751 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
8752 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
8753
8ed00d76
DM
87542013-06-17 David Malcolm <dmalcolm@redhat.com>
8755
8756 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
8757 ATTRIBUTE_UNUSED marking.
8758
3d33d06b
SN
87592013-06-17 Sofiane Naci <sofiane.naci@arm.com>
8760
8761 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
8762 alternative and update.
8763 (aarch64_dup_lanedi): Delete.
8764 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
8765 * config/aarch64/aarch64-simd-builtins.def: Update.
8766
ee03e71d
RB
87672013-06-17 Richard Biener <rguenther@suse.de>
8768
8769 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
8770 (lto_input_scc): Declare.
8771 (lto_input_tree_1): Likewise.
8772 (struct lto_stats_d): Add num_tree_bodies_output and
8773 num_pickle_refs_output.
8774 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
8775 (lto_read_tree_1): Split out from ...
8776 (lto_read_tree): ... this.
8777 (lto_input_scc): New function.
8778 (lto_input_tree_1): Split out from ...
8779 (lto_input_tree): ... this. Handle LTO_tree_scc.
8780 (lto_data_in_create): Create the streamer cache without hashes.
8781 * lto-streamer-out.c (create_output_block): Create the streamer
8782 cache with hashes when not doing WPA.
8783 (lto_write_tree_1): Split out from ...
8784 (lto_write_tree): ... this.
8785 (get_symbol_initial_value): New function.
8786 (lto_output_tree_1): Split out from ...
8787 (lto_output_tree): ... this. Write trees as series of SCCs
8788 using a DFS walk via DFS_write_tree.
8789 (struct sccs, struct scc_entry): New types.
8790 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
8791 (DFS_write_tree_body): New function.
8792 (DFS_write_tree): Likewise.
8793 (hash_tree): Likewise.
8794 (scc_entry_compare): Likewise.
8795 (hash_scc): Likewise.
8796 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
8797 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
8798 TREE_CHAIN as regular reference.
8799 (streamer_read_integer_cst): Remove.
8800 (streamer_get_pickled_tree): Adjust.
8801 * tree-streamer-out.c (streamer_write_chain): Disable streaming
8802 of DECL_EXTERNALs in BLOCK_VARS for now.
8803 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
8804 reference.
8805 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
8806 Add hash value argument and record that if hashes are recorded
8807 in the cache.
8808 (streamer_tree_cache_insert_1): Adjust.
8809 (streamer_tree_cache_insert): Likewise.
8810 (streamer_tree_cache_insert_at): Rename to ...
8811 (streamer_tree_cache_replace_tree): ... this and adjust.
8812 (streamer_tree_cache_append): Adjust.
8813 (record_common_node): Likewise.
8814 (streamer_tree_cache_create): Add argument whether to
8815 record hash values together with trees.
8816 (streamer_tree_cache_delete): Adjust.
8817 * tree-streamer.h (struct streamer_tree_cache_d): Add
8818 vector of hashes.
8819 (streamer_read_integer_cst): Remove.
8820 (streamer_tree_cache_insert): Adjust.
8821 (streamer_tree_cache_append): Likewise.
8822 (streamer_tree_cache_insert_at): Rename to ...
8823 (streamer_tree_cache_replace_tree): ... this and adjust.
8824 (streamer_tree_cache_create): Add argument whether to record hashes.
8825 (streamer_tree_cache_get): Rename to ...
8826 (streamer_tree_cache_get_tree): ... this.
8827 (streamer_tree_cache_get_hash): New function.
8828 * tree.c (cache_integer_cst): New function.
8829 * tree.h (cache_integer_cst): Declare.
8830 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
8831 * lto-symtab.c (lto_varpool_replace_node): Only release
8832 DECL_INITIAL of non-prevailing decls.
8833 * varpool.c (varpool_remove_initializer): Do not release
8834 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
8835
0de86a92
JU
88362013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
8837
8838 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
8839 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
8840 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
8841 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
8842 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
8843 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
8844 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
8845 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
8846 instead of TARGET_64BIT.
8847 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
8848 Require ISA_HAS_<D>DIV.
8849
74240413
RS
88502013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
8851
8852 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
8853 (mips*-*-linux*): Move default with_llsc setting to where other
8854 defaults are set.
8855 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
8856 with_arch block.
8857 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
8858 Likewise. Remove default with_tune setting. Move default float
8859 setting to its own block. Handle with_llsc in the same block as above.
8860
12211b99 88612013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
8862
8863 PR rtl-optimization/57425
8864 PR rtl-optimization/57569
299a5f6a 8865 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
8866 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
8867 Changed all callers.
8868 (canon_anti_dependence): New function.
8869 * cse.c (check_dependence): Use canon_anti_dependence.
8870 * cselib.c (cselib_invalidate_mem): Likewise.
8871 * rtl.h (canon_anti_dependence): Declare.
8872
b259d352
JU
88732013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
8874
8875 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
8876 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
8877 ".set mips3" for 64-bit targets.
8878
4de09b85
DC
88792013-06-15 Dehao Chen <dehao@google.com>
8880
8881 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
8882 * gimple-low.c (gimple_check_call_matching_types): Likewise.
8883 (gimple_check_call_args): Likewise.
8884 * value-prof.c (check_ic_target): Likewise.
8885 * ipa-inline.c (early_inliner): Likewise.
8886 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
8887 * cgraph.c (cgraph_create_edge_1): Likewise.
8888 (cgraph_make_edge_direct): Likewise.
8889
d1aa4a76
MM
88902013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8891
8892 PR target/57615
8893 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
8894 rs6000_output_move_128bit to handle emitting quad memory
8895 operations. Set attribute length to 8 bytes.
8896
12211b99 88972013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
8898
8899 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
8900 New pattern.
8901 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
8902 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
8903 (aarch64_<su>mlsl<mode>): Likewise.
8904
f5273574
MS
89052013-06-14 Mike Stump <mikestump@comcast.net>
8906
8907 * Makefile.in (TARGET_H): Add insn-codes.h.
8908
ef7e7ab2
AM
89092013-06-14 Alan Modra <amodra@gmail.com>
8910
8911 PR middle-end/57134
8912 PR middle-end/57586
8913 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
8914 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
8915 bitfield expansion when EXPAND_MEMORY.
8916 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
8917
135faab6
MM
89182013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
8919
8920 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
8921 test for clearing quad memory on 32-bit later.
8922
948a1fd9
MG
89232013-06-13 Marc Glisse <marc.glisse@inria.fr>
8924
8925 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
8926 (fold_negate_expr): Likewise.
8927 (fold_real_zero_addition_p): Handle vectors.
8928 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
8929
0597fb9c
AM
89302013-06-14 Alan Modra <amodra@gmail.com>
8931
8932 * varasm.c (force_const_mem): Revert 2013-06-07 change.
8933
e5b962d0
JH
89342013-06-13 Jan Hubicka <jh@suse.cz>
8935
8936 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
8937 Local comdats are not externally visible.
8938 * symtab.c (dump_symtab_base): Dump externally visible.
8939 (verify_symtab_base): Verify back links in the symtab hash.
8940
a8355e51
BC
89412013-06-13 Bin Cheng <bin.cheng@arm.com>
8942
8943 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
8944 CONVERT_EXPR as equal nodes.
8945
8f7e6e33
BC
89462013-06-13 Bin Cheng <bin.cheng@arm.com>
8947
22fc7d3d 8948 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 8949
5d418483
MG
89502013-06-13 Marc Glisse <marc.glisse@inria.fr>
8951
8952 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
8953 Generalize to complex and vector.
8954 * tree.c (build_all_ones_cst): New function.
8955 * tree.h (build_all_ones_cst): Declare it.
8956
50751417
AM
89572013-06-13 Alan Modra <amodra@gmail.com>
8958
8959 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
8960 * config/rs6000/rs6000.md (signbittf2): New insn.
8961 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
8962 (abstf2_internal, cmptf_internal2): Likewise.
8963 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
8964
4b02c962 89652013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8966 Pat Haugen <pthaugen@us.ibm.com>
8967 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
8968
8969 * config/rs6000/rs6000.c (emit_load_locked): Add support for
8970 power8 byte, half-word, and quad-word atomic instructions.
8971 (emit_store_conditional): Likewise.
8972 (rs6000_expand_atomic_compare_and_swap): Likewise.
8973 (rs6000_expand_atomic_op): Likewise.
8974
8975 * config/rs6000/sync.md (larx): Add new modes for power8.
8976 (stcx): Likewise.
8977 (AINT): New mode iterator to include TImode as well as normal
8978 integer modes on power8.
8979 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
8980 that VSX registers are not considered. Use AINT mode iterator
8981 instead of INT1 to allow inclusion of quad word atomic operations
8982 on power8.
8983 (load_locked<mode>): Likewise.
8984 (store_conditional<mode>): Likewise.
8985 (atomic_compare_and_swap<mode>): Likewise.
8986 (atomic_exchange<mode>): Likewise.
8987 (atomic_nand<mode>): Likewise.
8988 (atomic_fetch_<fetchop_name><mode>): Likewise.
8989 (atomic_nand_fetch<mode>): Likewise.
8990 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
8991 each type.
8992 (ATOMIC): On power8, add QImode, HImode modes.
8993 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
8994 modes that promote to SImode.
8995 (load_lockedti): Convert TImode arguments to PTImode, so that we
8996 get a guaranteed even/odd register pair.
8997 (load_lockedpti): Likewise.
8998 (store_conditionalti): Likewise.
8999 (store_conditionalpti): Likewise.
9000
9001 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
9002 atomic load/store instructions.
9003 (HSI): Likewise.
9004
710b6cc1
RS
90052013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
9006
9007 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
9008 loads.
9009 (insn_count): New attribute, with most cases extracted from...
9010 (length): ...here. Redefine most cases in terms of insn_count.
9011 (single_insn): Delete.
9012 (can_delay): Use insn_count to check for single instructions.
9013 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
9014 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
9015 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
9016 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
9017 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
9018 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
9019 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
9020 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
9021 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
9022 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
9023 rather than "length".
9024 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
9025 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
9026 Use "insn_count" rather than "length".
9027 * config/mips/mips-dsp.md
9028 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
9029 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
9030 length attributes.
9031
1951f101
MG
90322013-06-12 Marc Glisse <marc.glisse@inria.fr>
9033
9034 PR tree-optimization/57361
9035 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
9036
8b033a8a
SN
90372013-06-12 Sofiane Naci <sofiane.naci@arm.com>
9038
22fc7d3d
UB
9039 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
9040 to split.
8b033a8a
SN
9041 (aarch64_simd_combine<mode>): New instruction expansion.
9042 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
9043 function prototype.
9044 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
9045 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
9046
ca0f62a8
JH
90472013-06-12 Jan Hubicka <jh@suse.cz>
9048
9049 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
9050 decl has when in streaming stage.
9051 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
9052 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
9053
12211b99 90542013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
9055
9056 PR target/57578
9057 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
9058
bfdeda2c
JJ
90592013-06-12 Jakub Jelinek <jakub@redhat.com>
9060
9061 PR tree-optimization/57537
9062 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
9063 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
9064
a4fa02d1
RB
90652013-06-12 Richard Biener <rguenther@suse.de>
9066
9067 * data-streamer.h (streamer_write_char_stream): CSE
9068 obs->current_pointer.
9069 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
9070 streamer_write_char_stream manually and optimize the resulting loop.
9071 (streamer_write_hwi_stream): Likewise.
9072
bbf9ad07
JH
90732013-06-12 Jan Hubicka <jh@suse.cz>
9074
9075 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
9076 * cgraph.h (varpool_create_empty_node): Declare.
9077 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
9078 duplicated nodes.
9079 * symtab.c (symtab_unregister_node): Be lax about missin entries
9080 in node hash.
9081 (symtab_get_node): Update comment.
9082 * varpool.c (varpool_create_empty_node): Break out from ...
9083 (varpool_node_for_decl): ... here.
9084 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
9085
a53f90ad
EB
90862013-06-12 Eric Botcazou <ebotcazou@adacore.com>
9087
9088 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
9089 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
9090 part. Use straight-line flow at the end.
9091 <COMPONENT_REF>: Remove superfluous else.
9092 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
9093
946f9306
JJ
90942013-06-12 Jakub Jelinek <jakub@redhat.com>
9095
9096 PR target/56564
9097 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
9098 target hook even for !TREE_PUBLIC decls. If no resolution info
9099 is available, return false for common and external decls.
9100
a7fca6f0
KP
91012013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9102
9103 * config/rl78/constraints.md (U): New constraint.
9104 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
9105 valloc attribute.
9106
c7d8f446
MM
91072013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9108
9109 PR target/57589
9110 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
9111 to allow returning address to AT_PLATFORM name.
9112
08346abd
JH
91132013-06-11 Jan Hubicka <jh@suse.cz>
9114
9115 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
9116 * cgraph.h (symtab_node_base): Add weakref flag.
9117 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
9118 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
9119 (output_weakrefs): Use weakref flag.
9120 * fold-const.c (simple_operand_p): Handle WEAK.
9121 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
9122 * ipa.c (varpool_externally_visible_p): Drop weakref.
9123 (function_and_variable_visibility): Update comment; fix weakref
9124 sanity checks; do not clear DECL_WEAK on them.
9125 * lto-cgraph.c (lto_output_node): update.
9126 (lto_output_varpool_node): Update.
9127 (input_overwrite_node): Update.
9128 (input_node): Update.
9129 (input_varpool_node): Update.
9130 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
9131 (lto_symtab_merge_symbols): Add sanity check.
9132 (lto_symtab_prevailing_decl): Do not special case weakrefs.
9133 * passes.c (rest_of_decl_compilation): Set static flag, too.
9134 * symtab.c (dump_symtab_base): Dump weakref.
9135 (verify_symtab_base): Sanity check weakrefs.
9136 (symtab_make_decl_local): Remove duplicated code.
9137 (symtab_alias_ultimate_target): Simplify.
9138 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 9139
2e6a2f88
TV
91402013-06-11 Tom de Vries <tom@codesourcery.com>
9141
9142 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
9143 sequence_vect == NULL.
9144
d9af3652
DD
91452013-06-11 DJ Delorie <dj@redhat.com>
9146
9147 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
9148 (rl78_unwind_word_mode): New.
9149
ffa66012
DM
91502013-06-11 David Malcolm <dmalcolm@redhat.com>
9151
9152 * final.c (debug_prefix_maps): Make static.
9153
783f2d35
DM
91542013-06-11 David Malcolm <dmalcolm@redhat.com>
9155
9156 * function.c (initial_trampoline): Remove stray copy.
9157
7af26def
SN
91582013-06-11 Sofiane Naci <sofiane.naci@arm.com>
9159
9160 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
9161
97756c0e
MJ
91622013-06-11 Martin Jambor <mjambor@suse.cz>
9163
9164 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
9165 within bounds at the beginning of the function.
9166
2c7b8bf6
AM
91672013-06-11 Alan Modra <amodra@gmail.com>
9168
9169 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
9170 reporting.
9171 (get_named_section): Don't NULL !DECL_P decl.
9172
77cea46e
IZ
91732013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
9174
9175 * doc/invoke.texi (core-avx2): Document.
9176 (slm): Likewise.
9177 (atom): Updated with MOVBE.
9178
888f0920
RB
91792013-06-11 Richard Biener <rguenther@suse.de>
9180
22fc7d3d 9181 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 9182
6b438d58
AB
91832013-06-11 Anton Blanchard <anton@samba.org>
9184
9185 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
9186 correct shift value in little-endian mode.
9187
3bc66938
JJ
91882013-06-11 Jakub Jelinek <jakub@redhat.com>
9189
9190 PR target/56564
9191 * varasm.c (get_variable_align): Move #endif to the right place.
9192
a5dc7f88
CC
91932013-06-10 Cary Coutant <ccoutant@google.com>
9194
9195 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
9196 for hash so that hash table traversal order is deterministic.
9197
19be72ab 91982013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9199 Pat Haugen <pthaugen@us.ibm.com>
9200 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
9201
9202 * config/rs6000/vector.md (GPR move splitter): Do not split moves
9203 of vectors in GPRS if they are direct moves or quad word load or
9204 store moves.
9205
9206 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
9207 declaration.
9208 (direct_move_p): Likewise.
9209 (quad_load_store_p): Likewise.
9210
9211 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
9212 classes into bins based on the physical register type.
9213 (reg_class_to_reg_type): Likewise.
9214 (IS_STD_REG_TYPE): Likewise.
9215 (IS_FP_VECT_REG_TYPE): Likewise.
9216 (reload_fpr_gpr): Arrays to determine what insn to use if we can
9217 use direct move instructions.
9218 (reload_gpr_vsx): Likewise.
9219 (reload_vsx_gpr): Likewise.
9220 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
9221 information that is a simplification of register classes. Also
9222 precalculate direct move reload helpers.
9223 (direct_move_p): New function to return true if the operation can
9224 be done as a direct move instruciton.
9225 (quad_load_store_p): New function to return true if the operation
9226 is a quad memory operation.
9227 (rs6000_legitimize_address): If quad memory, only allow register
9228 indirect for TImode addresses.
9229 (rs6000_legitimate_address_p): Likewise.
9230 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
9231 (rs6000_reload_register_type): Likewise.
9232 (register_to_reg_type): Return register type.
9233 (rs6000_secondary_reload_simple_move): New helper function for
9234 secondary reload and secondary memory needed to identify anything
9235 that is a simple move, and does not need reloading.
9236 (rs6000_secondary_reload_direct_move): New helper function for
9237 secondary reload to identify cases that can be done with several
9238 instructions via the direct move instructions.
9239 (rs6000_secondary_reload_move): New helper function for secondary
9240 reload to identify moves between register types that can be done.
9241 (rs6000_secondary_reload): Add support for quad memory operations
9242 and for direct move.
9243 (rs6000_secondary_memory_needed): Likewise.
9244 (rs6000_debug_secondary_memory_needed): Change argument names.
9245 (rs6000_output_move_128bit): New function to return the move to
9246 use for 128-bit moves, including knowing about the various
9247 limitations of quad memory operations.
9248
9249 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
9250 memory operations. call rs6000_output_move_128bit for the actual
9251 instruciton(s) to generate.
9252 (vsx_movti_64bit): Likewise.
9253
9254 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
9255 (UNSPEC_P8V_MTVSRWZ): Likewise.
9256 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
9257 (UNSPEC_P8V_MTVSRD): Likewise.
9258 (UNSPEC_P8V_XXPERMDI): Likewise.
9259 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
9260 (UNSPEC_FUSION_GPR): Likewise.
9261 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 9262 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
9263 (f32_sv): Likewise.
9264 (f32_dm): Likewise.
9265 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
9266 loads and direct move instructions.
9267 (zero_extendsidi2_lfiwzx): Likewise.
9268 (extendsidi2_lfiwax): Likewise.
9269 (extendsidi2_nocell): Likewise.
9270 (floatsi<mode>2_lfiwax): Likewise.
9271 (lfiwax): Likewise.
9272 (floatunssi<mode>2_lfiwzx): Likewise.
9273 (lfiwzx): Likewise.
9274 (fix_trunc<mode>_stfiwx): Likewise.
9275 (fixuns_trunc<mode>_stfiwx): Likewise.
9276 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
9277 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
9278 (parity<mode>2_cmpb): Set length/type attr.
9279 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
9280 for 'mr.' to fast_compare.
9281 (bpermd_<mode>): Change type attr to popcnt.
9282 (p8_fmrgow_<mode>): New insns for power8 direct move support.
9283 (p8_mtvsrwz_1): Likewise.
9284 (p8_mtvsrwz_2): Likewise.
9285 (reload_fpr_from_gpr<mode>): Likewise.
9286 (p8_mtvsrd_1): Likewise.
9287 (p8_mtvsrd_2): Likewise.
9288 (p8_xxpermdi_<mode>): Likewise.
9289 (reload_vsx_from_gpr<mode>): Likewise.
9290 (reload_vsx_from_gprsf): Likewise.
9291 (p8_mfvsrd_3_<mode>): LIkewise.
9292 (reload_gpr_from_vsx<mode>): Likewise.
9293 (reload_gpr_from_vsxsf): Likewise.
9294 (p8_mfvsrd_4_disf): Likewise.
9295 (multi-word GPR splits): Do not split direct moves or quad memory
9296 operations.
9297
16876bdc
DM
92982013-06-10 David Malcolm <dmalcolm@redhat.com>
9299
9300 * tree-into-ssa.c (interesting_blocks): Make static.
9301
df8a1d28
JJ
93022013-06-10 Jakub Jelinek <jakub@redhat.com>
9303
9304 PR target/56564
9305 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
9306 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
9307 Use DATA_ABI_ALIGNMENT for that case instead if defined.
9308 (get_variable_align): New function.
9309 (get_variable_section, emit_bss, emit_common,
9310 assemble_variable_contents, place_block_symbol): Use
9311 get_variable_align instead of DECL_ALIGN.
9312 (assemble_noswitch_variable): Add align argument, use it
9313 instead of DECL_ALIGN.
9314 (assemble_variable): Adjust caller. Use get_variable_align
9315 instead of DECL_ALIGN.
9316 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
9317 caller.
9318 (DATA_ABI_ALIGNMENT): Define.
9319 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
9320 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
9321 opt is false, only return the psABI mandated alignment increase.
9322 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
9323 (DATA_ABI_ALIGNMENT): ... this.
9324 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
9325 (DATA_ABI_ALIGNMENT): ... this.
9326 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
9327 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
9328 (DATA_ABI_ALIGNMENT): ... this.
9329 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
9330 * doc/tm.texi: Regenerated.
9331
57b29ca6
UB
93322013-06-10 Uros Bizjak <ubizjak@gmail.com>
9333
9334 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
9335 cmp_code to construct REG_EQUAL note.
9336
3e56ed50
JJ
93372013-06-09 Jakub Jelinek <jakub@redhat.com>
9338
9339 PR target/57568
9340 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
9341 that operands[2] doesn't overlap with operands[0].
9342
74fe2a1d
DE
93432013-06-09 David Edelsohn <dje.gcc@gmail.com>
9344 Jan Hubicka <jh@suse.cz>
9345
9346 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
9347 hack to mark symbols as used.
9348
ed52a84e
VM
93492013-06-08 Vladimir Makarov <vmakarov@redhat.com>
9350
9351 PR rtl-optimization/57559
9352 * lra-constraints.c (process_alt_operands): Don't discourage
9353 memory with known offset for offsetable memory constraint.
9354 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
9355
299316ed
EB
93562013-06-08 Eric Botcazou <ebotcazou@adacore.com>
9357
9358 * varasm.c (struct oc_local_state): Reorder fields.
9359 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
9360 and adjust accordingly.
9361 (output_constructor): Reorder initialization code and adjust call to
9362 output_constructor_bitfield.
9363
88ac60d3
JH
93642013-06-07 Jan Hubicka <jh@suse.cz>
9365
9366 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
9367
4cdce1a8
DM
93682013-06-07 David Malcolm <dmalcolm@redhat.com>
9369
9370 * tree-object-size.c (unknown): Make const.
9371
b5e0425c
AK
93722013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9373
9374 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
9375 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
9376 for last alternative in the cpu_facility attribute.
9377
79678d04
KT
93782013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9379
9380 PR target/56315
9381 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
9382 (xordi3): Change operand 2 constraint to arm_xordi_operand.
9383 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
9384 * config/arm/constraints.md (Dg): New constraint.
9385 * config/arm/neon.md (xordi3_neon): Remove.
9386 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
9387 * config/arm/predicates.md (arm_xordi_operand): New predicate.
9388
b31ddbdb
KT
93892013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9390
9391 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
9392 Clean up alternatives.
9393
8f90b7d4
AM
93942013-06-07 Alan Modra <amodra@gmail.com>
9395
9396 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
9397 va_list_gpr_size.
9398
961ce119
AM
93992013-06-07 Alan Modra <amodra@gmail.com>
9400
9401 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
9402
33e49835
KT
94032013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9404
9405 * config/arm/constraints.md (Df): New constraint.
9406 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
9407 Correct length attribute for last two alternatives.
9408
acd17ae6
AM
94092013-06-07 Alan Modra <amodra@gmail.com>
9410
9411 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9412 override user -mfp-in-toc.
9413 (offsettable_ok_by_alignment): Consider just the current access
9414 rather than the whole object, unless BLKmode. Handle
9415 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
9416 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
9417 for -mcmodel=medium.
9418 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
9419 override user -mfp-in-toc or -msum-in-toc. Default to
9420 -mno-fp-in-toc for -mcmodel=medium.
9421
73310b0e
DD
94222013-06-06 DJ Delorie <dj@redhat.com>
9423
9424 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
9425 TARGET_VALID_POINTER_MODE.
9426
0bd62dca 94272013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9428 Pat Haugen <pthaugen@us.ibm.com>
9429 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
9430
9431 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9432 Document new power8 builtins.
9433
9434 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
9435 condition code register, to allow 128-bit logical operations to be
9436 done in the VSX or GPR registers.
9437 (nor<mode>3): Use the canonical form for nor.
9438 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
9439 vclz*, and vpopcnt* vector instructions.
9440 (nand<mode>3): Likewise.
9441 (orc<mode>3): Likewise.
9442 (clz<mode>2): LIkewise.
9443 (popcount<mode>2): Likewise.
9444
9445 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
9446 that only the GPRs are recognized.
9447
9448 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9449 support for new power8 builtins.
9450
9451 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
9452 builtin functions.
9453 (xscvdpspn): Likewise.
9454 (vclz): Likewise.
9455 (vclzb): Likewise.
9456 (vclzh): Likewise.
9457 (vclzw): Likewise.
9458 (vclzd): Likewise.
9459 (vpopcnt): Likewise.
9460 (vpopcntb): Likewise.
9461 (vpopcnth): Likewise.
9462 (vpopcntw): Likewise.
9463 (vpopcntd): Likewise.
9464 (vgbbd): Likewise.
9465 (vmrgew): Likewise.
9466 (vmrgow): Likewise.
9467 (eqv): Likewise.
9468 (eqv_v16qi3): Likewise.
9469 (eqv_v8hi3): Likewise.
9470 (eqv_v4si3): Likewise.
9471 (eqv_v2di3): Likewise.
9472 (eqv_v4sf3): Likewise.
9473 (eqv_v2df3): Likewise.
9474 (nand): Likewise.
9475 (nand_v16qi3): Likewise.
9476 (nand_v8hi3): Likewise.
9477 (nand_v4si3): Likewise.
9478 (nand_v2di3): Likewise.
9479 (nand_v4sf3): Likewise.
9480 (nand_v2df3): Likewise.
9481 (orc): Likewise.
9482 (orc_v16qi3): Likewise.
9483 (orc_v8hi3): Likewise.
9484 (orc_v4si3): Likewise.
9485 (orc_v2di3): Likewise.
9486 (orc_v4sf3): Likewise.
9487 (orc_v2df3): Likewise.
9488
9489 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
9490 allow power8 quad mode in 64-bit.
9491 (rs6000_builtin_vectorized_function): Add support to vectorize
9492 ISA 2.07 count leading zeros, population count builtins.
9493 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
9494 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
9495 (builtin_function_type): Add vgbbd builtin function which takes an
9496 unsigned argument.
9497 (altivec_expand_vec_perm_const): Add support for new power8 merge
9498 instructions.
9499
9500 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
9501 that does not include TImdoe for use with 32-bit.
9502 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
9503 instructions.
9504 (UNSPEC_VSX_CVDPSPN): Likewise.
9505 (vsx_xscvdpspn): Likewise.
9506 (vsx_xscvspdpn): Likewise.
9507 (vsx_xscvdpspn_scalar): Likewise.
9508 (vsx_xscvspdpn_directmove): Likewise.
9509 (vsx_and<mode>3): Split logical operations into 32-bit and
9510 64-bit. Add support to do logical operations on TImode as well as
9511 VSX vector types. Allow logical operations to be done in either
9512 VSX registers or in general purpose registers in 64-bit mode. Add
9513 splitters if GPRs were used. For AND, add clobber of CCmode to
9514 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
9515 encoding.
9516 (vsx_and<mode>3_32bit): Likewise.
9517 (vsx_and<mode>3_64bit): Likewise.
9518 (vsx_ior<mode>3): Likewise.
9519 (vsx_ior<mode>3_32bit): Likewise.
9520 (vsx_ior<mode>3_64bit): Likewise.
9521 (vsx_xor<mode>3): Likewise.
9522 (vsx_xor<mode>3_32bit): Likewise.
9523 (vsx_xor<mode>3_64bit): Likewise.
9524 (vsx_one_cmpl<mode>2): Likewise.
9525 (vsx_one_cmpl<mode>2_32bit): Likewise.
9526 (vsx_one_cmpl<mode>2_64bit): Likewise.
9527 (vsx_nor<mode>3): Likewise.
9528 (vsx_nor<mode>3_32bit): Likewise.
9529 (vsx_nor<mode>3_64bit): Likewise.
9530 (vsx_andc<mode>3): Likewise.
9531 (vsx_andc<mode>3_32bit): Likewise.
9532 (vsx_andc<mode>3_64bit): Likewise.
9533 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
9534 and xxlorc instructions.
9535 (vsx_eqv<mode>3_64bit): Likewise.
9536 (vsx_nand<mode>3_32bit): Likewise.
9537 (vsx_nand<mode>3_64bit): Likewise.
9538 (vsx_orc<mode>3_32bit): Likewise.
9539 (vsx_orc<mode>3_64bit): Likewise.
9540
9541 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
9542
9543 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
9544 instruction.
9545 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
9546 (p8_vmrgow): Likewise.
9547 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
9548 GPRs to be split under VSX.
9549 (p8v_clz<mode>2): Add power8 count leading zero support.
9550 (p8v_popcount<mode>2): Add power8 population count support.
9551 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
9552 support.
9553
9554 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
9555 instruction.
9556
9557 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
9558 builtin functions.
9559 (vec_nand): Likewise.
9560 (vec_vclz): Likewise.
9561 (vec_vclzb): Likewise.
9562 (vec_vclzd): Likewise.
9563 (vec_vclzh): Likewise.
9564 (vec_vclzw): Likewise.
9565 (vec_vgbbd): Likewise.
9566 (vec_vmrgew): Likewise.
9567 (vec_vmrgow): Likewise.
9568 (vec_vpopcnt): Likewise.
9569 (vec_vpopcntb): Likewise.
9570 (vec_vpopcntd): Likewise.
9571 (vec_vpopcnth): Likewise.
9572 (vec_vpopcntw): Likewise.
9573
37684c46
VM
95742013-06-06 Vladimir Makarov <vmakarov@redhat.com>
9575
9576 PR rtl-optimization/57468
9577 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
9578 spilled pseudos.
9579
d89ae27c
VM
95802013-06-06 Vladimir Makarov <vmakarov@redhat.com>
9581
9582 PR rtl-optimization/57459
9583 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
9584 type when setting live regs.
9585
3597e113
VM
95862013-06-06 Vladimir Makarov <vmakarov@redhat.com>
9587
9588 * config/s390/s390.opt (mlra): New option.
9589 * config/s390/s390.c (s390_decompose_address): Check displacement
9590 for all registers for LRA.
9591 (s390_secondary_reload): Don't used secondary reloads for LRA.
9592 (s390_lra_p): New function.
9593 (TARGET_LRA_P): Define.
9594 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
9595 of attribute cpu_facility to zarch for the last alternative.
9596 (*cmpmem_short): Ditto.
9597
01037aeb
EB
95982013-06-06 Eric Botcazou <ebotcazou@adacore.com>
9599
9600 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
9601 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
9602 (arm_expand_prologue): Likewise.
9603
3371a64f
TJ
96042013-06-06 Teresa Johnson <tejohnson@google.com>
9605
9606 PR c++/53743
9607 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
9608 as this is now done by redirect_edge_and_branch_force.
9609 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
9610 barriers, and fix interaction with splitting.
9611 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
9612 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
9613 reflect changes made in the routine.
9614 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
9615 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
9616 since this is called in cfglayout mode, and replace partition fixup
9617 with assert as that is now done by force_nonfallthru_and_redirect.
9618 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
9619 already be marked with region crossing note.
9620 (insert_section_boundary_note): Make non-static, gate on flag
9621 has_bb_partition, rewrite to also check for multiple partitions.
9622 (rest_of_handle_reorder_blocks): Remove call to
9623 insert_section_boundary_note, now done later during free_cfg.
9624 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
9625 * bb-reorder.h (insert_section_boundary_note): Declare.
9626 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
9627 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
9628 invoke insert_section_boundary_note.
9629 (try_redirect_by_replacing_jump): Remove unnecessary
9630 check for region crossing note.
9631 (fixup_partition_crossing): New function.
9632 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
9633 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
9634 in non-cfglayout mode.
9635 (force_nonfallthru_and_redirect): Fixup partition boundaries,
9636 remove old code that tried to do this. Emit barrier correctly
9637 when we are in cfglayout mode.
9638 (last_bb_in_partition): New function.
9639 (rtl_split_edge): Correctly fixup partition boundaries.
9640 (commit_one_edge_insertion): Remove old code that tried to
9641 fixup region crossing edge since this is now handled in
9642 split_block, and set up insertion point correctly since
9643 block may now end in a jump.
9644 (verify_hot_cold_block_grouping): Guard against checking when not in
9645 linearized RTL mode.
9646 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
9647 notes.
9648 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
9649 rtl_verify_flow_info, so not called in cfglayout mode.
9650 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
9651 (fixup_reorder_chain): Remove old code that attempted to fixup region
9652 crossing note as this is now handled in force_nonfallthru_and_redirect.
9653 (duplicate_insn_chain): Don't duplicate switch section notes.
9654 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
9655 note.
9656 * basic-block.h (emit_barrier_after_bb): Declare.
9657
66071e10
KT
96582013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9659
9660 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
9661 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
9662 arm_usatsihi): Adjust alternatives for arm_restrict_it.
9663
0e26bf3d
KT
96642013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9665
9666 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
9667 where appropriate.
9668 * config/arm/ldmstm.md: Regenerate.
9669
12b4e7ef
KT
96702013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9671
9672 * config/arm/sync.md (atomic_loaddi_1):
9673 Disable predication for arm_restrict_it.
9674 (arm_load_exclusive<mode>): Likewise.
9675 (arm_load_exclusivesi): Likewise.
9676 (arm_load_exclusivedi): Likewise.
9677 (arm_load_acquire_exclusive<mode>): Likewise.
9678 (arm_load_acquire_exclusivesi): Likewise.
9679 (arm_load_acquire_exclusivedi): Likewise.
9680 (arm_store_exclusive<mode>): Likewise.
9681 (arm_store_exclusive<mode>): Likewise.
9682 (arm_store_release_exclusivedi): Likewise.
9683 (arm_store_release_exclusive<mode>): Likewise.
9684
15d16c8a
RB
96852013-06-06 Richard Biener <rguenther@suse.de>
9686
9687 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
9688 after LTO_null.
9689 (lto_tag_is_tree_code_p): Adjust.
9690 (lto_tag_is_gimple_code_p): Likewise.
9691 (lto_gimple_code_to_tag): Likewise.
9692 (lto_tag_to_gimple_code): Likewise.
9693 (lto_tree_code_to_tag): Likewise.
9694 (lto_tag_to_tree_code): Likewise.
9695 * data-streamer.h (streamer_write_hwi_in_range): Use
9696 uhwi streaming to stream the normalized range.
9697 (streamer_read_hwi_in_range): Likewise.
9698
17a7fc37
KT
96992013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9700
9701 * config/arm/arm.md (enabled_for_depr_it): New attribute.
9702 (predicable_short_it): Likewise.
9703 (predicated): Likewise.
9704 (enabled): Handle above.
9705 (define_cond_exec): Set predicated attribute to yes.
9706
b57ca59b
MS
97072013-06-05 Mike Stump <mikestump@comcast.net>
9708
9709 * gdbinit.in (__FUNCTION__): Add.
9710
c1e183a9
UB
97112013-06-05 Uros Bizjak <ubizjak@gmail.com>
9712
9713 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
9714 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
9715
0378bddb
JH
97162013-06-05 Jan Hubicka <jh@suse.cz>
9717
9718 * varasm.c (mark_decl_referenced): Revert the removal until targets
9719 are fixed.
9720
8f8a2057
DE
97212013-06-05 David Edelsohn <dje.gcc@gmail.com>
9722
9723 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
9724 instead of mark_decl_referenced.
9725
edb983b2
JH
97262013-06-05 Jan Hubicka <jh@suse.cz>
9727
9728 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
9729 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
9730 and symtab_used_from_object_file_p.
9731 (cgraph_make_node_local_1): Clear forced_by_abi.
9732 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
9733 * cgraph.h (symtab_node_base): Add forced_by_abi.
9734 (decide_is_variable_needed): Remove.
9735 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
9736 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
9737 (decide_is_symbol_needed): ... this one; handle symbols in general;
9738 always analyze virtuals; honnor forced_by_abi.
9739 (cgraph_finalize_function): Update.
9740 (varpool_finalize_decl): Update.
9741 (symbol_defined_and_needed): Remove.
9742 (analyze_functions): Update.
9743 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9744 output_refs, input_overwrite_node): Handle forced_by_abi.
9745 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
9746 (address_taken_from_non_vtable_p): ... this one.
9747 (comdat_can_be_unshared_p_1): New function.
9748 (cgraph_comdat_can_be_unshared_p): Rename to ...
9749 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
9750 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
9751 (function_and_variable_visibility): Clear forced_by_abi as needed.
9752 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
9753 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
9754 * symtab.c (dump_symtab_base): Dump forced_by_abi.
9755 * varpool.c (decide_is_variable_needed): Remove.
9756
9912dbe5
KT
97572013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9758
9759 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
9760 (arm_option_override): Override arm_restrict_it where appropriate.
9761 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
9762 * config/arm/arm.opt (mrestrict-it): New command-line option.
9763 * doc/invoke.texi: Document -mrestrict-it.
9764
34c136b6
DM
97652013-06-05 David Malcolm <dmalcolm@redhat.com>
9766
9767 * tsan.c (tsan_atomic_table): Make const.
9768
a367df53
RB
97692013-06-05 Richard Biener <rguenther@suse.de>
9770
9771 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
9772 index associated with the tree we are supposed to replace.
9773 * tree-streamer-out.c (pack_ts_base_value_fields): Output
9774 TREE_ASM_WRITTEN as zero for everything but SSA names.
9775
70d51a19
DM
97762013-06-05 David Malcolm <dmalcolm@redhat.com>
9777
9778 * tree-ssa-structalias.c (call_stmt_vars): Make static.
9779
b9bd2075
JH
97802013-06-04 Jan Hubicka <jh@suse.cz>
9781
9782 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
9783 (input_node, input_varpool_node): Handle correctly external same
9784 body aliases.
9785 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
9786 nodes at ltrans stage.
9787
aaae719d
JH
97882013-06-04 Jan Hubicka <jh@suse.cz>
9789
9790 * ipa-inline.c (update_caller_keys): Fix availability test.
9791 (update_callee_keys): Likewise.
9792 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
9793 to follow ELF standard.
9794
107eea2c
JU
97952013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
9796
9797 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
9798 (mips64r5900el-*-elf*): New configurations.
9799 * config/mips/mips-cpus.def (r5900): New processor.
9800 * config/mips/mips-tables.opt: Regenerate.
9801 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
9802 (mips_issue_rate): Handle PROCESSOR_R5900.
9803 (mips_reorg_process_insns): Force reorder mode for the R5900.
9804 * config/mips/mips.h (TARGET_MIPS5900): Define.
9805 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
9806 TARGET_MIPS5900.
9807 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
9808 TARGET_MIPS5900.
9809 * config/mips/mips.md (processor): Add r5900.
9810 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
9811
b7342d25
IB
98122013-06-04 Ian Bolton <ian.bolton@arm.com>
9813
9814 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
9815 into function to generate MOVI instruction.
c1e183a9 9816 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
9817 (aarch64_preferred_simd_mode): Turn into wrapper.
9818 (aarch64_output_scalar_simd_mov_immediate): New function.
9819 * config/aarch64/aarch64-protos.h: Add prototype for above.
9820
81c2dfb9
IB
98212013-06-04 Ian Bolton <ian.bolton@arm.com>
9822
9823 * config/aarch64/aarch64.c (simd_immediate_info): Remove
9824 element_char member.
9825 (sizetochar): Return signed char.
9826 (aarch64_simd_valid_immediate): Remove elchar and other
9827 unnecessary variables.
9828 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
9829 Calculate element_char as required.
9830 * config/aarch64/aarch64-protos.h: Update and move prototype
9831 for aarch64_output_simd_mov_immediate.
9832 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
9833 Update arguments.
9834
48063b9d
IB
98352013-06-04 Ian Bolton <ian.bolton@arm.com>
9836
9837 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
9838 information completed by aarch64_simd_valid_immediate.
9839 (aarch64_legitimate_constant_p): Update arguments.
9840 (aarch64_simd_valid_immediate): Work with struct rather than many
9841 pointers.
9842 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
9843 (aarch64_simd_make_constant): Update arguments.
9844 (aarch64_output_simd_mov_immediate): Work with struct rather than
9845 many pointers. Output immediate directly rather than as operand.
9846 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
9847 Update prototype.
9848 * config/aarch64/constraints.md (Dn): Update arguments.
9849
3ea63f60
IB
98502013-06-04 Ian Bolton <ian.bolton@arm.com>
9851
9852 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
9853 longer static.
9854 (aarch64_simd_immediate_valid_for_move): Remove.
9855 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
9856 (aarch64_simd_make_constant): Update call.
9857 (aarch64_output_simd_mov_immediate): Update call.
9858 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
9859 Add prototype.
9860 * config/aarch64/constraints.md (Dn): Update call.
9861
d8edd899
IB
98622013-06-04 Ian Bolton <ian.bolton@arm.com>
9863
9864 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
9865 return type to bool for prototype.
9866 (aarch64_legitimate_constant_p): Check for true instead of not -1.
9867 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
9868 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
9869
44b20bb8
CM
98702013-06-04 Catherine Moore <clm@codesourcery.com>
9871
9872 * config/mips/mips.opt (meva): New.
c1e183a9 9873 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
9874 (ASM_SPEC): Handle -meva.
9875 * doc/invoke.texi (meva): Document.
9876
52befbd8
AM
98772013-06-04 Alan Modra <amodra@gmail.com>
9878
9879 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
9880 constant output.
9881
aadaf24e
KT
98822013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9883
9884 * rtl.def: Add extra fourth optional field to define_cond_exec.
9885 * gensupport.c (process_one_cond_exec): Process attributes from
9886 define_cond_exec.
9887 * doc/md.texi: Document fourth field in define_cond_exec.
9888
0cd9e9ee
EB
98892013-06-04 Eric Botcazou <ebotcazou@adacore.com>
9890
9891 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
9892 out the processing order as in store_bit_field_1.
9893
cb0f665d
JH
98942013-06-04 Jan Hubicka <jh@suse.cz>
9895
9896 PR middle-end/57500
9897 * cgraphunit.c (cgraph_process_same_body_aliases): Create
9898 non-VAR_DECL node if it does not exist yet.
9899
53984b9b
RS
99002013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
9901
9902 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
9903 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
9904 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
9905 target_cpu_default setting.
9906
5d318fd4
TJ
99072013-06-03 Teresa Johnson <tejohnson@google.com>
9908
9909 * dumpfile.c (opt_info_switch_p): Change -fopt-info
9910 default to -fopt-info=optimized instead of all.
9911 * doc/invoke.texi: Ditto.
9912 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
9913 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
9914 (execute_vect_slp): Emit BB vectorization success under
9915 MSG_OPTIMIZED_LOCATIONS.
9916 * tree-vect-slp.c (vect_slp_transform_bb): Change
9917 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
9918 * tree-vect-loop.c (vect_transform_loop): Ditto.
9919
ec3af349
JM
99202013-06-03 Jason Merrill <jason@redhat.com>
9921
9922 PR c++/57415
9923 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9924 Use TARGET_EXPR for C++.
9925
1baf9159
JJ
99262013-06-03 Jakub Jelinek <jakub@redhat.com>
9927
9928 PR rtl-optimization/57268
0cd9e9ee 9929 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
9930 if DEBUG_INSN_P (insn).
9931
9932 Reapply
9933 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
9934
9935 PR rtl-optimization/57268
9936 * sched-deps.c (sched_analyze_2): Flush dependence lists if
9937 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
9938
0f1d3965
YR
99392013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
9940
9941 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
9942 (ix86_avoid_lea_for_addr): Likewise.
9943 (exact_dependency_1): Likewise.
9944 (ix86_adjust_cost): Likewise.
9945 (swap_top_of_ready_list): Fix formatting and !reload_completed check
9946 removed.
9947 (do_reorder_for_imul): Fix typo, formatting and
9948 !reload_completed check removed.
9949 (ix86_sched_reorder): Fix typo and formatting.
9950 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
9951 list.
9952
3bc30db4
SN
99532013-06-03 Sofiane Naci <sofiane.naci@arm.com>
9954
9955 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
9956
19cc6fac
EB
99572013-06-03 Eric Botcazou <ebotcazou@adacore.com>
9958
9959 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
9960 <STRING_CST>: Likewise.
9961 <VECTOR_CST>: Likewise.
9962
c68a6e08
JW
99632013-06-01 Janus Weil <janus@gcc.gnu.org>
9964 Mikael Morin <mikael@gcc.gnu.org>
9965
9966 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
9967 * config.in: Regenerated.
9968 * configure: Regenerated.
9969
38e55e5c
JH
99702013-06-01 Jan Hubicka <jh@suse.cz>
9971
9972 PR middle-end/57366
9973 * cgraphunit.c (compile): When weakref is not supported,
9974 set up transparent aliases before final output pass.
9975 * varasm.c (assemble_alias): Do not try to do it here.
9976
eb51d2ff
JH
99772013-06-01 Jan Hubicka <jh@suse.cz>
9978
9979 PR middle-end/57467
9980 * passes.c (for_per_function): Skip unanalyzed functions.
9981
40a7fe1e
JH
99822013-06-01 Jan Hubicka <jh@suse.cz>
9983
9984 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
9985 (lto_symtab_merge_symbols_1): ... this one.
9986 (lto_symtab_merge_cgraph_nodes): Rename to ...
9987 (lto_symtab_merge_symbols): ... this one; simplify.
9988 * cgraph.c (same_body_aliases_done): Rename to ...
9989 (cpp_implicit_aliases_done): ... this one.
9990 (cgraph_create_function_alias): Update.
9991 (cgraph_same_body_alias): Update.
c1e183a9 9992 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 9993 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 9994 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
9995 (cgraph_node): Remove same_body_alias.
9996 (varpool_node): Remove alias_of and extra_name_alias.
9997 (same_body_aliases_done): Rename to ..
9998 (cpp_implicit_aliases_done): ... this one.
9999 (symtab_alias_ultimate_target): Add default parameter.
10000 (symtab_resolve_alias): New function.
10001 (fixup_same_cpp_alias_visibility): Declare.
10002 (cgraph_function_node): Add default parameter.
10003 (cgraph_node_asm_name): Likewise.
10004 (cgraph_function_or_thunk_node): Add default parameter; do
10005 not ICE when it is NULL.
10006 (varpool_variable_node): Likewise.
10007 * tree-emutls.c (create_emultls_var): Update.
10008 (ipa_lower_emutls): Update.
10009 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
10010 (cgraph_reset_node): Reset alias info.
10011 (cgraph_finalize_function): Update.
10012 (fixup_same_cpp_alias_visibility): Move to symtab.c.
10013 (analyze_function): Simplify.
10014 (cgraph_process_same_body_aliases): Simplify.
10015 (analyze_functions): Fixup same body aliases.
10016 (handle_alias_pairs): Simplify.
10017 (assemble_thunk): Update.
10018 (assemble_thunks_and_aliases): Update.
10019 (output_weakrefs): Rewrite.
10020 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
10021 (lto_output_varpool_node): Likewise.
10022 (compute_ltrans_boundary): Remve assert.
10023 (get_alias_symbol): New functoin.
10024 (input_node): Rewrite alias handling.
10025 (input_varpool_node): Likewise.
10026 * ipa-pure-const.c (propagate_pure_const): Fix formating.
10027 * ipa.c (process_references): Handle weakrefs correctly.
10028 (symtab_remove_unreachable_nodes): Likewise.
10029 * trans-mem.c (get_cg_data): Update.
10030 (ipa_tm_create_version_alias): Update.
10031 (ipa_tm_execute): Update.
10032 * symtab.c (dump_symtab_base): Dump aliases.
10033 (verify_symtab_base): Verify aliases.
10034 (symtab_node_availability): New function.
10035 (symtab_alias_ultimate_target): Simplify.
10036 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
10037 handle all the fixup cases.
10038 (symtab_resolve_alias): New function.
10039 * passes.c (ipa_write_summaries): Handle weakrefs.
10040 * varpool.c (varpool_analyze_node): Simplify.
10041 (assemble_aliases): Update.
10042 (varpool_create_variable_alias): Simplify.
10043 (varpool_extra_name_alias): Simplify.
10044 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
10045 (lto_symtab_merge_symbols): ... this one.
10046
21759881
DT
100472013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
10048
10049 Revert
10050 PR rtl-optimization/57268
10051 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10052 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10053
daf4e940
TB
100542013-06-01 Tobias Burnus <burnus@net-b.de>
10055
10056 Partially reverted:
10057 2013-05-31 Tobias Burnus <burnus@net-b.de>
10058
10059 PR middle-end/57073
10060 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
10061 further up.
10062
c359d8d0
DT
100632013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10064
10065 PR rtl-optimization/57268
10066 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10067 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10068
4172215d
EB
100692013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10070
10071 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
10072 unordered comparison operators when -fno-trapping-math is in effect
10073 on the e500.
10074 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
10075 and implement unordered comparison operators properly on the e500.
10076
a8c50132
EB
100772013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10078
10079 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
10080 for constant scalar integers.
10081 (simplify_relational_operation_1): Likewise.
10082
44626634
SB
100832013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
10084
10085 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
10086 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
10087 Fix comment.
10088
55805e54
YR
100892013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10090 Igor Zamyatin <igor.zamyatin@intel.com>
10091
10092 Silvermont (SLM) architecture performance tuning.
10093 * config/i386/i386.h (enum ix86_tune_indices): Add
10094 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
10095 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
10096
10097 * config/i386/i386.c (initial_ix86_tune_features)
10098 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
10099 (ix86_lea_outperforms): Handle Silvermont tuning.
10100 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
10101 call.
10102 (ix86_use_lea_for_mov): Likewise.
10103 (ix86_avoid_lea_for_addr): Likewise.
10104 (ix86_lea_for_add_ok): Likewise.
10105 (exact_dependency_1): New function.
10106 (exact_store_load_dependency): Likewise.
10107 (ix86_adjust_cost): Handle Silvermont tuning.
10108 (do_reoder_for_imul): Likewise.
10109 (swap_top_of_ready_list): New function.
10110 (ix86_sched_reorder): Changed to handle Silvermont tuning.
10111
10112 * config/i386/i386.md (peepholes that split memory operand in fp
10113 converts): New.
10114
e19c9de2
MS
101152013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10116
10117 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10118 Remove un-necessary braces.
10119
38e6c9a6
MS
101202013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10121
10122 * config/aarch64/aarch64.c (aarch64_classify_symbol):
10123 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
10124
e3530904
TB
101252013-05-31 Tobias Burnus <burnus@net-b.de>
10126
10127 PR middle-end/57073
c1e183a9 10128 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 10129
b6af05a9
KT
101302013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10131
10132 PR target/56315
10133 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
10134 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
10135 * config/arm/neon.md (iordi3_neon): Remove.
10136 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
10137 * config/arm/predicates.md (imm_for_neon_logic_operand):
10138 Move to earlier in the file.
10139 (neon_logic_op2): Likewise.
10140 (arm_iordi_operand_neon): New predicate.
10141
f800c166
RB
101422013-05-31 Richard Biener <rguenther@suse.de>
10143
10144 PR tree-optimization/57478
10145 PR tree-optimization/57453
10146 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
10147 are life as well.
10148
e571fa59
KP
101492013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10150
10151 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
10152 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
10153
0fa6e0ef
TB
101542013-05-30 Tobias Burnus <burnus@net-b.de>
10155 Thomas Koenig <tkoenig@gcc.gnu.org>
10156
10157 PR middle-end/57073
10158 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
10159 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
10160
4688ddf5
SB
101612013-05-30 Steven Bosscher <steven@gcc.gnu.org>
10162
0fa6e0ef 10163 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 10164
3b9ceb4b
VM
101652013-05-30 Vladimir Makarov <vmakarov@redhat.com>
10166
10167 * target.def (register_usage_leveling_p): New hook.
10168 * targhooks.c (default_register_usage_leveling_p): New.
10169 * targhooks.h (default_register_usage_leveling_p): New prototype.
10170 * lra-assigns.c (register_usage_leveling_p): Use the hook.
10171 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
10172 * doc/tm.texi: Update.
10173 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
10174
65f9e789
IB
101752013-05-30 Ian Bolton <ian.bolton@arm.com>
10176
10177 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
10178 (*insv_reg<mode>): New define_insn.
10179
12211b99 101802013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
10181
10182 PR rtl-optimization/57439
10183 * postreload.c (move2add_valid_value_p): Check that we have
10184 a zero subreg_regno_offset when accessing the register in
10185 the requested mode.
10186
0b871ccf
YR
101872013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10188 Igor Zamyatin <igor.zamyatin@intel.com>
10189
10190 Silvermont (SLM) architecture pipeline model, tuning and
10191 insn selection.
10192 * config.gcc: Add slm config options and target.
10193
10194 * config/i386/slm.md: New.
10195
10196 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
10197
f43245d1 10198 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
10199 PROCESSOR_SLM.
10200 (ix86_target_macros_internal): Likewise.
10201
f43245d1 10202 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
10203 (m_SLM): New macro flag.
10204 (initial_ix86_tune_features): Set m_SLM.
10205 (x86_accumulate_outgoing_args): Likewise.
10206 (x86_arch_always_fancy_math_387): Likewise.
10207 (processor_target_table): Add slm cost.
10208 (cpu_names): Add slm cpu name.
10209 (x86_option_override_internal): Set SLM ISA.
10210 (ix86_issue_rate): New case PROCESSOR_SLM.
10211 (ia32_multipass_dfa_lookahead): Likewise.
10212 (fold_builtin_cpu): Add slm.
10213
10214 * config/i386/i386.h (TARGET_SLM): New target macro.
10215 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
10216 (processor_type): Add PROCESSOR_SLM.
10217
10218 * config/i386/i386.md (cpu): Add new value "slm".
10219 (slm.md): Include slm.md.
10220
24d5b097
XG
102212013-05-30 Bernd Schmidt <bernds@codesourcery.com>
10222 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10223
10224 * config/arm/arm-protos.h: Add and update function protos.
10225 * config/arm/arm.c (use_simple_return_p): New added.
10226 (thumb2_expand_return): Check simple_return flag.
10227 * config/arm/arm.md: Add simple_return and conditional simple_return.
10228 * config/arm/iterators.md: Add iterator for return and simple_return.
10229
c1cccc15
ZC
102302013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10231
10232 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
10233 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
10234 (arm_emit_vfp_multi_reg_pop): Likewise.
10235 (thumb2_emit_ldrd_pop): Likewise.
10236 (arm_expand_epilogue): Add misc REG_CFA notes.
10237 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
10238
3a4f280b
LC
102392013-05-29 Lawrence Crowl <crowl@google.com>
10240
10241 * config/arm/t-arm: Update for below.
10242
10243 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
10244 Change type to hash_table. Update dependent calls and types.
10245
10246 * config/i386/t-cygming: Update for below.
10247
10248 * config/i386/t-interix: Update for below.
10249
10250 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
10251 Change type to hash_table. Update dependent calls and types.
10252 (i386_find_on_wrapper_list::wrappers): Likewise.
10253
10254 * config/ia64/t-ia64: Update for below.
10255
10256 * config/ia64/ia64.c (bundle_state_table):
10257 Change type to hash_table. Update dependent calls and types.
10258
10259 * config/mips/mips.c (mips_reorg_process_insns::htab):
10260 Change type to hash_table. Update dependent calls and types.
10261
10262 * config/sol2.c (solaris_comdat_htab):
10263 Change type to hash_table. Update dependent calls and types.
10264
10265 * config/t-sol2: Update for above.
10266
1388a0e3
TJ
102672013-05-29 Teresa Johnson <tejohnson@google.com>
10268
10269 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
10270 functions are not yet marked as defined.
10271
a5965b52 102722013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10273 Pat Haugen <pthaugen@us.ibm.com>
10274 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
10275
10276 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
10277 instructions.
10278 (VEC_A): Likewise.
10279 (VEC_C): Likewise.
10280 (vrotl<mode>3): Likewise.
10281 (vashl<mode>3): Likewise.
10282 (vlshr<mode>3): Likewise.
10283 (vashr<mode>3): Likewise.
10284
10285 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10286 support for power8 V2DI builtins.
10287
10288 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
10289 power8 V2DI builtins.
10290 (vupkhsw): Likewise.
10291 (vupklsw): Likewise.
10292 (vaddudm): Likewise.
10293 (vminsd): Likewise.
10294 (vmaxsd): Likewise.
10295 (vminud): Likewise.
10296 (vmaxud): Likewise.
10297 (vpkudum): Likewise.
10298 (vpksdss): Likewise.
10299 (vpkudus): Likewise.
10300 (vpksdus): Likewise.
10301 (vrld): Likewise.
10302 (vsld): Likewise.
10303 (vsrd): Likewise.
10304 (vsrad): Likewise.
10305 (vsubudm): Likewise.
10306 (vcmpequd): Likewise.
10307 (vcmpgtsd): Likewise.
10308 (vcmpgtud): Likewise.
10309 (vcmpequd_p): Likewise.
10310 (vcmpgtsd_p): Likewise.
10311 (vcmpgtud_p): Likewise.
10312 (vupkhsw): Likewise.
10313 (vupklsw): Likewise.
10314 (vaddudm): Likewise.
10315 (vmaxsd): Likewise.
10316 (vmaxud): Likewise.
10317 (vminsd): Likewise.
10318 (vminud): Likewise.
10319 (vpksdss): Likewise.
10320 (vpksdus): Likewise.
10321 (vpkudum): Likewise.
10322 (vpkudus): Likewise.
10323 (vrld): Likewise.
10324 (vsld): Likewise.
10325 (vsrad): Likewise.
10326 (vsrd): Likewise.
10327 (vsubudm): Likewise.
10328
10329 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10330 support for power8 V2DI instructions.
10331
10332 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
10333 power8 V2DI instructions. Combine pack and unpack insns to use an
10334 iterator for each mode. Check whether a particular mode supports
10335 Altivec instructions instead of just checking TARGET_ALTIVEC.
10336 (UNSPEC_VPKUWUM): Likewise.
10337 (UNSPEC_VPKSHSS): Likewise.
10338 (UNSPEC_VPKSWSS): Likewise.
10339 (UNSPEC_VPKUHUS): Likewise.
10340 (UNSPEC_VPKSHUS): Likewise.
10341 (UNSPEC_VPKUWUS): Likewise.
10342 (UNSPEC_VPKSWUS): Likewise.
10343 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
10344 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
10345 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
10346 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
10347 (UNSPEC_VUPKHSB): Likewise.
10348 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
10349 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
10350 (UNSPEC_VUPKHSH): Likewise.
10351 (UNSPEC_VUPKLSB): Likewise.
10352 (UNSPEC_VUPKLSH): Likewise.
10353 (VI2): Likewise.
10354 (VI_char): Likewise.
10355 (VI_scalar): Likewise.
10356 (VI_unit): Likewise.
10357 (VP): Likewise.
10358 (VP_small): Likewise.
10359 (VP_small_lc): Likewise.
10360 (VU_char): Likewise.
10361 (add<mode>3): Likewise.
10362 (altivec_vaddcuw): Likewise.
10363 (altivec_vaddu<VI_char>s): Likewise.
10364 (altivec_vadds<VI_char>s): Likewise.
10365 (sub<mode>3): Likewise.
10366 (altivec_vsubcuw): Likewise.
10367 (altivec_vsubu<VI_char>s): Likewise.
10368 (altivec_vsubs<VI_char>s): Likewise.
10369 (altivec_vavgs<VI_char>): Likewise.
10370 (altivec_vcmpbfp): Likewise.
10371 (altivec_eq<mode>): Likewise.
10372 (altivec_gt<mode>): Likewise.
10373 (altivec_gtu<mode>): Likewise.
10374 (umax<mode>3): Likewise.
10375 (smax<mode>3): Likewise.
10376 (umin<mode>3): Likewise.
10377 (smin<mode>3): Likewise.
10378 (altivec_vpkuhum): Likewise.
10379 (altivec_vpkuwum): Likewise.
10380 (altivec_vpkshss): Likewise.
10381 (altivec_vpkswss): Likewise.
10382 (altivec_vpkuhus): Likewise.
10383 (altivec_vpkshus): Likewise.
10384 (altivec_vpkuwus): Likewise.
10385 (altivec_vpkswus): Likewise.
10386 (altivec_vpks<VI_char>ss): Likewise.
10387 (altivec_vpks<VI_char>us): Likewise.
10388 (altivec_vpku<VI_char>us): Likewise.
10389 (altivec_vpku<VI_char>um): Likewise.
10390 (altivec_vrl<VI_char>): Likewise.
10391 (altivec_vsl<VI_char>): Likewise.
10392 (altivec_vsr<VI_char>): Likewise.
10393 (altivec_vsra<VI_char>): Likewise.
10394 (altivec_vsldoi_<mode>): Likewise.
10395 (altivec_vupkhsb): Likewise.
10396 (altivec_vupkhs<VU_char>): Likewise.
10397 (altivec_vupkls<VU_char>): Likewise.
10398 (altivec_vupkhsh): Likewise.
10399 (altivec_vupklsb): Likewise.
10400 (altivec_vupklsh): Likewise.
10401 (altivec_vcmpequ<VI_char>_p): Likewise.
10402 (altivec_vcmpgts<VI_char>_p): Likewise.
10403 (altivec_vcmpgtu<VI_char>_p): Likewise.
10404 (abs<mode>2): Likewise.
10405 (vec_unpacks_hi_v16qi): Likewise.
10406 (vec_unpacks_hi_v8hi): Likewise.
10407 (vec_unpacks_lo_v16qi): Likewise.
10408 (vec_unpacks_hi_<VP_small_lc>): Likewise.
10409 (vec_unpacks_lo_v8hi): Likewise.
10410 (vec_unpacks_lo_<VP_small_lc>): Likewise.
10411 (vec_pack_trunc_v8h): Likewise.
10412 (vec_pack_trunc_v4si): Likewise.
10413 (vec_pack_trunc_<mode>): Likewise.
10414
10415 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
10416 V2DI builtins.
10417 (vec_vmaxsd): Likewise.
10418 (vec_vmaxud): Likewise.
10419 (vec_vminsd): Likewise.
10420 (vec_vminud): Likewise.
10421 (vec_vpksdss): Likewise.
10422 (vec_vpksdus): Likewise.
10423 (vec_vpkudum): Likewise.
10424 (vec_vpkudus): Likewise.
10425 (vec_vrld): Likewise.
10426 (vec_vsld): Likewise.
10427 (vec_vsrad): Likewise.
10428 (vec_vsrd): Likewise.
10429 (vec_vsubudm): Likewise.
10430 (vec_vupkhsw): Likewise.
10431 (vec_vupklsw): Likewise.
10432
e70670cf
JH
104332013-05-29 Jan Hubicka <jh@suse.cz>
10434
10435 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
10436 flags; reorder rest of fields in more consistent way.
10437 (varpool_node): Remove analyzed, finalized and alias.
10438 (cgraph_ndoe): Likewise.
10439 (symtab_alias_ultimate_target): New function.
10440 (cgraph_function_node): Move offline.
10441 (cgraph_reset_node): Declare.
10442 (cgraph_comdat_can_be_unshared_p): Remove.
10443 (varpool_remove_initializer): Declare.
10444 (varpool_first_defined_variable, varpool_next_defined_variable
10445 cgraph_first_defined_function, cgraph_next_defined_function): Update.
10446 (cgraph_function_with_gimple_body_p): Update.
10447 (varpool_all_refs_explicit_p): Update.
10448 (symtab_alias_target): New function.
10449 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
10450 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
10451 (cgraph_function_or_thunk_node): Simplify using
10452 symtab_alias_ultimate_target.
e70670cf
JH
10453 (varpool_variable_node): Likewise.
10454 * cgraph.c (cgraph_create_function_alias): Update.
10455 (cgraph_add_thunk): Update.
10456 (cgraph_remove_node): Update.
10457 (dump_cgraph_node): Do not dump removed flags.
10458 (cgraph_function_body_availability): Update.
10459 (cgraph_propagate_frequency): Update.
10460 (verify_cgraph_node): Check sanity of local flag.
10461 (cgraph_function_node): Move here from cgraph.h; revamp for
10462 cgraph_function_or_thunk_node.
10463 * lto-symtab.c (lto_varpool_replace_node): Update.
10464 (lto_symtab_resolve_can_prevail_p): Update.
10465 (lto_symtab_merge_cgraph_nodes): Update.
10466 * ipa-cp.c (determine_versionability, initialize_node_lattices,
10467 propagate_constants_accross_call, devirtualization_time_bonus,
10468 ipcp_propagate_stage): Update.
10469 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
10470 * ipa-inline-transform.c (clone_inlined_nodes,
10471 preserve_function_body_p): Update.
e70670cf
JH
10472 * ipa-reference.c (propagate): Update.
10473 (write_node_summary_p): Update.
10474 * toplev.c (wrapup_global_declaration_2): Update.
10475 * cgraphunit.c (cgraph_analyze_function): Rename to ...
10476 (analyze_function) ... this one.
10477 (cgraph_process_new_functions): Update.
10478 (cgraph_reset_node): Export.
10479 (cgraph_finalize_function): Update.
10480 (cgraph_add_new_function): Update.
10481 (process_function_and_variable_attributes): Update.
10482 (varpool_finalize_decl): Update.
10483 (symbol_finalized): Remove.
10484 (symbol_finalized_and_needed): Rename to ...
10485 (symbol_defined_and_needed): ... update.
10486 (cgraph_analyze_functions): Update.
10487 (handle_alias_pairs): Update.
10488 (mark_functions_to_output): Update.
10489 (assemble_thunk): Update.
10490 (output_in_order): Update.
10491 (output_weakrefs): Update.
10492 (finalize_compilation_unit): Update.
10493 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
10494 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
10495 input_node, input_varpool_node): Update.
10496 * dbxout.c (dbxout_expand_expr): Update.
10497 * cgraphclones.c (cgraph_clone_node): Update.
10498 (cgraph_copy_node_for_versioning): Update.
10499 (cgraph_materialize_clone): Update.
10500 (cgraph_materialize_all_clones): Update.
10501 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
10502 propagate_pure_const, propagate_nothrow): Update.
10503 * lto-streamer-out.c (lto_output, write_symbol): Update.
10504 * ipa-utils.c (ipa_reverse_postorder): Update.
10505 * ipa-inline.c (can_inline_edge_p): Update.
10506 (update_caller_keys, ipa_inline): Update.
10507 * dwarf2out.c (reference_to_unused,
10508 premark_types_used_by_global_vars_helper): Update.
10509 * tree-eh.c (tree_could_trap_p): Update.
10510 * ipa-split.c (consider_split, execute_split_functions): Update.
10511 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
10512 has_addr_references_p): Update; move ahead in file for better
10513 readability.
e70670cf
JH
10514 (process_references): Simplify.
10515 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
10516 bodies are removed.
10517 (cgraph_comdat_can_be_unshared_p): Make static.
10518 (cgraph_externally_visible_p): Update.
10519 (varpool_externally_visible_p): Update.
10520 (function_and_variable_visibility): Update.
10521 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
10522 ipa_tm_mark_force_output_node): Update.
10523 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
10524 estimate_edge_devirt_benefit, inline_generate_summary,
10525 inline_write_summary): Update.
10526 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
10527 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
10528 (ipa_print_node_params, ipa_prop_read_section,
10529 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
10530 * varasm.c (mark_decl_referenced): Update.
10531 (assemble_alias, dump_tm_clone_pairs): Update.
10532 * tree-inline.c (copy_bb): Update.
10533 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
10534 Update.
10535 * symtab.c (dump_symtab_base): Print new flags.
10536 (verify_symtab_base): Verify new flags.
10537 (symtab_alias_ultimate_target): New function.
10538 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
10539 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
10540 Update.
c1e183a9
UB
10541 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
10542 Update.
e70670cf
JH
10543 * i386.c (ix86_get_function_versions_dispatcher,
10544 ix86_generate_version_dispatcher_body): Update.
10545 (fold_builtin_cpu): Use varpool_add_new_variable.
10546 * varpool.c (varpool_remove_initializer): Break out from ...
10547 (varpool_remove_node): ... this one.
10548 (dump_varpool_node, varpool_node_for_asm,
10549 cgraph_variable_initializer_availability, varpool_analyze_node,
10550 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
10551 varpool_finalize_named_section_flags, varpool_create_variable_alias):
10552 Update.
e70670cf 10553
182802ad
JH
105542013-05-29 Jan Hubicka <jh@suse.cz>
10555
10556 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
10557
8190b609
ER
105582013-05-29 Easwaran Raman <eraman@google.com>
10559
10560 PR tree-optimization/57442
10561 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
10562 when control exits the main loop.
10563
69f5aa9b
SKS
105642013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
10565
10566 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
10567 and RX600.
c1e183a9 10568 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
10569 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
10570 * rx/t-rx: Add rx100 under multi library matches option for nofpu
10571 option.
10572
4b847da9
BS
105732013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10574
10575 PR tree-optimization/57441
10576 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
10577 Don't limit size of incr_vec to number of candidates.
10578
4fc43c39
SE
105792013-05-29 Steve Ellcey <sellcey@imgtec.com>
10580
10581 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
10582 and mips16 directories.
c1e183a9 10583 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
10584 (MULTILIB_DIRNAMES): Ditto.
10585 (MULTILIB_EXCEPTIONS): Add new exceptions.
10586 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
10587 (MULTILIB_DIRNAMES): Ditto.
10588 (MULTILIB_EXCEPTIONS): Add new exceptions.
10589
12211b99 105902012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
10591 Marcus Shawcroft <marcus.shawcroft@arm.com>
10592
10593 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
10594 SYMBOL_TINY_ABSOLUTE.
10595 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
10596 SYMBOL_TINY_ABSOLUTE.
10597 (aarch64_expand_mov_immediate): Likewise.
10598 (aarch64_classify_symbol): Likewise.
10599 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
10600 Permit SYMBOL_TINY_ABSOLUTE.
10601 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
10602
12211b99 106032013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
10604 Marcus Shawcroft <marcus.shawcroft@arm.com>
10605
10606 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
10607 Refactor if/switch. Replace gcc_assert with if.
10608
c0186656
GG
106092013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
10610
10611 * config/i386/i386.c (initial_ix86_tune_features): Enable
10612 FP Reassociation for AMD bdver1 and bdver2.
10613
d20188f3
MJ
106142013-05-29 Martin Jambor <mjambor@suse.cz>
10615
10616 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
10617 and IMAGPART_EXPR do not occur within other handled_components.
10618
292cba13
RB
106192013-05-29 Richard Biener <rguenther@suse.de>
10620
10621 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
10622 access on whether the use is in the BB we currently try to
10623 vectorize.
10624 (vect_bb_vectorization_profitable_p): Pass the BB we currently
10625 vectorize to vect_bb_slp_scalar_cost.
10626
6eddf228
RB
106272013-05-29 Richard Biener <rguenther@suse.de>
10628
10629 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
10630 computing scalar cost offsetted by stmts that are kept live
10631 by scalar uses.
10632 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
10633 for computation of scalar cost.
10634
7df36117
SE
106352013-05-28 Steve Ellcey <sellcey@mips.com>
10636
10637 * config/mips/mips-cpus.def (mips32r2): Change processor type.
10638
36536d79
BI
106392013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
10640
10641 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
10642 array notation built-in reduction functions.
10643 * doc/passes.texi (Passes): Added documentation about changes done
10644 for Cilk Plus.
10645 * doc/invoke.texi (C Dialect Options): Added documentation about
10646 the -fcilkplus flag.
10647 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
10648 (BUILTINS_DEF): Depend on cilkplus.def.
10649 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
10650 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
10651 * cilkplus.def: New file.
10652
12211b99 106532013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
10654
10655 PR rtl-optimization/57439
10656 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
10657
9daf6dbb
ER
106582013-05-28 Easwaran Raman <eraman@google.com>
10659
10660 PR tree-optimization/57337
10661 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
10662 (find_insert_point): Correctly identify the insertion point
10663 when two statements with the same UID is compared.
10664
fbd7e877
RB
106652013-05-28 Richard Biener <rguenther@suse.de>
10666
10667 PR tree-optimization/56787
10668 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
10669 from the list of data references.
10670 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
10671 clobbers.
10672 (vect_analyze_loop_operations): Likewise.
10673 (vect_transform_loop): Remove clobbers.
10674
bbba1117
MJ
106752013-05-28 Martin Jambor <mjambor@suse.cz>
10676
10677 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
10678 and REALPART_EXPRs have scalar type.
10679
bd388c2a
RB
106802013-05-28 Richard Biener <rguenther@suse.de>
10681
10682 PR tree-optimization/57411
10683 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
10684 virtual operands.
10685 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
10686 virtual operand propagation.
10687
2f56a311
EB
106882013-05-28 Eric Botcazou <ebotcazou@adacore.com>
10689
10690 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
10691 destination register for bmasksi_vis.
10692 (vector_init_bshuffle): Likewise.
10693 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
10694
5c3eacbb
EB
106952013-05-28 Eric Botcazou <ebotcazou@adacore.com>
10696
10697 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
10698 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
10699 mode if the instruction isn't available in the original mode.
10700 * config/sparc/sparc.opt (mfix-ut699): New option.
10701 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
10702 (divdf3): Turn into expander.
10703 (divdf3_nofix): New insn.
10704 (divdf3_fix): Likewise.
10705 (divsf3): Disable if -mfix-ut699.
10706 (sqrtdf2): Turn into expander.
10707 (sqrtdf2_nofix): New insn.
10708 (sqrtdf2_fix): Likewise.
10709 (sqrtsf2): Disable if -mfix-ut699.
10710
a1756c0a
RB
107112013-05-27 Richard Biener <rguenther@suse.de>
10712
10713 PR middle-end/57412
10714 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
10715 block for the new loop.
10716
5a892248
RB
107172013-05-27 Richard Biener <rguenther@suse.de>
10718
10719 PR tree-optimization/57343
10720 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
10721 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
10722 (number_of_iterations_cond): Do not build the folded tree.
10723
d1de852b
RB
107242013-05-27 Richard Biener <rguenther@suse.de>
10725
10726 Revert
10727 PR middle-end/57381
10728 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
10729 OEP_CONSTANT_ADDRESS_OF retained.
10730
10731 PR tree-optimization/57417
10732 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
10733 for unchanged base.
10734 (set_ssa_val_to): Compare addresses using
10735 get_addr_base_and_unit_offset.
10736
12211b99 107372013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
10738
10739 PR rtl-optimization/56833
10740 * postreload.c (move2add_record_mode): New function.
10741 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
10742 (move2add_use_add2_insn): Use move2add_record_sym_value.
10743 (move2add_use_add3_insn): Likewise.
10744 (reload_cse_move2add): Use move2add_valid_value_p and
10745 move2add_record_mode. Invalidate call-clobbered and REG_INC
10746 affected regs by setting reg_mode to VOIDmode.
10747 (move2add_note_store): Don't pretend the inside of a SUBREG is
10748 the actual destination. Invalidate single/leading registers by
10749 setting reg_mode to VOIDmode.
10750 Use move2add_record_sym_value, move2add_valid_value_p and
10751 move2add_record_mode.
10752
b03be25f
RB
107532013-05-27 Richard Biener <rguenther@suse.de>
10754
10755 PR tree-optimization/57396
10756 * tree-affine.c (double_int_constant_multiple_p): Properly
10757 return false for val == 0 and div != 0.
10758
44e88db2
RS
107592013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
10760
10761 * config/mips/mips.h: Use #elif in preprocessor conditions.
10762
3b859704
RS
107632013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
10764
10765 PR target/53916
10766 * config/mips/constraints.md (kl): New constraint.
10767 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
10768 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
10769 constraint for operand 0. Split after CSE for MIPS16. Emit a move
10770 from LO for MIPS16.
10771 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
10772
c979d5f5
RS
107732013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
10774
10775 PR target/55777
10776 * config/mips/mips.c (mips_can_inline_p): New function.
10777 (TARGET_CAN_INLINE_P): Define.
10778
8e90de43
SB
107792013-05-25 Steven Bosscher <steven@gcc.gnu.org>
10780
10781 * sched-int.h (ds_t, dw_t): Make unsigned int.
10782 Fix documentation that describes how all the ds_t bits are used.
10783 Reserve the last bit for delayed-branch scheduling.
10784 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
10785 (BITS_PER_DEP_WEAK): Fix definition and documentation.
10786 (gen_dep_weak_1): Remove prototype.
10787 * sched-deps.c (get_dep_weak_1): Make static.
10788 * target.def (speculate_insn, needs_block_p, gen_spec_check,
10789 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
10790 * doc/tm.texi: Regenerate.
10791 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
10792
cb5cb194
SB
107932013-05-24 Steven Bosscher <steven@gcc.gnu.org>
10794
10795 PR debug/56950
10796 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
10797
5bd93ff6
NS
107982013-05-24 Nathan Sidwell <nathan@codesourcery.com>
10799 Sandra Loosemore <sandra@codesourcery.com>
10800
10801 * config.gcc (powerpc-*): Allow native for with-cpu.
10802
2343af65
JL
108032013-05-24 Jeff Law <law@redhat.com>
10804
10805 PR tree-optimization/57124
10806 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
10807 conversion feeding a condition if the range has an overflow
10808 if -fstrict-overflow. Add warnings for when we do make the
10809 transformation.
10810
3ad695b9
DC
108112013-05-24 Dehao Chen <dehao@google.com>
10812
04960246 10813 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
10814 (locus_discrim_hasher): Likewise.
10815 (locus_discrim_hasher::hash): Likewise.
10816 (locus_discrim_hasher::equal): Likewise.
10817
82338059
MJ
108182013-05-24 Martin Jambor <mjambor@suse.cz>
10819
10820 PR tree-optimization/57294
10821 * cgraph.h (ipa_record_stmt_references): Declare.
10822 * cgraphbuild.c (ipa_record_stmt_references): New function.
10823 (build_cgraph_edges): Use ipa_record_stmt_references.
10824 (rebuild_cgraph_edges): Likewise.
10825 (cgraph_rebuild_references): Likewise.
10826 * ipa-prop.c (ipa_modify_call_arguments): Discard references
10827 associated with the old statement and build references from the
10828 newly built statements.
10829 * ipa-ref.c (ipa_remove_stmt_references): New function.
10830 * ipa-ref.h (ipa_remove_stmt_references): Declare.
10831
1ccd4874
VM
108322013-05-24 Vladimir Makarov <vmakarov@redhat.com>
10833
55805e54 10834 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 10835 mem-mem moves.
55805e54 10836 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 10837 too.
55805e54 10838 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
10839 secondary memory moves.
10840 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
10841 reg set up in the current insn.
10842
25e25c73
DC
108432013-05-24 Dehao Chen <dehao@google.com>
10844
04960246 10845 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
10846 hash function.
10847 (locus_descrim_hasher::equal): Likewise.
04960246 10848 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
10849 (make_edges): Likewise.
10850 (next_discriminator_for_locus): Likewise.
10851 (same_line_p): Likewise.
10852 (assign_discriminators): Likewise.
10853 (make_cond_expr_edges): Likewise.
10854 (make_gimple_switch_edges): Likewise.
10855 (make_goto_expr_edges): Likewise.
10856 (make_gimple_asm_edges): Likewise.
10857
50d38551
IB
108582013-05-24 Ian Bolton <ian.bolton@arm.com>
10859
10860 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
10861 X format specifier to only display bottom 16 bits.
10862 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
10863 immediate to match for operand 2, since it will be masked.
10864
aea0101d
RB
108652013-05-24 Richard Biener <rguenther@suse.de>
10866
10867 PR tree-optimization/57287
10868 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
10869 all SSA names that occur in abnormal PHIs.
10870
634e03d3
AI
108712013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
10872
10873 PR tree-ssa/57385
10874 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
10875 that index is not negative.
10876
b17c024f
EB
108772013-05-24 Eric Botcazou <ebotcazou@adacore.com>
10878
10879 PR rtl-optimization/55177
10880 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
10881 (simplify_byte_swapping_operation): New.
10882 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
10883 (simplify_relational_operation_1): Deal with BSWAP.
10884
46aeac1b
RH
108852013-05-23 Richard Henderson <rth@redhat.com>
10886
10887 PR target/56742
10888 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
10889 (ix86_reorg): Call it.
10890
70cc1536
UB
108912013-05-23 Uros Bizjak <ubizjak@gmail.com>
10892
10893 PR target/57379
10894 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
10895 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
10896 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
10897
b3851501
CB
108982013-05-23 Christian Bruel <christian.bruel@st.com>
10899
10900 PR debug/57351
10901 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
10902
12211b99 109032013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
10904 Marcus Shawcroft <marcus.shawcroft@arm.com>
10905
10906 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
10907 * config/aarch64/constraints.md (Usa): Remove.
10908 * doc/md.texi (AArch64 Usa): Remove.
10909
12211b99 109102013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
10911 Marcus Shawcroft <marcus.shawcroft@arm.com>
10912
10913 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
10914 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
10915 * config/aarch64/predicates.md (aarch64_const_address): Remove.
10916 (aarch64_mov_operand): Use aarch64_mov_operand_p.
10917
12211b99 109182013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
10919
10920 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
10921 instruction (AdvSIMD).
10922 * config/aarch64/aarch64-builtins.c
10923 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
10924 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
10925
76c36cb1 109262013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
10927
10928 PR middle-end/57347
10929 * tree.h (contains_bitfld_component_ref_p): Declare.
10930 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
10931 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
10932 caller.
7d2fb524
MJ
10933 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
10934 not access a bit-field. Assert all final offsets are byte-aligned.
10935
ce521ae6
RB
109362013-05-23 Richard Biener <rguenther@suse.de>
10937
10938 PR tree-optimization/57380
10939 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
10940 least one invariant or re-used load.
10941 * passes.c (init_optimization_passes): Move pass_phiprop before
10942 pass_forwprop.
10943
75c7257f
JG
109442013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
10945
10946 * config/aarch64/aarch64-simd.md
10947 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
10948
af6d44b5
RB
109492013-05-23 Richard Biener <rguenther@suse.de>
10950
10951 PR middle-end/57381
10952 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
10953 OEP_CONSTANT_ADDRESS_OF retained.
10954
bd3647bf
JJ
109552013-05-23 Jakub Jelinek <jakub@redhat.com>
10956
10957 PR middle-end/57344
70cc1536
UB
10958 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
10959 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 10960
a55757ea
RB
109612013-05-23 Richard Biener <rguenther@suse.de>
10962
10963 PR rtl-optimization/57341
10964 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
10965 instead of true_dependence.
10966
cfb00b41
DM
109672013-05-22 David Malcolm <dmalcolm@redhat.com>
10968
dd1c676f
DM
10969 * bb-reorder.c (branch_threshold): Make const.
10970 (exec_threshold): Ditto.
cfb00b41 10971
f62511da 109722013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10973 Pat Haugen <pthaugen@us.ibm.com>
10974 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
10975
10976 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
10977 documentation for the power8 crypto builtins.
10978
10979 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
10980
10981 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
10982 macros for defining power8 builtin functions.
10983 (BU_P8V_AV_2): Likewise.
10984 (BU_P8V_AV_P): Likewise.
10985 (BU_P8V_VSX_1): Likewise.
10986 (BU_P8V_OVERLOAD_1): Likewise.
10987 (BU_P8V_OVERLOAD_2): Likewise.
10988 (BU_CRYPTO_1): Likewise.
10989 (BU_CRYPTO_2): Likewise.
10990 (BU_CRYPTO_3): Likewise.
10991 (BU_CRYPTO_OVERLOAD_1): Likewise.
10992 (BU_CRYPTO_OVERLOAD_2): Likewise.
10993 (XSCVSPDP): Fix typo, point to the correct instruction.
10994 (VCIPHER): Add power8 crypto builtins.
10995 (VCIPHERLAST): Likewise.
10996 (VNCIPHER): Likewise.
10997 (VNCIPHERLAST): Likewise.
10998 (VPMSUMB): Likewise.
10999 (VPMSUMH): Likewise.
11000 (VPMSUMW): Likewise.
11001 (VPERMXOR_V2DI): Likewise.
11002 (VPERMXOR_V4SI: Likewise.
11003 (VPERMXOR_V8HI: Likewise.
11004 (VPERMXOR_V16QI: Likewise.
11005 (VSHASIGMAW): Likewise.
11006 (VSHASIGMAD): Likewise.
11007 (VPMSUM): Likewise.
11008 (VPERMXOR): Likewise.
11009 (VSHASIGMA): Likewise.
11010
11011 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11012 __CRYPTO__ if the crypto instructions are available.
11013 (altivec_overloaded_builtins): Add support for overloaded power8
11014 builtins.
11015
11016 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
11017 support for power8 crypto builtins.
11018 (builtin_function_type): Likewise.
11019 (altivec_init_builtins): Add support for builtins that take vector
11020 long long (V2DI) arguments.
11021
11022 * config/rs6000/crypto.md: New file, define power8 crypto
11023 instructions.
11024
110252013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11026 Pat Haugen <pthaugen@us.ibm.com>
11027 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11028
11029 * doc/invoke.texi (Option Summary): Add power8 options.
11030 (RS/6000 and PowerPC Options): Likewise.
11031
11032 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
11033 constraints.md instead of rs6000.h. Reorder w* constraints. Add
11034 wm, wn, wr documentation.
11035
f43245d1 11036 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
11037 registers if direct move instructions are enabled.
11038 (wn): New constraint for no registers.
11039 (wq): New constraint for quad word even GPR registers.
11040 (wr): New constraint if 64-bit instructions are enabled.
11041 (wv): New constraint if power8 vector instructions are enabled.
11042 (wQ): New constraint for quad word memory locations.
11043
f43245d1 11044 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
11045 constraint for 0..15 for crypto instructions.
11046 (gpc_reg_operand): If VSX allow registers in VSX registers as well
11047 as GPR and floating point registers.
11048 (int_reg_operand): New predicate to match only GPR registers.
11049 (base_reg_operand): New predicate to match base registers.
11050 (quad_int_reg_operand): New predicate to match even GPR registers
11051 for quad memory operations.
11052 (vsx_reg_or_cint_operand): New predicate to allow vector logical
11053 operations in both GPR and VSX registers.
11054 (quad_memory_operand): New predicate for quad memory operations.
11055 (reg_or_indexed_operand): New predicate for direct move support.
11056
f43245d1 11057 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
11058 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
11059 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
11060 (POWERPC_MASKS): Add power8 options.
11061 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
11062 various options.
11063
f43245d1 11064 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
11065 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
11066
f43245d1 11067 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
11068 (-mpower8-fusion): New power8 options.
11069 (-mpower8-fusion-sign): Likewise.
11070 (-mpower8-vector): Likewise.
11071 (-mcrypto): Likewise.
11072 (-mdirect-move): Likewise.
11073 (-mquad-memory): Likewise.
11074
f43245d1 11075 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
11076 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
11077 registers.
70cc1536 11078 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
11079 (rs6000_debug_vector_unit): Add p8_vector.
11080 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
11081 definitions. Also print fusion state.
11082 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
11083 (rs6000_builtin_mask_calculate): Add power8 builtin support.
11084 (rs6000_option_override_internal): Add support for power8.
11085 (rs6000_common_init_builtins): Add debugging for skipped builtins
11086 if -mdebug=builtin.
11087 (rs6000_adjust_cost): Add power8 support.
11088 (rs6000_issue_rate): Likewise.
11089 (insn_must_be_first_in_group): Likewise.
11090 (insn_must_be_last_in_group): Likewise.
11091 (force_new_group): Likewise.
11092 (rs6000_register_move_cost): Likewise.
11093 (rs6000_opt_masks): Likewise.
11094
11095 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
11096 power8 capable assembler, default to power7 options.
11097 (TARGET_DIRECT_MOVE): Likewise.
11098 (TARGET_CRYPTO): Likewise.
11099 (TARGET_P8_VECTOR): Likewise.
11100 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
11101 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
11102 (VECTOR_MEM_P8_VECTOR_P): Likewise.
11103 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
11104 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
11105 (TARGET_XSCVDPSPN): Likewise.
11106 (TARGET_XSCVSPDPN): Likewsie.
11107 (TARGET_SYNC_HI_QI): Likewise.
11108 (TARGET_SYNC_TI): Likewise.
11109 (MASK_CRYPTO): Likewise.
11110 (MASK_DIRECT_MOVE): Likewise.
11111 (MASK_P8_FUSION): Likewise.
11112 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
11113 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
11114 temporary used by some of the direct move instructions to get two FP
11115 temporary registers does not force creation of a stack frame.
f62511da
MM
11116 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
11117 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
11118 that any VSX registers are tieable, even if they are also an
11119 Altivec vector mode.
11120 (r6000_reg_class_enum): Add wm, wr, wv constraints.
11121 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
11122 (RS6000_BTM_CRYPTO): Likewise.
11123 (RS6000_BTM_COMMON): Likewise.
11124
11125 * config/rs6000/rs6000.md (cpu attribute): Add power8.
11126 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
11127 (enum rs6000_vector): Add power8 vector support.
11128
73a1a707
RR
111292013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11130
11131 PR target/19599
11132 PR target/57340
11133 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
11134 (any_sibcall_could_use_r3): this and handle indirect calls.
11135 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
11136
d28073d4
BS
111372013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11138
11139 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
11140
bee0b10c
RB
111412013-05-22 Richard Biener <rguenther@suse.de>
11142
11143 PR middle-end/57349
11144 * profile.c (branch_prob): Do not split blocks that are
11145 abnormally receiving from ECF_RETURNS_TWICE functions.
11146
98409b51
RS
111472013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
11148
11149 * recog.c (offsettable_address_addr_space_p): Fix calculation of
11150 address mode. Move pointer mode initialization to the same place.
11151
c0602ab8
MZ
111522013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11153
11154 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
11155 while it has any effect.
11156
4f7a634e
ER
111572013-05-21 Easwaran Raman <eraman@google.com>
11158
11159 PR tree-optimization/57322
9daf6dbb
ER
11160 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
11161 UID of the statement added to the BB to be 1.
4f7a634e 11162
a4ce1258
JJ
111632013-05-21 Jakub Jelinek <jakub@redhat.com>
11164
11165 PR tree-optimization/57331
70cc1536
UB
11166 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
11167 of conversion from pointer type to integral type with integer.
a4ce1258 11168
1b14621a
MJ
111692013-05-21 Martin Jambor <mjambor@suse.cz>
11170
11171 PR lto/57289
11172 * ipa-prop.c (ipa_read_node_info): Process param_used and
11173 controlled_uses in the same order as when writing.
11174
e60661f0
MG
111752013-05-21 Magnus Granberg <baldrick@free.fr>
11176
11177 PR plugins/56754
ee49aa34 11178 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 11179
4a61be9a
RB
111802013-05-21 Richard Biener <rguenther@suse.de>
11181
11182 PR tree-optimization/57318
11183 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
11184 estimate stmts with side-effects as likely eliminated.
11185
c52da5f7
RB
111862013-05-21 Richard Biener <rguenther@suse.de>
11187
11188 PR tree-optimization/57330
11189 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
11190 preserve the call stmts fntype.
11191
7ec67e2a
RB
111922013-05-21 Richard Biener <rguenther@suse.de>
11193
11194 PR tree-optimization/57303
11195 * tree-ssa-sink.c (statement_sink_location): Improve killing
11196 stmt detection and properly handle self-assignments.
11197
b112d513
CB
111982013-05-21 Christian Bruel <christian.bruel@st.com>
11199
55805e54
YR
11200 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
11201 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
11202 registers. Set register size out of the PARALLEL loop.
11203
14c2ec26
OE
112042013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
11205
11206 PR target/56547
11207 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
11208 (*fmasf4, *fmasf4_media): New insns.
11209
da734fa1
RS
112102013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11211
11212 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
11213 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
11214 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
11215 (mips_idiv_insns): Update the comments to say that the returned
11216 instruction counts are in units of BASE_INSN_LENGTH.
11217 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
11218 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
11219 using 2 rather than 4 as the length of indirect MIPS16 and
11220 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
11221 length of a NOP. Don't divide MIPS16 lengths by 2.
11222 (mips16_split_long_branches): Assume a branch is long if the
11223 length is greater than 4 rather than 8.
11224 * config/mips/mips.md (length): Give MIPS16 lengths directly,
11225 rather than multiplying them by 2. Multiply instruction counts
11226 by BASE_INSN_LENGTH rather than 4.
11227 (*jump_mips16, tls_get_tp_mips16_<mode>)
11228 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
11229
13719e8b
RS
112302013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11231
11232 * config/mips/mips.md (extended_mips16): Remove branch case.
11233 (length): Remove duplicated extended_mips16 test.
11234
c3850d14
RS
112352013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11236
11237 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
11238
8da2e059
RS
112392013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
11240
11241 * recog.h (Recog_data): Rename to...
11242 (recog_data_d): ...this.
11243 (recog_data): Update accordingly.
11244 * recog.c (recog_data): Likewise.
11245 * reload.c (save_recog_data): Likewise.
11246 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
11247 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
11248
2df013f3
JB
112492013-05-17 Julian Brown <julian@codesourcery.com>
11250
11251 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
11252 found in a REG_EQUAL note, invalidate it.
11253
371e77e3 112542013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
11255
11256 * tree-ssa-reassoc.c (find_insert_point): New function.
11257 (insert_stmt_after): Likewise.
11258 (get_def_stmt): Likewise.
11259 (ensure_ops_are_available): Likewise.
11260 (not_dominated_by): Likewise.
11261 (rewrite_expr_tree): Do not move statements beyond what is
11262 necessary. Remove call to swap_ops_for_binary_stmt...
11263 (reassociate_bb): ... and move it here.
11264 (build_and_add_sum): Assign UIDs for new statements.
11265 (linearize_expr): Likewise.
11266 (do_reassoc): Renumber gimple statement UIDs.
11267
e01c7cca
JH
112682013-05-17 Jan Hubicka <jh@suse.cz>
11269
11270 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
11271 weakrefs.
11272 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
11273 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
11274 weakrefs.
e01c7cca
JH
11275 (output_weakrefs): Update.
11276
c3272a92
PCC
112772013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
11278 Martin Jambor <mjambor@suse.cz>
11279
11280 PR middle-end/57276
11281 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
11282 value that corresponds to the given aggval is found in values vector.
11283
11c2aa39
UB
112842013-05-17 Uros Bizjak <ubizjak@gmail.com>
11285
11286 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
11287 sse, sse2, sse3, ssse3 and sse4a flags to options.
11288
abecc8c6
DM
112892013-05-17 David Malcolm <dmalcolm@redhat.com>
11290
11291 * gengtype-state.c: (s_expr_writer): New class, to handle
11292 prettifying of output layout of s-expressions.
11293 (state_writer): New class, to write out gtype.state.
11294 (state_written_type_count): Move this variable into member data of
11295 state_writer.
11296 (s_expr_writer::s_expr_writer): New code: constructor for new class
11297 (state_writer::state_writer(): ditto
11298 (s_expr_writer::write_new_line): New function
11299 (s_expr_writer::write_any_indent): ditto
11300 (s_expr_writer::begin_s_expr): ditto
11301 (s_expr_writer::end_s_expr): ditto
11302 (write_state_fileloc): convert to method of state_writer...
11303 (state_writer:: write_state_fileloc): ...and use methods of
11304 s_expr_writer to write indentation into the gtype.state output file
11305 to visually represent the hierarchical structure of the list
11306 structures
11307 (write_state_fields): ditto, renaming to...
11308 (state_writer::write_state_fields)
11309 (write_state_a_string): ditto, renaming to...
11310 (state_writer::write_state_a_string)
11311 (write_state_string_option): ditto, renaming to...
11312 (state_writer::write_state_string_option)
11313 (write_state_type_option): ditto, renaming to...
11314 (state_writer::write_state_type_option)
11315 (write_state_nested_option): ditto, renaming to...
11316 (state_writer::write_state_nested_option)
11317 (write_state_option): ditto, renaming to...
11318 (state_writer::write_state_option)
11319 (write_state_options): ditto, renaming to...
11320 (state_writer::write_state_options)
11321 (write_state_lang_bitmap): ditto, renaming to...
11322 (state_writer::write_state_lang_bitmap)
11323 (write_state_version): ditto, renaming to...
11324 (state_writer::write_state_version)
11325 (write_state_scalar_type): ditto, renaming to...
11326 (state_writer::write_state_scalar_type)
11327 (write_state_string_type): ditto, renaming to...
11328 (state_writer::write_state_string_type)
11329 (write_state_undefined_type): ditto, renaming to...
11330 (state_writer::write_state_undefined_type)
11331 (write_state_struct_union_type): ditto, renaming to...
11332 (state_writer::write_state_struct_union_type)
11333 (write_state_struct_type): ditto, renaming to...
11334 (state_writer::write_state_struct_type)
11335 (write_state_user_struct_type): ditto, renaming to...
11336 (state_writer::write_state_user_struct_type)
11337 (write_state_lang_struct_type): ditto, renaming to...
11338 (state_writer::write_state_lang_struct_type)
11339 (write_state_param_struct_type): ditto, renaming to...
11340 (state_writer::write_state_param_struct_type)
11341 (write_state_pointer_type): ditto, renaming to...
11342 (state_writer::write_state_pointer_type)
11343 (write_state_array_type): ditto, renaming to...
11344 (state_writer::write_state_array_type)
11345 (write_state_gc_used): ditto, renaming to...
11346 (state_writer::write_state_gc_used)
11347 (write_state_common_type_content): ditto, renaming to...
11348 (state_writer::write_state_common_type_content)
11349 (write_state_type): ditto, renaming to...
11350 (state_writer::write_state_type)
11351 (write_state_pair_list): ditto, renaming to...
11352 (state_writer::write_state_pair_list)
11353 (write_state_pair): ditto, renaming to...
11354 (state_writer::write_state_pair)
11355 (write_state_typedefs): ditto, renaming to...
11356 (state_writer::write_state_typedefs)
11357 (write_state_structures): ditto, renaming to...
11358 (state_writer::write_state_structures)
11359 (write_state_param_structs): ditto, renaming to...
11360 (state_writer::write_state_param_structs)
11361 (write_state_variables): ditto, renaming to...
11362 (state_writer::write_state_variables)
11363 (write_state_srcdir): ditto, renaming to...
11364 (state_writer::write_state_srcdir)
11365 (write_state_files_list): ditto, renaming to...
11366 (state_writer::write_state_files_list)
11367 (write_state_languages): ditto, renaming to...
11368 (state_writer::write_state_languages)
11369 (write_state): create a state_writer instance and use it when
11370 writing out the state file
11371
d6545f29
MS
113722013-05-17 Mike Stump <mikestump@comcast.net>
11373
816a3f73 11374 PR rtl-optimization/57304
d6545f29
MS
11375 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
11376 accessing DF_REF_REAL_LOC.
11377
38c821cf
JJ
113782013-05-17 Jakub Jelinek <jakub@redhat.com>
11379
11380 PR rtl-optimization/57281
11381 PR rtl-optimization/57300
11382 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
11383 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
11384 what the other splitter did if the registers are dead.
11385
2a293391
RB
113862013-05-17 Richard Biener <rguenther@suse.de>
11387
11388 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
11389 MEM_REF offsets.
11390
17042d2b
JJ
113912013-05-17 Jakub Jelinek <jakub@redhat.com>
11392
11393 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
11394 linking.
11395
5b115c1f
MP
113962013-05-17 Marek Polacek <polacek@redhat.com>
11397
11c2aa39
UB
11398 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
11399 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 11400
52d84413
JJ
114012013-05-17 Jakub Jelinek <jakub@redhat.com>
11402
68119618
JJ
11403 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
11404 vect_external_def oprnd1 with loop_vinfo, try to emit
11405 optional cast, negation and and stmts on the loop preheader
11406 edge instead of into the pattern def seq.
11407
52d84413
JJ
11408 PR tree-optimization/57051
11409 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
11410 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
11411
17b962bd
NC
114122013-05-16 Nick Clifton <nickc@redhat.com>
11413
11414 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
11415 (rl78_is_naked_func): New function.
56aefbf7
UB
11416 (rl78_expand_prologue): Skip prologue generation for naked functions.
11417 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
11418 * doc/extend.texi (naked): Add RL78 to the list of processors
11419 that supports this attribute.
11420
b1a0f84e
JL
114212013-05-16 Jeff Law <law@redhat.com>
11422
11423 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
11424
af0e415b
UB
114252013-05-16 Uros Bizjak <ubizjak@gmail.com>
11426
11427 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
11428 cache parameters using detect_caches_amd also for CYRIX,
11429 NSC and TM2 signatures.
11430
19db293a
UB
114312013-05-16 Uros Bizjak <ubizjak@gmail.com>
11432 Dzianis Kahanovich <mahatma@eu.by>
11433
11434 PR target/45359
11435 PR target/46396
11436 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
11437 VIA/Centaur processors and determine their cache parameters
11438 using detect_caches_amd.
11439
251a41b9
TJ
114402013-05-16 Teresa Johnson <tejohnson@google.com>
11441
11442 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
11443 (rtl_verify_edges): New function.
11444 (rtl_verify_bb_insns): Ditto.
11445 (rtl_verify_bb_pointers): Ditto.
11446 (rtl_verify_bb_insn_chain): Ditto.
11447 (rtl_verify_fallthru): Ditto.
11448 (rtl_verify_bb_layout): Ditto.
11449 (rtl_verify_flow_info_1): Outline checks into new functions.
11450 (rtl_verify_flow_info): Ditto.
11451
f14540b6
SE
114522013-05-16 Steve Ellcey <sellcey@imgtec.com>
11453
11454 * cfghooks.c (copy_bbs): Add update_dominance argument.
11455 * cfghooks.h (copy_bbs): Update prototype.
11456 * tree-cfg.c (gimple_duplicate_sese_region):
11457 Add update_dominance argument.
11458 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
11459 * tree-ssa-loop-ch.c (copy_loop_headers): Update
11460 gimple_duplicate_sese_region call.
11461 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
11462 Update copy_bbs call.
11463 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
11464 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
11465
7e9a3abb
JJ
114662013-05-16 Jakub Jelinek <jakub@redhat.com>
11467
11468 * tree-vectorizer.h (NUM_PATTERNS): Increment.
11469 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
11470 vect_recog_rotate_pattern.
11471 (vect_recog_rotate_pattern): New function.
11472
427b248d
JM
114732013-05-16 Jason Merrill <jason@redhat.com>
11474
11475 * Makefile.in (LLINKER): New variable.
11476 (mostlyclean): Remove link mutex.
11477 * configure.ac: Handle --enable-link-mutex.
11478 * lock-and-run.sh: New script.
11479
b871e3d2
RR
114802013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11481
11482 PR target/19599
11483 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
11484 for NULL decl.
11485
ce858126
RO
114862013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11487
11488 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
11489
798d3d04
GY
114902013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
11491
11492 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
11493 * config/arm/arm.c (next_consecutive_mem): New function.
11494 (gen_movmem_ldrd_strd): Likewise.
11495 * config/arm/arm.md (movmemqi): Update condition and code.
11496 (unaligned_loaddi, unaligned_storedi): New patterns.
11497
0baddc45
RO
114982013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11499
11500 * config.gcc: Obsolete *-*-solaris2.9*.
11501 * doc/install.texi (Specific, *-*-solaris2*): Document it.
11502
aa9d5bcf
RB
115032013-05-16 Richard Biener <rguenther@suse.de>
11504
11505 * passes.c (init_optimization_passes): Move pass_parallelize_loops
11506 earlier, after GRAPHITE transforms and IV canonicalization.
11507
5a0f4dd3
JJ
115082013-05-16 Jakub Jelinek <jakub@redhat.com>
11509
11510 * omp-low.c (extract_omp_for_data): For collapsed loops,
11511 if at least one of the loops is known at compile time to
11512 iterate zero times, set count to 0.
11513 (expand_omp_regimplify_p): New function.
11514 (expand_omp_for_generic): For collapsed loops, if at least
11515 one of the loops isn't known to iterate at least once,
11516 add runtime check with setting count to 0.
11517 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
11518 For unsigned types if it isn't known at compile time that
11519 the loop will iterate at least once, add runtime check to bypass
11520 the whole loop if initial condition isn't true.
11521
e3753785
NS
115222013-05-16 Nathan Sidwell <nathan@codesourcery.com>
11523
11524 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
11525
43bb4dd1
MG
115262013-05-16 Marc Glisse <marc.glisse@inria.fr>
11527
11528 PR middle-end/57286
11529 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
11530 transformations to avoid an infinite loop.
11531
3571dde6
MP
115322013-05-16 Marek Polacek <polacek@redhat.com>
11533
11534 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
11535
b8b3f0ca
LE
115362013-05-15 Leif Ekblad <leif@rdos.net>
11537
11538 * config/i386/i386.c (ix86_decompose_address): Use
11539 DEFAULT_TLS_SEG_REG to access TLS segment register.
11540 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
11541 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
11542 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
11543
e299a383
RS
115442013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
11545
11546 PR target/57260
11547 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
11548 sibling calls to functions that would normally be lazily bound,
11549 unless $gp is call-clobbered.
11550
e7208ea3
UB
115512013-05-15 Uros Bizjak <ubizjak@gmail.com>
11552
19db293a 11553 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 11554 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
11555 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
11556 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
11557 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
11558 of TARGET_3DNOW.
11559 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
11560
e7413f3d
AS
115612013-05-15 Andreas Schwab <schwab@suse.de>
11562
11563 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
11564 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
11565 third operand.
11566
ad4db775
TJ
115672013-05-15 Teresa Johnson <tejohnson@google.com>
11568
11569 * loop-unroll.c (report_unroll_peel): Check decision before
11570 emitting unroll/peel message.
11571
af205f67
TJ
115722013-05-15 Teresa Johnson <tejohnson@google.com>
11573
11574 * function.h (has_bb_partition): New rtl_data flag.
11575 (bb_reorder_complete): Ditto.
11576 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
11577 instead of flag_reorder_blocks_and_partition.
11578 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
11579 with some enhancements.
11580 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
11581 * bb-reorder.c (connect_traces): Check for has_bb_partition
11582 instead of flag_reorder_blocks_and_partition.
11583 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
11584 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
11585 verify_hot_cold_block_grouping.
11586 (partition_hot_cold_basic_blocks): Set has_bb_partition.
11587
9adcfa3c
RR
115882013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11589
11590 PR target/19599
11591 * config/arm/predicates.md (call_insn_operand): New predicate.
11592 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
11593 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
11594 if insn is not a tail call.
11595 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
11596 registers.
11597 * config/arm/arm.h (enum reg_class): New caller save register class.
11598 (REG_CLASS_NAMES): Likewise.
11599 (REG_CLASS_CONTENTS): Likewise.
11600 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
11601 without decls.
11602
ccb3ad87
RB
116032013-05-15 Richard Biener <rguenther@suse.de>
11604
11605 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
11606 of MSG_OPTIMIZED_LOCATIONS.
11607 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
11608 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
11609 message.
11610 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
11611 of MSG_OPTIMIZED_LOCATIONS.
11612 (execute_vect_slp): Likewise.
11613 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
11614 (vect_create_cond_for_alias_checks): Likewise.
11615 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
11616 (vect_recog_widen_mult_pattern): Likewise.
11617 (vect_recog_widen_sum_pattern): Likewise.
11618 (vect_recog_over_widening_pattern): Likewise.
11619 (vect_recog_widen_shift_pattern): Likewise.
11620 (vect_recog_vector_vector_shift_pattern): Likewise.
11621 (vect_recog_divmod_pattern): Likewise.
11622 (vect_recog_mixed_size_cond_pattern): Likewise.
11623 (vect_recog_bool_pattern): Likewise.
11624 (vect_pattern_recog_1): Likewise.
11625
48b1474e
MJ
116262013-05-15 Martin Jambor <mjambor@suse.cz>
11627
11628 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
11629 non-functions to builtin_unreachable.
11630 * ipa-inline-transform.c (inline_call): Do not assert estimates were
11631 correct when new direct edges were discovered.
11632
9de04252
MJ
116332013-05-15 Martin Jambor <mjambor@suse.cz>
11634
11635 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
11636 header, print symbol order instead of node uid, print more information
11637 about indirect edge targets.
11638 (ipa_make_edge_direct_to_target): Print symbol order instead of node
11639 uids.
11640 (ipa_make_edge_direct_to_target): Likewise.
11641 (remove_described_reference): Likewise.
11642 (propagate_controlled_uses): Likewise.
11643 (ipa_print_node_params): Also print symbol order.
11644 (ipcp_transform_function): Print symbol order instead of node uids.
11645 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
11646 (cgraph_get_create_real_symbol_node): Likewise.
11647 * ipa-cp.c (print_lattice): Likewise.
11648 (print_all_lattices): Likewise.
11649 (determine_versionability): Likewise.
11650 (initialize_node_lattices): Likewise.
11651 (estimate_local_effects): Likewise.
11652 (update_profiling_info): Likewise.
11653 (create_specialized_node): Likewise.
11654 (perhaps_add_new_callers): Likewise.
11655 (decide_about_value): Likewise.
11656 (decide_whether_version_node): Likewise.
11657 (identify_dead_nodes): Likewise.
11658 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
11659 (dump_inline_summary): Likewise.
11660 (estimate_node_size_and_time): Likewise.
11661 (inline_analyze_function): Likewise.
11662 * ipa-inline.c (report_inline_failed_reason): Likewise.
11663 (want_early_inline_function_p): Likewise.
11664 (edge_badness): Likewise.
11665 (update_edge_key): Likewise.
11666 (inline_small_functions): Likewise. Add dumping of order to two other
11667 dumps.
11668 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
11669 instead of node uids.
11670 (propagate_pure_const): Likewise.
11671 (propagate_pure_const): Likewise.
11672 * ipa-utils.c (dump_cgraph_node_set): Likewise.
11673 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
11674 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
11675 of node uids.
11676 * tree-pretty-print.c (dump_function_header): Likewise.
11677 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
11678 Print symbol order instead of node uids.
11679
1dd03b91
AK
116802013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11681
11682 * config/s390/s390.c (s390_register_move_cost): Don't impose the
11683 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
11684
fdf6a7b9
RB
116852013-05-15 Richard Biener <rguenther@suse.de>
11686
11687 PR tree-optimization/57275
11688 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
11689 return value for fail to do runtime alias checks for gather loads.
11690
2d6e4603
JH
116912013-05-15 Jan Hubicka <jh@suse.cz>
11692
11693 PR lto/57038
11694 PR lto/47375
e7208ea3
UB
11695 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
11696 weakrefs are not external.
11697 (lto_symtab_merge_decls): Fix thinko when dealing with
11698 non-lto_symtab decls.
2d6e4603
JH
11699 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
11700 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
11701 * varpool.c (dump_varpool_node): Dump more flags.
11702
83f44b39
GG
117032013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11704
11705 * config/i386/i386.c (processor_alias_table): Add instruction
11706 FSGSBASE for AMD bdver3 architecture.
11707
2e55d062
JJ
117082013-05-14 Jakub Jelinek <jakub@redhat.com>
11709
11710 * tree.c (warn_deprecated_use): Print file:line using locus color.
11711 * diagnostic.c (diagnostic_report_current_module): Print file:line
11712 and file:line:column using locus color.
11713
0bfdb81e
MS
117142013-05-14 Mike Stump <mikestump@comcast.net>
11715
11716 * gdbinit.in: Add __null.
11717
a508ef22
MS
117182013-05-14 Mike Stump <mikestump@comcast.net>
11719
11720 * recog.h: Rename struct recog_data to Recog_data.
11721 * recog.c: Likewise.
11722 * reload.c (can_reload_into): Likewise.
11723 * config/picochip/picochip.c: Likewise.
11724
e7180acb
MS
117252013-05-14 Mike Stump <mikestump@comcast.net>
11726
11727 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
11728
61216c26
SB
117292013-05-14 Steven Bosscher <steven@gcc.gnu.org>
11730
fd6beed4
SB
11731 * resource.h (struct resources): Remove unch_memory member.
11732 (CLEAR_RESOURCE): Don't clear unch_memory.
11733 * resource.c (mark_referenced_resources): Don't set it.
11734 (mark_set_resources): Likewise.
11735 (mark_target_live_regs): Don't clear it.
11736 (init_resource_info): Likewise.
11737 * reorg.c (resource_conflicts_p): Don't compare it.
11738 (redundant_insn): Don't set it.
11739
61216c26
SB
11740 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
11741 Remove prototypes.
11742 * emit-rtl.c (next_label): Remove unused function.
11743 (skip_consecutive_labels, link_cc0_insns): Move to ...
11744 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
11745 only place where these functions are used, and make them static.
11746
418d1b87
MG
117472013-05-14 Marc Glisse <marc.glisse@inria.fr>
11748
11749 * fold-const.c (fold_negate_expr): Handle vectors.
11750 (fold_truth_not_expr): Make it static.
11751 (fold_invert_truthvalue): New static function.
11752 (invert_truthvalue_loc): Handle vectors. Do not call
11753 fold_truth_not_expr directly.
11754 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
11755 <TRUTH_NOT_EXPR>: Do not cast to boolean.
11756 (fold_comparison): Handle vector constants.
11757 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
11758 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
11759 * tree.h (fold_truth_not_expr): Remove declaration.
11760
fc21784d
JG
117612013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
11762
11763 * config/aarch64/aarch64-simd.md
11764 (aarch64_vcond_internal<mode>): Rename to...
11765 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
11766 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
11767 float modes. Clarify all iterator modes.
11768 (vcond<mode><mode>): Use new name for vcond expanders.
11769 (vcond<v_cmp_result><mode>): Likewise.
11770 (vcondu<mode><mode>: Likewise.
11771 * config/aarch64/iterators.md (VDQF_COND): New.
11772
d4c52634
MG
117732013-05-14 Marc Glisse <marc.glisse@inria.fr>
11774
11775 PR bootstrap/57266
11776 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
11777 variable for the shift amount. Check that we shift by non-negative
11778 amounts.
11779
2b261262
CLT
117802013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
11781
11782 PR target/42017
11783 * config/arm/arm.h (EPILOGUE_USES): Only return true
11784 for LR_REGNUM after epilogue_completed.
11785
12211b99 117862013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
11787
11788 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 11789 is error_mark_node.
6e022d7b 11790
56cf7859
RO
117912013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11792
11793 PR target/57261
11794 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
11795 and Solaris 11+/x86 with gld.
11796 * configure: Regenerate.
11797
75776c6d
JJ
117982013-05-14 Jakub Jelinek <jakub@redhat.com>
11799
11800 * expmed.c (expand_shift_1): Canonicalize rotates by
11801 constant bitsize / 2 to bitsize - 1.
7f998021 11802 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
11803 case ROTATERT>: Likewise.
11804
11805 Revert:
11806 2013-05-10 Jakub Jelinek <jakub@redhat.com>
11807
11808 * config/i386/i386.md (rotateinv): New code attr.
11809 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
11810 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
11811 roll $31, %eax, etc.
11812
df35498a
RB
118132013-05-14 Richard Biener <rguenther@suse.de>
11814
11815 PR middle-end/57235
11816 * tree-eh.c (sink_clobbers): Give up for successors with
11817 multiple predecessors and no virtual uses.
11818
cc6e7ece
EB
118192013-05-14 Eric Botcazou <ebotcazou@adacore.com>
11820
11821 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
11822 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
11823
f778dd4d
JJ
118242013-05-14 Jakub Jelinek <jakub@redhat.com>
11825
11826 PR middle-end/57251
11827 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
11828 the case when both op0 and op1 have VOIDmode.
11829
bad4df9b
KP
118302013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11831
11832 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
11833 in multiply-accumulate mode.
11834
56f3e9ac
GW
118352013-05-13 Guozhi Wei <carrot@google.com>
11836
11837 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
11838
a3d7ab92
KT
118392013-05-13 Kai Tietz <ktietz@redhat.com>
11840
11841 PR target/56975
11842 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 11843 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 11844 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 11845 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
11846 (ix86_expand_prologue): Likewise.
11847 (ix86_expand_split_stack_prologue): Likewise.
11848 (legitimate_pic_address_disp_p): Likewise.
11849 (legitimize_pic_address): Likewise.
11850 (legitimize_tls_address): Likewise.
11851 (legitimize_pe_coff_symbol): Likewise.
11852 (output_pic_addr_const): Likewise.
11853 (construct_plt_address): Likewise.
11854 (ix86_expand_call): Likewise.
11855 (x86_output_mi_thunk): Likewise.
11856 (x86_function_profiler): Likewise.
11857
c59b7e28
SN
118582013-05-13 Sofiane Naci <sofiane.naci@arm.com>
11859
11860 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
11861 similar switch cases.
11862 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
11863 (aarch64_simd_mov_to_<mode>low): Delete.
11864 (aarch64_simd_mov_to_<mode>high): Delete.
11865 (move_lo_quad_<mode>): Add w<-r alternative.
11866 (aarch64_simd_move_hi_quad_<mode>): Likewise.
11867 (aarch64_simd_mov_from_*): Update type attribute.
11868 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
11869 statement.
11870
5f28524a
JH
118712013-05-13 Jan Hubicka <jh@suse.cz>
11872
11873 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
11874 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
11875 ix86_expand_epilogue, emit_i387_cw_initialization,
11876 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
11877 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 11878
ae6fa899
JJ
118792013-05-13 Jakub Jelinek <jakub@redhat.com>
11880
11881 PR tree-optimization/45216
11882 PR tree-optimization/57157
11883 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
11884 the (-Y) & (B - 1) variant if OP is |.
11885 * expmed.c (expand_shift_1): For rotations by const0_rtx just
11886 return shifted. Use (-op1) & (prec - 1) as other_amount
11887 instead of prec - op1.
11888
4502fe8d
MJ
118892013-05-13 Martin Jambor <mjambor@suse.cz>
11890
11891 PR middle-end/42371
11892 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
11893 (ipa_constant_data): New type.
11894 (ipa_jump_func): Use ipa_constant_data to hold information about
11895 constant jump functions.
11896 (ipa_get_jf_constant): Adjust to jump function type changes.
11897 (ipa_get_jf_constant_rdesc): New function.
11898 (ipa_param_descriptor): New field controlled_uses.
11899 (ipa_get_controlled_uses): New function.
11900 (ipa_set_controlled_uses): Likewise.
11901 * ipa-ref.h (ipa_find_reference): Declare.
11902 * ipa-prop.c (ipa_cst_ref_desc): New type.
11903 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
11904 changes.
11905 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
11906 New parameter cs. Adjust all callers.
11907 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
11908 (remove_described_reference): New function.
11909 (jfunc_rdesc_usable): Likewise.
11910 (try_make_edge_direct_simple_call): Decrement controlled use count,
11911 attempt to remove reference if it hits zero.
11912 (combine_controlled_uses_counters): New function.
11913 (propagate_controlled_uses): Likewise.
11914 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
11915 (ipa_edge_duplication_hook): Duplicate reference descriptions.
11916 (ipa_print_node_params): Print described use counter.
11917 (ipa_write_jump_function): Adjust to jump function type changes.
11918 (ipa_read_jump_function): New parameter CS, pass it to
11919 ipa_set_jf_constant. Adjust caller.
11920 (ipa_write_node_info): Stream controlled use count
11921 (ipa_read_node_info): Likewise.
11922 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
11923 asserting.
11924 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
11925 count. Remove cloning-added reference if it reaches zero.
11926 * ipa-ref.c (ipa_find_reference): New function.
11927
0864bfc2
GG
119282013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11929
e7208ea3 11930 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
11931 alignment values for AMD BD and BT architectures.
11932
640bfeb2
MG
119332013-05-13 Marc Glisse <marc.glisse@inria.fr>
11934
11935 * tree-vect-generic.c (uniform_vector_p): Move ...
11936 * tree.c (uniform_vector_p): ... here.
11937 * tree.h (uniform_vector_p): Declare it.
11938 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
11939 into a scalar.
11940
3a60f32b
JJ
119412013-05-13 Jakub Jelinek <jakub@redhat.com>
11942
198fe1bf
JJ
11943 PR tree-optimization/57230
11944 * tree-ssa-strlen.c (handle_char_store): Record length for
11945 array store from STRING_CST.
11946
3a60f32b
JJ
11947 PR tree-optimization/57230
11948 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
11949 check.
11950
566be57c
JR
119512013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
11952
11953 * config/epiphany/epiphany.c (epiphany_init): Check size of
11954 NUM_MODES_FOR_MODE_SWITCHING.
11955 (epiphany_expand_prologue):
11956 Remove CONFIG_REGNUM initial value handling code.
11957 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
11958 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 11959 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
11960 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
11961 Don't return 1 for FP_MODE_NONE.
11962 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
11963 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
11964 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
11965 * config/epiphany/epiphany.md (save_config): New pattern.
11966
0f2c2331
UB
119672013-05-12 Uros Bizjak <ubizjak@gmail.com>
11968
11969 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
11970
5b3f93c7
UB
119712013-05-10 Uros Bizjak <ubizjak@gmail.com>
11972
11973 * config/i386/i386.md (memory): Handle sseishft1.
11974 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
11975 (*vec_extractv2di_1): Ditto.
11976
1f873f0e
VM
119772013-05-10 Vladimir Makarov <vmakarov@redhat.com>
11978
11979 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
11980 saved registers.
11981
341427fa 119822013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
11983
11984 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
11985 Add mthumb/march=armv7-a multilib.
11986 Add mthumb/march=armv7-r multilib.
11987 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
11988
9e69bdde
RC
119892013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
11990
11991 * config/v850/t-rtems: Add more multilibs.
11992
9ff09a22
RB
119932013-05-10 Richard Biener <rguenther@suse.de>
11994
11995 PR tree-optimization/57214
11996 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
11997 not propagate from SSA names that occur in abnormal PHI nodes.
11998
a5e0cd1d
MG
119992013-05-10 Marc Glisse <marc.glisse@inria.fr>
12000
12001 * stor-layout.c (element_precision): New function.
12002 * machmode.h (element_precision): Declare it.
12003 * tree.c (build_minus_one_cst): New function.
12004 (element_precision): Likewise.
12005 * tree.h (build_minus_one_cst): Declare new function.
12006 (element_precision): Likewise.
12007 * fold-const.c (operand_equal_p): Use element_precision.
12008 (fold_binary_loc): Handle vector types.
12009 * convert.c (convert_to_integer): Use element_precision.
12010 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
12011 separately.
12012
cb2558bc
RS
120132013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
12014
12015 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
12016 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
12017 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
12018 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12019 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
12020 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
12021 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
12022 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12023 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
12024 (Uuw8): New constraints.
12025 (Usb4): Move into alphabetical order.
12026 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
12027 (sd8_operand, ub8_operand, uw8_operand): New predicates.
12028 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
12029 previously unnamed patterns.
12030 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
12031 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
12032 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
12033 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
12034 of set_attr_alternative/if_then_else. Use extended_mips16 instead
12035 of specific lengths.
12036
cb3b8d33
JJ
120372013-05-10 Jakub Jelinek <jakub@redhat.com>
12038
6f93c008
JJ
12039 * config/i386/i386.md (rotateinv): New code attr.
12040 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12041 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12042 roll $31, %eax, etc.
12043
cb3b8d33
JJ
12044 PR tree-optimization/45216
12045 PR tree-optimization/57157
12046 * tree-ssa-forwprop.c (simplify_rotate): New function.
12047 (ssa_forward_propagate_and_combine): Call it.
12048
afb119be
RB
120492013-05-10 Richard Biener <rguenther@suse.de>
12050
12051 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
12052 disable peeling when we version for aliasing.
12053 (vector_alignment_reachable_p): Honor explicit user alignment.
12054 (vect_supportable_dr_alignment): Likewise.
12055 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
12056 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
12057 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
12058 then peeling to arrange for the cost-model check to come first.
12059
01ae4861
AM
120602013-05-10 Alan Modra <amodra@gmail.com>
12061
12062 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
12063 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
12064 * configure: Regenerate.
12065
ebc9a431
AM
120662013-05-10 Alan Modra <amodra@gmail.com>
12067
12068 PR target/55033
12069 * varasm.c (default_elf_select_section): Move !DECL_P check..
12070 (get_named_section): ..to here before calling get_section_name.
12071 Adjust assertion.
12072 (default_section_type_flags): Add DECL_P check.
12073 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
12074 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
12075
d4bca93c
JR
120762013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
12077
12078 * config/epiphany/epiphany.c (epiphany_expand_prologue):
12079 When using gen_stack_adjust_str with a register offset, add a
12080 REG_FRAME_RELATED_EXPR note.
12081
60ca9a65
UB
120822013-05-09 Uros Bizjak <ubizjak@gmail.com>
12083
12084 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
12085 (*vec_extractv4si_zext_mem): Ditto.
12086 (*vec_extractv2di): Add 0->x and x->x alternatives.
12087 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
12088 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
12089
a3409c02
JM
120902013-05-09 Jason Merrill <jason@redhat.com>
12091
0138d6b2
JM
12092 N3639 C++1y VLA support
12093 * gimplify.c (gimplify_vla_decl): Don't touch an existing
12094 DECL_VALUE_EXPR.
12095
a3409c02
JM
12096 * tree.c (build_constructor_va): New.
12097 * tree.h: Declare it.
12098
66e6b990
MJ
120992013-05-09 Martin Jambor <mjambor@suse.cz>
12100
12101 PR lto/57084
12102 * gimple-fold.c (canonicalize_constructor_val): Call
12103 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
12104
64cfa6c0
JH
121052013-05-09 Jan Hubicka <jh@suse.cz>
12106 Richard Biener <rguenther@suse.de>
12107
12108 PR lto/54095
12109 * symtab.c (symtab_make_decl_local): Do not add private names.
12110
c3167b00
JH
121112013-05-09 Jan Hubicka <jh@suse.cz>
12112
12113 PR lto/54095
12114 * symtab.c (insert_to_assembler_name_hash): Handle clones.
12115 (unlink_from_assembler_name_hash): Likewise.
12116 (symtab_prevail_in_asm_name_hash, symtab_register_node,
12117 symtab_unregister_node, symtab_initialize_asm_name_hash,
12118 change_decl_assembler_name): Update.
12119
12dc6974
SN
121202013-05-09 Sofiane Naci <sofiane.naci@arm.com>
12121
12122 * config/aarch64/aarch64.md: New movtf split.
12123 (*movtf_aarch64): Update.
12124 (aarch64_movdi_tilow): Handle TF modes and rename to
12125 aarch64_movdi_<mode>low.
12126 (aarch64_movdi_tihigh): Handle TF modes and rename to
12127 aarch64_movdi_<mode>high
12128 (aarch64_movtihigh_di): Handle TF modes and rename to
12129 aarch64_mov<mode>high_di
12130 (aarch64_movtilow_di): Handle TF modes and rename to
12131 aarch64_mov<mode>low_di
12132 (aarch64_movtilow_tilow): Remove spurious whitespace.
12133 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
12134 splits.
12135 (aarch64_print_operand): Update.
12136
227eb343
AM
121372013-05-09 Alan Modra <amodra@gmail.com>
12138
12139 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
12140 powerpc64le.
12141 * configure: Regenerate.
12142
0b013847
UB
121432013-05-08 Uros Bizjak <ubizjak@gmail.com>
12144
12145 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
12146 splitter preparation statements.
12147 * config/i386/sse.md (*vec_extract* splitters): Ditto.
12148 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
12149 adjust_address_nv.
12150
1dc3d6e9
BS
121512013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12152
12153 * gimple-ssa-strength-reduction.c (count_candidates): Change
12154 return value to int.
12155 (analyze_candidates_and_replace): Change type of length to int.
12156
e61e7d28
UB
121572013-05-08 Uros Bizjak <ubizjak@gmail.com>
12158
12159 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
12160 (*vec_extract<mode>): Use VI12_128 mode iterator.
12161 (*vec_extract<mode>_mem): Ditto.
12162 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
12163 attribute.
12164
4fbfcf44
DN
121652013-05-08 Diego Novillo <dnovillo@google.com>
12166
12167 PR bootstrap/54659
12168
12169 Revert:
4fbfcf44
DN
12170 2012-08-17 Diego Novillo <dnovillo@google.com>
12171
e61e7d28
UB
12172 PR bootstrap/54281
12173 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
12174 * config.in: Regenerate.
12175 * configure: Regenerate.
12176 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 12177
702d8703
JH
121782013-05-08 Jan Hubicka <jh@suse.cz>
12179
12180 PR lto/54095
12181 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
12182 * cgraph.h (symtab_node_base): Add unique_name.
12183 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12184 input_overwrite_node, input_varpool_node): Stream unique_name.
12185 * cgraphclones.c (cgraph_create_virtual_clone,
12186 cgraph_function_versioning): Set unique_name.
12187 * ipa.c (function_and_variable_visibility): Set unique_name.
12188
8b28cf47
BS
121892013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12190
12191 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
12192 (alloc_cand_and_find_basis): Restrict conditional candidate
12193 processing to CAND_MULTs.
12194
e86074fd
JH
121952013-05-08 Jan Hubicka <jh@suse.cz>
12196
12197 PR lto/54095
12198 lto-symtab.c (lto_symtab_symbol_p): New function.
12199 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
12200 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
12201 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
12202 Skip static symbols.
12203
44398cbe
PC
122042013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
12205
12206 PR tree-optimization/57200
12207 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12208 Only call inform if the preceding warning_at returns true.
12209
f6bc1c4a
HS
122102013-05-07 Han Shen <shenhan@google.com>
12211
12212 * cfgexpand.c (record_or_union_type_has_array_p): New function.
12213 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
12214 * common.opt (fstack-protector-strong): New option.
12215 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
12216 * doc/invoke.texi (Optimization Options): Document
12217 "-fstack-protector-strong".
12218 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
12219
4ffecb1f
SB
122202013-05-06 Steven Bosscher <steven@gcc.gnu.org>
12221
12222 * config/mips/mips.c (mips_machine_reorg2): Return 0.
12223
5a107a0f
VM
122242013-05-07 Vladimir Makarov <vmakarov@redhat.com>
12225
12226 * ira.c (update_equiv_regs): Add insn having equiv memory even if
12227 it is not lhs of the insn.
12228 (setup_reg_equiv): Remove insn having equiv memory which it is not
12229 lhs of the insn.
12230 * lra-constraints.c (process_address): Try to improve generation
12231 code for address base + disp.
12232 (lra_constraints): Make correct the code for checking insn setting
12233 up backward equivalence. Remove insn only if it is in the init
12234 insn list.
12235 * lra-eliminations.c (update_reg_eliminate): Change return value.
12236 (lra_eliminate): Use the result.
12237
3f5783ea
UB
122382013-05-07 Uros Bizjak <ubizjak@gmail.com>
12239
12240 * config/i386/sse.md (ssescalarnummask): New mode attribute.
12241 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
12242 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
12243 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
12244 register target operands.
12245 (*vec_extractv8hi_sse2): New pattern.
12246 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
12247 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
12248 (*vec_extract<mode>_mem): New insn and split pattern.
12249
8a5800b8
CL
122502013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
12251
12252 * config/arm/arm.c (arm_asan_shadow_offset): New function.
12253 (TARGET_ASAN_SHADOW_OFFSET): Define.
12254 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
12255 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
12256
7bf55a70
BS
122572013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12258
12259 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
12260 (incr_vec_index): Return -1 if increment not found.
12261 (create_add_on_incoming_edge): Assert if increment not found.
12262 (record_increment): Limit number of increments recorded.
12263 (all_phi_incrs_profitable): Return false if an increment not found.
12264 (replace_profitable_candidates): Don't process increments that were
12265 not recorded.
12266 (analyze_candidates_and_replace): Limit size of incr_vec.
12267
3f8825c0
RB
122682013-05-07 Richard Biener <rguenther@suse.de>
12269
12270 * calls.c (special_function_p): setjmp-like functions are leaf.
12271 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
12272 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
12273
fd4842cd
SN
122742013-05-07 Sofiane Naci <sofiane.naci@arm.com>
12275
12276 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
12277 (aarch64_simd_mov<mode>): New expander.
12278 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
12279 (aarch64_simd_mov_to_<mode>high): Likewise.
12280 (aarch64_simd_mov_from_<mode>low): Likewise.
12281 (aarch64_simd_mov_from_<mode>high): Likewise.
12282 (aarch64_dup_lane<mode>): Update.
12283 (aarch64_dup_lanedi): New instruction pattern.
12284 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
12285 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
12286
a7a7d10e
BS
122872013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12288
12289 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
12290 (replace_mult_candidate): Remove unnecessary argument; remove
12291 unnecessary parameter from call to introduce_cast_before_cand.
12292 (replace_unconditional_candidate): Remove unnecessary parameter
12293 from call to replace_mult_candidate.
12294 (replace_conditional_candidate): Likewise.
12295 (insert_initializers): Use make_temp_ssa_name.
12296 (introduce_cast_before_cand): Remove unnecessary argument; use
12297 make_temp_ssa_name.
12298 (replace_one_candidate): Remove unnecessary argument; remove
12299 unnecessary parameter from calls to introduce_cast_before_cand.
12300 (replace_profitable_candidates): Remove unnecessary parameters
12301 from calls to replace_one_candidate.
12302
29105868
BS
123032013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12304
12305 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
12306 phi def as possibly hiding a basis for a CAND_ADD whose operands
12307 have been commuted in the analysis.
12308 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
12309
4095f9fa
N
123102013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12311
12312 * config/aarch64/aarch64.md
12313 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
12314 shift value between 0-4.
12315
39e843e8
RB
123162013-05-07 Richard Biener <rguenther@suse.de>
12317
12318 * double-int.h (rshift): New overload.
12319 * double-int.c (rshift): New function.
12320 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
12321 (create_reference_ops_from_ref): Remove.
12322 (vn_reference_insert): Use shared ops for constructing the
12323 reference and copy it.
12324
0a1a83cb
RB
123252013-05-07 Richard Biener <rguenther@suse.de>
12326
12327 PR middle-end/57190
12328 * tree-eh.c (sink_clobbers): Properly propagate
12329 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12330
43303d6f
JJ
123312013-05-07 Jakub Jelinek <jakub@redhat.com>
12332
ba7e83f8
JJ
12333 PR tree-optimization/57149
12334 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
12335 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
12336 collect_phi_def_edges, execute_late_warn_uninitialized): Use
12337 uninit_undefined_value_p instead of ssa_undefined_value_p.
12338
43303d6f
JJ
12339 PR debug/57184
12340 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
12341 for modifier == EXPAND_INITIALIZER.
12342
14523c25
AB
123432013-05-07 Anton Blanchard <anton@samba.org>
12344
12345 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
12346 for powerpc64 little endian.
12347 * configure: Regenerate.
12348
cb7c8be9
GS
123492013-05-06 Graham Stott <grahams@btinternet.com>
12350
12351 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
12352 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
12353 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
12354 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
12355
123562013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
12357
12358 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
12359 codes which allow non-lvalues.
12360
9a0ee7b0
MG
123612013-05-06 Marc Glisse <marc.glisse@inria.fr>
12362
12363 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
12364 components are all 1s.
12365 (integer_minus_onep): New function.
12366 * tree.h (integer_minus_onep): Declare it.
12367 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
12368 integer_minus_onep instead of integer_all_onesp.
12369
f2c17ea9
OE
123702013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12371
12372 PR target/52933
12373 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
12374 variations of these patterns.
12375
f75e6a51
UB
123762013-05-06 Uros Bizjak <ubizjak@gmail.com>
12377
12378 * config/i386/i386.md (isa): Add x64_sse4 member.
12379 (enabled): Handle x64_sse4.
12380 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
12381 instruction for 64bit SSE4_1 targets. Update insn attributes.
12382 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
12383 instruction for SSE4_1 targets. Update insn attributes.
12384 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
12385 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
12386 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
12387 const_1 selector.
12388 (*vec_extractv4si): Rename from *sse4_1_pextrd.
12389 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
12390 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
12391
a986d468
OE
123922013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12393
12394 PR target/57108
12395 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
12396
382522cb
MK
123972013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
12398
12399 * final.c (do_assembler_dialects): Don't handle curly braces and
12400 vertical bar escaped by % as dialect delimiters.
12401 (output_asm_insn): Print curly braces and vertical bar if escaped
12402 by % and ASSEMBLER_DIALECT defined.
12403 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
12404 * doc/tm.texi: Regenerated.
12405
fb0d5c60
SB
124062013-05-06 Steven Bosscher <steven@gcc.gnu.org>
12407
fb0d5c60
SB
12408 * config/mips/mips.c: Include tree-pass.h.
12409 (mips_reorg): Split in pre- and post-dbr_schedule parts.
12410 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
12411 (pass_mips_machine_reorg2): New machine specific pass.
12412 (insert_pass_mips_machine_reorg2): New pass plugin definition.
12413 (mips_option_override): Register the new pass.
12414 * rtl.h (cleanup_barriers): Remove prototype.
12415 (dbr_schedule): Likewise.
12416 * jump.c (cleanup_barriers): Make static.
12417 * reorg.c (dbr_schedule): Likewise.
12418
aa06a978
RB
124192013-05-06 Richard Biener <rguenther@suse.de>
12420
12421 PR tree-optimization/57185
12422 * tree-parloops.c (add_field_for_reduction): Handle anonymous
12423 SSA names properly.
12424
0b953bec
UB
124252013-05-06 Uros Bizjak <ubizjak@gmail.com>
12426
12427 PR target/57106
12428 * config/i386/i386.c (add_parameter_dependencies): Add dependence
12429 between "first_arg" and "insn", not "last" and "insn".
12430
28708525
WS
124312013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12432
12433 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
12434 (find_candidates_in_block): Re-enable slsr_process_phi.
12435 (create_phi_basis): Fix double counting of candidate adjustment.
12436
0107dca2
RB
124372013-05-06 Richard Biener <rguenther@suse.de>
12438
12439 PR middle-end/57147
12440 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
12441 the edge is also fallthru, preserve it and just clear the
12442 abnormal flag.
12443 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
12444 also complex, preserve that and just clear the fallthru flag.
12445 * tree-inline.c (update_ssa_across_abnormal_edges): Also
12446 update virtual operands.
12447
470d4d13
AM
124482013-05-06 Alan Modra <amodra@gmail.com>
12449
12450 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
12451 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
12452 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
12453 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
12454 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
12455 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
12456
8f1dbf8d
AM
124572013-05-06 Alan Modra <amodra@gmail.com>
12458
12459 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
12460 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
12461 (DEFAULT_ASM_ENDIAN): Define.
12462 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
12463 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
12464 Update -K PIC clause from sysv4.h.
12465 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
12466 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
12467
54890767
AM
124682013-05-06 Alan Modra <amodra@gmail.com>
12469
12470 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
12471 twice for little-endian.
12472 (ashrdi3_no_power, ashrdi3): Support little-endian.
12473
2353515d
OE
124742013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12475
12476 PR target/55303
12477 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
12478 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
12479 related expanders.
12480 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
12481 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
12482 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
12483 New predicates.
12484
33e67557
SB
124852013-05-05 Steven Bosscher <steven@gcc.gnu.org>
12486 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12487
12488 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
12489 * config/pa/pa.opt: Make mbig-switch a no-op.
12490 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
12491 (CASE_VECTOR_MODE): Always return SImode.
12492 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
12493 for the !TARGET_BIG_SWITCH case.
12494 * config/pa/pa-linux.h: Likewise.
12495 * config/pa/pa-openbsd.h: Likewise.
12496 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
12497 * config/pa/pa.md (short_jump): Remove define_insn.
12498 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
12499 (casesi0): Remove define_insn.
12500 (type): Remove btable_branch.
12501 (pa_combine_type): Likewise.
12502 (in_nullified_branch_delay): Likewise.
12503 (in_call_delay): Likewise.
12504 (define_delay): Likewise.
12505 (define_insn_reservation "Z3"): Likewise.
12506 (define_insn_reservation "Z4"): Likewise.
12507 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
12508 (pa_adjust_insn_length): Remove adjustment for btable branches.
12509 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
12510 and mno-big-switch
12511
3095685e
UB
125122013-05-05 Uros Bizjak <ubizjak@gmail.com>
12513
12514 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
12515 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
12516 Add m->r,x alternatives.
12517 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
12518 splitters using SWI48x mode iterator.
12519 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
12520 TARGET_64BIT. Add m->x alternative.
12521 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
12522 Add o->x alternative. Enable for TARGET_SSE.
12523 (sse_storeq): Remove expander.
12524 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
12525 with memory input operand.
12526 (*vec_extractv2di_1 splitter): New.
12527 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
12528 * config/i386/i386.md (ssevecmodelower): New mode attribute.
12529
4b36ae28
SB
125302013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12531
12532 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
12533 (INT_LOWPART): Delete.
12534 (extract_MB): Adjust.
12535 (extract_ME): Adjust.
12536 (print_operand): Adjust.
12537
da226db2
SB
125382013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12539
12540 * config/rs6000/predicates.md (reg_or_add_cint_operand,
12541 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
12542 (reg_or_logical_cint_operand, easy_fp_constant,
12543 logical_const_operand): Delete "CONST_DOUBLE" case.
12544 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
12545 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 12546 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
12547 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
12548 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
12549 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
12550 test.
12551 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
12552 CONST_DOUBLE DImode/VOIDmode case.
12553 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
12554 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
12555 CONST_DOUBLE VOIDmode case.
12556 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
12557 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
12558 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
12559 Delete CONST_DOUBLE case.
12560 (splitters for mov FMOVE64 const_double): Delete
12561 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
12562 "HOST_BITS_PER_WIDE_INT >= 64" test.
12563 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
12564 case.
12565 (mov DI const_double): Delete.
12566
40de22d6
JJ
125672013-05-04 Jakub Jelinek <jakub@redhat.com>
12568
12569 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
12570 on op shows all bits zero in mode of a lowpart subreg, return zero.
12571
5ec6aff2
MM
125722013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
12573
12574 PR target/57150
12575 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
12576 to save TFmode registers and DImode to save TImode registers for
12577 caller save operations.
12578 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
12579 mark being partially clobbered since they only use the first
12580 double word.
12581
12582 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
12583 and TDmode only use the upper 64-bits of each VSX register.
12584
2cefad90
BS
125852013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12586
12587 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
12588 (find_candidates_in_block): Disable slsr_process_phi.
12589
d6d7eee1
GW
125902013-05-03 Guozhi Wei <carrot@google.com>
12591
12592 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
12593 constructor to ...
12594 (build_init_ctor): ... here.
d6d7eee1 12595
9b92d12b
BS
125962013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12597
12598 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
12599 (slsr_cand_d): Redefine def_phi.
12600 (stride_status, phi_adjust_status, count_phis_status): New enums.
12601 (find_phi_def): New.
12602 (find_basis_for_base_expr): New.
12603 (find_basis_for_candidate): Handle hidden bases.
12604 (alloc_cand_and_find_basis): Handle phi candidates.
12605 (slsr_process_phi): New.
12606 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
12607 (create_mul_imm_cand): Likewise.
12608 (create_add_ssa_cand): Exclude phi base candidates.
12609 (create_add_imm_cand): Likewise.
12610 (slsr_process_cast): Likewise.
12611 (slsr_process_copy): Likewise.
12612 (find_candidates_in_block): Handle phi candidates.
12613 (dump_candidate): Likewise.
12614 (unconditional_cands): Delete.
12615 (unconditional_cands_with_known_stride_p): Delete.
12616 (phi_dependent_cand_p): New.
12617 (cand_increment): Handle phi-dependent candidates.
12618 (replace_dependent): Delete.
12619 (replace_mult_candidate): New.
12620 (replace_unconditional_candidate): New.
12621 (incr_vec_index): Move to avoid forward reference.
12622 (create_add_on_incoming_edge): New.
12623 (create_phi_basis): New.
12624 (replace_dependents): Delete.
12625 (replace_conditional_candidate): New.
12626 (phi_add_costs): New.
12627 (replace_uncond_cands_and_profitable_phis): New.
12628 (record_increment): Handle phi adjustments.
12629 (record_phi_increments): New.
12630 (record_increments): Handle phi adjustments.
12631 (phi_incr_cost): New.
12632 (lowest_cost_path): Handle phis.
12633 (total_savings): Likewise.
12634 (analyze_increments): Likewise.
12635 (ncd_with_phi): New.
12636 (ncd_of_cand_and_phis): New.
12637 (nearest_common_dominator_for_cands): Handle phi increments.
12638 (all_phi_incrs_profitable): New.
12639 (replace_profitable_candidates): Handle phi-dependent candidates.
12640 (analyze_candidates_and_replace): Likewise.
12641
68f073d4
TJ
126422013-05-03 Teresa Johnson <tejohnson@google.com>
12643
12644 PR bootstrap/57154
12645 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
12646 do not exceed REG_BR_PROB_BASE.
12647
a4ee7cb9
JL
126482013-05-03 Jeff Law <law@redhat.com>
12649
ade67f70 12650 PR tree-optimization/57144
a4ee7cb9
JL
12651 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
12652 operand of the condition will bit into the new type when eliminating
12653 a cast feeding a condition.
12654
47954c4e
JJ
126552013-05-03 Jakub Jelinek <jakub@redhat.com>
12656
12657 PR rtl-optimization/57130
3095685e
UB
12658 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
12659 of COMPARE as in_code to the recursive call if needed.
47954c4e 12660
3c21604f
UB
126612013-05-03 Uros Bizjak <ubizjak@gmail.com>
12662
12663 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
12664 (enabled): Handle new members.
12665 * config/i386/sse.md (*vec_concatv2si): Merge from
12666 *vec_concatv2si_sse2 and vec_concatv2si_sse.
12667 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
12668
12211b99 126692013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
12670
12671 PR tree-optimization/57027
12672 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
12673 for fnms opportunity, check we got the prerequisite kind
12674 of tree / gimple before using accessor functions.
12675
07bfc9ec
RB
126762013-05-03 Richard Biener <rguenther@suse.de>
12677
12678 * double-int.h (lshift): New overload without precision
12679 and arith argument.
12680 (operator *=, operator +=, operator -=): Move ...
12681 * double-int.c (operator *=, operator +=, operator -=): ... here
12682 and implement more efficiently.
12683 (mul_double_with_sign): Remove.
12684 (lshift_double): Adjust to take unsinged shift argument, push
12685 dispatching code to callers.
12686 (mul_double_wide_with_sign): Add early out for callers that
12687 are not interested in high parts or overflow.
12688 (lshift): New function.
12689 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
12690 dispatch code here.
12691 (lrotate, rrotate): Use logical shifts.
12692 * expr.c (get_inner_reference): Use lshift.
12693 * fixed-value.c (do_fixed_divide): Likewise.
12694 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12695 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
12696 (indirect_refs_may_alias_p): Likewise.
12697 (stmt_kills_ref_p_1): Likewise.
12698
7769bb64
VP
126992013-05-03 Vidya Praveen <vidyapraveen@arm.com>
12700
12701 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
12702
1d0c8e5c
VP
127032013-05-03 Vidya Praveen <vidyapraveen@arm.com>
12704
12705 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
12706 scalar form of FABD instruction.
12707
f15feaf9
VM
127082013-05-02 Vladimir Makarov <vmakarov@redhat.com>
12709
12710 * lra-constraints.c (process_alt_operands): Add checking alt
12711 number to choose the best alternative.
12712
d90e76d4
RB
127132013-05-02 Richard Biener <rguenther@suse.de>
12714
12715 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
12716 bitmap and its handling.
12717 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
12718
9f8e7a96
RB
127192013-05-02 Richard Biener <rguenther@suse.de>
12720
12721 PR middle-end/57140
12722 * tree-inline.c (copy_loops): Properly handle removed loops.
12723 (copy_cfg_body): Mark destination loops for fixup if source
12724 loops needed fixup.
12725
f3a81b39
GY
127262013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
12727
12728 PR target/56732
12729 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
12730 generating simple_return for naked functions.
12731
7b920a9a
MJ
127322013-05-02 Martin Jambor <mjambor@suse.cz>
12733
12734 PR middle-end/56988
12735 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
12736 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
12737 flags match.
12738 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
12739 ipa_agg_replacement_value structures.
12740 (known_aggs_to_agg_replacement_list): Likewise.
12741 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
12742 (read_agg_replacement_chain): Likewise.
12743 (ipcp_transform_function): Also check that by_ref flags match.
12744
2c41c19d
RB
127452013-05-02 Richard Biener <rguenther@suse.de>
12746
12747 * graphds.h (struct graph): Add obstack member.
12748 * graphds.c (new_graph): Initialize obstack and allocate
12749 vertices from it.
12750 (add_edge): Allocate edge from the obstack.
3c21604f 12751 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 12752
8b47039c
TJ
127532013-05-02 Teresa Johnson <tejohnson@google.com>
12754
12755 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
12756 divides.
12757 * cfg.c (update_bb_profile_for_threading): Ditto.
12758 * tree-inline.c (copy_bb): Ditto.
12759 (copy_edges_for_bb): Ditto.
12760 (initialize_cfun): Ditto.
12761 (copy_cfg_body): Ditto.
12762 (expand_call_inline): Ditto.
12763 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
12764 (estimate_node_size_and_time): Ditto.
12765 (inline_merge_summary): Ditto.
12766 * cgraphclones.c (cgraph_clone_edge): Ditto.
12767 (cgraph_clone_node): Ditto.
12768 * sched-rgn.c (compute_dom_prob_ps): Ditto.
12769 (compute_trg_info): Ditto.
12770
da65928c
IB
127712013-05-02 Ian Bolton <ian.bolton@arm.com>
12772
12773 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
12774 S reg when fp attribute set.
12775 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
12776
add3c965
IB
127772013-05-02 Ian Bolton <ian.bolton@arm.com>
12778
12779 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
12780 New pattern.
12781 (*and_one_cmplsi3_compare0_uxtw): Likewise.
12782 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
12783 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
12784
fdd43ac4
RB
127852013-05-02 Richard Biener <rguenther@suse.de>
12786
12787 * tree-scalar-evolution.c (scev_info_hasher): Remove.
12788 (struct instantiate_cache_entry): New type.
12789 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
12790 (struct instantiate_cache_type): New type.
12791 (set_instantiated_value, get_instantiated_value): Remove.
12792 (get_instantiated_value_entry): New function.
12793 (instantiate_scev_name): Use the new cache and adjust.
12794 (instantiate_scev_poly): Adjust.
12795 (instantiate_scev_binary): Likewise.
12796 (instantiate_array_ref): Likewise.
12797 (instantiate_scev_convert): Likewise.
12798 (instantiate_scev_not): Likewise.
12799 (instantiate_scev_3): Likewise.
12800 (instantiate_scev_2): Likewise.
12801 (instantiate_scev_r): Likewise.
12802 (instantiate_scev): Likewise.
12803 (resolve_mixers): Likewise.
12804
36ff9dfb
VM
128052013-05-01 Vladimir Makarov <vmakarov@redhat.com>
12806
12807 PR target/57091
12808 * lra-constraints.c (best_small_class_operands_num): Remove.
12809 (process_alt_operands): Remove small_class_operands_num. Take
12810 small classes operands into losers and only if the operand is not
12811 matched. Modify debugging output.
12812 (curr_insn_transform): Remove best_small_class_operands_num.
12813 Print insn name.
12814
36054fab
JG
128152013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12816
12817 * config/aarch64/aarch64-builtins.c
12818 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
12819 * config/aarch64/aarch64-simd-builtins.def
12820 (reduc_splus_): Add new modes.
12821 (reduc_uplus_): New.
12822 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
12823 (reduc_uplus_v4sf): Likewise.
12824 (reduc_splus_v4sf): Likewise.
12825 (aarch64_addv<mode>): Likewise.
12826 (reduc_uplus_<mode>): Likewise.
12827 (reduc_splus_<mode>): Likewise.
12828 (aarch64_addvv2di): Likewise.
12829 (reduc_uplus_v2di): Likewise.
12830 (reduc_splus_v2di): Likewise.
12831 (aarch64_addvv2si): Likewise.
12832 (reduc_uplus_v2si): Likewise.
12833 (reduc_splus_v2si): Likewise.
12834 (reduc_<sur>plus_<mode>): New.
12835 (reduc_<sur>plus_v2di): Likewise.
12836 (reduc_<sur>plus_v2si): Likewise.
12837 (reduc_<sur>plus_v4sf): Likewise.
12838 (aarch64_addpv4sf): Likewise.
12839 * config/aarch64/arm_neon.h
12840 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
12841 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
12842 add UNSPEC_SADDV, UNSPEC_UADDV.
12843 (SUADDV): New.
12844 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
12845
6dce23a8
JG
128462013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12847
12848 * config/aarch64/arm_neon.h
12849 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
12850
1598945b
JG
128512013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12852
12853 * config/aarch64/aarch64-builtins
12854 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
12855
998eaf97
JG
128562013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12857
12858 * config/aarch64/aarch64-simd-builtins.def
12859 (reduc_smax_): New.
12860 (reduc_smin_): Likewise.
12861 (reduc_umax_): Likewise.
12862 (reduc_umin_): Likewise.
12863 (reduc_smax_nan_): Likewise.
12864 (reduc_smin_nan_): Likewise.
12865 (fmax): Remove.
12866 (fmin): Likewise.
12867 (smax): Update for V2SF, V4SF and V2DF modes.
12868 (smin): Likewise.
12869 (smax_nan): New.
12870 (smin_nan): Likewise.
12871 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
12872 (<su><maxmin><mode>3): ...This, refactor.
12873 (s<maxmin><mode>3): New.
12874 (<maxmin_uns><mode>3): Likewise.
12875 (reduc_<maxmin_uns>_<mode>): Refactor.
12876 (reduc_<maxmin_uns>_v4sf): Likewise.
12877 (reduc_<maxmin_uns>_v2si): Likewise.
12878 (aarch64_<fmaxmin><mode>: Remove.
12879 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
12880 new builtin names.
12881 (vmin<q>_f<32,64>): Likewise.
12882 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
12883 (FMAXMIN): New.
12884 (su): Add mappings for smax, smin, umax, umin.
12885 (maxmin): New.
12886 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
12887 (FMAXMIN): Rename as...
12888 (FMAXMIN_UNS): ...This.
12889 (maxminv): Remove.
12890 (fmaxminv): Likewise.
12891 (fmaxmin): Likewise.
12892 (maxmin_uns): New.
12893 (maxmin_uns_op): Likewise.
12894
bd11644e
JG
128952013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12896
12897 * config/aarch64/arm_neon.h
12898 (vac<ge, gt><sd>_f<32, 64>): Rename to...
12899 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
12900 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
12901
75dd5ace
JG
129022013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12903
12904 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
12905 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
12906
7c19979f
JG
129072013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12908
12909 * config/aarch64/aarch64-simd.md
12910 (vcond<mode>_internal): Handle special cases for constant masks.
12911 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
12912 (vcondu<mode><mode>): Likewise.
12913 (vcond<v_cmp_result><mode>): New.
12914
bb60efd9
JG
129152013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12916
12917 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
12918 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
12919 * config/aarch64/aarch64-simd-builtins.def
12920 (cmeq): Update to BUILTIN_VALLDI.
12921 (cmgt): Likewise.
12922 (cmge): Likewise.
12923 (cmle): Likewise.
12924 (cmlt): Likewise.
12925 * config/aarch64/arm_neon.h
12926 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
12927 to builtins or C as appropriate.
12928
889b9412
JG
129292013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
12930
12931 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
12932 (cmgeu): ...This.
12933 (cmhi): Rename to...
12934 (cmgtu): ...This.
12935 * config/aarch64/aarch64-simd.md
12936 (simd_mode): Add SF.
12937 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
12938 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
12939 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
12940 (cstore<mode>_neg): ...This.
12941 * config/aarch64/iterators.md
12942 (VALLF): new.
12943 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
12944 (COMPARISONS): New.
12945 (UCOMPARISONS): Likewise.
12946 (optab): Add missing comparisons.
12947 (n_optab): New.
12948 (cmp_1): Likewise.
12949 (cmp_2): Likewise.
12950 (CMP): Likewise.
12951 (cmp): Remove.
12952 (VCMP_S): Likewise.
12953 (VCMP_U): Likewise.
12954 (V_cmp_result): Add DF, SF modes.
12955 (v_cmp_result): Likewise.
12956 (v): Likewise.
12957 (vmtype): Likewise.
12958 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
12959
0a7dbb76
GY
129602013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
12961
12962 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
12963 define_insn to define_insn_and_split.
12964 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
12965 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
12966 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
12967 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
12968 (thumb2_negscc): Likewise.
12969
fb614ca6
GY
129702013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
12971
12972 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
12973
9e64a0bf
GY
129742013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
12975
12976 * config/arm/thumb2.md: Remove trailing whitespaces.
12977
d6b28156
RS
129782013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12979
12980 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
12981 Use gen_int_mode rather than GEN_INT.
12982
f91674c3
L
129832013-04-30 H.J. Lu <hongjiu.lu@intel.com>
12984
b0dec607 12985 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
12986 debug_gimple_stmt.
12987
3551257c
RB
129882013-04-30 Richard Biener <rguenther@suse.de>
12989
12990 PR middle-end/57122
3c21604f 12991 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 12992
4c1aff1c
RB
129932013-04-30 Richard Biener <rguenther@suse.de>
12994
12995 PR middle-end/57107
12996 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
12997
54b8379a
AB
129982013-04-30 Andrey Belevantsev <abel@ispras.ru>
12999
13000 PR rtl-optimization/56957
13001 PR rtl-optimization/57105
54b8379a
AB
13002 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
13003 variable. Use just INSN_UID for determining whether an insn
13004 should be only disconnected from the insn stream.
13005 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
13006
abc27962
JJ
130072013-04-30 Jakub Jelinek <jakub@redhat.com>
13008
13009 PR tree-optimization/57104
13010 * tsan.c (instrument_expr): Don't instrument accesses to
13011 DECL_HARD_REGISTER VAR_DECLs.
13012
0fc822d0
RB
130132013-04-30 Richard Biener <rguenther@suse.de>
13014
13015 * function.h (loops_for_fn): New inline function.
13016 (set_loops_for_fn): Likewise.
13017 * cfgloop.h (place_new_loop): Add struct function parameter.
13018 (get_loop): Likewise.
13019 (get_loops): Likewise.
13020 (number_of_loops): Likewise.
13021 (fel_next): Adjust.
13022 (fel_init): Likewise.
13023 * cfg.c (get_loop_copy): Adjust.
13024 * cfgloop.c (flow_loops_dump): Likewise.
13025 (record_loop_exits): Likewise.
13026 (verify_loop_structure): Likewise.
13027 * cfgloopanal.c (mark_irreducible_loops): Likewise.
13028 (estimate_reg_pressure_cost): Likewise.
13029 (mark_loop_exit_edges): Likewise.
13030 * cfgloopmanip.c (place_new_loop): Likewise.
13031 (add_loop): Likewise.
13032 (duplicate_loop): Likewise.
13033 * graph.c (draw_cfg_nodes): Likewise.
13034 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
13035 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
13036 (extract_affine_chrec): Likewise.
13037 (build_scop_iteration_domain): Likewise.
13038 * graphite.c (graphite_initialize): Likewise.
13039 * ira-build.c (create_loop_tree_nodes): Likewise.
13040 (more_one_region_p): Likewise.
13041 (rebuild_regno_allocno_maps): Likewise.
13042 (mark_loops_for_removal): Likewise.
13043 (mark_all_loops_for_removal): Likewise.
13044 (remove_unnecessary_regions): Likewise.
13045 (ira_build): Likewise.
13046 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
13047 * loop-init.c (fix_loop_structure): Likewise.
13048 (gate_rtl_move_loop_invariants): Likewise.
13049 (gate_rtl_unswitch): Likewise.
13050 (gate_rtl_unroll_and_peel_loops): Likewise.
13051 (rtl_doloop): Likewise.
13052 * lto-streamer-in.c (input_cfg): Likewise.
13053 * lto-streamer-out.c (output_cfg): Likewise.
13054 * modulo-sched.c (sms_schedule): Likewise.
13055 * predict.c (tree_estimate_probability): Likewise.
13056 (tree_estimate_probability_driver): Likewise.
13057 (estimate_loops): Likewise.
13058 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
13059 (move_sese_region_to_fn): Likewise.
13060 (debug_loop_num): Likewise.
13061 * tree-chrec.c (chrec_evaluate): Likewise.
13062 (hide_evolution_in_other_loops_than_loop): Likewise.
13063 (chrec_component_in_loop_num): Likewise.
13064 (reset_evolution_in_loop): Likewise.
13065 (evolution_function_is_invariant_rec_p): Likewise.
13066 * tree-if-conv.c (main_tree_if_conversion): Likewise.
13067 * tree-inline.c (copy_loops): Likewise.
13068 (copy_cfg_body): Likewise.
13069 (tree_function_versioning): Likewise.
13070 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
13071 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13072 Likewise.
13073 (add_to_evolution_1): Likewise.
13074 (scev_const_prop): Likewise.
13075 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
13076 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
13077 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
13078 (tree_ssa_lim_initialize): Likewise.
13079 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
13080 (verify_loop_closed_ssa): Likewise.
13081 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
13082 (tree_ssa_loop_im): Likewise.
13083 (tree_ssa_loop_unswitch): Likewise.
13084 (tree_vectorize): Likewise.
13085 (check_data_deps): Likewise.
13086 (tree_ssa_loop_ivcanon): Likewise.
13087 (tree_ssa_loop_bounds): Likewise.
13088 (tree_complete_unroll): Likewise.
13089 (tree_complete_unroll_inner): Likewise.
13090 (tree_parallelize_loops): Likewise.
13091 (tree_ssa_loop_prefetch): Likewise.
13092 (tree_ssa_loop_ivopts): Likewise.
13093 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
13094 * tree-vectorizer.c (vectorize_loops): Likewise.
13095
37953bd3
MF
130962013-04-29 Mike Frysinger <vapier@gentoo.org>
13097
13098 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
13099 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
13100 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
13101 with EABI_LINK_SPEC.
13102
f9ed28db
UB
131032013-04-29 Uros Bizjak <ubizjak@gmail.com>
13104
13105 PR target/44578
13106 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
13107 alternative.
13108
deca73f5
VM
131092013-04-29 Vladimir Makarov <vmakarov@redhat.com>
13110
13111 PR target/57097
37953bd3 13112 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
13113 using memory for pseudos. Print cost dump for alternatives.
13114 Modify cost values for conflicts with early clobbers.
13115 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
13116
fdca7d03
UB
131172013-04-29 Uros Bizjak <ubizjak@gmail.com>
13118
13119 PR target/57098
13120 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
13121
0b064172
IB
131222013-04-29 Ian Bolton <ian.bolton@arm.com>
13123
13124 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
13125 from/to S register.
13126 (movdi_aarch64): Support LDR/STR from/to D register.
13127
473cec55
IB
131282013-04-29 Ian Bolton <ian.bolton@arm.com>
13129
13130 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
13131 or higher by default.
13132
a6f30e66
RB
131332013-04-29 Richard Biener <rguenther@suse.de>
13134
13135 PR middle-end/57075
13136 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
13137 even if not adding abnormal edges for calls that can make
13138 abnormal gotos.
13139
0c2b2040
RB
131402013-04-29 Richard Biener <rguenther@suse.de>
13141
13142 PR middle-end/57103
13143 * tree-cfg.c (move_stmt_op): Fix condition under which to update
13144 TREE_BLOCK.
13145 (move_stmt_r): Remove redundant checking.
13146
f41f80f9
TJ
131472013-04-29 Teresa Johnson <tejohnson@google.com>
13148
13149 PR bootstrap/57077
13150 * basic-block.h (apply_scale): New function.
13151 (apply_probability): Use apply_scale.
13152 * gimple-streamer-in.c (input_bb): Ditto.
13153 * lto-streamer-in.c (input_cfg): Ditto.
13154 * lto-cgraph.c (merge_profile_summaries): Ditto.
13155 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 13156 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
13157 (copy_edges_for_bb): Ditto.
13158 (copy_cfg_body): Ditto.
13159
315bbd2e
TV
131602013-04-29 Tom de Vries <tom@codesourcery.com>
13161
13162 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
13163 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
13164 (tail_merge_optimize): Handle current_loops == NULL.
13165
ebbd90d8
JL
131662013-04-26 Jeff Law <law@redhat.com>
13167
13168 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
13169 (simplify_cond_using_ranges): Generalize code to simplify
13170 COND_EXPRs where one argument is a constant and the other
13171 is an SSA_NAME created by an integral type conversion.
13172
8b9b57eb
KT
131732013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13174
13175 * config/arm/arm.md (store_minmaxsi): Use only when
13176 optimize_insn_for_size_p.
13177
9498e5dc
CB
131782013-04-29 Christian Bruel <christian.bruel@st.com>
13179
13180 PR target/57108
13181 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
13182
6093bc06
RB
131832013-04-29 Richard Biener <rguenther@suse.de>
13184
13185 PR middle-end/57089
fdca7d03
UB
13186 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
13187 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
13188 (expand_omp_for_generic): Properly add loops.
13189 (expand_omp_for_static_nochunk): Likewise.
13190 (expand_omp_for_static_chunk): Likewise.
13191 (expand_omp_for): For the degenerate case fixup loops.
13192 (expand_omp_sections): Fix default bb placement in loops.
13193 (expand_omp_atomic_pipeline): Properly add loops.
13194
84aacbfd
KT
131952013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13196
13197 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
13198
8dee4479
TV
131992013-04-29 Tom de Vries <tom@codesourcery.com>
13200
13201 * tree-ssa-tail-merge.c: Update header comment.
13202
47934dc4
JG
132032013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13204
13205 * config/aarch64/arm_neon.h
13206 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
13207 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
13208 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
13209 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
13210 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
13211 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
13212 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
13213 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
13214
384be29f
JG
132152013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13216
13217 * config/aarch64/aarch64-simd.md
13218 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
13219 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
13220 fix_trunc, fixuns_trunc.
13221 (ftrunc<VDQF:mode>2): New.
13222 * config/aarch64/iterators.md (optab): Add fix, fixuns.
13223 (fix_trunc_optab): New.
13224
0386b123
JG
132252013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13226
13227 * config/aarch64/aarch64-builtins.c
13228 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
13229 iceilf, lround, iroundf.
13230
00fcb892
UB
132312013-04-29 Uros Bizjak <ubizjak@gmail.com>
13232
13233 PR target/54349
13234 * config/i386/i386.h (enum ix86_tune_indices)
13235 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
13236 New, split from X86_TUNE_INTER_UNIT_MOVES.
13237 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
13238 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
13239 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
13240 (TARGET_INTER_UNIT_MOVES): Remove.
13241 * config/i386/i386.c (initial_ix86_tune_features): Update.
13242 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
13243 (ix86_expand_convert_uns_didf_sse): Use
13244 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
13245 (ix86_expand_vector_init_one_nonzero): Ditto.
13246 (ix86_expand_vector_init_interleave): Ditto.
13247 (inline_secondary_memory_needed): Return true for moves from SSE class
13248 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
13249 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
13250 * config/i386/constraints.md (Yi, Ym): Depend on
13251 TARGET_INTER_UNIT_MOVES_TO_VEC.
13252 (Yj, Yn): New constraints.
13253 * config/i386/i386.md (*movdi_internal): Change constraints of
13254 operand 1 from Yi to Yj and from Ym to Yn.
13255 (*movsi_internal): Ditto.
13256 (*movdf_internal): Ditto.
13257 (*movsf_internal): Ditto.
13258 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
13259 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
13260 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
13261 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
13262 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
13263 * config/i386/sse.md (movdi_to_sse): Ditto.
13264 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
13265 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
13266 TARGET_INTER_UNIT_MOVES.
13267 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
13268 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
13269 instead of TARGET_INTER_UNIT_MOVES.
13270 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
13271 operand 1 from Yi to Yj and from Ym to Yn.
13272
4c871069
JG
132732013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13274
13275 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
13276 (float_truncate_hi_): Likewise.
13277 (float_extend_lo_): Likewise.
13278 (float_truncate_lo_): Likewise.
13279 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
13280 (aarch64_float_extend_lo_v2df): Likewise.
13281 (vec_unpacks_hi_v4sf): Likewise.
13282 (aarch64_float_truncate_lo_v2sf): Likewise.
13283 (aarch64_float_truncate_hi_v4sf): Likewise.
13284 (vec_pack_trunc_v2df): Likewise.
13285 (vec_pack_trunc_df): Likewise.
13286
1709ff9b
JG
132872013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13288
13289 * config/aarch64/aarch64-builtins.c
13290 (aarch64_fold_builtin): Fold float conversions.
13291 * config/aarch64/aarch64-simd-builtins.def
13292 (floatv2si, floatv4si, floatv2di): New.
13293 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
13294 * config/aarch64/aarch64-simd.md
13295 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
13296 * config/aarch64/iterators.md (FLOATUORS): New.
13297 (optab): Add float, floatuns.
13298 (su_optab): Likewise.
13299
ce966824
JG
133002013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13301
13302 * config/aarch64/aarch64-builtins.c
13303 (aarch64_builtin_vectorized_function): Use new names for
13304 fcvt builtins.
13305 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
13306 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
13307 (fcvtzu): Split as...
13308 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
13309 (fcvtas): Split as...
13310 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
13311 (fcvtau): Split as...
13312 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
13313 (fcvtps): Split as...
13314 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
13315 (fcvtpu): Split as...
13316 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
13317 (fcvtms): Split as...
13318 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
13319 (fcvtmu): Split as...
13320 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
13321 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
13322 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
13323 (lfrintnusf, lfrintnudf): Likewise.
13324 * config/aarch64/aarch64-simd.md
13325 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
13326 define_insn.
13327 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
13328 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
13329 (fcvt_pattern): Likewise.
13330
b9de24fe
JG
133312013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13332
13333 * config/aarch64/aarch64-simd.md
13334 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
13335 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
13336
77a205be
JG
133372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13338
13339 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
13340 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
13341 (vrnd<a,m,n,p>_f32): Implement using builtins.
13342 (vrnd<i,x><q>_f<32, 64>): New.
13343
0659ce6f
JG
133442013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13345
13346 * config/aarch64/aarch64-builtins.c
13347 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
13348 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
13349 (frintz): Rename to...
13350 (btrunc): ...this.
13351 (frintp): Rename to...
13352 (ceil): ...this.
13353 (frintm): Rename to...
13354 (floor): ...this.
13355 (frinti): Rename to...
13356 (nearbyint): ...this.
13357 (frintx): Rename to...
13358 (rint): ...this.
13359 (frinta): Rename to...
13360 (round): ...this.
13361 * config/aarch64/aarch64-simd.md
13362 (aarch64_frint<frint_suffix><mode>): Delete.
13363 (<frint_pattern><mode>2): Convert to insn.
13364 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
13365 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
13366 (frint_pattern): Likewise.
13367 (frint_suffix): Likewise.
13368
ea78906a
RB
133692013-04-29 Richard Biener <rguenther@suse.de>
13370
13371 PR tree-optimization/57081
13372 * loop-init.c: Include tree-flow.h.
13373 (loop_optimizer_finalize): Free number of iteration estimates.
13374 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
13375
baee1763
JJ
133762013-04-29 Jakub Jelinek <jakub@redhat.com>
13377
94dc5332
JJ
13378 PR tree-optimization/57083
13379 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
13380 non-singleton shift count range, zero extend low_bound for uns case.
13381
baee1763
JJ
13382 * config/i386/predicates.md (general_vector_operand): New predicate.
13383 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
13384 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
13385 if they aren't nonimmediate operands. If their original values
13386 satisfy const_vector_equal_evenodd_p, don't shift them.
13387 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
13388 predicates. For the SSE4.1 case force operands[{1,2}] into registers
13389 if not nonimmediate_operand.
13390 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
13391 instead of register_operand.
13392 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
13393
a9073727 133942013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
13395
13396 * stor-layout.c (finalize_size_functions): Allocate a structure and
13397 reset cfun before dumping the functions.
13398
ba8011e6
JJ
133992013-04-27 Jakub Jelinek <jakub@redhat.com>
13400
d6fde69e
JJ
13401 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
13402
ba8011e6
JJ
13403 PR target/56866
13404 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
13405 use xop_pmacsdqh if uns_p.
13406 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
13407 the immediate rotate count.
13408
2c62cbaa
VM
134092013-04-26 Vladimir Makarov <vmakarov@redhat.com>
13410
13411 * rtl.h (struct rtx_def): Add comment for field jump.
13412 (LRA_SUBREG_P): New macro.
13413 * recog.c (register_operand): Check LRA_SUBREG_P.
13414 * lra.c (lra): Add note at the end of RTL code. Align non-empty
13415 stack frame.
13416 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
13417 (lra_final_code_change): Skip subreg change for operators.
13418 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
13419 if there are no operand changes.
13420 * lra-constraints.c (curr_insn_set): New.
13421 (match_reload): Set LRA_SUBREG_P.
13422 (emit_spill_move): Ditto.
13423 (check_and_process_move): Use curr_insn_set. Process only single
13424 set insns. Don't initialize sec_mem_p and change_p.
13425 (simplify_operand_subreg): Use LRA_SUBREG_P.
13426 (reg_in_class_p): New function.
13427 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
13428 of #ifdef. Add code to remove cycling.
13429 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
13430 non-null disp. Reload inner instead of disp when base and index
13431 are null. Try to put lo_sum into register.
13432 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
13433 (check_and_process_move): Move code for move cost check to
13434 simple_move_p. Remove equiv_substitution.
13435 (simple_move_p): New function.
13436 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
13437 curr_insn_set. Call check_and_process_move only for single set
13438 insns. Use the new function. Move call of check_and_process_move
13439 after operand equiv substitution and address process.
13440
e7d764f3
JJ
134412013-04-26 Jakub Jelinek <jakub@redhat.com>
13442
13443 PR go/57045
13444 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
13445 with nonlocal goto receivers or returns twice calls, ignore
13446 unininitialized values from abnormal edges to nl goto receiver
13447 or returns twice call.
13448
41e10689
JJ
134492013-04-26 Jakub Jelinek <jakub@redhat.com>
13450
13451 PR tree-optimization/57051
13452 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
13453 and VEC_RSHIFT_EXPR if shift count is a multiple of element
13454 bitsize.
13455
d7ed20db
RB
134562013-04-26 Richard Biener <rguenther@suse.de>
13457
13458 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
13459 (expand_omp_taskreg): Likewise. Mark loops for fixup.
13460 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
13461 (fixup_loop_arrays_after_move): New function.
13462 (move_sese_region_to_fn): Properly outline the loop tree parts
13463 of the SESE region.
13464
df93505e
UB
134652013-04-26 Uros Bizjak <ubizjak@gmail.com>
13466
13467 * config/i386/i386.md (type, unit): Fix long lines.
13468
dd366ec3
RB
134692013-04-26 Richard Biener <rguenther@suse.de>
13470
13471 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
13472 (lto-streamer-out.o): Likewise.
13473 * cfgloop.c (init_loops_structure): Export, add struct function
13474 argument and adjust.
13475 (flow_loops_find): Adjust.
13476 * cfgloop.h (enum loop_estimation): Add EST_LAST.
13477 (init_loops_structure): Declare.
13478 * lto-streamer-in.c: Include cfgloop.h.
13479 (input_cfg): Input the loop tree.
13480 * lto-streamer-out.c: Include cfgloop.h.
13481 (output_cfg): Output the loop tree.
13482 (output_struct_function_base): Do not drop PROP_loops.
13483
a9e0d843
RB
134842013-03-26 Richard Biener <rguenther@suse.de>
13485
13486 * tree-cfg.c (execute_build_cfg): Build the loop tree.
13487 (pass_build_cfg): Provide PROP_loops.
13488 (move_sese_region_to_fn): Remove loops that are outlined into fn
13489 for now.
13490 * tree-inline.c: Include cfgloop.h.
13491 (initialize_cfun): Do not drop PROP_loops.
13492 (copy_loops): New function.
13493 (copy_cfg_body): Copy loop structure.
13494 (tree_function_versioning): Initialize destination loop tree.
13495 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
13496 (pass_parallelize_loops): Do IL verification.
13497 * loop-init.c (loop_optimizer_init): Fixup loops if required.
13498 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
13499 the CFG make sure we fixup loops as well.
13500 * tree-ssa-tail-merge.c: Include cfgloop.h.
13501 (replace_block_by): When merging loop latches mark loops for fixup.
13502 * lto-streamer-out.c (output_struct_function_base): Drop
13503 PROP_loops for now.
13504 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
13505 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
13506 * ipa-split.c: Include cfgloop.h.
13507 (split_function): Add the new return block to the loop tree root.
13508 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
13509 whether we have removed the forwarder block.
13510 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
13511 * cfgloop.h (place_new_loop): Declare.
13512 * cfgloopmanip.c (place_new_loop): Export.
13513 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
13514 (tree-switch-conversion.o): Likewise.
13515 (tree-complex.o): Likewise.
13516 (tree-inline.o): Likewise.
13517 (tree-ssa-tailmerge.o): Likewise.
13518 (ipa-split.o): Likewise.
13519 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
13520 (tree-ssa-copy.o): Likewise.
13521 * tree-switch-conversion.c: Include cfgloop.h
13522 (process_switch): If we emit a bit-test cascade, schedule loops
13523 for fixup.
13524 * tree-complex.c: Include cfgloop.h.
13525 (expand_complex_div_wide): Properly add new basic-blocks to loops.
13526 * asan.c: Include cfgloop.h.
13527 (create_cond_insert_point): Properly add new basic-blocks to
13528 loops, schedule loop fixup.
13529 * cfgloop.c (verify_loop_structure): Check that looks are not
13530 marked for fixup.
13531 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
13532 to loops.
13533 (expand_omp_for_generic): Likewise.
13534 (expand_omp_sections): Likewise.
13535 (expand_omp_atomic_pipeline): Schedule loops for fixup.
13536 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
13537 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
13538 is initialized, not when loops are present.
13539 * tree-parloops.c (parallelize_loops): Remove checking here.
13540 * passes.c (init_optimization_passes): Schedule a copy-propagation
13541 pass before complete unrolling of inner loops.
13542
e78e8a0b
JJ
135432013-04-26 Jakub Jelinek <jakub@redhat.com>
13544
a2e836b2
JJ
13545 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
13546 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
13547 (colorize_init): Add argument to _WIN32 version.
13548 * toplev.c: Include diagnostic-color.h.
13549 (process_options): Default to -fdiagnostics-color=auto if
13550 GCC_COLORS env var is in the environment.
13551 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
13552 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
13553 env var is in the environment, the default is auto rather than never.
a2e836b2 13554
e78e8a0b
JJ
13555 * diagnostic.h (file_name_as_prefix): Add context argument.
13556 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
13557 the string as locus.
13558 * langhooks.c (lhd_print_error_function): Adjust caller.
13559
013e5ef9
LC
135602013-04-25 Lawrence Crowl <crowl@google.com>
13561
13562 * var-tracking.c (shared_hash_def::htab):
13563 Change type to hash_table. Update dependent calls and types.
13564
4a8fb1a1
LC
135652013-04-25 Lawrence Crowl <crowl@google.com>
13566
13567 * Makefile.in: Update as needed below.
13568
13569 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
13570 Move declaration to after the type's method definitons.
13571
13572 * attribs.c (htab_t scoped_attributes::attribute_hash):
13573 Change type to hash_table. Update dependent calls and types.
13574
13575 * bitmap.c (htab_t bitmap_desc_hash):
13576 Change type to hash_table. Update dependent calls and types.
13577
13578 * cselib.c (htab_t cselib_hash_table):
13579 Change type to hash_table. Update dependent calls and types.
13580
13581 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
13582 (hash_string_slot_node): Move implementation into lto-streamer.h
13583 struct string_slot_hasher.
13584 (eq_string_slot_node): Likewise.
13585
13586 * data-streamer-out.c: Update output_block::string_hash_table
13587 dependent calls and types.
13588
13589 * dwarf2cfi.c (htab_t trace_index):
13590 Change type to hash_table. Update dependent calls and types.
13591
13592 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
13593 Change type to hash_table. Update dependent calls and types.
13594 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
13595 (htab_t optimize_external_refs::map): Likewise.
13596 (htab_t output_comp_unit::extern_map): Likewise.
13597 (htab_t output_comdat_type_unit::extern_map): Likewise.
13598 (htab_t output_macinfo::macinfo_htab): Likewise.
13599 (htab_t optimize_location_lists::htab): Likewise.
13600 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
13601
13602 * except.c (htab_t ehspec_hash_type):
13603 Change type to hash_table. Update dependent calls and types.
13604 (assign_filter_values::ttypes): Likewise.
13605 (assign_filter_values::ehspec): Likewise.
13606 (sjlj_assign_call_site_values::ar_hash): Likewise.
13607 (convert_to_eh_region_ranges::ar_hash): Likewise.
13608
13609 * gcse.c (htab_t pre_ldst_table):
13610 Change type to hash_table. Update dependent calls and types.
13611
13612 * ggc-common.c (htab_t saving_htab):
13613 Change type to hash_table. Update dependent calls and types.
13614 (htab_t loc_hash): Likewise.
13615 (htab_t ptr_hash): Likewise.
13616 (call_count): Rename ggc_call_count.
13617 (call_alloc): Rename ggc_call_alloc.
13618 (loc_descriptor): Rename make_loc_descriptor.
13619 (add_statistics): Rename ggc_add_statistics.
13620
13621 * ggc-common.c (saving_htab):
13622 Change type to hash_table. Update dependent calls and types.
13623
13624 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
13625 (push_gimplify_context): Likewise.
13626 (pop_gimplify_context): Likewise.
13627 (struct gimple_temp_hash_elt): Added.
13628 (struct gimplify_hasher): Likewise.
13629 (struct gimplify_ctx.temp_htab):
13630 Change type to hash_table. Update dependent calls and types.
13631
13632 * gimple-fold.c: Include gimplify-ctx.h.
13633
13634 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
13635 Change type to hash_table. Update dependent calls and types.
13636 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
13637 avoid potential global name collision.
13638
13639 * gimplify.c: Include gimplify-ctx.h.
13640 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
13641 (htab_t gimplify_ctx::temp_htab):
13642 Update dependent calls and types for new type hash_table.
13643 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
13644 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
13645
13646 * gimplify-ctx.h: New.
13647 (struct gimple_temp_hash_elt): Move from gimplify.c.
13648 (class gimplify_hasher): New.
13649 (struct gimplify_ctx): Move from gimple.h.
13650 (htab_t gimplify_ctx::temp_htab):
13651 Change type to hash_table. Update dependent calls and types.
13652
13653 * graphite-clast-to-gimple.c: Include graphite-htab.h.
13654 (htab_t ivs_params::newivs_index):
13655 Change type to hash_table. Update dependent calls and types.
13656 (htab_t ivs_params::params_index): Likewise.
13657 (htab_t print_generated_program::params_index): Likewise.
13658 (htab_t gloog::newivs_index): Likewise.
13659 (htab_t gloog::params_index): Likewise.
13660
13661 * graphite.c: Include graphite-htab.h.
13662 4htab_t graphite_transform_loops::bb_pbb_mapping):
13663 Change type to hash_table. Update dependent calls and types.
13664
13665 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
13666 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
13667 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
13668
13669 * graphite-dependences.c: Include graphite-htab.h.
13670 (loop_is_parallel_p): Change hash table type of parameter.
13671
13672 * graphite-htab.h: New.
13673 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
13674 (extern find_pbb_via_hash): Move from graphite-poly.h.
13675 (extern loop_is_parallel_p): Move from graphite-poly.h.
13676 (extern get_loop_body_pbbs): Move from graphite-poly.h.
13677
13678 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
13679 (extern loop_is_parallel_p): Move to graphite-htab.h.
13680 (extern get_loop_body_pbbs): Move to graphite-htab.h.
13681
13682 * haifa-sched.c (htab_t delay_htab):
13683 Change type to hash_table. Update dependent calls and types.
13684 (htab_t delay_htab_i2): Likewise.
13685
13686 * ira-color.c (htab_t allocno_hard_regs_htab):
13687 Change type to hash_table. Update dependent calls and types.
13688
13689 * ira-costs.c (htab_t cost_classes_htab):
13690 Change type to hash_table. Update dependent calls and types.
13691
13692 * loop-invariant.c (htab_t merge_identical_invariants::eq):
13693 Change type to hash_table. Update dependent calls and types.
13694
13695 * loop-iv.c (htab_t bivs):
13696 Change type to hash_table. Update dependent calls and types.
13697
13698 * loop-unroll.c (htab_t opt_info::insns_to_split):
13699 Change type to hash_table. Update dependent calls and types.
13700 (htab_t opt_info::insns_with_var_to_expand): Likewise.
13701
13702 * lto-streamer.h (struct string_slot): Move from data-streamer.h
13703 (struct string_slot_hasher): New.
13704 (htab_t output_block::string_hash_table):
13705 Change type to hash_table. Update dependent calls and types.
13706
13707 * lto-streamer-in.c (freeing_string_slot_hasher): New.
13708 (htab_t file_name_hash_table):
13709 Change type to hash_table. Update dependent calls and types.
13710
13711 * lto-streamer-out.c: Update output_block::string_hash_table dependent
13712 calls and types.
13713
13714 * lto-streamer.c (htab_t tree_htab):
13715 Change type to hash_table. Update dependent calls and types.
13716
13717 * omp-low.c: Include gimplify-ctx.h.
13718
13719 * passes.c (htab_t name_to_pass_map):
13720 Change type to hash_table. Update dependent calls and types.
13721 (pass_traverse): Rename to passes_pass_traverse.
13722
13723 * plugin.c (htab_t event_tab):
13724 Change type to hash_table. Update dependent calls and types.
13725
13726 * postreload-gcse.c (htab_t expr_table):
13727 Change type to hash_table. Update dependent calls and types.
13728 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
13729
13730 * sese.c (debug_rename_map_1): Make extern.
13731 (htab_t copy_bb_and_scalar_dependences::rename_map):
13732 Change type to hash_table. Update dependent calls and types.
13733
13734 * sese.h (extern debug_rename_map): Move to .c file.
13735
13736 * store-motion.c (htab_t store_motion_mems_table):
13737 Change type to hash_table. Update dependent calls and types.
13738
13739 * trans-mem.c (htab_t tm_new_mem_hash):
13740 Change type to hash_table. Update dependent calls and types.
13741
13742 * tree-browser.c (htab_t TB_up_ht):
13743 Change type to hash_table. Update dependent calls and types.
13744
13745 * tree-cfg.c (htab_t discriminator_per_locus):
13746 Change type to hash_table. Update dependent calls and types.
13747
13748 * tree-complex.c: Include tree-hasher.h
13749 (htab_t complex_variable_components):
13750 Change type to hash_table. Update dependent calls and types.
13751
13752 * tree-eh.c (htab_t finally_tree):
13753 Change type to hash_table. Update dependent calls and types.
13754
13755 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
13756 struct int_tree_hasher.
13757 (extern int_tree_map_eq): Likewise.
13758 (uid_decl_map_hash): Removed.
13759 (extern decl_tree_map_eq): Likewise.
13760
13761 * tree-hasher.h: New.
13762 (struct int_tree_hasher): New.
13763 (typedef int_tree_htab_type): New.
13764
13765 * tree-inline.c: Include gimplify-ctx.h.
13766
13767 * tree-mudflap.c: Include gimplify-ctx.h.
13768
13769 * tree-parloops.c: Include tree-hasher.h.
13770 (htab_t eliminate_local_variables_stmt::decl_address):
13771 Change type to hash_table. Update dependent calls and types.
13772 (htab_t separate_decls_in_region::decl_copies): Likewise.
13773
13774 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
13775 Change type to hash_table. Update dependent calls and types.
13776
13777 * tree-sra.c (candidates):
13778 Change type to hash_table. Update dependent calls and types.
13779
13780 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
13781 in tree-flow.h.
13782 (int_tree_map_hash): Likewise.
13783
13784 * tree-ssa-dom.c (htab_t avail_exprs):
13785 Change type to hash_table. Update dependent calls and types.
13786
13787 * tree-ssa-live.c (var_map_base_init::tree_to_index):
13788 Change type to hash_table. Update dependent calls and types.
13789
13790 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
13791 Change type to hash_table. Update dependent calls and types.
13792
13793 * tree-ssa-phiopt.c (seen_ssa_names):
13794 Change type to hash_table. Update dependent calls and types.
13795
13796 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
13797 Change type to hash_table. Update dependent calls and types.
13798
13799 * tree-ssa-uncprop.c (equiv):
13800 Change type to hash_table. Update dependent calls and types.
13801
c5a44004
JJ
138022013-04-25 Jakub Jelinek <jakub@redhat.com>
13803
13804 PR rtl-optimization/57003
13805 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
13806 call note_stores with kill_clobbered_value callback again after
13807 killing regs_invalidated_by_call.
13808
09962a4a
JG
138092013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
13810
13811 * config/aarch64/aarch64-simd.md
13812 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
13813 (aarch64_simd_bsl<mode>): Likewise.
13814 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
13815
ea28bb0b
MP
138162013-04-25 Marek Polacek <polacek@redhat.com>
13817
13818 PR tree-optimization/57066
3c21604f 13819 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 13820
96659611
JG
138212013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
13822
13823 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
13824
9697e620
JG
138252013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
13826
13827 * config/aarch64/aarch64-builtins.c
13828 (aarch64_fold_builtin): New.
13829 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
13830 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
13831 * config/aarch64/aarch64-simd-builtins.def (abs): New.
13832 * config/aarch64/arm_neon.h
13833 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
13834
0ac198d3
JG
138352013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
13836 Tejas Belagod <tejas.belagod@arm.com>
13837
13838 * config/aarch64/aarch64-builtins.c
13839 (aarch64_gimple_fold_builtin): New.
13840 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
13841 * config/aarch64/aarch64-simd-builtins.def (addv): New.
13842 * config/aarch64/aarch64-simd.md (addpv4sf): New.
13843 (addvv4sf): Update.
13844 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
13845
58cff58c
N
138462013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13847
df93505e 13848 * config/aarch64/aarch64.md
58cff58c
N
13849 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
13850
7e0228bf
N
138512013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13852
13853 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
13854 (*ngcsi_uxtw): New pattern.
13855
5819f96f 138562013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 13857 Julian Brown <julian@codesourcery.com>
5819f96f
KT
13858
13859 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
13860 (TB_DREG): Add T_V4HF.
13861 (v4hf_UP): New macro.
13862 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 13863 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
13864 Handle initialisation of V4HF. Adjust initialisation of reinterpret
13865 built-ins.
df93505e 13866 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
13867 (arm_vector_mode_supported_p): Handle V4HF.
13868 (arm_mangle_map): Handle V4HFmode.
13869 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
13870 * config/arm/arm_neon_builtins.def: Add entries for
13871 vcvtv4hfv4sf, vcvtv4sfv4hf.
13872 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
13873 (neon_vcvtv4hfv4sf): Likewise.
13874 * config/arm/neon-gen.ml: Handle half-precision floating point
13875 features.
13876 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
13877 * config/arm/arm_neon.h: Regenerate.
13878 * config/arm/neon.ml (type elts): Add F16.
13879 (type vectype): Add T_float16x4, T_floatHF.
13880 (type vecmode): Add V4HF.
13881 (type features): Add Requires_FP_bit feature.
13882 (elt_width): Handle F16.
13883 (elt_class): Likewise.
13884 (elt_of_class_width): Likewise.
13885 (mode_of_elt): Refactor.
13886 (type_for_elt): Handle F16, fix error messages.
13887 (vectype_size): Handle T_float16x4.
13888 (vcvt_sh): New function.
13889 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
13890 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
13891 (string_of_mode): Handle V4HF.
13892 * doc/arm-neon-intrinsics.texi: Regenerate.
13893
1ef395e4
JG
138942013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
13895
13896 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
13897 format specifier in 'X' case.
13898
41c34e94
AM
138992013-04-25 Alan Modra <amodra@gmail.com>
13900
13901 PR target/57052
13902 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
13903 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
13904 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
13905 Repeat for many other rotate/shift and mask patterns using subregs.
13906 Name lshiftrt insns.
13907 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
13908 on WORDS_BIG_ENDIAN.
13909
b9a7eb5d
AM
139102013-04-25 Alan Modra <amodra@gmail.com>
13911
13912 * config.gcc: Support little-endian powerpc-linux targets.
13913 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
13914 (LINK_OS_LINUX_SPEC): Define.
13915 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
13916 Preserve MASK_LITTLE_ENDIAN.
13917 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
13918 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
13919 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
13920 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
13921 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
13922 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
13923 Correct fp word order for little-endian. Don't shift toc entries
13924 smaller than a word for little-endian.
13925 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
13926 (bswapdi2 splits): Correct low-part subreg for little-endian.
13927 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
13928 low/high where such is correct only for be.
13929 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
13930 little-endian for -mcall-aixdesc.
13931
87f73374
AM
139322013-04-25 Alan Modra <amodra@gmail.com>
13933
13934 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
13935 replace_equiv_address_nv.
13936
cabf91cd
AM
139372013-04-25 Alan Modra <amodra@gmail.com>
13938
13939 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
13940
0ae24cc8
VM
139412013-04-24 Vladimir Makarov <vmakarov@redhat.com>
13942
13943 Revert:
13944 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
13945 * rtl.h (struct rtx_def): ...
cabf91cd 13946
77bce07c
VM
139472013-04-24 Vladimir Makarov <vmakarov@redhat.com>
13948
13949 PR rtl-optimizations/57046
13950 * lra-constraints (split_reg): Set up lra_risky_transformations_p
13951 for multi-reg splits.
13952
0db63e7f
L
139532013-04-24 H.J. Lu <hongjiu.lu@intel.com>
13954
13955 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
13956
3362b6b6
SA
139572013-04-24 Sterling Augustine <saugustine@google.com>
13958
13959 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
13960 (comp_dir_string, debug_str_dwo_section): New.
13961 (DEBUG_STR_DWO_SECTION): Rename to ...
13962 (DEBUG_DWO_STR_SECTION): ... this.
13963 (DEBUG_NORM_STR_SECTION): Delete.
13964 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
13965 (DEBUG_STR_DWO_SECTION_FLAGS): New.
13966 (find_AT_string): Move most logic to ...
13967 (find_AT_string_in_table): ... here. New.
13968 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
13969 add_skeleton_AT_string. Delete logic.
13970 (output_skeleton_debug_sections): Remove call to
13971 add_top_level_skeleton_die_attrs.
13972 (add_comp_dir_attribute): Move logic to comp_dir_string.
13973 (dwarf2out_init): Initialize debug_str_dwo_section.
13974 (output_indirect_string): Call find_string_form.
13975 (output_indirect_strings): Rewrite.
13976 (prune_unused_types): Empty skeleton_debug_str_hash.
13977 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
13978 (dwarf2out_finish): Call output_indirect_strings.
13979
e93e18e9
PC
139802013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
13981
13982 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
13983
f6ce35ac
VM
139842013-04-24 Vladimir Makarov <vmakarov@redhat.com>
13985
cabf91cd 13986 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
13987 (LRA_SUBREG_P): New macro.
13988 * recog.c (register_operand): Check LRA_SUBREG_P.
13989 * lra.c (lra): Add note at the end of RTL code. Align non-empty
13990 stack frame.
13991 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
13992 (lra_final_code_change): Skip subreg change for operators.
13993 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
13994 if there are no operand changes.
13995 * lra-constraints.c (curr_insn_set): New.
13996 (match_reload): Set LRA_SUBREG_P.
13997 (emit_spill_move): Ditto.
13998 (check_and_process_move): Use curr_insn_set. Process only single
13999 set insns. Don't initialize sec_mem_p and change_p.
14000 (simplify_operand_subreg): Use LRA_SUBREG_P.
14001 (reg_in_class_p): New function.
14002 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14003 of #ifdef. Add code to remove cycling.
14004 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14005 non-null disp. Reload inner instead of disp when base and index
14006 are null. Try to put lo_sum into register.
14007 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 14008 (check_and_process_move): Move code for move cost check to
f6ce35ac 14009 simple_move_p. Remove equiv_substitution.
cabf91cd 14010 (simple_move_p): New function.
f6ce35ac
VM
14011 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14012 curr_insn_set. Call check_and_process_move only for single set
14013 insns. Use the new function. Move call of check_and_process_move
14014 after operand equiv substitution and address process.
14015
38047d90
JG
140162013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
14017
14018 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
14019 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
14020 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
14021
13f39b2e
PC
140222013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14023
14024 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
14025
97c116dc
MP
140262013-04-24 Marek Polacek <polacek@redhat.com>
14027
14028 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
14029 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
14030 (select_loops_exit_conditions): Likewise.
14031 (number_of_iterations_for_all_loops): Likewise.
14032 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
14033 (scev_analysis): Likewise.
14034
83082391 140352013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 14036 Chao-ying Fu <fu@mips.com>
83082391 14037
cabf91cd
AM
14038 * config/mips/micromips.md (jraddiusp): New pattern.
14039 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
14040 instruction if possible.
83082391 14041
19e34aa2
AM
140422013-04-24 Alan Modra <amodra@gmail.com>
14043
14044 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
14045
fdb6603c
JB
140462013-04-24 Julian Brown <julian@codesourcery.com>
14047 Chung-Lin Tang <cltang@codesourcery.com>
14048
14049 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
14050 dependency behavior in enumeration type DIE generation. Add TODO note
14051 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 14052
bf190e8d
LC
140532013-04-23 Lawrence Crowl <crowl@google.com>
14054
14055 * Makefile.in: Update as needed below.
14056
14057 * hash-table.h (class hash_table):
14058 Correct many methods with parameter types compare_type to the correct
14059 value_type. (Correct code was unlikely to notice the change.)
14060 (hash_table::elements_with_deleted) New.
14061 (class hashtable::iterator): New.
14062 (hashtable::begin()): New.
14063 (hashtable::end()): New.
14064 (FOR_EACH_HASH_TABLE_ELEMENT): New.
14065
14066 * statistics.c (statistics_hashes):
14067 Change type to hash_table. Update dependent calls and types.
14068
14069 * tree-into-ssa.c (var_infos):
14070 Change type to hash_table. Update dependent calls and types.
14071
14072 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
14073 Change type to hash_table. Update dependent calls and types.
14074
14075 * tree-ssa-loop-im.c (struct mem_ref.refs):
14076 Change type to hash_table. Update dependent calls and types.
14077
14078 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
14079 Change type to hash_table. Update dependent calls and types.
14080
14081 * tree-ssa-sccvn.c (vn_tables_s::nary):
14082 Change type to hash_table. Update dependent calls and types.
14083 (vn_tables_s::phis): Likewise.
14084 (vn_tables_s::references): Likewise.
14085
14086 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
14087 (vn_reference_eq): Update parameter and return types.
14088
14089 * tree-ssa-structalias.c (pointer_equiv_class_table):
14090 Change type to hash_table. Update dependent calls and types.
14091 (location_equiv_class_table): Likewise.
14092
14093 * tree-vect-data-refs.c: Consequential changes for making
14094 peeling a hash_table.
14095
14096 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
14097 (destroy_loop_vec_info): Dependent hash_table update.
14098
14099 * tree-vectorizer.h (peeling_htab):
14100 Change type to hash_table. Update dependent calls and types.
14101
d70a81dd
SC
141022013-04-23 Shiva Chen <shiva0217@gmail.com>
14103
cabf91cd
AM
14104 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
14105 to check the register content is equal or not.
14106 * lra-constraints.c (match_reload): Use lra_assign_reg_val
14107 to assign register content record.
14108 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 14109 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
14110 * lra-int.h (struct lra_reg): Add offset member.
14111 (lra_reg_val_equal_p): New static inline function.
14112 (lra_update_reg_val_offset): New static inline function.
14113 (lra_assign_reg_val): New static inline function.
14114 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
14115 to assign register content record.
14116 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 14117
b894a1f3
CM
141182013-04-23 Catherine Moore <clm@codesourcery.com>
14119
14120 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
14121 operands. Record compression.
14122
ecd14de9
XDL
141232013-04-23 Xinliang David Li <davidxl@google.com>
14124
14125 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
14126
92e776e9
RB
141272013-04-23 Richard Biener <rguenther@suse.de>
14128
14129 PR middle-end/57036
14130 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
14131 parameter, only add abnormal goto edges from the copied body
14132 if the call could perform abnormal gotos.
14133 (copy_cfg_body): Adjust.
14134
a15ee567
SN
141352013-04-23 Sofiane Naci <sofiane.naci@arm.com>
14136
14137 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
14138
08c52234
AS
141392013-04-23 Andreas Schwab <schwab@linux-m68k.org>
14140
14141 * coretypes.h (gimple_stmt_iterator): Add struct to make
14142 compatible with C.
14143
999c1171
RB
141442013-04-23 Richard Biener <rguenther@suse.de>
14145
14146 PR tree-optimization/57026
14147 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
14148 from SSA names occuring in abnormal PHI nodes.
14149
53669259
AK
141502013-04-22 Andi Kleen <ak@linux.intel.com>
14151
14152 * lto/lto.c (print_lto_report_1): Fix LTO report names.
14153
1a0ad150
AK
141542013-04-22 Andi Kleen <ak@linux.intel.com>
14155
14156 * lto/lto.c (print_lto_report_1): Declare early.
14157 (read_cgraph_and_symbols): Call print_lto_report_1 early.
14158
057f8f20
AK
141592013-04-22 Andi Kleen <ak@linux.intel.com>
14160
14161 * common.opt (-flto-report-wpa): Add.
14162 * doc/invoke.texi (-flto-report-wpa): Add.
14163 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
14164 (lto_main): dito.
14165
473b1e05
XDL
141662013-04-22 Xinliang David Li <davidxl@google.com>
14167
14168 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
14169 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
14170 * Makefile.in: New dependency
14171
cabf91cd 14172 David Daney <ddaney.cavm@gmail.com>
b1485a33 14173
cabf91cd
AM
14174 * configure.ac (gcc_cv_as_micromips_support): Use the
14175 --fatal-warnings option.
14176 * configure: Regenerate.
b1485a33 14177
829d0168
MP
141782013-04-22 Marek Polacek <polacek@redhat.com>
14179
14180 PR sanitizer/56990
14181 * tsan.c (instrument_expr): Don't instrument expression
14182 in case its size is zero.
14183
6d9b7208
UB
141842013-04-22 Uros Bizjak <ubizjak@gmail.com>
14185
14186 PR target/57032
14187 Revert:
14188 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
14189
14190 * config/alpha/alpha.c (TARGET_LRA_P): New define.
14191
ea679d55
JG
141922013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14193
14194 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
14195 (gimple_stmt_iterator): New typedef.
14196 * gimple.h (gimple_stmt_iterator): Rename to...
14197 (gimple_stmt_iterator_d): ... This.
14198 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
14199 trees be valid for GIMPLE and GENERIC.
14200 (TARGET_GIMPLE_FOLD_BUILTIN): New.
14201 * gimple-fold.c (gimple_fold_call): Call target hook
14202 gimple_fold_builtin.
14203 * hooks.c (hook_bool_gsiptr_false): New.
14204 * hooks.h (hook_bool_gsiptr_false): New.
14205 * target.def (fold_stmt): New.
14206 * doc/tm.texi: Regenerate.
14207
88a581da
VM
142082013-04-22 Vladimir Makarov <vmakarov@redhat.com>
14209
14210 PR target/57018
14211 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
14212 a set sp if no stack realignment.
14213
92be22dc
NC
142142013-04-22 Nick Clifton <nickc@redhat.com>
14215
14216 * config.gcc (tilegx-linux): Extend extra_objs rather than
14217 overwriting it.
14218 (tilepro-linux): Likewise.
14219
0ddec79f
JG
142202013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14221
14222 * config/aarch64/aarch64-builtins.c
14223 (CF): Remove.
14224 (CF0, CF1, CF2, CF3, CF4, CF10): New.
14225 (VAR<1-12>): Add MAP parameter.
14226 (BUILTIN_*): Likewise.
14227 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
14228 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
14229 (aarch64_ushl_n<mode>): Likewise.
14230 (aarch64_sshr_n<mode>): Likewise.
14231 (aarch64_ushr_n<mode>): Likewise.
14232 (aarch64_<maxmin><mode>): Likewise.
14233 (aarch64_sqrt<mode>): Likewise.
14234 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
14235 (vshr<q>_n_*): Likewise.
14236
0050faf8
JG
142372013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14238
14239 * config/aarch64/aarch64-builtins.c
14240 (aarch64_simd_builtin_type_mode): Handle SF types.
14241 (sf_UP): Define.
14242 (BUILTIN_GPF): Define.
14243 (aarch64_init_simd_builtins): Handle SF types.
14244 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
14245 (frecps): Likewise.
14246 (frecpx): Likewise.
14247 * config/aarch64/aarch64-simd.md
14248 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
14249 (aarch64_frecpe<mode>): New.
14250 (aarch64_frecps<mode>): Likewise.
14251 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
14252 (v8type): Add frecp<esx>.
14253 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
14254 (aarch64_frecps<mode>): Likewise.
14255 * config/aarch64/iterators.md (FRECP): New.
14256 (frecp_suffix): Likewise.
14257 * config/aarch64/arm_neon.h
14258 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
14259
0fad3dbc 142602013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
14261
14262 PR target/56995
14263 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
14264 (REG_CLASS_NAMES): Idem.
14265 (REG_CLASS_CONTENTS): Idem.
14266 (REGCLASS_HAS_FP_REG): Idem.
14267 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
14268 (sh_conditional_register_usage): Idem.
14269
3e8a33f9
JL
142702013-04-21 Jeff Law <law@redhat.com>
14271
14272 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
14273 (ssa_forward_propagate_and_combine): Use it.
14274
f38e1b0a
VM
142752013-04-19 Vladimir Makarov <vmakarov@redhat.com>
14276
14277 * lra.c: Update the flow chart diagram.
14278
682303da
VM
142792013-04-19 Vladimir Makarov <vmakarov@redhat.com>
14280
14281 PR rtl-optimization/56847
14282 * lra-constraints.c (process_alt_operands): Discourage alternative
14283 with non-matche doffsettable memory constraint fro memory with
14284 known offset.
14285
f6b64c35
RB
142862013-04-19 Richard Biener <rguenther@suse.de>
14287
14288 PR tree-optimization/56982
14289 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
14290 function.
14291 * gimplify.c (gimplify_call_expr): Notice special calls.
14292 (gimplify_modify_expr): Likewise.
14293 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
14294 abnormal control flow receivers.
14295 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
14296 in the same way as cfun->has_nonlocal_labels.
14297 (gimple_purge_dead_abnormal_call_edges): Likewise.
14298 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
14299 receivers start a basic-block.
14300
01d8bf07
RB
143012013-04-19 Richard Biener <rguenther@suse.de>
14302
14303 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
14304 member ...
14305 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
14306 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
14307 (SLP_TREE_LOAD_PERMUTATION): Add.
14308 (vect_transform_slp_perm_load): Adjust prototype.
14309 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
14310 (vect_free_slp_instance): Likewise.
14311 (vect_create_new_slp_node): Likewise.
14312 (vect_supported_slp_permutation_p): Remove.
14313 (vect_slp_rearrange_stmts): Adjust.
14314 (vect_supported_load_permutation_p): Likewise. Inline
14315 vect_supported_slp_permutation_p here.
14316 (vect_analyze_slp_instance): Compute load permutations per
14317 slp node instead of per instance.
14318 (vect_get_slp_defs): Adjust.
14319 (vect_transform_slp_perm_load): Likewise.
14320 (vect_schedule_slp_instance): Remove redundant code.
14321 (vect_schedule_slp): Remove hack for PR56270, add it ...
14322 * tree-vect-stmts.c (vectorizable_load): ... here, do not
14323 CSE loads for SLP. Adjust.
14324
ede22fc3
GY
143252013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
14326
14327 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
14328 spelling in two comments.
14329
67bc84fb
GY
143302013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
14331
14332 PR target/56797
14333 * config/arm/arm.c (load_multiple_sequence): Require SP
14334 as base register for loads if SP is in the register list.
14335
e248d83f
MJ
143362013-04-19 Martin Jambor <mjambor@suse.cz>
14337
14338 PR tree-optimization/56718
14339 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
14340 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
14341 and made public. Adjusted all callers.
14342 (ipa_intraprocedural_devirtualization): New function.
14343 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
14344 (ipa_intraprocedural_devirtualization): Likewise.
14345 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
14346
4891e8f8
RB
143472013-04-19 Richard Biener <rguenther@suse.de>
14348
14349 PR tree-optimization/57000
14350 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
14351
dad89f7c
TG
143522013-04-19 Terry Guo <terry.guo@arm.com>
14353
14354 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
14355 Replace with ...
14356 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
14357 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
14358 (cortex_m4_fmacs): Use new reservations.
14359 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
14360
72ea0d47
VM
143612013-04-18 Vladimir Makarov <vmakarov@redhat.com>
14362
f1e6512c 14363 PR rtl-optimization/56999
72ea0d47
VM
14364 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
14365 related code.
14366 (lra_coalesce): Remove split_origin_bitmap and related code.
14367 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
14368 ranges if necessary.
14369
780a5b71
UB
143702013-04-18 Uros Bizjak <ubizjak@gmail.com>
14371
14372 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
14373 New array.
14374 (ix86_expand_call): Remove clobbered_registers array and use
14375 x86_64_ms_sysv_extra_clobbered_registers instead.
14376 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
14377 Declare here.
14378 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
14379 predicate.
14380 * config/i386/i386.md (*call_rex64_ms_sysv): Use
14381 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
14382 (*call_value_rex64_ms_sysv): Ditto.
14383
6f5a366a
CC
143842013-04-18 Cary Coutant <ccoutant@google.com>
14385
14386 * dwarf2out.c (output_pubnames): Check die_perennial_p of
14387 parent instead of die_mark.
14388
475b8f37
DN
143892013-04-18 Diego Novillo <dnovillo@google.com>
14390
14391 * gimple.c (create_gimple_tmp): New.
14392 (get_expr_type): New.
14393 (build_assign): New.
14394 (build_type_cast): New.
14395 * gimple.h (enum ssa_mode): Define.
14396 (gimple_seq_set_location): New.
14397 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 14398 to use build_assign and build_type_cast.
475b8f37 14399
08940f33
RB
144002013-04-18 Richard Biener <rguenther@suse.de>
14401
14402 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
14403 handle negative step. Remove redundant checks.
14404 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
14405 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
14406 for negative step and grouped loads fail to vectorize.
14407
0e0f87d4
SB
144082013-04-18 Steven Bosscher <steven@gcc.gnu.org>
14409
14410 * emit-rtl.c (reset_insn_used_flags): New function.
14411 (reset_all_used_flags): Use it.
14412 (verify_insn_sharing): New function.
14413 (verify_rtl_sharing): Fix verification for SEQUENCEs.
14414
4c445590
JJ
144152013-04-18 Jakub Jelinek <jakub@redhat.com>
14416
14417 PR tree-optimization/56984
14418 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
14419 and (x >> M) >= N don't register any assertion if N << M is the
14420 minimum value.
14421
6873ecab
SB
144222013-04-18 Steven Bosscher <steven@gcc.gnu.org>
14423
14424 * lower-subreg.c (resolve_simple_move): If called self-recursive,
14425 do not delete_insn insns that have not yet been emitted, only
14426 unlink them with remove_insn.
14427 * df-scan.c (df_insn_delete): Revert r197492.
14428
3ccb989e
SB
144292013-04-17 Steven Bosscher <steven@gcc.gnu.org>
14430
14431 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
14432 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
14433
144342013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
14435
14436 * config/arm/arm.md (movsicc_insn): Convert define_insn into
14437 define_insn_and_split.
14438 (and_scc,ior_scc,negscc): Likewise.
14439 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
14440
3ccb989e 144412013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
14442
14443 * config/arm/arm.c (use_return_insn): Return 0 for targets that
14444 can benefit from using a sequence of LDRD instructions in epilogue
14445 instead of a single LDM instruction.
14446
6d10a203
MLI
144472013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
14448
14449 PR 45688
14450 * doc/extend.texi: Fix typo.
14451
6983e6b5
RB
144522013-04-17 Richard Biener <rguenther@suse.de>
14453
14454 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
14455 (vect_build_slp_tree): ... here.
14456 (vect_build_slp_tree_1): Compute which stmts of the SLP group
14457 match. Remove special-casing of mismatched complex loads.
14458 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
14459 re-try the match with swapped commutative operands.
14460 (vect_supported_load_permutation_p): Remove special-casing of
14461 mismatched complex loads.
14462 (vect_analyze_slp_instance): Adjust.
14463
ef23e6a2
RB
144642013-04-17 Richard Biener <rguenther@suse.de>
14465
14466 PR rtl-optimization/56921
14467 * cfgloop.h (struct loop): Add simple_loop_desc member.
14468 (struct niter_desc): Mark with GTY(()).
14469 (simple_loop_desc): Do not use aux field but simple_loop_desc.
14470 * loop-iv.c (get_simple_loop_desc): Likewise.
14471 (free_simple_loop_desc): Likewise.
14472
14473 Revert
14474 2013-04-16 Richard Biener <rguenther@suse.de>
14475
14476 PR rtl-optimization/56921
14477 * loop-init.c (pass_rtl_move_loop_invariants): Add
14478 TODO_do_not_ggc_collect to todo_flags_finish.
14479 (pass_rtl_unswitch): Same.
14480 (pass_rtl_unroll_and_peel_loops): Same.
14481 (pass_rtl_doloop): Same.
14482
fc6f94f5
EB
144832013-04-17 Eric Botcazou <ebotcazou@adacore.com>
14484
14485 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
14486 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
14487 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
14488 references.
14489 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
14490 * tree-streamer.c (record_common_node): Adjust reference in comment.
14491
10a88311
TG
144922013-04-17 Terry Guo <terry.guo@arm.com>
14493
14494 * config/arm/cortex-m4.md: Add a new bypass.
14495
6d9b7208 144962013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
14497
14498 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
14499 New pattern.
14500 (*subs_<optab><mode>_multp2): New pattern.
14501 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
14502 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
14503
6d9b7208 145042013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
14505
14506 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
14507 (*subs_mul_imm_<mode>): New pattern.
14508
18a6701e
DE
145092013-04-16 David Edelsohn <dje.gcc@gmail.com>
14510
14511 PR target/56948
14512 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
14513 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
14514 (vsx_movti_32bit): Change j->wa to O->wa.
14515
07c37b2f
RB
145162013-04-16 Richard Biener <rguenther@suse.de>
14517
14518 PR rtl-optimization/56921
14519 * loop-init.c (pass_rtl_move_loop_invariants): Add
14520 TODO_do_not_ggc_collect to todo_flags_finish.
14521 (pass_rtl_unswitch): Same.
14522 (pass_rtl_unroll_and_peel_loops): Same.
14523 (pass_rtl_doloop): Same.
14524
0e0f87d4 145252013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
14526
14527 * config/arm/arm.c (emit_multi_reg_push): New declaration
14528 for an existing function.
14529 (arm_emit_strd_push): New function.
14530 (arm_expand_prologue): Used here.
14531 (arm_emit_ldrd_pop): New function.
14532 (arm_expand_epilogue): Used here.
14533 (arm_get_frame_offsets): Update condition.
14534 (arm_emit_multi_reg_pop): Add a special case for load of a single
14535 register with writeback.
14536
5e8e2af4
UB
145372013-04-16 Uros Bizjak <ubizjak@gmail.com>
14538
14539 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
14540 description.
14541
9fd9ccf7
RB
145422013-04-16 Richard Biener <rguenther@suse.de>
14543
14544 PR tree-optimization/56756
14545 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
14546 (first_mem_ref_loc): New.
14547 (execute_sm): Place the load temporarily before a previous
14548 access instead of in the latch edge to ensure its SSA dependencies
14549 are defined at points dominating the load.
14550
96fba521
SB
145512013-04-16 Steven Bosscher <steven@gcc.gnu.org>
14552
4c8af858
SB
14553 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
14554 correct fix by moving header and footer insn to the footer of
14555 the merged basic block. Clear BB_END of the merged-away block.
14556
96fba521
SB
14557 PR middle-end/43631
14558 * emit-rtl.c (make_note_raw): New function.
14559 (link_insn_into_chain): New static inline function.
14560 (add_insn): Use it.
14561 (add_insn_before, add_insn_after): Factor insn chain linking code...
14562 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
14563 using link_insn_into_chain.
14564 (note_outside_basic_block_p): New helper function for emit_note_after
14565 and emit_note_before.
14566 (emit_note_after): Use nobb variant of add_insn_after if the note
14567 should not be contained in a basic block.
14568 (emit_note_before): Use nobb variant of add_insn_before if the note
14569 should not be contained in a basic block.
14570 (emit_note_copy): Use make_note_raw.
14571 (emit_note): Likewise.
14572 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
14573 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
14574 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
14575 the moved barrier the tail of the basic block it follows.
14576 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
14577
7b8265ba
JJ
145782013-04-15 Jakub Jelinek <jakub@redhat.com>
14579
14580 PR tree-optimization/56962
14581 * gimple-ssa-strength-reduction.c (record_increment): Only set
14582 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
14583 either rhs1 or rhs2 is equal to c->base_expr.
14584
5185d248
RB
145852013-04-15 Richard Biener <rguenther@suse.de>
14586
14587 PR tree-optimization/56933
14588 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
14589 member.
14590 (GROUP_READ_WRITE_DEPENDENCE): Remove.
14591 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
14592 * tree-vect-data-refs.c (vect_analyze_group_access): Move
14593 dependence check ...
14594 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
14595 ... here.
14596 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
14597 GROUP_READ_WRITE_DEPENDENCE.
14598
a24243a0
AK
145992013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14600
14601 * emit-rtl.c (reset_all_used_flags): New function.
14602 (verify_rtl_sharing): Call reset_all_used_flags before and after
14603 performing the checks.
14604
1c50eada
KT
146052013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14606
14607 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
14608 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
14609 * config/arm/constraints.md (De): New constraint.
14610 * config/arm/neon.md (anddi3_neon): Delete.
14611 (neon_vand<mode>): Expand to standard anddi3 pattern.
14612 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
14613 Move earlier in the file.
14614 (neon_inv_logic_op2): Likewise.
14615 (arm_anddi_operand_neon): New predicate.
14616
e927b6ad
RO
146172013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14618
14619 * configure.ac (gcc_cv_ld_as_needed): Set
14620 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
14621 Use -z ignore, -z record on *-*-solaris2*.
14622 (HAVE_LD_AS_NEEDED): Update comment.
14623 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
14624 * configure: Regenerate.
14625 * config.in: Regenerate.
14626 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
14627 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
14628 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
14629 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
14630 equivalents. Fix markup.
14631 * doc/tm.texi: Regenerate.
14632
e0ea8797
AH
146332013-04-15 Andrew Hsieh <andrewhsieh.google.com>
14634
14635 * config/i386/i386.opt: New option mstack-protector-guard=.
14636 * config/i386/i386-opts.h: Add enum stack_protector_guard.
14637 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
14638 TARGET_SSP_TLS_GUARD.
14639 * config/i386/i386.c (ix86_option_override_internal): Set
14640 ix86_stack_protector_guard.
14641 * config/i386/i386.md (stack_protect_set): Enable for
14642 TARGET_SSP_TLS_GUARD only.
14643 (stack_protect_set_<mode>): Ditto.
14644 (stack_protect_test): Ditto.
14645 (stack_protect_test_<mode>): Ditto.
14646 * doc/invoke.texi (i386 Option): Document.
14647
811b72f9
EB
146482013-04-15 Eric Botcazou <ebotcazou@adacore.com>
14649
14650 PR target/56890
14651 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
14652 (S_MODES): Set H_MODE bit.
14653 (SF_MODES): Set only S_MODE and SF_MODE bits.
14654 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
14655 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
14656 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
14657 <MODE_FLOAT>: Likewise.
14658
5529fdd6
JY
146592013-04-15 Joey Ye <joey.ye@arm.com>
14660
14661 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
14662
517b1da2
JY
146632013-04-15 Joey Ye <joey.ye@arm.com>
14664
14665 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
14666 for real far jump.
14667 (thumb_far_jump_used_p): Count instruction size and set
14668 far_jump_used.
14669
01007ae0
EB
146702013-04-14 Eric Botcazou <ebotcazou@adacore.com>
14671
14672 * reorg.c (fill_simple_delay_slots): Reindent block of code.
14673 * resource.c (mark_target_live_regs): Reformat conditional block.
14674
c46f6580
SB
146752013-04-13 Steven Bosscher <steven@gcc.gnu.org>
14676
14677 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
14678 notes, they are emitted only just before final.
14679 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
14680
1f397f45
SB
146812013-04-13 Steven Bosscher <steven@gcc.gnu.org>
14682
14683 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
14684 * cfgrtl.c (delete_insn): Call it here instead.
14685 * lra-spills.c (lra_final_code_change): Use delete_insn.
14686 * haifa-sched.c (sched_remove_insn): Likewise.
14687 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
14688 returning to the nop pool.
14689 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
14690 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
14691
58a51369
SB
146922013-04-12 Steven Bosscher <steven@gcc.gnu.org>
14693
14694 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
14695 * doc/tm.texi: Regenerated.
14696
33159866
UB
146972013-04-12 Uros Bizjak <ubizjak@gmail.com>
14698
14699 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
14700 QImode checks.
14701
226e378f
SB
147022013-04-12 Steven Bosscher <steven@gcc.gnu.org>
14703
14704 * df-core.c (df_find_def): Compare register numbers.
14705 (df_find_use): Likewise.
14706
fafb9b18
VM
147072013-04-12 Vladimir Makarov <vmakarov@redhat.com>
14708
14709 PR target/56903
14710 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
14711 lra_in_progress for return.
14712
9a946fd6
GY
147132013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
14714
14715 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
14716 define_insn into define_insn_and_split and emit movsicc patterns.
14717
41b83758
GY
147182013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
14719
14720 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
14721
d3afd9aa
RB
147222013-04-12 Richard Biener <rguenther@suse.de>
14723
14724 * tree-pass.h (TODO_do_not_ggc_collect): New.
14725 * passes.c (execute_one_ipa_transform_pass): Honor
14726 TODO_do_not_ggc_collect.
14727 (execute_one_pass): Likewise.
14728
14729 Revert
14730 2013-04-10 Richard Biener <rguenther@suse.de>
14731
14732 * passes.c (init_optimization_passes): Remove reload pass.
14733 * ira.c (do_reload): Merge into ...
14734 (ira): ... this.
14735 (rest_of_handle_reload): Remove.
14736 (pass_reload): Likewise.
14737 * config/i386/i386.c (ix86_option_override): Refer to ira instead
14738 of reload for vzeroupper pass placement.
14739
06f9b387
JJ
147402013-04-12 Jakub Jelinek <jakub@redhat.com>
14741
14742 PR tree-optimization/56918
14743 PR tree-optimization/56920
14744 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
14745 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
14746 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
14747 use wide_mul_with_sign method.
14748
953094d2
RB
147492013-04-12 Richard Biener <rguenther@suse.de>
14750
14751 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
14752 not be considered a gimple constant.
14753
bb506982
MG
147542013-04-12 Marc Glisse <marc.glisse@inria.fr>
14755
14756 * fold-const.c (const_binop): Handle vector shifts by a scalar.
14757 (fold_binary_loc): Call const_binop also for mixed vector-scalar
14758 operations.
14759
4b84d650
JJ
147602013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
14761 Jakub Jelinek <jakub@redhat.com>
14762
14763 * opts.c: Include diagnostic-color.h.
14764 (common_handle_option): Handle OPT_fdiagnostics_color_.
14765 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
14766 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
14767 (diagnostic-color.o): New.
14768 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
14769 (diagnostic_color_rule): New enum.
14770 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
14771 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
14772 the location string.
14773 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
14774 either NULL, or color kind.
14775 * diagnostic-color.c: New file.
14776 * diagnostic-color.h: New file.
14777 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
14778 arguments.
14779 * doc/invoke.texi (-fdiagnostics-color): Document.
14780 * pretty-print.h (pp_show_color): Define.
14781 (struct pretty_print_info): Add show_color field.
14782 * diagnostic.c: Include diagnostic-color.h.
14783 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
14784 macros. Colorize error:, warning: etc. strings and also the location
14785 string.
14786 (diagnostic_show_locus): Colorize the caret line.
14787 * pretty-print.c: Include diagnostic-color.h.
14788 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
14789 inside of %< %> quotes or quoted through q format modifier.
14790
067a1e71
AK
147912013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14792
33159866 14793 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 14794
33159866 147952013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
14796
14797 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
14798 code in CC_NZ mode.
14799 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
14800 pattern.
14801
7b55f98f
MP
148022013-04-11 Marek Polacek <polacek@redhat.com>
14803
14804 PR tree-optimization/48184
33159866 14805 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 14806
966b587e
EB
148072013-04-11 Eric Botcazou <ebotcazou@adacore.com>
14808
14809 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
14810 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
14811 (skip_simple_arithmetic): Tidy up.
14812 * tree.h (skip_simple_constant_arithmetic): Declare.
14813
33159866 148142013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
14815
14816 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
14817
1d42c1ec
RB
148182013-04-11 Richard Biener <rguenther@suse.de>
14819
14820 * tree-vect-loop.c (get_initial_def_for_induction): Properly
14821 generate vector constants.
14822
4ba5ea11
RB
148232013-04-11 Richard Biener <rguenther@suse.de>
14824
14825 PR tree-optimization/56878
14826 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
14827 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
14828 New function.
14829 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
14830 Prefer to align the DR with the most invariant base address.
14831
f0defe58
SKS
148322013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14833
14834 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
14835 comment.
14836
d07458be
JG
148372013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
14838
14839 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
14840 floating-point vector comparisons against 0.
14841
146b8692
JJ
148422013-04-11 Jakub Jelinek <jakub@redhat.com>
14843
14844 PR tree-optimization/56899
14845 * fold-const.c (extract_muldiv_1): Apply distributive law
14846 only if TYPE_OVERFLOW_WRAPS (ctype).
14847
b8578ff7
BC
148482013-04-11 Bin Cheng <bin.cheng@arm.com>
14849
14850 PR target/56124
14851 * ira-costs.c (scan_one_insn): Check whether the source rtx of
14852 loading has side effect.
14853
0ea8a6f9
SB
148542013-04-10 Steven Bosscher <steven@gcc.gnu.org>
14855
14856 * config/sparc/sparc.c: Include tree-pass.h.
14857 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
14858 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
14859 head of file. Change return type. Split off gate function.
14860 (sparc_gate_work_around_errata): New function.
14861 (pass_work_around_errata): New pass definition.
14862 (insert_pass_work_around_errata) New pass insert definition to
14863 insert pass_work_around_errata just after delayed-branch scheduling.
14864 (sparc_option_override): Insert the pass.
14865 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
14866
42e37616
DM
148672013-04-10 David S. Miller <davem@davemloft.net>
14868
89deeb3b
DM
14869 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
14870 or -mcpu=hypersparc.
14871
42e37616
DM
14872 * target.def (cstore_mode): New hook.
14873 * target.h: Include insn-codes.h
14874 * targhooks.c: Likewise.
14875 (default_cstore_mode): New function.
14876 * targhooks.h: Declare it.
14877 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
14878 * doc/tm.texi: Rebuild.
14879 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
14880 target hook, rather than inspecting the insn_data.
14881 * config/sparc/sparc.c (sparc_cstore_mode): New function.
14882 (TARGET_CSTORE_MODE): Redefine.
14883 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
14884 result patterns.
14885 * config/sparc/predicates.md (cstore_result_operand): New special
14886 predicate.
14887 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
14888 Use it for operand 0.
14889 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
14890 (*snesi_special): Likewise.
14891 (*snesi_zero): Likewise.
14892 (*seqsi_zero): Likewise.
14893 (*sltu_insn): Likewise.
14894 (*sgeu_insn): Likewise.
14895 (*seqdi_special): Make operand 0 and comparison operation be of
14896 DImode.
14897 (*snedi_special): Likewise.
14898 (*snedi_special_vis3): Likewise.
14899 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
14900 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
14901 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
14902 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
14903 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
14904 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
14905 (*sltu_extend_sp64): Likewise.
14906 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
14907 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
14908 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
14909 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
14910 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
14911
95ca411e
YZ
149122013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
14913
14914 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
14915 (aarch64_start_file): Use the new function.
14916
6782438d 149172013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 14918 Jason Merrill <jason@redhat.com>
6782438d
SKS
14919
14920 * common.opt: Add -gdwarf.
14921 * opts.c (common_handle_option): Handle it.
14922 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
14923
bb313b93
RB
149242013-04-10 Richard Biener <rguenther@suse.de>
14925
14926 * passes.c (execute_todo): Do not call ggc_collect conditional here.
14927 (execute_one_ipa_transform_pass): But unconditionally here.
14928 (execute_one_pass): And here.
14929 (init_optimization_passes): Remove reload pass.
14930 * tree-pass.h (TODO_ggc_collect): Remove.
14931 (pass_reload): Likewise.
14932 * ira.c (do_reload): Merge into ...
14933 (ira): ... this.
14934 (rest_of_handle_reload): Remove.
14935 (pass_reload): Likewise.
14936 * config/i386/i386.c (ix86_option_override): Refer to ira instead
14937 of reload for vzeroupper pass placement.
14938 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
14939 and todo_flags_finish of all passes.
14940
793d9a16
RB
149412013-04-10 Richard Biener <rguenther@suse.de>
14942
14943 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
14944 first_const_oprnd field, rename first_def_type to first_op_type.
14945 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
14946 (vect_get_and_check_slp_defs): Always use the type of the
14947 operand. Allow mixed vect_external_def, vect_constant_def types.
14948 (vect_get_constant_vectors): Handle mixed vect_external_def,
14949 vect_constant_def types.
14950
12211b99 149512013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
14952
14953 PR tree-optimization/55524
14954 * tree-ssa-math-opts.c
14955 (convert_mult_to_fma): Don't use an fms construct
14956 when we don't have an fms operation, but fnma, and it looks
14957 likely that we'll be able to use the latter.
14958
12211b99 149592013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
14960
14961 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
14962 function.
14963 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
14964 inline fail caused by overwritable functions.
14965
34ab4a5b
CJW
149662013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
14967
14968 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
14969 unnecessary bits in the constant power of two case.
14970
abf9bfbc
RB
149712013-04-10 Richard Biener <rguenther@suse.de>
14972
14973 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
14974 broken code swapping operands.
14975 (vect_build_slp_tree): Do not compute load permutations here.
14976 (vect_analyze_slp_instance): Compute load permutations here,
14977 after building the SLP tree.
14978
f408477e
CB
149792013-04-09 Christian Bruel <christian.bruel@st.com>
14980
14981 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
14982 of next/prev_real_insn.
14983
5ac42672
JH
149842013-04-09 Jan Hubicka <jh@suse.cz>
14985
abf9bfbc
RB
14986 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14987 Drop aliased parameter.
5ac42672
JH
14988 (function_and_variable_visibility): Do not handle alias pairs.
14989 * cgraph.c (varpool_externally_visible_p): Update prototype.
14990 * varpool.c (varpool_add_new_variable): Update.
14991
5017f1d2
KT
149922013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14993
14994 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
14995
48eecbee
SB
149962013-04-09 Steven Bosscher <steven@gcc.gnu.org>
14997
a949cf1c
SB
14998 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
14999
48eecbee
SB
15000 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
15001
75ef8e3d
MP
150022013-04-09 Marek Polacek <polacek@redhat.com>
15003
15004 PR tree-optimization/48762
33159866 15005 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 15006
23847df4
RB
150072013-04-09 Richard Biener <rguenther@suse.de>
15008
15009 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
15010 dealing with cost.
15011 (vect_build_slp_tree): Likewise.
15012 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
15013 calculating the cost of a SLP instance.
15014 (vect_analyze_slp_instance): Use it from here, after building
15015 the SLP tree.
15016
ea3a0fde
JJ
150172013-04-09 Jakub Jelinek <jakub@redhat.com>
15018
15019 PR middle-end/56883
15020 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
15021 expand_omp_for_static_chunk): Use simple_p = true in
15022 force_gimple_operand_gsi calls when assigning to addressable decls.
15023
a32dfe9d
JL
150242013-04-09 Jeff Law <law@redhat.com>
15025
15026 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
15027 when the boolean was created by converting a wider object which
15028 had a boolean range.
15029
d755c7ef
RB
150302013-04-09 Richard Biener <rguenther@suse.de>
15031
15032 * tree-vectorizer.h (slp_void_p): Remove.
15033 (slp_tree): Typedef before _slp_tree declaration.
15034 (struct _slp_tree): Use a vector of slp_tree as children.
15035 (vect_get_place_in_interleaving_chain): Remove.
15036 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
15037 Move ...
15038 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
15039 and make static.
15040 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
15041 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
15042 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
15043 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
15044 Use slp_node instead of slp_void_p and adjust.
15045
3d741091
RB
150462013-04-09 Richard Biener <rguenther@suse.de>
15047
15048 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
15049 work that is not necessary.
15050
39307ba7
JJ
150512013-04-09 Jakub Jelinek <jakub@redhat.com>
15052
15053 PR tree-optimization/56854
15054 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
15055 forward into clobber stmts if it would change MEM_REF lhs into
15056 non-MEM_REF.
15057
343881fd
MK
150582013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
15059
15060 * tree.c (type_hash_lookup, type_hash_add): Make static.
15061 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
15062
3922658a
RB
150632013-04-09 Richard Biener <rguenther@suse.de>
15064
15065 * tree.h (unsave_expr_now): Remove.
15066 * tree-inline.c (mark_local_for_remap_r): Remove.
15067 (unsave_expr_1): Likewise.
15068 (unsave_r): Likewise.
15069 (unsave_expr_now): Likewise.
15070 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
15071 (propagate_tree_value): Likewise.
15072
9fb6b620
SB
150732013-04-08 Steven Bosscher <steven@gcc.gnu.org>
15074
15075 * doc/rtl.texi (sequence): Rewrite documentation to match the
15076 current use of SEQUENCE rtl objects.
15077 * rtl.def (SEQUENCE): Likewise.
15078
15079 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
15080 Update documentation.
15081 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
15082 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
15083
15084 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
15085
8ddb5a29
TJ
150862013-04-08 Teresa Johnson <tejohnson@google.com>
15087
15088 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
15089 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 15090 methods.
8ddb5a29
TJ
15091 (estimate_edge_size_and_time): Add comment to suggest using rounding
15092 methods.
15093 (estimate_node_size_and_time): Ditto.
15094 (remap_edge_change_prob): Use helper rounding divide methods.
15095 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
15096 (gimple_mod_pow2_value_transform): Ditto.
15097 (gimple_mod_subtract_transform): Ditto.
15098 (gimple_ic_transform): Ditto.
15099 (gimple_stringops_transform): Ditto.
15100 * stmt.c (conditional_probability): Ditto.
15101 (emit_case_dispatch_table): Ditto.
15102 * lto-cgraph.c (merge_profile_summaries): Ditto.
15103 * tree-optimize.c (execute_fixup_cfg): Ditto.
15104 * cfgcleanup.c (try_forward_edges): Ditto.
15105 * cfgloopmanip.c (scale_loop_profile): Ditto.
15106 (loopify): Ditto.
15107 (duplicate_loop_to_header_edge): Ditto.
15108 (lv_adjust_loop_entry_edge): Ditto.
15109 * tree-vect-loop.c (vect_transform_loop): Ditto.
15110 * profile.c (compute_branch_probabilities): Ditto.
15111 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
15112 * lto-streamer-in.c (input_cfg): Ditto.
15113 * gimple-streamer-in.c (input_bb): Ditto.
15114 * ipa-cp.c (update_profiling_info): Ditto.
15115 (update_specialized_profile): Ditto.
15116 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
15117 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 15118 rounding methods.
8ddb5a29
TJ
15119 * sched-rgn.c (compute_dom_prob_ps): Ditto.
15120 (compute_trg_info): Ditto.
15121 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
15122 (purge_dead_edges): Ditto.
15123 * loop-unswitch.c (unswitch_loop): Ditto.
15124 * cgraphclones.c (cgraph_clone_edge): Ditto.
15125 (cgraph_clone_node): Ditto.
15126 * tree-inline.c (copy_bb): Ditto.
15127 (copy_edges_for_bb): Ditto.
15128 (initialize_cfun): Ditto.
15129 (copy_cfg_body): Ditto.
15130 (expand_call_inline): Ditto.
15131
661e6bd7
KT
151322013-04-08 Kai Tietz <ktietz@redhat.com>
15133
15134 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
15135 TARGET_CYGWIN64 by TARGET_64BIT.
15136
105766f3
JR
151372013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
15138
15139 * config/epiphany/epiphany.md (GPR_1): New constant.
15140 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
15141 * config/epiphany/epiphany.c (gen_compare_reg):
15142 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
15143 is already in place.
15144 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
15145 Don't require being called during rtl expansion; If y operlaps r0,
15146 return 0.
15147 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
15148 (epiphany_expand_epilogue): Likewise.
15149
8afab237
JR
15150 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
15151 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 15152 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 15153
fa7707d6
JR
15154 * config/epiphany/constraints.md (CnL): New constraint.
15155 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
15156 * config/epiphany/predicates.md (add_operand): Allow 1024.
15157
5138e18d
JR
15158 * config/epiphany/epiphany.md (logical_op): New code iterator.
15159 (op_mnc): New code attribute.
15160 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
15161 (mov_f+1, mov_f+2): New peephole2 patterns.
15162
2ccc703d
JR
15163 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
15164 (cstoresi4): Also allow re-use of zero result when doing a NE
15165 comparison to a non-zero operand.
aefb0819 15166 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 15167
093ac0a5
JR
15168 * config/epiphany/epiphany.md (<insn_opname>v2si3):
15169 Use gen_addsi3_i / gen_subsi3_i.
15170
f223bb13
JJ
151712013-04-08 Jakub Jelinek <jakub@redhat.com>
15172
15173 PR c++/34949
15174 PR c++/50243
15175 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
15176 contain anything but clobbers, at most one __builtin_stack_restore,
15177 optionally debug stmts and final resx, and if it has at least one
15178 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
15179 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
15180 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
15181 which isn't defaut definition, remove them.
15182 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
15183 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
15184 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
15185 with MEM_REF LHS with SSA_NAME address.
15186
4481581f
JL
151872013-04-08 Jeff Law <law@redhat.com>
15188
15189 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 15190
451dabda
RB
151912013-04-08 Richard Biener <rguenther@suse.de>
15192
15193 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
15194 extra newline.
15195 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
15196 determined vector type.
15197 (vect_analyze_data_refs): Likewise.
15198 (vect_get_new_vect_var): Adjust.
15199 (vect_create_destination_var): Preserve SSA name versions.
15200 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
15201 not dump anything here.
15202
3b088b47
JR
152032013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
15204
15205 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
15206 Add member lr_slot_known.
15207 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
15208 if necessary.
15209 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
15210 Remove code that sets lr_slot_offset according to what a previous
15211 version of epiphany_emit_save_restore used to do.
15212 (epiphany_emit_save_restore): When doing an lr save or restore,
15213 set/verify lr_slot_known and lr_slot_offset.
15214
d8484d41
XQ
152152013-04-08 Xinyu Qi <xyqi@marvell.com>
15216
33159866
UB
15217 PR target/54338
15218 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
15219 in ALL_REGS.
15220
481be1c4
RB
152212013-04-08 Richard Biener <rguenther@suse.de>
15222
15223 * alias.c (find_base_term): Fix thinko in previous change.
15224
401f3a81
JJ
152252013-04-08 Jakub Jelinek <jakub@redhat.com>
15226
15227 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
15228 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
15229 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
15230 if possible to compute val.
15231 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
15232 For QImode integers don't require anything about precision. Use
15233 const_with_all_bytes_same to find out if the constant doesn't have
15234 repeated bytes in it.
15235
03ed99a8
AK
152362013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15237
15238 * config/s390/s390.c (s390_expand_insv): Only accept insertions
15239 within mode size.
15240
781b2e62
MP
152412013-04-08 Marek Polacek <polacek@redhat.com>
15242
15243 PR rtl-optimization/48182
15244 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
15245 value to 1.
15246
27e430a2
JDA
152472013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15248
15249 PR target/55487
15250 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
15251 nuses, make sure we have a label.
15252
4902aa64
BS
152532013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15254
15255 PR target/56843
15256 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
15257 (rs6000_emit_swdiv_low_precision): Remove.
15258 (rs6000_emit_swdiv): Rewrite to handle between one and four
15259 iterations of Newton-Raphson generally; modify required number of
15260 iterations for some cases.
15261 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
15262
7bca81dc
SB
152632013-04-05 Steven Bosscher <steven@gcc.gnu.org>
15264
15265 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
15266 set-but-unused variable.
15267
15268 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
15269 basic blocks of released function bodies garbage-collectable.
15270
15271 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
15272 (struct rtl_opt_pass): Add TODO_df_finish.
15273
15274 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
15275
4542a38a
GY
152762013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15277
15278 * config/arm/constraints.md (q): New constraint.
15279 * config/arm/ldrdstrd.md: New file.
15280 * config/arm/arm.md (ldrdstrd.md) New include.
15281 (arm_movdi): Use "q" instead of "r" constraint
15282 for double-word memory access.
15283 (movdf_soft_insn): Likewise.
15284 * config/arm/vfp.md (movdi_vfp): Likewise.
15285 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 15286 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
15287 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
15288 (mem_ok_for_ldrd_strd): Likewise.
15289 (output_move_double): Update assertion.
15290
2385b218
GY
152912013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15292
15293 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
15294
75fe1cb5
GY
152952013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15296
15297 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
15298 define_insn_and_split.
15299 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
15300
dd660e8e
GY
153012013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15302
15303 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
15304 define_insn_and_split.
33159866 15305 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
15306 (shiftsi3_compare): New pattern.
15307 (rrx): New pattern.
15308 * config/arm/unspecs.md (UNSPEC_RRX): New.
15309
045e472c
GY
153102013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15311
15312 * config/arm/arm.md (negdi_extendsidi): New pattern.
15313 (negdi_zero_extendsidi): Likewise.
15314
3f3bf1a8
GY
153152013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15316
15317 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
15318 define_insn_and_split.
15319 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
15320 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
15321
b0b49556
GY
153222013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15323
15324 * config/arm/arm.md (arm_subdi3): Convert define_insn into
15325 define_insn_and_split.
15326 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
15327 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
15328
d633dd84
GY
153292013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15330
15331 * config/arm/arm.md (subsi3_carryin): New pattern.
15332 (subsi3_carryin_const): Likewise.
15333 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
15334 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
15335
f4499066
GY
153362013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15337
15338 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
15339
ceef6fd9
GY
153402013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15341
15342 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 15343 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 15344
ddbdd8a7
KT
153452013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15346
15347 * config/arm/arm.c (arm_expand_builtin): Change fcode
15348 type to unsigned int.
15349
8456d78a
RR
153502013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15351
15352 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
15353
526c230f
ILT
153542013-04-04 Ian Lance Taylor <iant@google.com>
15355
33159866
UB
15356 * doc/standards.texi (Standards): The Go frontend supports the Go 1
15357 language standard.
526c230f 15358
3cfbe04d
SB
153592013-04-04 Steven Bosscher <steven@gcc.gnu.org>
15360
15361 PR middle-end/56729
15362 * df-scan.c (df_insn_delete): Disable failing assert.
15363
dfa3f8d0
KT
153642013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15365
15366 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
15367 New function prototype.
15368 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
15369 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
15370 (arm_builtin_vectorized_function): New function.
15371
f7837758
KT
153722013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15373
15374 * config/arm/arm_neon_builtins.def: New file.
15375 * config/arm/arm.c (neon_builtin_data): Move contents to
15376 arm_neon_builtins.def.
15377 (enum arm_builtins): Include neon builtin definitions.
15378 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 15379 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 15380
39c1b6db
MP
153812013-04-04 Marek Polacek <polacek@redhat.com>
15382
15383 PR tree-optimization/48186
15384 * predict.c (maybe_hot_frequency_p): Return false if
15385 HOT_BB_FREQUENCY_FRACTION is 0.
15386 (cgraph_maybe_hot_edge_p): Likewise.
15387
314f64eb
RB
153882013-04-04 Richard Biener <rguenther@suse.de>
15389
15390 PR tree-optimization/56826
15391 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
15392 more accurately.
15393
51a905b2
RB
153942013-04-04 Richard Biener <rguenther@suse.de>
15395
15396 PR tree-optimization/56213
15397 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 15398 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 15399
f1bf4f3a
RB
154002013-04-04 Richard Biener <rguenther@suse.de>
15401
15402 PR tree-optimization/56837
15403 * tree-loop-distribution.c (classify_partition): For non-zero
15404 values require that the value has the same precision as its
15405 mode to be useful as memset value.
15406
0bca7ded
NC
154072013-04-03 Nick Clifton <nickc@redhat.com>
15408
33159866 15409 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
15410 (fmssf4): Use fmsf.s on E3V5 architectures.
15411 (fnmasf4): Use fnmaf.s on E3V5 architectures.
15412 (fnmssf4): Use fnmsf.s on E3V5 architectures.
15413
b4019227
JL
154142013-04-03 Jeff Law <law@redhat.com>
15415
15416 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
15417 (lra-eliminations.o): Likewise.
15418
f57ddb5b
TJ
154192013-04-03 Teresa Johnson <tejohnson@google.com>
15420
15421 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 15422 compute_working_sets here from profile.c.
f57ddb5b 15423 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
15424 (gcov_working_set_t): Moved typedef here from basic-block.h
15425 (compute_working_set): Declare.
f57ddb5b
TJ
15426 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
15427 (get_working_sets): Renamed from compute_working_set,
33159866 15428 replace most of body with call to new compute_working_sets.
f57ddb5b 15429 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
15430 to get_working_sets.
15431 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 15432 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 15433 to get_working_sets.
f57ddb5b
TJ
15434 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
15435 * gcov-dump.c (dump_working_sets): New function.
15436
12211b99 154372013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
15438
15439 * hwint.c (sext_hwi, zext_hwi): New functions.
15440 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
15441 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
15442 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
15443 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
15444 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
15445 (sext_hwi, zext_hwi): New functions.
0bca7ded 15446
be672e08
JL
154472013-04-03 Jeff Law <law@redhat.com>
15448
15449 PR tree-optimization/56799
33159866
UB
15450 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
15451 back test for widening conversion erroneously dropped in prior change.
be672e08 15452
9d821fa5
KT
154532013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15454
15455 PR target/56809
15456 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
15457 instead of next_real_insn.
15458
71c581e7
MP
154592013-04-03 Marek Polacek <polacek@redhat.com>
15460
15461 PR sanitizer/55702
33159866 15462 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 15463
4a32ef80
KT
154642013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15465
15466 PR target/56809
15467 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
15468 next_real_insn.
15469 (thumb1_output_casesi): Likewise.
15470 (thumb2_output_casesi): Likewise.
15471
1b2253d4
RB
154722013-04-03 Richard Biener <rguenther@suse.de>
15473
15474 PR tree-optimization/56817
15475 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
15476 Split out ...
15477 (tree_unroll_loops_completely_1): ... new function to manually
15478 walk the loop tree, properly defering outer loops of unrolled
15479 loops to later iterations.
15480
38000232
MG
154812013-04-03 Marc Glisse <marc.glisse@inria.fr>
15482
15483 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
15484 (vectorizable_load): Likewise.
15485 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
15486 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
15487
3fa35298
MG
154882013-04-03 Marc Glisse <marc.glisse@inria.fr>
15489
15490 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
15491 BIT_FIELD_REF.
15492
b3d45ff0
UW
154932013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15494
15495 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
15496
ec9202a8
BC
154972013-04-03 Bin Cheng <bin.cheng@arm.com>
15498
15499 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
15500
6805bd36
MG
155012013-04-03 Marc Glisse <marc.glisse@inria.fr>
15502
15503 PR tree-optimization/56790
33159866
UB
15504 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
15505 folding.
6805bd36 15506
da694a77
MG
155072013-04-03 Marc Glisse <marc.glisse@inria.fr>
15508
15509 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
15510 Handle VEC_MERGE.
15511 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
15512 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
15513 equal arguments.
15514
4e7d7b3d
JJ
155152013-04-03 Jakub Jelinek <jakub@redhat.com>
15516
15517 PR c/19449
15518 * tree.h (force_folding_builtin_constant_p): New decl.
15519 * builtins.c (force_folding_builtin_constant_p): New variable.
15520 (fold_builtin_constant_p): Fold immediately also if
15521 force_folding_builtin_constant_p.
15522
e6c9d234
RB
155232013-04-03 Richard Biener <rguenther@suse.de>
15524
15525 PR tree-optimization/56812
15526 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
15527 DRs of the same interleaving chain are independent.
15528
984d07dd
JM
155292013-04-02 Jason Merrill <jason@redhat.com>
15530
15531 * gdbinit.in (pbb): Use debug fn.
15532
622849c9
LC
155332013-04-02 Lawrence Crowl <crowl@google.com>
15534
15535 * sese.h (struct ivtype_map_elt_s): Remove unused.
15536 (extern debug_ivtype_map): Remove unused.
15537 (extern eq_ivtype_map_elts): Remove unused.
15538 * sese.c (debug_ivtype_map): Removed unused.
15539 (debug_ivtype_map_1): Removed unused.
15540 (debug_ivtype_elt): Remove unused.
15541 (eq_ivtype_map_elts): Remove unused.
15542
15543
82c0e1a0
KT
155442013-04-02 Kai Tietz <ktietz@redhat.com>
15545
15546 PR target/52790
15547 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
15548 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
15549 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
15550 function.
82c0e1a0
KT
15551 (legitimize_pe_coff_symbol): Likewise.
15552 (is_imported_p): New helper-function.
15553 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
15554 for Windows x64 targets.
15555 (ix86_expand_prologue): Optimize for pe-coff targets.
15556 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
15557 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
15558 medium/large code-model.
15559 (legitimize_pic_address): Likewise.
15560 (legitimize_tls_address): Likewise.
15561 (ix86_expand_call): Likewise.
15562 (x86_output_mi_thunk): Likewise.
15563 (get_dllimport_decl): Add new beimport argument.
15564 (construct_plt_address): Don't assert for x64 pe-coff targets.
15565 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
15566 targets.
15567 (SYMBOL_FLAG_STUBVAR): New macro.
15568 (SYMBOL_REF_STUBVAR_P): Likewise.
15569 * config/i386/winnt.c (stub_list): New structure.
15570 (stub_head): New local variable.
15571 (i386_pe_record_stub): New function.
15572 (i386_pe_file_end): Emit refptr-stubs.
15573
5d751b0c
JJ
155742013-04-02 Jakub Jelinek <jakub@redhat.com>
15575
09bb4c99
JJ
15576 PR rtl-optimization/56745
15577 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
15578 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
15579
a1d8947a
JJ
15580 PR c++/34949
15581 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
15582 and both of them are MEM_REFs, just compare first argument for
15583 equality and attempt to deal even with differing offsets.
15584
5d751b0c
JJ
15585 PR c++/34949
15586 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
15587 of gimple_clobber_p to be MEM_REF.
15588 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
15589 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
15590 after gimplification.
15591 * asan.c (get_mem_ref_of_assignment): Don't instrument
15592 gimple_clobber_p stmts.
15593 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
15594 gimple_clobber_p stmt if they have MEM_REF lhs and
15595 are dead because of another gimple_clobber_p stmt.
15596 * tree-ssa-live.c (clear_unused_block_pointer): Treat
15597 gimple_clobber_p stmts like debug stmts.
15598 (remove_unused_locals): Remove clobbers with MEM_REF lhs
15599 that refer to unused VAR_DECLs or uninitialized values.
15600 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
15601 gimple_clobber_p stmts if they refer to removed parameters.
15602 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
15603 formatting.
15604
e594716a
UB
156052013-04-02 Uros Bizjak <ubizjak@gmail.com>
15606
15607 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
15608 using SWI48 mode attribute.
15609
7a80735b
WM
156102013-04-02 Wei Mi <wmi@google.com>
15611
15612 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
15613 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
15614 *<rotate_insn><mode>3_mask in i386.md.
15615
f423a9e4
AI
156162013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
15617
15618 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
15619
90eb75f2
RB
156202013-04-02 Richard Biener <rguenther@suse.de>
15621
15622 PR tree-optimization/56778
15623 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15624 Runtime alias tests are not supported for gather loads.
15625 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
15626 stmts referenced from SSA operands before updating SSA form.
15627
d8c69a92
IC
156282013-04-02 Ian Caulfield <ian.caulfield@arm.com>
15629 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15630
15631 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
15632 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
15633 * config/arm/cortex-a53.md: New file.
15634 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
15635 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
15636 * config/arm/arm.c (arm_issue_rate): Likewise.
15637 * config/arm/arm-tune.md: Regenerate
15638 * config/arm/arm-tables.opt: Regenerate.
15639 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 15640
239eb04c
ZC
156412013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
15642
15643 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
15644 non-static link.
15645
c902d3c8
SN
156462013-04-02 Sofiane Naci <sofiane.naci@arm.com>
15647
d8c69a92
IC
15648 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
15649 scalar load/store operations using B/H registers.
c902d3c8
SN
15650 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
15651
051d0e2f
SN
156522013-04-02 Sofiane Naci <sofiane.naci@arm.com>
15653
15654 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
15655 scalar move.
15656 * config/aarch64/aarch64.c
15657 (aarch64_simd_scalar_immediate_valid_for_move): New.
15658 * config/aarch64/aarch64-protos.h
15659 (aarch64_simd_scalar_immediate_valid_for_move): New.
15660 * config/aarch64/constraints.md (Dh, Dq): New.
15661 * config/aarch64/iterators.md (hq): New.
15662
0ee1e3d9
EB
156632013-04-02 Eric Botcazou <ebotcazou@adacore.com>
15664
15665 * reorg.c (get_branch_condition): Deal with conditional returns.
15666 (fill_simple_delay_slots): Remove dead code dealing with jumps.
15667
136fb3f7
WM
156682013-04-01 Wei Mi <wmi@google.com>
15669
15670 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
15671 Truncate operand 2 using %b asm operand modifier.
15672 (*<shift_insn><mode>3_mask): Ditto.
15673 (*<rotate_insn><mode>3_mask): Ditto.
15674
6388c738
SB
156752013-04-01 Steven Bosscher <steven@gcc.gnu.org>
15676
15677 PR middle-end/56798
15678 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
15679
f7a4d826
KK
156802013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
15681
15682 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
15683 of next_real_insn.
15684 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
15685
4b943a49
LC
156862013-03-30 Lawrence Crowl <crowl@google.com>
15687
15688 * dse.c (clear_alias_sets): Remove never set.
15689 (disqualified_clear_alias_sets): Remove never set.
15690 (clear_alias_mode_pool): Remove never set.
15691 (dse_step0): Remove condition that is never true.
15692 (canon_address): Remove condition that is never true.
15693 (dse_step7): Remove condition that is never true.
15694 (rest_of_handle_dse): Remove condition that is never true.
15695 (rest_of_handle_dse::did_global): Remove never read from above.
15696 (dse_step2_spill): Remove never called from above.
15697 (dse_step5_spill): Remove never called from above.
15698
39718607
SB
156992013-03-30 Steven Bosscher <steven@gcc.gnu.org>
15700
da5c6bde
SB
15701 * doc/md.texi (Standard Names) <casesi>: Update documentation for
15702 JUMP_TABLE_DATA changes.
15703 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
15704 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
15705 (Insns) <jump_table_data>: New entry.
15706 * doc/tm.texi: Regenerate.
15707
39718607
SB
15708 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
15709
15710 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
15711 for table jump at the end of a basic block using tablejump_p.
15712 * targhooks.c (default_invalid_within_doloop): Likewise.
15713 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
15714 target hook implementation that is identical to the default hook.
15715 (rs6000_invalid_within_doloop): Remove.
15716
15717 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
15718 unused variable from tablejump_p call.
15719
15720 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
15721 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
15722 (INSN_DELETED_P): Likewise.
15723 (emit_jump_table_data): New prototype.
15724 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
15725 after 4th as unused.
15726 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
15727 * sched-vis.c (print_insn): Likewise.
15728 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
15729 insn for compatibility with back ends that use next_active_insn to
15730 identify jump table data.
15731 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
15732 (remove_insn): Likewise.
15733 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
15734 to be emitted.
15735 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
15736 (emit_jump_table_data): New function.
15737
15738 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
15739 basic block, a JUMP_TABLE_DATA never is.
15740 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
15741 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
15742 off from code handling real insns.
15743 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
15744 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
15745 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
15746 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
15747 is not a NONDEBUG_INSN_P.
15748 * ira-costs.c (scan_one_insn): Likewise.
15749 * jump.c (mark_all_labels): Likewise.
15750 (mark_jump_label_1): Likewise.
15751 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
15752 * lra.c (get_insn_freq): Expect all insns reaching here to be in
15753 a basic block.
15754 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
15755 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
15756 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
15757 JUMP_TABLE_DATA_P insns.
15758 (calculate_elim_costs_all_insns): Likewise.
15759 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
15760 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
15761 (delete_output_reload): Code style fixups.
15762 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
15763 insn flags on this non-insn.
15764 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
15765 as scheduling barriers, for pre-change compatibility.
15766 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
15767 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
15768
15769 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
15770 redundant JUMP_TABLE_DATA_P test.
15771 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
15772 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
15773 (frv_for_each_packet): Likewise.
15774 * config/i386/i386.c (min_insn_size): Likewise.
15775 (ix86_avoid_jump_mispredicts): Likewise.
15776 * config/m32r/m32r.c (m32r_is_insn): Likewise.
15777 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
15778 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
15779 (mips16_insn_length): Robustify.
15780 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
15781 (mips16_split_long_branches): Likewise.
15782 * config/pa/pa.c (pa_combine_instructions): Likewise.
15783 * config/rs6000/rs6000.c (get_next_active_insn): Treat
15784 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
15785 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
15786 as contributing to pool range lengths.
15787 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
15788 Remove redundant JUMP_TABLE_DATA_P test.
15789 (sh_loop_align): Likewise.
15790 (split_branches): Likewise.
15791 (sh_insn_length_adjustment): Likewise.
15792 * config/spu/spu.c (get_branch_target): Likewise.
15793
0208f7da
JH
157942013-03-29 Jan Hubicka <jh@suse.cz>
15795
15796 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
15797 gcov streaming; stream hot bb threshold to ltrans.
15798 * predict.c (get_hot_bb_threshold): Break out from ....
15799 (maybe_hot_count_p): ... here.
15800 (set_hot_bb_threshold): New function.
15801 * lto-section-in.c (lto_section_name): Add profile.
15802 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
15803 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
15804 and data-streamer.h
15805 (histogram_entry): New structure.
15806 (histogram, histogram_pool): New global vars.
15807 (histogram_hash): New structure.
15808 (histogram_hash::hash): New method.
15809 (histogram_hash::equal): Likewise.
15810 (account_time_size): New function.
15811 (cmp_counts): New function.
15812 (dump_histogram): New function.
15813 (ipa_profile_generate_summary): New function.
15814 (ipa_profile_write_summary): New function.
15815 (ipa_profile_read_summary): New function.
15816 (ipa_profile): Decide on threshold.
e594716a
UB
15817 (pass_ipa_profile): Add ipa_profile_write_summary and
15818 ipa_profile_read_summary.
0208f7da
JH
15819 * Makefile.in (ipa.o): Update dependencies.
15820 * lto-streamer.h (LTO_section_ipa_profile): New section.
15821
5a6ccc94
GDR
158222013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
15823
15824 * tree.h (VAR_P): New.
15825
39385fa6
PC
158262013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
15827
15828 PR lto/56777
15829 * doc/invoke.texi ([-fwhole-program]): Fix typo.
15830
34f0d87a
SB
158312013-03-29 Steven Bosscher <steven@gcc.gnu.org>
15832
15833 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
15834 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
15835 (control_flow_insn_p): Likewise.
15836 * cfgrtl.c (duplicate_insn_chain): Likewise.
15837 * final.c (get_attr_length_1): Likewise.
15838 (shorten_branches): Likewise.
15839 (final_scan_insn): Likewise.
15840 * function.c (instantiate_virtual_regs): Likewise.
15841 * gcse.c (insert_insn_end_basic_block): Likewise.
15842 * ira-costs.c (scan_one_insn): Likewise.
15843 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
15844 * lra.c (check_rtl): Likewise.
15845 * reload1.c (elimination_costs_in_insn): Likewise.
15846 * reorg.c (follow_jumps): Likewise.
15847
15848 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
15849 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
15850 (thumb_far_jump_used_p): Likewise.
15851 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
15852 (workaround_speculation): Likewise.
15853 (add_sched_insns_for_speculation): Likewise.
15854 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
15855 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
15856 (frv_for_each_packet): Likewise.
15857 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
15858 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
15859 (final_emit_insn_group_barriers): Likewise.
15860 * config/m32r/m32r.c (m32r_is_insn): Likewise.
15861 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
15862 (mips16_insn_length): Likewise.
15863 * config/pa/pa.c (pa_reorg): Likewise.
15864 (pa_combine_instructions): Likewise.
15865 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
15866 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
15867 (sh_reorg): Likewise.
15868 (split_branches): Likewise.
15869 * config/spu/spu.c (get_branch_target): Likewise.
15870
15871 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
15872 JUMP_TABLE_DATA_P.
15873
4ac761b0
KY
158742013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
15875
39385fa6 15876 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
15877 Fix declaration name.
15878
58a49189
LC
158792013-03-28 Lawrence Crowl <crowl@google.com>
15880
15881 * graphds.h (struct graph.indicies): Remove unused.
15882 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
15883 (SCOP_ORIGINAL_PDDRS): Remove unused.
15884 * sese.h (extern insert_loop_close_phis): Removed unused.
15885 (extern insert_guard_phis): Removed unused.
15886 (extern ivtype_map_elt_info): Removed unused.
15887 (new_ivtype_map_elt): Removed unused.
15888 * sese.c (ivtype_map_elt_info): Removed unused.
15889
7b3b6ae4
LC
158902013-03-28 Lawrence Crowl <crowl@google.com>
15891
15892 * Makefile.in: Add several missing include dependences.
15893 (DUMPFILE_H): New.
15894 (test-dump.o): New. This object is not added to any executable,
15895 but is present for ad-hoc testing.
15896 * bitmap.c
15897 (debug (const bitmap_head_def &)): New.
15898 (debug (const bitmap_head_def *)): New.
15899 * bitmap.h
15900 (extern debug (const bitmap_head_def &)): New.
15901 (extern debug (const bitmap_head_def *)): New.
15902 * cfg.c
15903 (debug (edge_def &)): New.
15904 (debug (edge_def *)): New.
15905 * cfghooks.c
15906 (debug (basic_block_def &)): New.
15907 (debug (basic_block_def *)): New.
15908 * dumpfile.h
15909 (dump_node (const_tree, int, FILE *)): Correct source file.
15910 * dwarf2out.c
15911 (debug (die_struct &)): New.
15912 (debug (die_struct *)): New.
15913 * dwarf2out.h
15914 (extern debug (die_struct &)): New.
15915 (extern debug (die_struct *)): New.
15916 * gimple-pretty-print.c
15917 (debug (gimple_statement_d &)): New.
15918 (debug (gimple_statement_d *)): New.
15919 * gimple-pretty-print.h
15920 (extern debug (gimple_statement_d &)): New.
15921 (extern debug (gimple_statement_d *)): New.
15922 * ira-build.c
15923 (debug (ira_allocno_copy &)): New.
15924 (debug (ira_allocno_copy *)): New.
15925 (debug (ira_allocno &)): New.
15926 (debug (ira_allocno *)): New.
15927 * ira-int.h
15928 (extern debug (ira_allocno_copy &)): New.
15929 (extern debug (ira_allocno_copy *)): New.
15930 (extern debug (ira_allocno &)): New.
15931 (extern debug (ira_allocno *)): New.
15932 * ira-lives.c
15933 (debug (live_range &)): New.
15934 (debug (live_range *)): New.
15935 * lra-int.h
15936 (debug (lra_live_range &)): New.
15937 (debug (lra_live_range *)): New.
15938 * lra-lives.c
15939 (debug (lra_live_range &)): New.
15940 (debug (lra_live_range *)): New.
15941 * omega.c
15942 (debug (omega_pb_d &)): New.
15943 (debug (omega_pb_d *)): New.
15944 * omega.h
15945 (extern debug (omega_pb_d &)): New.
15946 (extern debug (omega_pb_d *)): New.
15947 * print-rtl.c
15948 (debug (const rtx_def &)): New.
15949 (debug (const rtx_def *)): New.
15950 * print-tree.c
15951 (debug_tree (tree): Move within file.
15952 (debug_raw (const tree_node &)): New.
15953 (debug_raw (const tree_node *)): New.
15954 (dump_tree_via_hooks (const tree_node *, int)): New.
15955 (debug (const tree_node &)): New.
15956 (debug (const tree_node *)): New.
15957 (debug_verbose (const tree_node &)): New.
15958 (debug_verbose (const tree_node *)): New.
15959 (debug_head (const tree_node &)): New.
15960 (debug_head (const tree_node *)): New.
15961 (debug_body (const tree_node &)): New.
15962 (debug_body (const tree_node *)): New.
15963 (debug_vec_tree (tree): Move and reimplement in terms of dump.
15964 (debug (vec<tree, va_gc> &)): New.
15965 (debug (vec<tree, va_gc> *)): New.
15966 * rtl.h
15967 (extern debug (const rtx_def &)): New.
15968 (extern debug (const rtx_def *)): New.
15969 * sbitmap.c
15970 (debug_raw (simple_bitmap_def &)): New.
15971 (debug_raw (simple_bitmap_def *)): New.
15972 (debug (simple_bitmap_def &)): New.
15973 (debug (simple_bitmap_def *)): New.
15974 * sbitmap.h
15975 (extern debug (simple_bitmap_def &)): New.
15976 (extern debug (simple_bitmap_def *)): New.
15977 (extern debug_raw (simple_bitmap_def &)): New.
15978 (extern debug_raw (simple_bitmap_def *)): New.
15979 * sel-sched-dump.c
15980 (debug (vinsn_def &)): New.
15981 (debug (vinsn_def *)): New.
15982 (debug_verbose (vinsn_def &)): New.
15983 (debug_verbose (vinsn_def *)): New.
15984 (debug (expr_def &)): New.
15985 (debug (expr_def *)): New.
15986 (debug_verbose (expr_def &)): New.
15987 (debug_verbose (expr_def *)): New.
15988 (debug (vec<rtx> &)): New.
15989 (debug (vec<rtx> *)): New.
15990 * sel-sched-dump.h
15991 (extern debug (vinsn_def &)): New.
15992 (extern debug (vinsn_def *)): New.
15993 (extern debug_verbose (vinsn_def &)): New.
15994 (extern debug_verbose (vinsn_def *)): New.
15995 (extern debug (expr_def &)): New.
15996 (extern debug (expr_def *)): New.
15997 (extern debug_verbose (expr_def &)): New.
15998 (extern debug_verbose (expr_def *)): New.
15999 (extern debug (vec<rtx> &)): New.
16000 (extern debug (vec<rtx> *)): New.
16001 * sel-sched-ir.h
16002 (_list_iter_cond_expr): Make inline instead of static.
16003 * sreal.c
16004 (debug (sreal &)): New.
16005 (debug (sreal *)): New.
16006 * sreal.h
16007 (extern debug (sreal &)): New.
16008 (extern debug (sreal *)): New.
16009 * tree.h
16010 (extern debug_raw (const tree_node &)): New.
16011 (extern debug_raw (const tree_node *)): New.
16012 (extern debug (const tree_node &)): New.
16013 (extern debug (const tree_node *)): New.
16014 (extern debug_verbose (const tree_node &)): New.
16015 (extern debug_verbose (const tree_node *)): New.
16016 (extern debug_head (const tree_node &)): New.
16017 (extern debug_head (const tree_node *)): New.
16018 (extern debug_body (const tree_node &)): New.
16019 (extern debug_body (const tree_node *)): New.
16020 (extern debug (vec<tree, va_gc> &)): New.
16021 (extern debug (vec<tree, va_gc> *)): New.
16022 * tree-cfg.c
16023 (debug (struct loop &)): New.
16024 (debug (struct loop *)): New.
16025 (debug_verbose (struct loop &)): New.
16026 (debug_verbose (struct loop *)): New.
16027 * tree-dump.c: Add header dependence.
16028 * tree-flow.h
16029 (extern debug (struct loop &)): New.
16030 (extern debug (struct loop *)): New.
16031 (extern debug_verbose (struct loop &)): New.
16032 (extern debug_verbose (struct loop *)): New.
16033 * tree-data-ref.c
16034 (debug (data_reference &)): New.
16035 (debug (data_reference *)): New.
16036 (debug (vec<data_reference_p> &)): New.
16037 (debug (vec<data_reference_p> *)): New.
16038 (debug (vec<ddr_p> &)): New.
16039 (debug (vec<ddr_p> *)): New.
16040 * tree-data-ref.h
16041 (extern debug (data_reference &)): New.
16042 (extern debug (data_reference *)): New.
16043 (extern debug (vec<data_reference_p> &)): New.
16044 (extern debug (vec<data_reference_p> *)): New.
16045 (extern debug (vec<ddr_p> &)): New.
16046 (extern debug (vec<ddr_p> *)): New.
16047 * tree-ssa-alias.c
16048 (debug (pt_solution &)): New.
16049 (debug (pt_solution *)): New.
16050 * tree-ssa-alias.h
16051 (extern debug (pt_solution &)): New.
16052 (extern debug (pt_solution *)): New.
16053 * tree-ssa-alias.c
16054 (debug (_var_map &)): New.
16055 (debug (_var_map *)): New.
16056 (debug (tree_live_info_d &)): New.
16057 (debug (tree_live_info_d *)): New.
16058 * tree-ssa-alias.h
16059 (extern debug (_var_map &)): New.
16060 (extern debug (_var_map *)): New.
16061 (extern debug (tree_live_info_d &)): New.
16062 (extern debug (tree_live_info_d *)): New.
16063
be77e1e5
JH
160642013-03-28 Jan Hubicka <jh@suse.cz>
16065
16066 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
16067
777e6976
IB
160682013-03-28 Ian Bolton <ian.bolton@arm.com>
16069
16070 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
16071 record only when desired or required.
16072
9cd347ae
UB
160732013-03-28 Uros Bizjak <ubizjak@gmail.com>
16074
16075 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
16076 *vec_extractv2di_1_rex64. Use x64 isa attribute.
16077
33159866 160782013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
16079
16080 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
16081 (*andsi3_compare0_uxtw): New pattern.
16082 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
16083 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
16084
89ab31c1
JH
160852013-03-28 Jan Hubicka <jh@suse.cz>
16086
16087 * data-streamer-in.c (streamer_read_gcov_count): New function.
16088 * gimple-streamer-out.c: Include value-prof.h.
16089 (output_gimple_stmt): Output histogram.
16090 (output_bb): Use streamer_write_gcov_count.
16091 * value-prof.c: Include data-streamer.h
16092 (dump_histogram_value): Add HIST_TYPE_MAX.
16093 (stream_out_histogram_value): New function.
16094 (stream_in_histogram_value): New function.
16095 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
16096 (stream_out_histogram_value, stream_in_histogram_value): Declare.
16097 * data-streamer-out.c (streamer_write_gcov_count): New function.
16098 (streamer_write_gcov_count_stream): New function.
16099 * lto-cgraph.c (lto_output_edge): Update counter streaming.
16100 (lto_output_node): Likewise.
16101 (input_node, input_edge): Likewise.
16102 * lto-streamer-out.c (output_cfg): Update streaming.
16103 * lto-streamer-in.c (input_cfg): Likewise.
16104 * data-streamer.h (streamer_write_gcov_count,
16105 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
16106 * gimple-streamer-in.c: Include value-prof.h
16107 (input_gimple_stmt): Input histograms.
16108 (input_bb): Update profile streaming.
16109
e594716a 161102013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 16111
33159866 16112 * genmodes.c (emit_max_int): New function.
8697be17 16113 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
16114 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
16115 Added doc.
8697be17 16116 * machmode.def: Fixed comment.
89ab31c1 16117
e594716a 161182013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
16119
16120 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
16121 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
16122
74946978
MP
161232013-03-28 Marek Polacek <polacek@redhat.com>
16124 Richard Biener <rguenther@suse.de>
16125
16126 PR tree-optimization/56695
16127 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
16128 build signed result of a vector comparison.
16129 * tree-cfg.c (verify_gimple_comparison): Check that a result
16130 of a vector comparison has signed type.
16131
a64b9c26
RB
161322013-03-28 Richard Biener <rguenther@suse.de>
16133
16134 PR tree-optimization/37021
16135 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
16136 do not restrict gaps between groups.
16137 * tree-vect-stmts.c (vectorizable_load): Properly account for
16138 a gap between groups.
16139
a9dc2a2f
EB
161402013-03-28 Eric Botcazou <ebotcazou@adacore.com>
16141
16142 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
16143 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
16144 is not enabled.
16145
53cb97f9
GP
161462013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
16147
16148 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
16149 * doc/extend.texi (Named Address Spaces): Ditto.
16150 (Variable Attributes): Ditto.
16151
b802ae5c
KT
161522013-03-27 Kai Tietz <ktietz@redhat.com>
16153
eddae10a
KT
16154 * config.build: Add support for cygwin x64 target.
16155 * config.gcc: Likewise.
16156 * config.host: Likewise.
16157 * configure.ac: Likewise
16158 * configure: Regenerated.
b802ae5c 16159
371e77e3 161602013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
16161
16162 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
16163 * config/i386/t-cygwin-w64: New file.
16164 * config/i386/cygwin-w64.h: New file.
16165 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
16166 and add support for x64-cygwin target.
16167 (CPP_SPEC): Likewise.
16168 (CXX_WRAP_SPEC_LIST): Undefine before define.
16169 (LIBGCJ_SONAME): Use 15 as version.
16170
f49b33cb
RB
161712013-03-27 Richard Biener <rguenther@suse.de>
16172
16173 PR tree-optimization/56716
16174 * tree-ssa-structalias.c (perform_var_substitution): Adjust
16175 dumping for ref nodes.
16176
b37a6ce5
MJ
161772013-03-27 Martin Jambor <mjambor@suse.cz>
16178
16179 PR tree-optimization/55334
16180 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
16181 restricted pointers to arrays.
16182
9469b9b2
GDR
161832013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
16184
16185 * Makefile.in (.SUFFIXES): Add .cc.
16186 (.c.o): Apply same recipe for implicit rule .cc.o.
16187
7d24f650
RB
161882013-03-27 Richard Biener <rguenther@suse.de>
16189
16190 PR tree-optimization/37021
16191 * tree-vect-data-refs.c (vect_check_strided_load): Allow
16192 REALPART/IMAGPART_EXPRs around the supported refs.
16193 * tree-ssa-structalias.c (find_func_aliases): Assume that
16194 floating-point values are not used to transfer pointers.
16195
2f251a05
AI
161962013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
16197
f43245d1
UB
16198 * target.def (TARGET_HAS_IFUNC_P): New target hook.
16199 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
16200 * doc/tm.texi: Regenerate.
16201 * targhooks.h (default_has_ifunc_p): New.
16202 * targhooks.c (default_has_ifunc_p): Ditto.
16203 * config/linux-protos.h: New file.
16204 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
16205 hook for linux which disables support of indirect functions in android.
16206 * config/linux-android.c: New file.
16207 * config/t-linux-android.c: Ditto.
16208 * config.gcc: Added new object file linux-android.o.
16209 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 16210 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 16211 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
16212 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
16213 doesn't support indirect functions.
16214 * configure: Regenerate.
16215
78b4e425
BC
162162013-03-27 Bin Cheng <bin.cheng@arm.com>
16217
16218 PR target/56102
16219 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
16220 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
16221 mult-word mode.
16222
a5ba7b92
AK
162232013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16224
16225 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
16226
be624986
TG
162272013-03-27 Terry Guo <terry.guo@arm.com>
16228
16229 * config/arm/arm-cores.def: Added core cortex-r7.
16230 * config/arm/arm-tune.md: Regenerated.
16231 * config/arm/arm-tables.opt: Regenerated.
16232 * doc/invoke.texi: Added entry for core cortex-r7.
16233
0a514f47
WL
162342013-03-27 Walter Lee <walt@tilera.com>
16235
16236 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
16237 double-decrement of next_scratch_regno.
16238
9332b0d2
WL
162392013-03-27 Walter Lee <walt@tilera.com>
16240
801d9b2a 16241 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
16242 input operands.
16243 (insn_v1mulus): Ditto.
16244 (insn_v2muls): Ditto.
16245
f54ea5dd
WL
162462013-03-27 Walter Lee <walt@tilera.com>
16247
e594716a 16248 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
16249 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
16250
bf60f4ca
WL
162512013-03-27 Walter Lee <walt@tilera.com>
16252
e594716a 16253 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
16254 (*sibcall_value): Ditto.
16255
e3b51eeb
WL
162562013-03-27 Walter Lee <walt@tilera.com>
16257
16258 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
16259 (insn_mnz_v8qi): ... this ...
16260 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
16261 vector equivalent.
16262 (insn_v<n>mnz): Replaced by ...
16263 (insn_v1mnz): ... this ...
16264 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
16265 equivalent.
16266 (insn_mz_<mode>): Replaced by ...
16267 (insn_mz_v8qi): ... this ...
16268 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
16269 vector equivalent.
16270 (insn_v<n>mz): Replaced by ...
16271 (insn_v1mz): ... this ...
16272 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
16273 equivalent.
16274
4fc7b145
EB
162752013-03-26 Eric Botcazou <ebotcazou@adacore.com>
16276
16277 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
16278
6f33817e
RM
162792013-03-26 Roland McGrath <mcgrathr@google.com>
16280
16281 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
16282 than fprintf with a non-constant, non-format string.
16283
93a4145b
UB
162842013-03-26 Uros Bizjak <ubizjak@gmail.com>
16285
16286 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
16287 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
16288 operand 0 predicate.
16289 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
16290 attribute. Use general_x64nomem_operand as operand 1 predicate.
16291 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
16292 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
16293 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
16294 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
16295 (mov<mode>_insv_1): Remove expander. Merge insn with
16296 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
16297 Use general_x64nomem_operand as operand 1 predicate.
16298 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
16299 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
16300 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
16301 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
16302 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
16303 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
16304 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
16305 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
16306 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
16307 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
16308 (general_x64nomem_operand): Ditto.
16309
c6a9ed5a 163102013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
16311
16312 * config/rtems.opt: Add -pthread option.
16313
31b0a960
RB
163142013-03-26 Richard Biener <rguenther@suse.de>
16315
93a4145b
UB
16316 * alias.c (find_base_term): Avoid redundant and not used recursion.
16317 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
16318 (true_dependence_1): Compute and pass base terms to base_alias_check.
16319 (write_dependence_p): Likewise.
16320 (may_alias_p): Likewise.
16321
79517551
SN
163222013-03-26 Sofiane Naci <sofiane.naci@arm.com>
16323
16324 * config/aarch64/aarch64.c (aarch64_classify_address): Support
16325 PC-relative load in SI modes and above only.
16326
a76213b9
XQ
163272013-03-26 Xinyu Qi <xyqi@marvell.com>
16328
16329 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
16330 * config/arm/iwmmxt.md (WCGR0): Update.
16331 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 16332
37ff9355
UB
163332013-03-26 Uros Bizjak <ubizjak@gmail.com>
16334
16335 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
16336 Use x64 and nox64 isa attributes.
16337
30b0317c
RB
163382013-03-26 Richard Biener <rguenther@suse.de>
16339
16340 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
16341 alignment computations and rely on get_object_alignment_1
16342 for the !TYPE_P case.
16343 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
16344
cbcdb140
WL
163452013-03-26 Walter Lee <walt@tilera.com>
16346
16347 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
16348 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
16349
dd884525 163502013-03-25 Jeff Law <law@redhat.com>
be672e08 16351
33159866
UB
16352 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
16353 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
16354 wrong version of prior patch.
16355
0051d3ec
WL
163562013-03-25 Walter Lee <walt@tilera.com>
16357
16358 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
16359 TILEGX_INSN_SHUFFLEBYTES1.
16360 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
16361 shufflebytes1.
16362 (tilegx_builtins): Ditto.
16363 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
16364
065a3605
WL
163652013-03-25 Walter Lee <walt@tilera.com>
16366
16367 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
16368 (floatunssisf2): New pattern.
16369 (floatsidf2): New pattern.
16370 (floatunssidf2): New pattern.
065a3605 16371
5b2a3c82
WL
163722013-03-25 Walter Lee <walt@tilera.com>
16373
16374 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
16375 tests for constraint J, K, N, P.
16376
192ea533
WL
163772013-03-25 Walter Lee <walt@tilera.com>
16378
16379 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
16380 Use indirect/pcrel encoding.
16381 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
16382 Ditto.
16383
855e0d0b
SE
163842013-03-25 Steve Ellcey <sellcey@mips.com>
16385
16386 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
16387 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
16388 * config/mips/mips.c (mips_option_override): Set IMADD default.
16389 * config/mips/mips.h (PTF_AVOID_IMADD): New.
16390 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
16391 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
16392 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
16393 * doc/invoke.texi (-mimadd/-mno-imadd): New.
16394
39e45653
JL
163952013-03-25 Jeff Law <law@redhat.com>
16396
16397 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
16398 slightly to avoid creating and folding useless trees. Simplify
16399 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
16400
7482c470
UB
164012013-03-25 Uros Bizjak <ubizjak@gmail.com>
16402
16403 * config/i386/i386.md (*zero_extendsidi2): Merge with
16404 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
16405 * config/i386/predicates.md (x86_64_zext_operand): Rename from
16406 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
16407 targets. Clarify comment.
16408
4a53743e
MJ
164092013-03-25 Martin Jambor <mjambor@suse.cz>
16410
16411 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
16412 pass-through jump functions differently.
16413 (ipa_read_jump_function): Likewise. Also use setter functions to set
16414 up jump functions.
16415
162712de
MJ
164162013-03-25 Martin Jambor <mjambor@suse.cz>
16417
16418 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
16419 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
16420 process it.
16421 (ipa_get_indirect_edge_target): New function.
16422 (devirtualization_time_bonus): New parameter known_aggs, pass it to
16423 ipa_get_indirect_edge_target. Update all callers.
16424 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
16425 ipa_get_indirect_edge_target_1 instead of calling
16426 ipa_get_indirect_edge_target.
16427 (create_specialized_node): Pass aggvlas to
16428 ipcp_discover_new_direct_edges.
16429
a5a4c20a
KT
164302013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16431
16432 * config/arm/arm.md (f_sels, f_seld): New types.
16433 (*cmov<mode>): New pattern.
16434 * config/arm/predicates.md (arm_vsel_comparison_operator): New
16435 predicate.
16436
f992b9fc
KT
164372013-03-25 Kai Tietz <ktietz@redhat.com>
16438
16439 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
16440 POSIX-printf for mingw-hosted builds.
16441
c16fd676
RB
164422013-03-25 Richard Biener <rguenther@suse.de>
16443
16444 PR middle-end/56694
16445 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
16446 must-not-throw stmt location.
16447
5ad29f12
KT
164482013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16449
16450 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
16451 Emit load-acquire versions when acq is true.
16452 (arm_emit_store_exclusive): Add rel parameter.
16453 Emit store-release versions when rel is true.
16454 (arm_split_compare_and_swap): Use acquire-release instructions
16455 instead.
16456 of barriers when appropriate.
16457 (arm_split_atomic_op): Likewise.
16458 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
16459 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
16460 (VUNSPEC_SLX): Likewise.
16461 (VUNSPEC_LDA): Likewise.
16462 (VUNSPEC_STL): Likewise.
16463 * config/arm/sync.md (atomic_load<mode>): New pattern.
16464 (atomic_store<mode>): Likewise.
16465 (arm_load_acquire_exclusive<mode>): Likewise.
16466 (arm_load_acquire_exclusivesi): Likewise.
16467 (arm_load_acquire_exclusivedi): Likewise.
16468 (arm_store_release_exclusive<mode>): Likewise.
16469
03a7dddb
CM
164702013-03-25 Catherine Moore <clm@codesourcery.com>
16471
16472 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
16473 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
16474 * config/mip/predicates.md (lwsp_swsp_operand,
16475 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
16476 sb16_operand, db4_operand, db7_operand, ib3_operand,
16477 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
16478 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
16479 andi16_operand): New predicates.
16480 * config/mips/mips.md (compression): New attribute.
16481 (enabled): New attribute.
16482 (length): Consider compression in computing length.
16483 (shift_compression): New code attribute.
16484 (*add<mode>3): New operands. Record compression.
16485 (sub<mode>3): Likewise.
16486 (one_cmpl<mode>2): Likewise.
16487 (*and<mode>3): Likewise.
16488 (*ior<mode>3): Likewise.
16489 (unnamed pattern for xor): Likewise.
16490 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
16491 (*<optab><mode>3): Likewise.
16492 (*mov<mode>_internal: Likewise.
16493 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
16494 (mips_unsigned_immediate_p): New.
16495 (umips_lwsp_swsp_address_p): New.
16496 (m16_based_address_p): New.
16497 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
16498 (mips_unsigned_immediate_p): New prototype.
16499 (lwsp_swsp_address_p): New prototype.
16500 (m16_based_address_p): New prototype.
16501 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
16502 (mips_signed_immediate_p): New function.
16503 (m16_based_address_p): New function.
16504 (lwsp_swsp_address_p): New function.
16505 (mips_print_operand_punctuation): Recognize short delay slot insns
16506 for microMIPS.add<mode>3"
16507
f35c297f 165082013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 16509
f35c297f
KT
16510 PR target/56720
16511 * config/arm/iterators.md (v_cmp_result): New mode attribute.
16512 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
16513
051b9446
RB
165142013-03-25 Richard Biener <rguenther@suse.de>
16515
16516 PR tree-optimization/56689
16517 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
16518 any edge.
16519
374001cb
RB
165202013-03-25 Richard Biener <rguenther@suse.de>
16521
16522 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
16523 of bitmap.
16524 (memory_references): Likewise.
16525 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
16526 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
16527 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
16528 (gather_mem_refs_in_loops): Fold into ...
16529 (analyze_memory_references): ... this. Move initialization
16530 to tree_ssa_lim_initialize.
16531 (fill_always_executed_in): Rename to ...
16532 (fill_always_executed_in_1): ... this.
16533 (fill_always_executed_in): Move contains_call computation to
16534 this new function from ...
16535 (tree_ssa_lim_initialize): ... here.
16536 (tree_ssa_lim): Call fill_always_executed_in.
16537
57895947
EB
165382013-03-25 Eric Botcazou <ebotcazou@adacore.com>
16539
16540 * postreload.c (reload_combine): Fix code detecting returns.
16541
1e1b18c1
EB
165422013-03-25 Eric Botcazou <ebotcazou@adacore.com>
16543
16544 * function.c (emit_use_return_register_into_block): On cc0 targets,
16545 do not emit the sequence between cc0 setter and user.
16546
9216baf1
KT
165472013-03-25 Kai Tietz <ktietz@redhat.com>
16548
1e1b18c1
EB
16549 * config/i386/predicates.md (local_symbolic_operand): Interpret
16550 dll-imported symbols as none-local.
9216baf1 16551
76421b44
RB
165522013-03-25 Richard Biener <rguenther@suse.de>
16553
16554 * tree-ssa-loop-im.c (struct depend): Remove.
16555 (struct lim_aux_data): Make depends a vec of gimples.
16556 (free_lim_aux_data): Adjust.
16557 (add_dependency): Likewise.
16558 (set_level): Likewise.
16559
d154bfa2
RB
165602013-03-25 Richard Biener <rguenther@suse.de>
16561
16562 PR middle-end/56434
16563 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
16564 the pointer returned by calls with ECF_MALLOC set.
16565
2cd9804e
UB
165662013-03-24 Uros Bizjak <ubizjak@gmail.com>
16567
acef5fe0
UB
16568 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
16569
165702013-03-24 Uros Bizjak <ubizjak@gmail.com>
16571
16572 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
16573 using MMXMODE mode iterator.
16574 (*move<mode>_internal): Merge with *movv2sf_internal and
16575 *movv2sf_internal_rex64 using MMXMODE mode iterator.
16576
225ccc68
SB
165772013-03-23 Steven Bosscher <steven@gcc.gnu.org>
16578
85c0f02d
SB
16579 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
16580 (record_last_mem_set_info): Likewise.
16581
225ccc68
SB
16582 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
16583 of XNEWVEC followed by memset.
16584 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
16585
b64925dc
SB
165862013-03-23 Steven Bosscher <steven@gcc.gnu.org>
16587
16588 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
16589 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
16590 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
16591 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
16592 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
16593 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
16594 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
16595 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
16596 BARRIER_P instead of GET_CODE.
16597
b9aaf52e
EB
165982013-03-23 Eric Botcazou <ebotcazou@adacore.com>
16599
16600 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
16601 inaccuracy in the probing code.
16602
16603 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
16604 (ctrapdi4): Likewise.
16605
66de4d7c
EB
166062013-03-23 Eric Botcazou <ebotcazou@adacore.com>
16607
16608 * calls.c (expand_call): Add missing guard to code handling return
16609 of non-BLKmode structures in MSB.
16610 * function.c (expand_function_end): Likewise.
16611
4f25c8fb
EB
166122013-03-23 Eric Botcazou <ebotcazou@adacore.com>
16613
16614 * combine.c (try_combine): Adjust comment. Do not add the set of
16615 insn #0 if the destination indirectly is set or dies in insn #2.
16616 Tidy up code to distribute a new note.
16617
23b7850d
UB
166182013-03-22 Uros Bizjak <ubizjak@gmail.com>
16619
16620 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
16621 also for alternatives 16 and 17.
16622
bed852cf
UB
166232013-03-22 Uros Bizjak <ubizjak@gmail.com>
16624
16625 * config/i386/sse.md (*mov<mode>_internal): Merge with
16626 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
16627 Emit insn template depending on type attribute. Use
16628 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
16629 movd instead of movq mnemonic for interunit moves. Rewrite mode
16630 attribute calculation. Remove unit attribute calculation.
16631 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
16632 Set prefix_data16 attribute for DImode ssemov types.
16633 Use Ym instead of y for SSE-MMX conversion alternatives.
16634 Reorder operand constraints.
16635
1e8a7937
SB
166362013-03-22 Steven Bosscher <steven@gcc.gnu.org>
16637
16638 * df.h (df_insn_delete): Adjust prototype.
16639 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
16640 and let it decide whether mark the basic block dirty.
16641 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
16642 * df-scan.c (df_insn_info_delete): New helper function, split
16643 off from df_insn_delete.
16644 (df_scan_free_bb_info): Use it.
16645 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
16646 Likewise.
16647 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
16648 that the insn is actually an insn and it has a non-NULL basic block.
16649 Do not mark basic block dirty if only deleting a DEBUG_INSN.
16650
e14d094c
RB
166512013-03-22 Richard Biener <rguenther@suse.de>
16652
16653 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
16654 dep_ref members.
16655 (mem_ref_alloc): Do not allocate them.
16656 (refs_independent_p): Do not query or maintain a cache.
16657
e9cf7316
RB
166582013-03-22 Richard Biener <rguenther@suse.de>
16659
16660 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
16661 (gather_mem_refs_in_loops): Do not compute it.
16662 (analyze_memory_references): Do not allocate it.
16663 (tree_ssa_lim_finalize): Do not free it.
16664 (for_all_locs_in_loop): Do not query all_refs_in_loop.
16665
f046e81b
RB
166662013-03-22 Richard Biener <rguenther@suse.de>
16667
16668 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 16669
a05c0ddf
IB
166702013-03-22 Ian Bolton <ian.bolton@arm.com>
16671
16672 * config/aarch64/aarch64.c (aarch64_print_operand): New
16673 format specifier for printing a constant in hex.
16674 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
16675 format specifier for printing second operand.
16676
c00217fc
RB
166772013-03-22 Richard Biener <rguenther@suse.de>
16678
16679 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
16680 bitmaps.
16681 (gather_mem_refs_in_loops): Perform store accumulation here.
16682 (create_vop_ref_mapping_loop): Remove.
16683 (create_vop_ref_mapping): Likewise.
16684 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 16685 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
16686 (record_indep_loop): Remove.
16687 (record_dep_loop): New function.
16688 (ref_indep_loop_p_1): Adjust to only walk over references
16689 in the loop, not its subloops.
16690 (ref_indep_loop_p): Rename to ...
16691 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
16692 maintaining a more fine-grained cache.
16693 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
16694 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
16695
15d19bf8
RB
166962013-03-22 Richard Biener <rguenther@suse.de>
16697
16698 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
16699 (struct mem_ref): Make accesses_in_loop a vec of a vec of
16700 aggregate mem_ref_loc.
16701 (free_mem_ref_locs): Inline into ...
16702 (memref_free): ... this and adjust.
16703 (mem_ref_alloc): Adjust.
16704 (mem_ref_locs_alloc): Remove.
16705 (record_mem_ref_loc): Adjust.
16706 (get_all_locs_in_loop): Rewrite into ...
16707 (for_all_locs_in_loop): ... this iterator.
16708 (rewrite_mem_ref_loc): New functor.
16709 (rewrite_mem_refs): Use for_all_locs_in_loop.
16710 (sm_set_flag_if_changed): New functor.
16711 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
16712 (ref_always_accessed): New functor.
16713 (ref_always_accessed_p): Use for_all_locs_in_loop.
16714
6f37411d
MG
167152013-03-21 Marc Glisse <marc.glisse@inria.fr>
16716
16717 * tree-pass.h (PROP_gimple_lvec): New.
16718 * passes.c (dump_properties): Handle PROP_gimple_lvec.
16719 (init_optimization_passes): Move pass_lower_vector.
16720 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
16721 PROP_gimple_lvec.
16722 (pass_lower_vector): Provide PROP_gimple_lvec.
16723 (pass_lower_vector_ssa): Likewise.
16724 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
16725
511ef689
MW
167262013-03-21 Mark Wielaard <mjw@redhat.com>
16727
16728 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
16729
cc1df30b
UB
167302013-03-21 Uros Bizjak <ubizjak@gmail.com>
16731
16732 * config/i386/i386.md (*movdi_internal): Disparage slightly
16733 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
16734 conversion alternatives.
16735
c845cfe1
JJ
167362013-03-21 Jakub Jelinek <jakub@redhat.com>
16737
37e99116
JJ
16738 PR middle-end/48087
16739 * diagnostic.def (DK_WERROR): New kind.
16740 * diagnostic.h (werrorcount): Define.
16741 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
16742 promoted to DK_ERROR, increment DK_WERROR counter instead of
16743 DK_ERROR counter.
16744 * toplev.c (toplev_main): Call print_ignored_options even if
16745 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
16746 even if just werrorcount is non-zero.
16747
c845cfe1
JJ
16748 PR debug/55608
16749 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
16750 on failure.
16751 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
16752 (string_cst_pool_decl): New function.
16753 (optimize_one_addr_into_implicit_ptr): New function.
16754 (resolve_addr_in_expr): Optimize DWARF location expression
16755 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
16756 which doesn't live in memory, but has DW_AT_location or
16757 DW_AT_const_value, or refers to a string literal, into
16758 DW_OP_GNU_implicit_pointer.
16759 (optimize_location_into_implicit_ptr): New function.
16760 (resolve_addr): If removing DW_AT_location of a variable because
16761 it was DW_OP_addr of address of the variable, but the variable doesn't
16762 live in memory, try to emit const value attribute for the initializer.
16763
08e0cda6
MG
167642013-03-21 Marc Glisse <marc.glisse@inria.fr>
16765
16766 * tree.h (VECTOR_TYPE_P): New macro.
16767 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
16768 TYPE_MODE): Use it.
16769 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
16770 VEC_COND_EXPR cannot be lvalues.
16771 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
16772
d08633b4
MG
167732013-03-21 Marc Glisse <marc.glisse@inria.fr>
16774
16775 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
16776 Restrict the transformation to equal modes.
16777
e6647190
RB
167782013-03-21 Richard Biener <rguenther@suse.de>
16779
16780 PR tree-optimization/39326
16781 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
16782 (MEM_ANALYZABLE): Adjust.
16783 (record_mem_ref_loc): Move bitmap ops ...
16784 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
16785 unanalyzable refs, do not record locations for it.
16786 (analyze_memory_references): Allocate ref zero as shared
16787 unanalyzable ref.
16788 (refs_independent_p): Do not test for unanalyzed mems here.
16789 (ref_indep_loop_p_1): Special-case disambiguation against
16790 the unanalyzed ref.
cc1df30b 16791 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 16792
65074f54
CL
167932013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
16794
16795 * config/arm/arm-protos.h (tune_params): Add
16796 prefer_neon_for_64bits field.
16797 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
16798 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
16799 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
16800 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
16801 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
16802 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
16803 (arm_option_override): Handle -mneon-for-64bits new option.
16804 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
16805 (prefer_neon_for_64bits): Declare new variable.
16806 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 16807 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
16808 (arch_enabled): Handle new arch types. Remove support for onlya8
16809 and nota8.
16810 (one_cmpldi2): Use new arch names.
bc5faa5b 16811 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
16812 * config/arm/arm.opt (mneon-for-64bits): Add option.
16813 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
16814 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
16815 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
16816 of onlya8.
16817 * doc/invoke.texi (-mneon-for-64bits): Document.
16818
5a2d2a79
RB
168192013-03-21 Richard Biener <rguenther@suse.de>
16820
16821 PR tree-optimization/39326
16822 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
16823 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 16824 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 16825
5abe1e05
RB
168262013-03-21 Richard Biener <rguenther@suse.de>
16827
16828 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
16829 (vect_insert_into_interleaving_chain): Likewise.
16830 (vect_drs_dependent_in_basic_block): Inline ...
16831 (vect_slp_analyze_data_ref_dependence): ... here. New function,
16832 split out from ...
16833 (vect_analyze_data_ref_dependence): ... here. Simplify.
16834 (vect_check_interleaving): Simplify.
16835 (vect_analyze_data_ref_dependences): Likewise. Split out ...
16836 (vect_slp_analyze_data_ref_dependences): ... this new function.
16837 (dr_group_sort_cmp): New function.
16838 (vect_analyze_data_ref_accesses): Compute data-reference groups
16839 here instead of in vect_analyze_data_ref_dependence. Use
16840 a more efficient algorithm.
16841 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
16842 vect_slp_analyze_data_ref_dependences. Call
16843 vect_analyze_data_ref_accesses earlier.
16844 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
16845 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
16846 (vect_slp_analyze_data_ref_dependences): New prototype.
16847
cad1735b
RB
168482013-03-21 Richard Biener <rguenther@suse.de>
16849
16850 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
16851 ref is stored in the loop.
16852 (find_refs_for_sm): Walk only over all stores.
16853 (store_motion_loop): Allocate from lim_bitmap_obstack.
16854 (store_motion): Likewise.
16855
141310ef
RB
168562013-03-21 Richard Biener <rguenther@suse.de>
16857
16858 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
16859 Update virtual SSA form.
16860
5022315a
RO
168612013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16862
16863 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
16864 * configure: Regenerate.
16865 * config.in: Regenerate.
16866 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
16867 if !HAVE_LD_EH_FRAME_CIEV3.
16868
50d4421c
RB
168692013-03-21 Richard Biener <rguenther@suse.de>
16870
16871 * tree-cfg.c (verify_expr_no_block): New function.
16872 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
16873 nor DECL_VALUE_EXPR have locations with associated blocks.
16874 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
16875 (clear_unused_block_pointer): Remove code dealing with
16876 blocks in DECL_DEBUG_EXPR locations.
16877
839b422f
RB
168782013-03-21 Richard Biener <rguenther@suse.de>
16879
16880 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
16881 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
16882 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
16883 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
16884 instead of DECL_DEBUG_EXPR_IS_FROM.
16885 * gimplify.c (gimplify_modify_expr): Likewise.
16886 * tree-cfg.c (verify_expr_location_1): Likewise.
16887 * tree-complex.c (create_one_component_var): Likewise.
16888 * tree-sra.c (create_access_replacement): Likewise.
16889 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
16890 (clear_unused_block_pointer): Likewise.
16891 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
16892 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
16893 * var-tracking.c (var_debug_decl): Likewise.
16894 (track_expr_p): Likewise.
16895 * tree-inline.c (add_local_variables): Likewise. Set
16896 DECL_HAS_DEBUG_EXPR_P after copying it.
16897 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
16898 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
16899
fe04878d
UB
169002013-03-21 Uros Bizjak <ubizjak@gmail.com>
16901
16902 PR bootstrap/56656
16903 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
16904 * configure: Regenerate.
16905 * config.in: Regenerate.
16906 * config/i386/i386.md (*movdf_internal): Use
16907 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
16908 movd instead of movq mnemonic for interunit moves.
16909 (*movdi_internal): Ditto.
16910
bd059b26 169112013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
16912
16913 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
16914 (abd<mode>_3): New pattern.
16915 (aba<mode>_3): New pattern.
16916 (fabd<mode>_3): New pattern.
16917
bd059b26 169182013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
16919
16920 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
16921 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
16922 occurrence of REGISTER_PREFIX as its empty string.
16923
4f1f78b9
JL
169242013-03-20 Jeff Law <law@redhat.com>
16925
16926 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
16927 addititional equivalences for equality comparisons between an SSA_NAME
16928 and a constant where the SSA_NAME was set from a widening conversion.
16929
327a1118
WL
169302013-03-20 Walter Lee <walt@tilera.com>
16931
16932 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
16933
813e0036
UB
169342013-03-20 Uros Bizjak <ubizjak@gmail.com>
16935
16936 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
16937 depending on type attribute.
16938 (*movti_internal): Ditto.
16939 (*movtf_internal): Ditto.
16940 (*movxf_internal): Ditto.
16941 (*movdf_internal): Ditto.
16942 (*movsf_internal): Ditto.
16943
7cf34aae
UB
169442013-03-20 Uros Bizjak <ubizjak@gmail.com>
16945
16946 * config/i386/i386.md (*movti_internal): Set prefix attribute to
16947 maybe_vex for sselog1 and ssemov types.
16948 (*movdi_internal): Reorder operand constraints.
16949 (*movsi_internal): Ditto. Set prefix attribute to
16950 maybe_vex for sselog1 and ssemov types.
16951 (*movtf_internal): Set prefix attribute to maybe_vex
16952 for sselog1 and ssemov types.
16953 (*movdf_internal): Ditto. Set prefix_data16 attribute for
16954 DImode ssemov types. Reorder operand constraints.
16955 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
16956 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
16957 attribute for SImode ssemov types. Reorder operand constraints.
16958
19321415
MJ
169592013-03-20 Martin Jambor <mjambor@suse.cz>
16960
16961 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
16962 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
16963
12211b99 169642013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
16965
16966 * config/rs6000/predicates.md (indexed_address, update_address_mem
16967 update_indexed_address_mem): New predicates.
16968 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
16969 attribute for load/store instructions.
16970 * config/rs6000/dfp.md (movsd_store): Likewise.
16971 (movsd_load): Likewise.
16972 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
16973 (unnamed HI->DI extend define_insn): Likewise.
16974 (unnamed SI->DI extend define_insn): Likewise.
16975 (unnamed QI->SI extend define_insn): Likewise.
16976 (unnamed QI->HI extend define_insn): Likewise.
16977 (unnamed HI->SI extend define_insn): Likewise.
16978 (unnamed HI->SI extend define_insn): Likewise.
16979 (extendsfdf2_fpr): Likewise.
16980 (movsi_internal1): Likewise.
16981 (movsi_internal1_single): Likewise.
16982 (movhi_internal): Likewise.
16983 (movqi_internal): Likewise.
16984 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
16985 attribute for load/store instructions.
16986 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
16987 instructions.
16988 (mov<mode>_softfloat): Likewise.
16989 (mov<mode>_hardfloat32): Likewise.
16990 (mov<mode>_hardfloat64): Likewise.
16991 (mov<mode>_softfloat64): Likewise.
16992 (movdi_internal32): Likewise.
16993 (movdi_internal64): Likewise.
16994 (probe_stack_<mode>): Likewise.
16995
169962013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
16997
16998 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
16999 floating point, and decimal floating point to reload iterator.
17000
17001 * config/rs6000/constraints.md (wl constraint): New constraints to
17002 return FLOAT_REGS if certain options are used to reduce the number
17003 of separate patterns that exist in the file.
17004 (wx constraint): Likewise.
17005 (wz constraint): Likewise.
17006
17007 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17008 -mdebug=reg, print wg, wl, wx, and wz constraints.
17009 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17010 Initialize the reload functions for 64-bit binary/decimal floating
17011 point types.
17012 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17013 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17014 create the buffer on the stack to overcome not having a 32-bit
17015 load and store.
17016 (rs6000_emit_move): Likewise.
17017 (rs6000_secondary_memory_needed_rtx): Likewise.
17018 (rs6000_alloc_sdmode_stack_slot): Likewise.
17019 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17020 via xxlxor, just like DFmode 0.0.
17021
17022 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
17023 define as 1 if we are running on a power7 or newer.
17024 (enum r6000_reg_class_enum): Add new constraints.
17025
17026 * config/rs6000/dfp.md (movsd): Delete, combine with binary
17027 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17028 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 17029 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
17030 (movsd splitter): Likewise.
17031 (movsd_hardfloat): Likewise.
17032 (movsd_softfloat): Likewise.
17033
17034 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
17035 binary and decimal floating point moves.
17036 (fmove_ok): New attributes to combine binary and decimal floating
17037 point moves, and to combine power6x (mfpgpr) moves along normal
17038 floating moves.
17039 (real_value_to_target): Likewise.
17040 (f32_lr): Likewise.
17041 (f32_lm): Likewise.
17042 (f32_li): Likewise.
17043 (f32_sr): Likewise.
17044 (f32_sm): Likewise.
17045 (f32_si): Likewise.
17046 (movsf): Combine binary and decimal floating point moves. Combine
17047 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 17048 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
17049 (mov<mode> for SFmode/SDmode); Likewise.
17050 (SFmode/SDmode splitters): Likewise.
17051 (movsf_hardfloat): Likewise.
17052 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
17053 (movsf_softfloat): Likewise.
17054 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
17055
17056 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
17057 wx and wz constraints.
17058
17059 * config/rs6000/constraints.md (wg constraint): New constraint to
17060 return FLOAT_REGS if -mmfpgpr (power6x) was used.
17061
17062 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
17063 constraint.
17064
17065 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17066 -mdebug=reg, print wg, wl, wx, and wz constraints.
17067 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17068 Initialize the reload functions for 64-bit binary/decimal floating
17069 point types.
17070 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17071 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17072 create the buffer on the stack to overcome not having a 32-bit
17073 load and store.
17074 (rs6000_emit_move): Likewise.
17075 (rs6000_secondary_memory_needed_rtx): Likewise.
17076 (rs6000_alloc_sdmode_stack_slot): Likewise.
17077 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17078 via xxlxor, just like DFmode 0.0.
17079
c6d5ff83
MM
17080 * config/rs6000/dfp.md (movdd): Delete, combine with binary
17081 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17082 with other moves by using conditional constraits (wg). Use LFIWZX
17083 and STFIWX for loading SDmode on power7.
17084 (movdd splitters): Likewise.
17085 (movdd_hardfloat32): Likewise.
17086 (movdd_softfloat32): Likewise.
17087 (movdd_hardfloat64_mfpgpr): Likewise.
17088 (movdd_hardfloat64): Likewise.
17089 (movdd_softfloat64): Likewise.
17090
17091 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
17092 64-bit binary and decimal floating point moves.
17093 (FMOVE64X): Likewise.
17094 (movdf): Combine 64-bit binary and decimal floating point moves.
17095 Combine power6x (mfpgpr) moves with other moves by using
17096 conditional constraits (wg).
17097 (mov<mode> for DFmode/DDmode): Likewise.
17098 (DFmode/DDmode splitters): Likewise.
17099 (movdf_hardfloat32): Likewise.
17100 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
17101 (movdf_softfloat32): Likewise.
17102 (movdf_hardfloat64_mfpgpr): Likewise.
17103 (movdf_hardfloat64): Likewise.
17104 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
17105 (movdf_softfloat64): Likewise.
17106 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
17107 (reload_<mode>_load): Move to later in the file so they aren't in
17108 the middle of the floating point move insns.
17109 (reload_<mode>_store): Likewise.
17110
17111 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
17112 constraint.
17113
17114 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
17115 constraint if -mdebug=reg.
bd059b26
UB
17116 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
17117 Enable using dd reload support if needed.
c6d5ff83
MM
17118
17119 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
17120 binary and decimal floating point moves in rs6000.md.
17121 (movtd_internal): Likewise.
17122
17123 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
17124 decimal floating point moves.
17125 (movtf): Likewise.
17126 (movtf_internal): Likewise.
17127 (mov<mode>_internal, TDmode/TFmode): Likewise.
17128 (movtf_softfloat): Likewise.
17129 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
17130
17131 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
17132 movdi_internal64, using wg constraint for move direct operations.
17133 (movdi_internal64): Likewise.
17134
17135 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
17136 MODES_TIEABLE_P for selected modes. Print the numerical value of
17137 the various virtual registers. Use GPR/FPR first/last values,
17138 instead of hard coding the register numbers. Print which modes
17139 have reload functions registered.
bd059b26
UB
17140 (rs6000_option_override_internal): If -mdebug=reg, trace the options
17141 settings before/after setting cpu, target and subtarget settings.
17142 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
17143 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
17144 (rs6000_secondary_reload_fail): Likewise.
17145 (rs6000_secondary_reload_inner): Likewise.
17146
17147 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
17148 macros for first/last GPR and FPR registers.
17149 (LAST_GPR_REGNO): Likewise.
17150 (FIRST_FPR_REGNO): Likewise.
17151 (LAST_FPR_REGNO): Likewise.
17152
17153 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
17154 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
17155 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
17156 (vcond<mode><mode>): Likewise.
17157 (vcondu<mode><mode>): Likewise.
17158 (vector_gtu<mode>): Likewise.
17159 (vector_gte<mode>): Likewise.
17160 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 17161 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
17162 (ior<mode>3): Likewise.
17163 (and<mode>3): Likewise.
17164 (one_cmpl<mode>2): Likewise.
17165 (nor<mode>3): Likewise.
17166 (andc<mode>3): Likewise.
17167
17168 * config/rs6000/constraints.md (wt constraint): New constraint
17169 that returns VSX_REGS if TImode is allowed in VSX registers.
17170
17171 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
17172 constant under VSX.
17173
17174 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
17175 similar to TImode, but it is restricted to being in the GPRs.
17176
17177 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
17178 TImode to occupy a single VSX register.
17179
17180 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
17181 -mvsx-timode for power7/power8.
17182 (power7 cpu): Likewise.
17183 (power8 cpu): Likewise.
17184
17185 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
17186 sure that TFmode/TDmode take up two registers if they are ever
17187 allowed in the upper VSX registers.
17188 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
17189 registers.
17190 (rs6000_init_hard_regno_mode_ok): Likewise.
17191 (rs6000_debug_reg_global): Add debugging for PTImode and wt
17192 constraint. Print if LRA is turned on.
17193 (rs6000_option_override_internal): Give an error if -mvsx-timode
17194 and VSX is not enabled.
17195 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
17196 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
17197 to reg+offset addressing. Use PTImode when checking offset
17198 addresses for validity.
17199 (reg_offset_addressing_ok_p): Likewise.
17200 (rs6000_legitimate_offset_address_p): Likewise.
17201 (rs6000_legitimize_address): Likewise.
17202 (rs6000_legitimize_reload_address): Likewise.
17203 (rs6000_legitimate_address_p): Likewise.
17204 (rs6000_eliminate_indexed_memrefs): Likewise.
17205 (rs6000_emit_move): Likewise.
17206 (rs6000_secondary_reload): Likewise.
17207 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
17208 reloads to fpr registers to continue to use reg+offset addressing,
17209 but 64-bit reloads to altivec registers need reg+reg addressing.
17210 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
17211 it. Treat LO_SUM like a PLUS operation.
17212 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 17213 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
17214 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
17215 registers to share a register with a smaller sized type, since VSX
17216 puts scalars in the upper 64-bits.
17217 (print_operand): Add support for PTImode.
17218 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
17219 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
17220 registers, but don't have arithmetic support.
17221 (rs6000_memory_move_cost): Add test for VSX.
17222 (rs6000_opt_masks): Add -mvsx-timode.
17223
17224 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
17225 for TImode.
17226 (VSs): Likewise.
17227 (VSr): Use wt constraint for TImode.
17228 (VSv): Drop TImode support.
17229 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
17230 (vsx_movti_64bit): Likewise.
17231 (vsx_movti_32bit): Likewise.
17232 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
17233 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
17234 one '?' on the appropriate output constraint. Do not allow TImode
17235 logical operations on 32-bit systems.
17236 (vsx_ior<mode>3): Likewise.
17237 (vsx_xor<mode>3): Likewise.
17238 (vsx_one_cmpl<mode>2): Likewise.
17239 (vsx_nor<mode>3): Likewise.
17240 (vsx_andc<mode>3): Likewise.
17241 (vsx_concat_<mode>): Likewise.
17242 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
17243
17244 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
17245 OPTION_MASK_VSX_TIMODE.
17246 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
17247 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
17248
17249 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
17250 (TI2 iterator): New iterator for TImode, PTImode.
17251 (wd mode attribute): Add values for vector types.
bd059b26
UB
17252 (movti_string): Replace TI move operations with operations for TImode
17253 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
17254 (mov<mode>_string, TImode/PTImode): Likewise.
17255 (movti_ppc64): Likewise.
17256 (mov<mode>_ppc64, TImode/PTImode): Likewise.
17257 (TI mode splitters): Likewise.
17258
17259 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
17260 constraint.
17261
1fc5eced
MG
172622013-03-20 Marc Glisse <marc.glisse@inria.fr>
17263
17264 PR tree-optimization/56355
17265 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
17266 Also handle integers with undefined overflow.
17267
22c4c869
CM
172682013-03-20 Catherine Moore <clm@codesourcery.com>
17269 Maciej W. Rozycki <macro@codesourcery.com>
17270 Tom de Vries <tom@codesourcery.com>
12211b99 17271 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
17272 Iain Sandoe <iain@codesourcery.com>
17273 Nathan Froyd <froydnj@codesourcery.com>
12211b99 17274 Chao-ying Fu <fu@mips.com>
22c4c869
CM
17275
17276 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 17277 Document new function attributes.
22c4c869
CM
17278 * doc/invoke.texi (minterlink-compressed, mmicromips,
17279 m14k, m14ke, m14kec): Document new options.
17280 (minterlink-mips16): Update documentation.
17281 * doc/md.texi (ZC, ZD): Document new constraints.
17282 * configure.ac (gcc_cv_as_micromips): Check if linker
17283 supports the .set micromips directive.
17284 * configure: Regenerate.
17285 * config.in: Regenerate.
17286 * config/mips/mips-tables.opt: Regenerate.
17287 * config/mips/micromips.md: New file.
17288 * constraints.md (ZC, ZD): New constraints.
17289 * config/mips/predicates.md (movep_src_register): New predicate.
17290 (movep_src_operand): New predicate.
17291 (non_volatile_mem_operand): New predicate.
17292 * config/mips/mips.md (multimem): New type.
17293 (length): Differentiate between 17-bit and 18-bit branch offsets.
17294 (MOVEP1, MOVEP2): New mode iterator.
33159866 17295 (mov_<load>l): Use ZC constraint.
22c4c869
CM
17296 (mov_<load>r): Likewise.
17297 (mov_<store>l): Likewise.
17298 (mov_<store>r): Likewise.
17299 (*branch_equality<mode>_inverted): Add microMIPS support.
17300 (*branch_equality<mode>): Likewise.
17301 (*jump_absolute): Likewise.
17302 (indirect_jump_<mode>): Likewise.
17303 (tablejump_<mode>): Likewise.
17304 (<optab>_internal): Likewise.
17305 (sibcall_internal): Likewise.
17306 (sibcall_value_internal): Likewise.
17307 (prefetch): Use constraint ZD.
17308 * config/mips/mips.opt (minterlink-compressed): New option.
17309 (minterlink-mips16): Now an alias for minterlink-compressed.
17310 (mmicromips): New option.
17311 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
17312 (compare_and_swap_12): Likewise.
17313 (sync_add<mode>): Likewise.
17314 (sync_<optab>_12): Likewise.
17315 (sync_old_<optab>_12): Likewise.
17316 (sync_new_<optab>_12): Likewise.
17317 (sync_nand_12): Likewise.
17318 (sync_old_nand_12): Likewise.
17319 (sync_new_nand_12): Likewise.
17320 (sync_sub<mode>): Likewise.
17321 (sync_old_add<mode>): Likewise.
17322 (sync_old_sub<mode>): Likewise.
17323 (sync_new_add<mode>): Likewise.
17324 (sync_new_sub<mode>): Likewise.
17325 (sync_<optab><mode>): Likewise.
17326 (sync_old_<optab><mode>): Likewise.
17327 (sync_new_<optab><mode>): Likewise.
17328 (sync_nand<mode>): Likewise.
17329 (sync_old_nand<mode>): Likewise.
17330 (sync_new_nand<mode>): Likewise.
17331 (sync_lock_test_and_set<mode>): Likewise.
17332 (test_and_set_12): Likewise.
17333 (atomic_compare_and_swap<mode>): Likewise.
17334 (atomic_exchange<mode>_llsc): Likewise.
17335 (atomic_fetch_add<mode>_llsc): Likewise.
17336 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
17337 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
17338 (umips_save_restore_pattern_p): Likewise.
17339 (umips_load_store_pair_p): Likewise.
17340 (umips_output_load_store_pair): Likewise.
17341 (umips_movep_target_p): Likewise.
17342 (umips_12bit_offset_address_p): Likewise.
17343 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
17344 (mips_base_mips16): Rename this...
17345 (mips_base_compression_flags): ...to this. Update all uses.
17346 (mips_attribute_table): Add micromips, nomicromips and nocompression.
17347 (mips_mips16_decl_p): Delete.
17348 (mips_nomips16_decl_p): Delete.
33159866 17349 (mips_get_compress_on_flags): New function.
22c4c869
CM
17350 (mips_get_compress_off_flags): New function.
17351 (mips_get_compress_mode): New function.
17352 (mips_get_compress_on_name): New function.
17353 (mips_get_compress_off_name): New function.
17354 (mips_insert_attributes): Support multiple compression types.
17355 (mips_merge_decl_attributes): Likewise.
17356 (umips_12bit_offset_address_p): New function.
17357 (mips_start_function_definition): Emit .set micromips directive.
17358 (mips_call_may_need_jalx_p): New function.
17359 (mips_function_ok_for_sibcall): Add microMIPS support.
17360 (mips_print_operand_punctuation): Support short delay slots and
17361 compact jumps.
17362 (umips_swm_mask, umips_swm_encoding): New.
17363 (umips_build_save_restore): New function.
17364 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
17365 (was_mips16_p): Remove.
17366 (old_compression_mode): New.
17367 (mips_set_compression_mode): New function.
17368 (mips_set_current_function): Add microMIPS support.
17369 (mips_option_override): Likewise.
17370 (umips_save_restore_pattern_p): New function.
17371 (umips_output_save_restore): New function.
17372 (umips_load_store_pair_p_1): New function.
17373 (umips_load_store_pair_p): New function.
17374 (umips_output_load_store_pair_1): New function.
17375 (umips_output_load_store_pair): New function.
17376 (umips_movep_target_p) New function.
17377 (mips_prepare_pch_save): Add microMIPS support.
17378 * config/mips/mips.h (TARGET_COMPRESSION): New.
17379 (TARGET_CPU_CPP_BUILTINS): Update macro
17380 to use new compression flags and to support microMIPS.
17381 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
17382 (MIPS_ARCH_FLOAT_SPEC): Likewise.
17383 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
17384 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
17385 (ASM_SPEC): Support mmicromips and mno-micromips.
17386 (M16STORE_REG_P): New macro.
17387 (MIPS_CALL): Support TARGET_MICROMIPS.
17388 (MICROMIPS_J): New macro.
17389 (mips_base_mips16): Rename this...
17390 (mips_base_compression_flags): ...to this.
17391 (UMIPS_12BIT_OFFSET_P): New macro.
17392 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
17393 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
173942013-03-20 Richard Biener <rguenther@suse.de>
17395
17396 PR tree-optimization/56661
17397 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
17398 the result does not have to be distinct.
17399
54714c68
RB
174002013-03-20 Richard Biener <rguenther@suse.de>
17401
17402 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
17403 remap_gimple_op_r.
17404
cca1130d 174052013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 17406 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
17407
17408 PR rtl-optimization/56605
17409 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
17410
2a930377
UB
174112013-03-20 Uros Bizjak <ubizjak@gmail.com>
17412
17413 PR bootstrap/56656
17414 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
17415 that require movd instead of movq.
17416
d6d305fe
RB
174172013-03-20 Richard Biener <rguenther@suse.de>
17418
17419 * tree-ssa-structalias.c (struct variable_info): Add pointer
17420 to the first field of an aggregate with sub-vars. Make
17421 this and the pointer to the next subfield its ID.
17422 (vi_next): New function.
17423 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
17424 storedanything_id, integer_id): Increment by one.
17425 (new_var_info, get_call_vi, lookup_call_clobber_vi,
17426 get_call_clobber_vi): Adjust.
17427 (solution_set_expand): Simplify and speedup.
17428 (solution_set_add): Inline into ...
17429 (set_union_with_increment): ... this. Adjust accordingly.
17430 (do_sd_constraint): Likewise.
17431 (do_ds_constraint): Likewise.
17432 (do_complex_constraint): Simplify.
17433 (build_pred_graph): Adjust.
17434 (solve_graph): Likewise. Simplify and speedup.
17435 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
17436 get_constraint_for_component_ref, get_constraint_for_1,
17437 first_vi_for_offset, first_or_preceding_vi_for_offset,
17438 create_function_info_for, create_variable_info_for_1,
17439 create_variable_info_for, intra_create_variable_infos): Adjust.
17440 (init_base_vars): Push NULL for ID zero.
17441 (compute_points_to_sets): Adjust.
17442
a271b42d
RB
174432013-03-20 Richard Biener <rguenther@suse.de>
17444
17445 * cfgloop.c (verify_loop_structure): Streamline and avoid
17446 ICEing on corrupt loop tree.
17447 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
17448 loop tree.
17449
ebd65954
RB
174502013-03-20 Richard Biener <rguenther@suse.de>
17451
17452 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
17453 check whether an SSA update is needed.
17454
4547b7ee
RS
174552013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
17456
17457 * config/mips/constraints.md (T): Rename to...
17458 (Yf): ...this.
17459 (U): Rename to...
17460 (Yd): ...this.
17461 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
17462 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
17463
0b8cdc58
IB
174642013-03-19 Ian Bolton <ian.bolton@arm.com>
17465
17466 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
17467 (*subsi3_carryin_uxtw): Likewise.
17468
5977a10d
IB
174692013-03-19 Ian Bolton <ian.bolton@arm.com>
17470
17471 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
17472 (*rorsi3_insn_uxtw): Likewise.
17473
bd83ff2c
IB
174742013-03-19 Ian Bolton <ian.bolton@arm.com>
17475
17476 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
17477 (*extrsi5_insn_uxtw): Likewise.
17478
ba65123c
RB
174792013-03-19 Richard Biener <rguenther@suse.de>
17480
17481 PR tree-optimization/56273
17482 * passes.c (init_optimization_passes): Move second VRP after DOM.
17483
2eac0476
UB
174842013-03-19 Uros Bizjak <ubizjak@gmail.com>
17485
17486 * config/i386/i386.md (*movti_internal): Merge from
17487 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
17488 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
17489 nox64 isa attributes.
17490
6e55eda7
RB
174912013-03-18 Richard Biener <rguenther@suse.de>
17492
17493 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
17494 (unite): Likewise.
17495 (merge_node_constraints): Likewise.
17496 (build_succ_graph): Likewise.
17497 (valid_graph_edge): Inline into single caller.
17498 (unify_nodes): Likewise. Use bitmap_set_bit return value
17499 and cache varinfo.
17500 (scc_visit): Fix formatting and variable use.
17501 (do_sd_constraint): Use gcc_checking_assert.
17502 (do_ds_constraint): Likewise.
17503 (do_complex_constraint): Likewise.
17504 (condense_visit): Likewise. Cleanup.
17505 (dump_pred_graph): New function.
17506 (perform_var_substitution): Dump the pred-graph before
17507 variable substitution.
17508 (find_equivalent_node): Use gcc_checking_assert.
17509 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
17510
4bdd44c4
RB
175112013-03-18 Richard Biener <rguenther@suse.de>
17512
17513 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
17514 Remove cond_expr_stmt_list argument and do not gimplify the
17515 built expression.
17516 (vect_loop_versioning): Adjust.
17517 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17518 Cleanup to use less temporaries.
17519 (vect_create_data_ref_ptr): Cleanup.
17520
38c56a5b
JJ
175212013-03-18 Jakub Jelinek <jakub@redhat.com>
17522
17523 PR tree-optimization/56635
17524 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
17525 require types_compatible_p types.
17526
20b2e6a0
NC
175272013-03-18 Nick Clifton <nickc@redhat.com>
17528
a6178a25
NC
17529 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
17530 spurious backslash.
17531
20b2e6a0
NC
17532 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
17533 Add missing line to comment describing function.
17534
92608d0e
RB
175352013-03-18 Richard Biener <rguenther@suse.de>
17536
17537 PR tree-optimization/56210
17538 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
17539 Handle string / character search functions.
17540 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
17541
31348d52
RB
175422013-03-18 Richard Biener <rguenther@suse.de>
17543
17544 PR middle-end/56483
17545 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
17546 and implement properly.
17547 * gimple.h (gimple_cond_single_var_p): Remove.
17548
fcac74a1
RB
175492013-03-18 Richard Biener <rguenther@suse.de>
17550
17551 * tree-data-ref.h (find_data_references_in_loop): Declare.
17552 * tree-data-ref.c (get_references_in_stmt): Use a stack
17553 vector pre-allocated in the callers.
17554 (find_data_references_in_stmt): Adjust.
17555 (graphite_find_data_references_in_stmt): Likewise.
17556 (create_rdg_vertices): Likewise.
17557 (find_data_references_in_loop): Export.
17558 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
17559 Compute dependences here...
17560 (vect_analyze_data_refs): ...not here. When we encounter
17561 a non-vectorizable data reference in basic-block vectorization
17562 truncate the data reference vector. Do not bother to
17563 fixup data-dependence information for gather loads.
17564 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
17565 of data references, as reported.
17566
0d5a1b56
RB
175672013-03-18 Richard Biener <rguenther@suse.de>
17568
17569 PR tree-optimization/3713
17570 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
17571 has_constants and expr.
17572 (stmt_has_constants): Properly valueize SSA names when deciding
17573 whether the stmt has constants.
17574
789c34e3
RB
175752013-03-18 Richard Biener <rguenther@suse.de>
17576
17577 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
17578 whole function when there is nothing to do.
17579 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
17580 * tree-vectorizer.c (vectorize_loops): Update virtual and
17581 loop-closed SSA once.
17582 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
17583
076b4605
RB
175842013-03-18 Richard Biener <rguenther@suse.de>
17585
17586 PR middle-end/56113
17587 * domwalk.c (bb_postorder): New global static.
17588 (cmp_bb_postorder): New function.
17589 (walk_dominator_tree): Replace scheme imposing an order for
17590 visiting dominator sons by one sorting them at the time they
17591 are pushed on the stack.
17592
bdb01696
RB
175932013-03-18 Richard Biener <rguenther@suse.de>
17594
17595 PR tree-optimization/39326
17596 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
17597 (struct mem_ref): Replace mem member with ao_ref typed member.
17598 (MEM_ANALYZABLE): Adjust.
17599 (memref_eq): Likewise.
17600 (mem_ref_alloc): Likewise.
17601 (gather_mem_refs_stmt): Likewise.
17602 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
17603 (execute_sm_if_changed_flag_set): Adjust.
17604 (execute_sm): Likewise.
17605 (ref_always_accessed_p): Likewise.
17606 (refs_independent_p): Likewise.
17607 (can_sm_ref_p): Likewise.
17608
12d2dc5e
JJ
176092013-03-18 Jakub Jelinek <jakub@redhat.com>
17610
17611 PR c/56566
17612 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
17613 return 1 even for !unsignedp.
17614
286fb677
UB
176152013-03-17 Uros Bizjak <ubizjak@gmail.com>
17616
17617 * config/i386/i386.md (isa): Add x64 and nox64.
17618 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
17619 (*pushtf): Enable *roF alternative for x64 isa only.
17620 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
17621 mode attribute of integer alternatives to DImode for TARGET_64BIT.
17622 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
17623 (*movtf_internal): Merge from *movtf_internal_rex64 and
17624 *movtf_internal_sse. Use x64 and nox64 isa attributes.
17625 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
17626 nox64 isa attributes.
17627 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
17628 nox64 isa attributes.
17629 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
17630
88b97037
UB
176312013-03-17 Uros Bizjak <ubizjak@gmail.com>
17632
17633 * config/alpha/alpha.c (TARGET_LRA_P): New define.
17634
9f4f1735
JJ
176352013-03-17 Jakub Jelinek <jakub@redhat.com>
17636
17637 PR target/56640
17638 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
17639 class names. Remove trailing comma after "ALL_REGS".
17640
48f4a6fa
JH
176412013-03-16 Jan Hubicka <jh@suse.cz>
17642
17643 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
17644 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
17645 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
17646 of cgraph_get_create_node.
17647 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
17648
98e81123
JM
176492013-03-16 Jason Merrill <jason@redhat.com>
17650
17651 PR debug/49090
17652 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
17653 with DW_AT_default_value.
17654
8a298c04
JJ
176552013-03-16 Jakub Jelinek <jakub@redhat.com>
17656
17657 * BASE-VER: Set to 4.9.0.
17658
4323afa0
AK
176592013-03-14 Andi Kleen <ak@linux.intel.com>
17660
17661 PR target/56619
17662 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
17663 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
17664 Document _x* TSX intrinsics.
17665
b3c0d469
JJ
176662013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
17667 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
17668
17669 * configure.ac: Add MicroBlaze TLS support detection.
17670 * configure: Regenerate.
88b97037
UB
17671 * config/microblaze/microblaze-protos.h
17672 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
17673 symbol_mentioned_p, label_mentioned_p): Add prototypes.
17674 * config/microblaze/microblaze.c (microblaze_address_type): Add
17675 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
17676 (microblaze_address_info): Add tls_reloc.
17677 (TARGET_HAVE_TLS): Define.
17678 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
17679 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
17680 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
17681 load_tls_operand, microblaze_call_tls_get_addr,
17682 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
17683 (microblaze_classify_unspec): Handle UNSPEC_TLS.
17684 (get_base_reg): Use microblaze_tls_symbol_p.
17685 (microblaze_classify_address): Handle TLS.
88b97037
UB
17686 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
17687 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
17688 (microblaze_legitimize_address): Handle TLS.
17689 (microblaze_address_insns): Handle ADDRESS_TLS.
17690 (pic_address_needs_scratch): Handle TLS.
17691 (print_operand_address): Handle TLS.
17692 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
17693 (microblaze_expand_move): Handle TLS.
88b97037
UB
17694 (microblaze_legitimate_constant_p): Check
17695 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
17696 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
17697 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
17698 (PIC_OFFSET_TABLE_REGNUM): Set.
17699 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
17700 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
17701 (addsi3, movsi_internal2, movdf_internal): Update constraints
17702 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
17703 (move_operand): Redefine as move_src_operand,
17704 check microblaze_tls_referenced_p.
8cc9a5a5 17705
d803a491
IB
177062013-03-14 Ian Bolton <ian.bolton@arm.com>
17707
17708 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
17709 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
17710
a8504f22
IB
177112013-03-14 Ian Bolton <ian.bolton@arm.com>
17712
17713 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
17714 CC mode for AND.
17715
df2dfaea
JJ
177162013-03-14 Jakub Jelinek <jakub@redhat.com>
17717
fbd28bc3
JJ
17718 PR tree-optimization/53265
17719 * common.opt (Waggressive-loop-optimizations): New option.
17720 * tree-ssa-loop-niter.c: Include tree-pass.h.
17721 (do_warn_aggressive_loop_optimizations): New function.
17722 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
17723 if number_of_latch_executions returned constant.
17724 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
17725 early. If number_of_latch_executions returned constant, set
17726 nb_iterations_upper_bound back to it.
17727 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
17728 field.
17729 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
17730 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
17731
df2dfaea
JJ
17732 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
17733 (MULTILIB_OSDIRNAMES): Set.
17734 * genmultilib: If defaultosdirname doesn't start with :: , set
17735 defaultosdirname2 instead, clear it and emit two . multilib_raw
17736 entries instead of just one.
17737
ee0d2b68
KK
177382013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
17739
17740 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
17741 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
17742 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
17743 (SUBTARGET_OVERRIDE_OPTIONS): New.
17744
decc676e
OE
177452013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
17746
17747 PR target/49880
17748 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
17749 (musermode): Convert to Var(TARGET_USERMODE).
17750 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
17751 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
17752 * config/sh/sh.c (sh_option_override): Use
17753 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
17754 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
17755 condition.
17756 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
17757 TARGET_SH4.
17758 (udivsi3_i4_single, divsi3_i4_single): Use
17759 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
17760
f4b719c7
DK
177612013-03-13 Dave Korn <dave.korn.cygwin@....>
17762
17763 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
17764 default setting.
17765
c40eced0
RB
177662013-03-13 Richard Biener <rguenther@suse.de>
17767
17768 PR tree-optimization/56608
17769 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
17770 calls when vectorizing basic-blocks.
17771
1bfa5973
JJ
177722013-03-13 Jakub Jelinek <jakub@redhat.com>
17773
17774 PR plugins/45078
17775 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
17776 tm_file.
17777
6fcf5434
JJ
177782013-03-12 Jakub Jelinek <jakub@redhat.com>
17779
17780 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
17781
4f38fa8c
JH
177822013-03-11 Jan Hubicka <jh@suse.cz>
17783
17784 PR lto/56557
17785 * lto-streamer-out.c (output_symbol_p): Skip references from
17786 constructors of external variables.
17787
c5c5ba89
JH
177882013-03-11 Jan Hubicka <jh@suse.cz>
17789
17790 PR middle-end/56571
17791 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
17792 from pseudos.
17793 * emit-rtl.c (verify_rtx_sharing): Likewise.
17794 (copy_insn_1): Likewise.
17795 * rtl.c (copy_rtx): Likewise.
17796
c2a939b1
GJL
177972013-03-11 Georg-Johann Lay <avr@gjlay.de>
17798
17799 PR target/56591
17800 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
17801 output_operand_lossage message.
88b97037 17802
3c3279fb
RE
178032013-03-11 Richard Earnshaw <rearnsha@arm.com>
17804
17805 PR target/56470
17806 * arm.c (shift_op): Validate RTL pattern on the fly.
17807 (arm_print_operand, case 'S'): Don't use shift_operator to validate
17808 the RTL.
17809
aef5ef9d
JDA
178102013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17811
17812 PR target/56347
17813 * config/pa/pa.md (call_value): Check for calls to powf and direct to
17814 new call patterns that clobber %fr12.
17815 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
17816 split and postreload patterns.
17817 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
17818 registers %fr12 and %fr12R as call used.
17819
456610d3
SB
178202013-03-09 Steven Bosscher <steven@gcc.gnu.org>
17821
17822 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
17823 (canon_address, record_store, replace_read, check_mem_read_rtx,
17824 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
17825 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
17826 rest_of_handle_dse): Likewise.
17827
4b1baac8
RS
178282013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
17829
17830 PR middle-end/56524
17831 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
17832 Add base_optabs.
17833 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
17834 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
17835 (save_optabs_if_changed): Replace with...
17836 (init_tree_optimization_optabs): ...this.
17837 * optabs.c (save_optabs_if_changed): Rename to...
17838 (init_tree_optimization_optabs): ...this. Take the optimization node
17839 as argument. Do nothing if the base optabs are already correct.
17840 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
17841 to recompute optabs.
17842 * function.h (function): Remove optabs field.
17843 * function.c (invoke_set_current_function_hook): Call
17844 init_tree_optimization_optabs. Use the result to initialize
17845 this_fn_optabs.
17846
b7a78683
AH
178472013-02-27 Aldy Hernandez <aldyh@redhat.com>
17848
17849 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
17850 if GTMA_HAS_NO_INSTRUMENTATION.
17851 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
17852 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
17853 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
17854 * gimple-pretty-print.c (dump_gimple_transaction): Handle
17855 GTMA_HAS_NO_INSTRUMENTATION.
17856
6384c29b
JJ
178572013-03-08 Jakub Jelinek <jakub@redhat.com>
17858
17859 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
17860 libasan_preinit.o.
17861
ecd4f20a
MP
178622013-03-08 Marek Polacek <polacek@redhat.com>
17863 Jakub Jelinek <jakub@redhat.com>
17864
17865 PR tree-optimization/56478
17866 * predict.c (is_comparison_with_loop_invariant_p): Change the
17867 type of loop_step to tree.
17868 (predict_loops): Adjust.
17869 (predict_iv_comparison): Perform the computations on double_ints.
17870
64366d35
RB
178712013-03-08 Richard Biener <rguenther@suse.de>
17872
17873 PR tree-optimization/56570
17874 * tree-cfg.c (verify_expr_location_1): Verify locations for
17875 DECL_DEBUG_EXPR.
17876 * tree-sra.c (create_access_replacement): Strip locations
17877 from DECL_DEBUG_EXPRs.
17878
a9d5a059
RB
178792013-03-08 Richard Biener <rguenther@suse.de>
17880
17881 * tree-inline.c (expand_call_inline): Do not associate
17882 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
17883 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
17884
b7aa4e9a
RB
178852013-03-08 Richard Biener <rguenther@suse.de>
17886
17887 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
17888 or block changes with -Og. Fix for location / block encoding
17889 changes and PHI arguments with locations.
17890
c4c2f9fa
SB
178912013-03-07 Steven Bosscher <steven@gcc.gnu.org>
17892
17893 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
17894 for all counters.
17895 (struct output_info): Likewise.
17896 (register_overhead): Remove bad gcc_assert.
17897 (bitmap_find_bit): If there is only a single bitmap element, do not
17898 count a miss as a search.
17899 (print_statistics): Update for counter type changes.
17900 (dump_bitmap_statistics): Likewise. Print headers such that they
17901 are properly lined up with the printed counters.
17902
5bf6606a
JJ
179032013-03-07 Jakub Jelinek <jakub@redhat.com>
17904
17905 PR tree-optimization/56559
17906 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
17907 check that it has only a single use.
17908
2c653d46
RB
179092013-03-07 Richard Biener <rguenther@suse.de>
17910
17911 * doc/invoke.texi (fwhole-program): Discourage use in combination
17912 with -flto.
17913
a72d8780
JJ
179142013-03-06 Jakub Jelinek <jakub@redhat.com>
17915
01a454df
JJ
17916 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
17917
c1781047
JJ
17918 PR tree-optimization/56539
17919 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
17920 instead of GSI_CONTINUE_LINKING as last argument to
17921 force_gimple_operand_gsi. Adjust function comment.
17922
9772c47a
JJ
17923 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
17924 aarch64-cores.def.
17925
a72d8780
JJ
17926 PR middle-end/56548
17927 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
17928 promoted mode, convert the result back to the original mode.
17929
fa5556de
RB
179302013-03-06 Richard Biener <rguenther@suse.de>
17931
17932 PR middle-end/56294
17933 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
17934 (insert_updated_phi_nodes_compare_uids): New function.
17935 (update_ssa): Sort symbols_to_rename after UID before
17936 traversing it to insert PHI nodes.
17937
010403d1
RB
179382013-03-06 Richard Biener <rguenther@suse.de>
17939
17940 PR middle-end/50494
17941 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
17942 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
17943
17944 Revert
17945 2013-02-13 Richard Biener <rguenther@suse.de>
17946
17947 PR lto/50494
17948 * varasm.c (output_constant_def_1): Get the decl representing
17949 the constant as argument.
17950 (output_constant_def): Wrap output_constant_def_1.
17951 (make_decl_rtl): Use output_constant_def_1 with the decl
17952 representing the constant.
17953 (build_constant_desc): Optionally re-use a decl already
17954 representing the constant.
17955 (tree_output_constant_def): Adjust.
17956
3c27ce4c
JY
179572013-03-06 Joey Ye <joey.ye@arm.com>
17958
17959 PR lto/50293
17960 * gcc.c (convert_white_space): New function.
17961 (main): Handles white space in function name.
17962
8f6d1c86
OE
179632013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
17964
17965 PR target/56529
17966 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
17967 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
17968 to SH_DIV_CALL_TABLE for TARGET_SH2.
17969 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
17970 list.
17971 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
17972 call-table options.
17973
798a209f
SA
179742013-03-05 Sterling Augustine <saugustine@google.com>
17975 Cary Coutant <ccoutant@google.com>
17976
17977 PR debug/55364
17978 * dwarf2out.c (resolve_addr): Don't call
17979 remove_loc_list_addr_table_entries a second time for the same
17980 expression.
17981
6cfa417f 179822013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 17983
6cfa417f
JJ
17984 PR debug/56510
17985 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
17986 (avoid_complex_debug_insns): New function.
17987 (expand_debug_locations): Call it.
17988
17989 PR rtl-optimization/56484
17990 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
17991 lifetimes of hard registers on small register class machines.
17992
179932013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
17994
17995 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 17996 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 17997 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
17998 fast_interrupt.
17999 (microblaze_fast_interrupt_function_p): New function.
18000 (microblaze_is_interrupt_handler): Rename to
18001 microblaze_is_interrupt_variant and add fast_interrupt check.
18002 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
18003 (save_restore_insns): Likewise.
18004 (compute_frame_size): Likewise.
18005 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
18006 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
18007 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
18008 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
18009 microblaze_is_interrupt_variant.
18010
731aefac
KT
180112013-03-05 Kai Tietz <ktietz@redhat.com>
18012
18013 * sdbout.c (sdbout_one_type): Switch to current function's section
18014 supporting cold/hot.
18015
a72d8780 180162013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
18017
18018 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
18019 -mxl-reorder.
18020
334e71e8
JJ
180212013-03-05 Jakub Jelinek <jakub@redhat.com>
18022
0b50e654
JJ
18023 PR middle-end/56461
18024 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
18025 if VALGRIND_GET_VBITS is defined, temporarily make object
18026 memory all defined, and restore previous valgrind addressability
18027 and definability afterwards. Free this_object at the end.
18028
4ccf8f43
JJ
18029 PR middle-end/56461
18030 * lra.c (lra): Call lra_clear_live_ranges if live_p,
18031 right before calling lra_create_live_ranges, also call it
18032 when clearing live_p. Only call lra_clear_live_ranges
18033 at the end if live_p.
18034
334e71e8
JJ
18035 PR middle-end/56461
18036 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
18037
9ca966ca
RB
180382013-03-05 Richard Biener <rguenther@suse.de>
18039
18040 PR tree-optimization/56521
18041 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
18042 value-id.
18043
d273b176
SB
180442013-03-05 Steven Bosscher <steven@gcc.gnu.org>
18045
18046 PR c++/55135
18047 * except.h (remove_unreachable_eh_regions): New prototype.
18048 * except.c (remove_eh_handler_splicer): New function, split out
18049 of remove_eh_handler.
18050 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
18051 warning about running it on many EH regions one at a time.
18052 (remove_unreachable_eh_regions_worker): New function, walk the
18053 EH tree in depth-first order and remove non-marked regions.
18054 (remove_unreachable_eh_regions): New function.
18055 * tree-eh.c (mark_reachable_handlers): New function, split out
18056 from remove_unreachable_handlers.
18057 (remove_unreachable_handlers): Use mark_reachable_handlers and
18058 remove_unreachable_eh_regions.
18059 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
18060 and remove_unreachable_eh_regions.
18061
5e7f1aef
RB
180622013-03-05 Richard Biener <rguenther@suse.de>
18063
18064 PR middle-end/56525
18065 * loop-init.c (fix_loop_structure): Remove loops in two stages,
18066 not freeing them until the end.
18067
f276b762
AK
180682013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18069
18070 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
18071
12a43ab8
RB
180722013-03-05 Richard Biener <rguenther@suse.de>
18073
18074 PR tree-optimization/56270
18075 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
18076 of loads after scheduling an SLP instance.
18077
93675444
JJ
180782013-03-05 Jakub Jelinek <jakub@redhat.com>
18079
db4138e3
JJ
18080 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
18081 tic6x.exp.
18082 (check_gcc_parallelize): Run guality.exp as a separate job from
18083 vect.exp with unsorted.exp and $(dg_target_exps) separately from
18084 struct-layout-1.exp with stackalign.exp.
18085
dd3d1ec0
JJ
18086 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
18087
b8d381a3
JJ
18088 PR middle-end/56461
18089 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
18090 load_index sbitmap even if some bit in it isn't set.
18091
b4f9786b
JJ
18092 PR middle-end/56461
18093 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
18094 (discover_iteration_bound_by_body_walk): Change queues to
18095 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
18096 spelling in comment. Call safe_push on queues[bound_index] directly.
18097 Release queues[queue_index] in every iteration unconditionally.
18098 Release bounds vector.
18099
93675444
JJ
18100 PR middle-end/56461
18101 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
18102 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
18103 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
18104 inner_phis vector.
18105
3e492e9c
RB
181062013-03-05 Richard Biener <rguenther@suse.de>
18107
18108 PR lto/56515
18109 * tree-inline.c (remap_blocks_to_null): New function.
18110 (expand_call_inline): When expanding a call stmt without
18111 an associated block inline remap all callee blocks to NULL.
18112
a5d1569a
JJ
181132013-03-05 Jakub Jelinek <jakub@redhat.com>
18114
86efb5cd
JJ
18115 PR rtl-optimization/56494
18116 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
18117 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
18118 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
18119
85f5dbea
JJ
18120 PR middle-end/56461
18121 * sel-sched-ir.c (free_sched_pools): Release
18122 succs_info_pool.stack[succs_info_pool.max_top] vectors too
18123 if succs_info_pool.max_top isn't -1.
18124
a5d1569a
JJ
18125 PR bootstrap/56509
18126 * opts.c (opts_obstack, opts_concat): Moved to...
18127 * opts-common.c (opts_obstack, opts_concat): ... here.
18128
4432aa6c
JJ
181292013-03-04 Jakub Jelinek <jakub@redhat.com>
18130
18131 PR middle-end/56461
18132 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
18133
f3a1fb91
MJ
181342013-03-04 Martin Jambor <mjambor@suse.cz>
18135
18136 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
18137 all appropriate places.
18138
22110e6c
EB
181392013-01-04 Eric Botcazou <ebotcazou@adacore.com>
18140
18141 PR tree-optimization/56424
18142 * ipa-split.c (split_function): Do not set the RSO flag if result is
18143 not by reference and its type is a register type.
18144
a72d8780 181452013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 18146
88b97037 18147 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 18148 (microblaze_legitimate_pic_operand): Likewise
88b97037 18149 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
18150 new function microblaze_legitimate_pic_operand
18151 * config/microblaze/microblaze-protos.h
18152 (microblaze_legitimate_pic_operand): Declare.
18153
a72d8780 181542013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 18155
a72d8780 18156 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 18157 New predicate for supported rtx code types.
a72d8780 18158 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
18159 call_insn_simple_operand predicate.
18160
541d9ac8
JJ
181612013-03-04 Jakub Jelinek <jakub@redhat.com>
18162
5eb010bc
JJ
18163 PR middle-end/56461
18164 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
18165 partitions.ordered_remove.
18166
30862efc
JJ
18167 PR middle-end/56461
18168 * tree-vect-stmts.c (vectorizable_conversion): Don't call
18169 vec_oprnds0.create (1) for modifier == NONE.
18170
8930f723
JJ
18171 PR middle-end/56461
18172 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
18173 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
18174 vec_oprnds1 right before pushing anything to it for
18175 scalar_shift_arg.
18176
541d9ac8
JJ
18177 PR middle-end/56461
18178 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
18179 set nbbs to 0 instead of having separate code path.
18180 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
18181 instead of false as last argument if returning NULL.
18182
7aa7f2e3
SL
181832013-03-03 Sandra Loosemore <sandra@codesourcery.com>
18184
18185 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
18186 the attribute is now called "target" instead of "option".
18187 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
18188 * doc/tm.texi.in (Target Attributes): Likewise document the correct
18189 attribute/pragma name for TARGET_OPTION_VALID_P and
18190 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
18191 * doc/tm.texi: Regenerated.
18192
8930f723 181932013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 18194
8930f723 18195 * config/microblaze/microblaze.c:
cb8a1637 18196 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
18197 * config/microblaze/microblaze.h: Add -mxl-reorder to
18198 DRIVER_SELF_SPECS.
18199 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
18200 instructions emitted if TARGET_REORDER.
88b97037
UB
18201 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
18202 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 18203 separately.
cb8a1637 18204
4dc1d68c
XDL
182052013-03-01 Xinliang David Li <davidxl@google.com>
18206
18207 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
18208 walk length.
18209
689eaba3
JJ
182102013-03-01 Jakub Jelinek <jakub@redhat.com>
18211
9d676bf6
JJ
18212 PR middle-end/56461
18213 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
18214 vector even when returning true. Fix up function comment formatting.
18215
caff7edf
JJ
18216 PR middle-end/56461
18217 * ira-build.c (ira_loop_nodes_count): New variable.
18218 (create_loop_tree_nodes): Initialize it.
18219 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
18220
b6b9227d
JJ
18221 PR middle-end/56461
18222 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
18223 method on dr_chain and result_chain.
18224 * tree-vect-stmts.c (vectorizable_store): Only call
18225 result_chain.create if j == 0.
18226
689eaba3
JJ
18227 PR middle-end/56461
18228 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
18229 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
18230 before overwriting it.
18231
40bf31ed
TB
182322013-03-01 Tobias Burnus <burnus@net-b.de>
18233
18234 * doc/extended.texi (C Extensions): Change order in @menu
18235 to match @node.
18236 (Other MIPS Built-in Functions): Move last MIPS entry before
18237 "picoChip Built-in Functions".
18238 (SH Built-in Functions): Move after RX Built-in Functions.
18239 * doc/gcc.texi (Introduction): Change order in @menu
18240 to match @node.
18241 * doc/md.texi (Constraints): Ditto.
18242 * gty.texi (Type Information): Ditto.
18243 (User-provided marking routines for template types): Make
18244 subsection.
18245 * doc/invoke.texi (AArch64 Options): Move before
18246 "Adapteva Epiphany Options".
18247
e664c61c
KS
182482013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
18249 Jakub Jelinek <jakub@redhat.com>
18250
18251 PR sanitizer/56454
18252 * asan.c (gate_asan): Lookup no_sanitize_address instead of
18253 no_address_safety_analysis attribute.
18254 * doc/extend.texi (no_address_safety_attribute): Rename to
18255 no_sanitize_address attribute, mention no_address_safety_analysis
18256 attribute as deprecated alias.
18257
37b5ec8f
JJ
182582013-02-28 Jakub Jelinek <jakub@redhat.com>
18259
18260 PR middle-end/56461
18261 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
18262 type to vec<vec<tree> > *.
18263 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
18264 to be vec<tree> instead of vec<tree> *, set vec_defs
18265 to vNULL and call vec_defs.create (number_of_vects), adjust other
18266 uses of vec_defs.
18267 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
18268 vectorizable_condition): Adjust vect_get_slp_defs callers.
18269
ba96cdfb
JG
182702013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18271
18272 * config/aarch64/aarch64.c
18273 (aarch64_float_const_representable): Remove unused variable.
18274
6f549691
JG
182752013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18276
18277 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
18278
af55e82d
JG
182792013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18280
18281 * config/aarch64/aarch64-builtins.c
18282 (aarch64_init_simd_builtins): Make static.
18283
1df3f464
JG
182842013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18285
18286 * config/aarch64/aarch64.c
18287 (aarch64_simd_make_constant): Make static.
18288
f8f42513
MJ
182892013-02-28 Martin Jambor <mjambor@suse.cz>
18290
18291 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
18292 with no initialization to the RHS of debug statements.
18293
b48b3fc4
MJ
182942013-02-28 Martin Jambor <mjambor@suse.cz>
18295
18296 PR tree-optimization/56294
18297 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
18298 Adjust dumping.
18299 (get_access_replacement): Do not call create_access_replacement.
18300 Assert a replacement exists.
18301 (get_repl_default_def_ssa_name): Create the replacement declaration
18302 itself.
18303
c3ae224c
RR
183042013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18305
18306 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
18307 final_end_function.
18308
45fa0eef
MP
183092013-02-28 Marek Polacek <polacek@redhat.com>
18310
18311 PR rtl-optimization/56466
18312 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
18313 if we're changing a loop.
18314 (peel_loops_completely): Likewise.
18315
502c067d
PC
183162013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
18317
18318 PR c++/55813
18319 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
18320
ff24afc8
GJL
183212013-02-28 Georg-Johann Lay <avr@gjlay.de>
18322
18323 PR target/56445
18324 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
18325 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
18326 INTX_FTYPE_FX, FX_FTYPE_INTX.
18327 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
18328
c7b1fc1b
GJL
183292013-02-28 Georg-Johann Lay <avr@gjlay.de>
18330
18331 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
18332 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
18333 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
18334 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
18335 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
18336 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
18337 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
18338 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
18339 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
18340 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
18341 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
18342 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
18343 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
18344 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
18345 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
18346 (avrxmega6): Increase max flash segments from 5 to 6.
18347 * config/avr/t-multilib: Regenerate.
18348 * config/avr/avr-tables.opt: Regenerate.
18349 * doc/avr-mmcu.texi: Regenerate.
18350
4a0e3cfe
GJL
183512013-02-28 Georg-Johann Lay <avr@gjlay.de>
18352
18353 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
18354 (avr_device_to_arch): Rename to avr_device_to_ld.
18355 (avr_device_to_as): New prototype.
18356 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
18357 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
18358 * config/avr/driver-avr.c (avr_device_to_as): New.
18359 (avr_device_to_arch): Rename to avr_device_to_ld.
18360
97785e52
JJ
183612013-02-27 Jakub Jelinek <jakub@redhat.com>
18362
3f292312
JJ
18363 PR middle-end/56461
18364 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
18365 method on dr_chain and result_chain.
18366
a344216b
JJ
18367 PR middle-end/56461
18368 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
18369 pointer_set_destroy on not_executed_last_iteration.
18370
f121ad02 18371 PR middle-end/56461
88b97037 18372 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 18373
307f83a3
JJ
18374 PR middle-end/56461
18375 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
18376 FOR_EACH_DEFINED_FUNCTION when freeing state.
18377
e19624ee
JJ
18378 PR middle-end/56461
18379 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
18380 pool_free.
18381 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
18382 overwriting it.
18383
90e709fd
JJ
18384 PR middle-end/56461
18385 * ipa-cp.c (decide_whether_version_node): Call vec_free on
18386 known_aggs[i].items and release known_aggs vector.
18387
97785e52
JJ
18388 PR middle-end/56461
18389 * ipa-reference.c (propagate): Free node_info even for alias nodes.
18390
183912013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 18392
97785e52
JJ
18393 * config/microblaze/microblaze.c (microblaze_emit_compare):
18394 Use xor for EQ/NE comparisions.
18395 * config/microblaze/microblaze.md (cstoresf4): Add constraints
18396 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 18397
6fa5e0ed
JJ
183982013-02-27 Jakub Jelinek <jakub@redhat.com>
18399
18400 PR middle-end/56461
18401 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
18402 vector.
18403 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
18404 vec_safe_push, always update *slot.
18405 (redirect_edge_var_map_clear): Use vec_free.
18406 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
18407 (free_var_map_entry): Use vec_free.
18408 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
18409 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
18410
436a956a
AB
184112013-02-27 Andrey Belevantsev <abel@ispras.ru>
18412
18413 PR middle-end/45472
436a956a
AB
18414 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
18415 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
18416 Reorder tests for speculativeness in the logical and operator.
18417
f5c2caca
JJ
184182013-02-27 Jakub Jelinek <jakub@redhat.com>
18419
0fcb564b
JJ
18420 * incpath.c (add_standard_paths): Use reconcat instead of concat
18421 where appropriate and avoid leaking memory.
18422
dc357798
JJ
18423 * opts.h: Include obstack.h.
18424 (opts_concat): New prototype.
18425 (opts_obstack): New declaration.
18426 * opts.c (opts_concat): New function.
18427 (opts_obstack): New variable.
18428 (init_options_struct): Call gcc_init_obstack on opts_obstack.
18429 (finish_options): Use opts_concat instead of concat
18430 and XOBNEWVEC instead of XNEWVEC.
18431 * opts-common.c (generate_canonical_option, decode_cmdline_option,
18432 generate_option): Likewise.
18433 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
18434 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
18435
f5c2caca
JJ
18436 PR target/56455
18437 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
18438 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
18439
d0163673
JJ
184402013-02-26 Jakub Jelinek <jakub@redhat.com>
18441
18442 PR middle-end/56461
18443 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
18444
b5ad2b8e
JR
184452013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
18446
18447 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
18448 (arm_block_move_unaligned_straight): Likewise.
18449 (arm_adjust_block_mem): Likewise.
18450
9b639e2c
JR
184512013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
18452
18453 PR target/48901
18454 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
18455 temp, cond and label.
18456 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
18457
e13a0ccb
JR
18458 PR target/52500
18459 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
18460 * config/c6x/c6x.h (dbx_register_map): Update declaration.
18461
fbe4f171
JR
18462 PR target/52501
18463 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
18464 of prologue/epilogue functions.
18465
ae006543
JR
18466 PR target/52550
18467 * config/tilegx/tilegx.c (tilegx_expand_prologue):
18468 Remove unused variable cfa_offset.
18469 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
18470
c81369fa
JR
18471 PR target/54639
18472 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
18473 type promotion to unsigned.
18474
f8a8fea7
JR
18475 PR target/54640
18476 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
18477 for HOST_WIDE_INT of 32 bit / same size as int.
18478 (arm_block_move_unaligned_straight): Likewise.
18479 (arm_adjust_block_mem): Likewise.
18480
f8be5169
JR
18481 PR target/54662
18482 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
18483 ALL_CFLAGS.
18484
f1ad3354
MP
184852013-02-26 Marek Polacek <polacek@redhat.com>
18486
18487 PR tree-optimization/56426
88b97037 18488 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 18489
a6af0f42
RB
184902013-02-26 Richard Biener <rguenther@suse.de>
18491
18492 PR target/56444
18493 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
18494 unused variable loops.
18495
aca43c6c
JJ
184962013-02-26 Jakub Jelinek <jakub@redhat.com>
18497
cecbe5d9
JJ
18498 PR tree-optimization/56448
18499 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
18500 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
18501 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
18502 later operands of the references, or even first operand for
18503 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
18504
aca43c6c
JJ
18505 PR tree-optimization/56443
18506 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
18507 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
18508 to type_for_mode langhook.
18509
53e2e141
MT
185102013-02-25 Matt Turner <mattst88@gmail.com>
18511
18512 * doc/invoke.texi: Document r4700.
18513
259ee451
RB
185142013-02-25 Richard Biener <rguenther@suse.de>
18515
18516 PR tree-optimization/56175
18517 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
18518 split out from ...
18519 (simplify_bitwise_binary): ... here. Also guard the conversion
18520 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
18521
6d65e8f1
CM
185222013-02-25 Catherine Moore <clm@codesourcery.com>
18523
18524 Revert:
18525 2013-02-24 Catherine Moore <clm@codesourcery.com>
18526 Maciej W. Rozycki <macro@codesourcery.com>
18527 Tom de Vries <tom@codesourcery.com>
a72d8780 18528 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
18529 Iain Sandoe <iain@codesourcery.com>
18530 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 18531 Chao-ying Fu <fu@mips.com>
88b97037 18532
6d65e8f1 18533 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 18534 Document new function attributes.
6d65e8f1
CM
18535 * doc/invoke.texi (minterlink-compressed, mmicromips,
18536 m14k, m14ke, m14kec): Document new options.
18537 (minterlink-mips16): Update documentation.
18538 * doc/md.texi (ZC, ZD): Document new constraints.
18539 * configure.ac (gcc_cv_as_micromips): Check if linker
18540 supports the .set micromips directive.
18541 * configure: Regenerate.
18542 * config.in: Regenerate.
18543 * config/mips/mips-tables.opt: Regenerate.
18544 * config/mips/micromips.md: New file.
18545 * constraints.md (ZC, AD): New constraints.
18546 * config/mips/predicates.md (movep_src_register): New predicate.
18547 (movep_src_operand): New predicate.
18548 (non_volatile_mem_operand): New predicate.
18549 * config/mips/mips.md (multimem): New type.
18550 (length): Differentiate between 17-bit and 18-bit branch offsets.
18551 (MOVEP1, MOVEP2): New mode iterator.
18552 (mov_<load>l): Use ZC constraint.
18553 (mov_<load>r): Likewise.
18554 (mov_<store>l): Likewise.
18555 (mov_<store>r): Likewise.
18556 (*branch_equality<mode>_inverted): Add microMIPS support.
18557 (*branch_equality<mode>): Likewise.
18558 (*jump_absolute): Likewise.
18559 (indirect_jump_<mode>): Likewise.
18560 (tablejump_<mode>): Likewise.
18561 (<optab>_internal): Likewise.
18562 (sibcall_internal): Likewise.
18563 (sibcall_value_internal): Likewise.
18564 (prefetch): Use constraint ZD.
18565 * config/mips/mips.opt (minterlink-compressed): New option.
18566 (minterlink-mips16): Now an alias for minterlink-compressed.
18567 (mmicromips): New option.
18568 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18569 (compare_and_swap_12): Likewise.
18570 (sync_add<mode>): Likewise.
18571 (sync_<optab>_12): Likewise.
18572 (sync_old_<optab>_12): Likewise.
18573 (sync_new_<optab>_12): Likewise.
18574 (sync_nand_12): Likewise.
18575 (sync_old_nand_12): Likewise.
18576 (sync_new_nand_12): Likewise.
18577 (sync_sub<mode>): Likewise.
18578 (sync_old_add<mode>): Likewise.
18579 (sync_old_sub<mode>): Likewise.
18580 (sync_new_add<mode>): Likewise.
18581 (sync_new_sub<mode>): Likewise.
18582 (sync_<optab><mode>): Likewise.
18583 (sync_old_<optab><mode>): Likewise.
18584 (sync_new_<optab><mode>): Likewise.
18585 (sync_nand<mode>): Likewise.
18586 (sync_old_nand<mode>): Likewise.
18587 (sync_new_nand<mode>): Likewise.
18588 (sync_lock_test_and_set<mode>): Likewise.
18589 (test_and_set_12): Likewise.
18590 (atomic_compare_and_swap<mode>): Likewise.
18591 (atomic_exchange<mode>_llsc): Likewise.
18592 (atomic_fetch_add<mode>_llsc): Likewise.
18593 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18594 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18595 (umips_save_restore_pattern_p): Likewise.
18596 (umips_load_store_pair_p): Likewise.
18597 (umips_output_load_store_pair): Likewise.
18598 (umips_movep_target_p): Likewise.
18599 (umips_12bit_offset_address_p): Likewise.
18600 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18601 (mips_base_mips16): Rename this...
18602 (mips_base_compression_flags): ...to this. Update all uses.
18603 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18604 (mips_mips16_decl_p): Delete.
18605 (mips_nomips16_decl_p): Delete.
18606 (mips_get_compress_on_flags): New function.
18607 (mips_get_compress_off_flags): New function.
18608 (mips_get_compress_mode): New function.
18609 (mips_get_compress_on_name): New function.
18610 (mips_get_compress_off_name): New function.
18611 (mips_insert_attributes): Support multiple compression types.
18612 (mips_merge_decl_attributes): Likewise.
18613 (umips_12bit_offset_address_p): New function.
18614 (mips_start_function_definition): Emit .set micromips directive.
18615 (mips_call_may_need_jalx_p): New function.
18616 (mips_function_ok_for_sibcall): Add microMIPS support.
18617 (mips_print_operand_punctuation): Support short delay slots and
18618 compact jumps.
18619 (umips_swm_mask, umips_swm_encoding): New.
18620 (umips_build_save_restore): New function.
18621 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18622 (was_mips16_p): Remove.
18623 (old_compression_mode): New.
18624 (mips_set_compression_mode): New function.
18625 (mips_set_current_function): Add microMIPS support.
18626 (mips_option_override): Likewise.
18627 (umips_save_restore_pattern_p): New function.
18628 (umips_output_save_restore): New function.
18629 (umips_load_store_pair_p_1): New function.
18630 (umips_load_store_pair_p): New function.
18631 (umips_output_load_store_pair_1): New function.
18632 (umips_output_load_store_pair): New function.
18633 (umips_movep_target_p) New function.
18634 (mips_prepare_pch_save): Add microMIPS support.
18635 * config/mips/mips.h (TARGET_COMPRESSION): New.
18636 (TARGET_CPU_CPP_BUILTINS): Update macro
18637 to use new compression flags and to support microMIPS.
18638 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18639 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18640 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18641 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18642 (ASM_SPEC): Support mmicromips and mno-micromips.
18643 (M16STORE_REG_P): New macro.
18644 (MIPS_CALL): Support TARGET_MICROMIPS.
18645 (MICROMIPS_J): New macro.
18646 (mips_base_mips16): Rename this...
18647 (mips_base_compression_flags): ...to this.
18648 (UMIPS_12BIT_OFFSET_P): New macro.
18649 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18650 (MULTILIB_DIRNAMES): Likewise.
18651
5e5df392
TV
186522013-02-25 Tom de Vries <tom@codesourcery.com>
18653
18654 PR rtl-optimization/56131
18655 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
18656 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
18657 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
18658
3fdb53c1
TB
186592013-02-25 Tobias Burnus <burnus@net-b.de>
18660
18661 * doc/invoke.texi (-fsanitize=): Move from optimization
18662 to debugging options.
18663
ed358aea
AB
186642013-02-25 Andrey Belevantsev <abel@ispras.ru>
18665
18666 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
18667
f45e9053
AB
186682013-02-25 Andrey Belevantsev <abel@ispras.ru>
18669 Alexander Monakov <amonakov@ispras.ru>
18670
18671 PR middle-end/56077
18672 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
18673 flush pending lists also on non-jumps. Adjust comment.
18674
6941b508
CM
186752013-02-24 Catherine Moore <clm@codesourcery.com>
18676 Maciej W. Rozycki <macro@codesourcery.com>
18677 Tom de Vries <tom@codesourcery.com>
a72d8780 18678 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
18679 Iain Sandoe <iain@codesourcery.com>
18680 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 18681 Chao-ying Fu <fu@mips.com>
6941b508
CM
18682
18683 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 18684 Document new function attributes.
6941b508
CM
18685 * doc/invoke.texi (minterlink-compressed, mmicromips,
18686 m14k, m14ke, m14kec): Document new options.
18687 (minterlink-mips16): Update documentation.
18688 * doc/md.texi (ZC, ZD): Document new constraints.
18689 * configure.ac (gcc_cv_as_micromips): Check if linker
18690 supports the .set micromips directive.
18691 * configure: Regenerate.
18692 * config.in: Regenerate.
18693 * config/mips/mips-tables.opt: Regenerate.
18694 * config/mips/micromips.md: New file.
18695 * constraints.md (ZC, AD): New constraints.
18696 * config/mips/predicates.md (movep_src_register): New predicate.
18697 (movep_src_operand): New predicate.
18698 (non_volatile_mem_operand): New predicate.
18699 * config/mips/mips.md (multimem): New type.
18700 (length): Differentiate between 17-bit and 18-bit branch offsets.
18701 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 18702 (mov_<load>l): Use ZC constraint.
6941b508
CM
18703 (mov_<load>r): Likewise.
18704 (mov_<store>l): Likewise.
18705 (mov_<store>r): Likewise.
18706 (*branch_equality<mode>_inverted): Add microMIPS support.
18707 (*branch_equality<mode>): Likewise.
18708 (*jump_absolute): Likewise.
18709 (indirect_jump_<mode>): Likewise.
18710 (tablejump_<mode>): Likewise.
18711 (<optab>_internal): Likewise.
18712 (sibcall_internal): Likewise.
18713 (sibcall_value_internal): Likewise.
18714 (prefetch): Use constraint ZD.
18715 * config/mips/mips.opt (minterlink-compressed): New option.
18716 (minterlink-mips16): Now an alias for minterlink-compressed.
18717 (mmicromips): New option.
18718 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18719 (compare_and_swap_12): Likewise.
18720 (sync_add<mode>): Likewise.
18721 (sync_<optab>_12): Likewise.
18722 (sync_old_<optab>_12): Likewise.
18723 (sync_new_<optab>_12): Likewise.
18724 (sync_nand_12): Likewise.
18725 (sync_old_nand_12): Likewise.
18726 (sync_new_nand_12): Likewise.
18727 (sync_sub<mode>): Likewise.
18728 (sync_old_add<mode>): Likewise.
18729 (sync_old_sub<mode>): Likewise.
18730 (sync_new_add<mode>): Likewise.
18731 (sync_new_sub<mode>): Likewise.
18732 (sync_<optab><mode>): Likewise.
18733 (sync_old_<optab><mode>): Likewise.
18734 (sync_new_<optab><mode>): Likewise.
18735 (sync_nand<mode>): Likewise.
18736 (sync_old_nand<mode>): Likewise.
18737 (sync_new_nand<mode>): Likewise.
18738 (sync_lock_test_and_set<mode>): Likewise.
18739 (test_and_set_12): Likewise.
18740 (atomic_compare_and_swap<mode>): Likewise.
18741 (atomic_exchange<mode>_llsc): Likewise.
18742 (atomic_fetch_add<mode>_llsc): Likewise.
18743 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18744 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18745 (umips_save_restore_pattern_p): Likewise.
18746 (umips_load_store_pair_p): Likewise.
18747 (umips_output_load_store_pair): Likewise.
18748 (umips_movep_target_p): Likewise.
18749 (umips_12bit_offset_address_p): Likewise.
18750 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18751 (mips_base_mips16): Rename this...
18752 (mips_base_compression_flags): ...to this. Update all uses.
18753 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18754 (mips_mips16_decl_p): Delete.
18755 (mips_nomips16_decl_p): Delete.
3fdb53c1 18756 (mips_get_compress_on_flags): New function.
6941b508
CM
18757 (mips_get_compress_off_flags): New function.
18758 (mips_get_compress_mode): New function.
18759 (mips_get_compress_on_name): New function.
18760 (mips_get_compress_off_name): New function.
18761 (mips_insert_attributes): Support multiple compression types.
18762 (mips_merge_decl_attributes): Likewise.
18763 (umips_12bit_offset_address_p): New function.
18764 (mips_start_function_definition): Emit .set micromips directive.
18765 (mips_call_may_need_jalx_p): New function.
18766 (mips_function_ok_for_sibcall): Add microMIPS support.
18767 (mips_print_operand_punctuation): Support short delay slots and
18768 compact jumps.
18769 (umips_swm_mask, umips_swm_encoding): New.
18770 (umips_build_save_restore): New function.
18771 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18772 (was_mips16_p): Remove.
18773 (old_compression_mode): New.
18774 (mips_set_compression_mode): New function.
18775 (mips_set_current_function): Add microMIPS support.
18776 (mips_option_override): Likewise.
18777 (umips_save_restore_pattern_p): New function.
18778 (umips_output_save_restore): New function.
18779 (umips_load_store_pair_p_1): New function.
18780 (umips_load_store_pair_p): New function.
18781 (umips_output_load_store_pair_1): New function.
18782 (umips_output_load_store_pair): New function.
18783 (umips_movep_target_p) New function.
18784 (mips_prepare_pch_save): Add microMIPS support.
18785 * config/mips/mips.h (TARGET_COMPRESSION): New.
18786 (TARGET_CPU_CPP_BUILTINS): Update macro
18787 to use new compression flags and to support microMIPS.
18788 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18789 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18790 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18791 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18792 (ASM_SPEC): Support mmicromips and mno-micromips.
18793 (M16STORE_REG_P): New macro.
18794 (MIPS_CALL): Support TARGET_MICROMIPS.
18795 (MICROMIPS_J): New macro.
18796 (mips_base_mips16): Rename this...
18797 (mips_base_compression_flags): ...to this.
18798 (UMIPS_12BIT_OFFSET_P): New macro.
18799 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18800 (MULTILIB_DIRNAMES): Likewise.
18801
cdebbc6d
JJ
188022013-02-24 Jakub Jelinek <jakub@redhat.com>
18803
18804 PR target/52555
18805 * target-globals.c (save_target_globals): For init_reg_sets and
18806 target_reinit remporarily set this_fn_optabs to this_target_optabs.
18807
18c63565
JG
188082013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
18809
18810 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
18811 * config/aarch64/t-aarch64
18812 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
18813
2194f7a2
VM
188142013-02-22 Vladimir Makarov <vmakarov@redhat.com>
18815
18816 PR inline-asm/56148
18817 * lra-constraints.c (process_alt_operands): Reload operand
18818 conflicting with earlier clobber only if no more other conflicting
18819 operands.
18820
7d613735
JJ
188212013-02-22 Jakub Jelinek <jakub@redhat.com>
18822
18823 PR sanitizer/56393
18824 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
18825 if not linking a shared library.
18826
ac8d93a7
SL
188272013-02-22 Seth LaForge <sethml@google.com>
18828
18829 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
18830
e0237780
GY
188312013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
18832
3fdb53c1
TB
18833 * config/arm/arm.md (split for extendsidi): Update condition.
18834 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
18835 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
18836 (qhs_zextenddi_cstr): Likewise.
e0237780 18837
d7fde18c
JJ
188382013-02-21 Jakub Jelinek <jakub@redhat.com>
18839
be63b77d
JJ
18840 PR middle-end/56420
18841 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
18842 avoid signed wrapping.
18843 (expand_mult): Handle properly multiplication by
18844 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
18845 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
18846 in the compiler if coeff is HOST_WIDE_INT_MIN.
18847 (expand_divmod): Don't make ext_op1 static, change it's type to
18848 uhwi. Avoid undefined behavior in -INTVAL (op1).
18849
d7fde18c
JJ
18850 PR rtl-optimization/50339
18851 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
18852 field.
18853 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
18854 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
18855 into splitting_ashiftrt field.
18856 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
18857 ASHIFTRT.
18858 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
18859 choices.
18860
6aad4455
AH
188612013-02-20 Aldy Hernandez <aldyh@redhat.com>
18862
18863 PR middle-end/56108
18864 * trans-mem.c (execute_tm_mark): Do not expand transactions that
18865 are sure to go irrevocable.
18866
38fe784d
HPN
188672013-02-21 Hans-Peter Nilsson <hp@axis.com>
18868
18869 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
18870 scalars are valid operands.
18871
0fd44da3
MJ
188722013-02-21 Martin Jambor <mjambor@suse.cz>
18873
18874 PR tree-optimization/56310
18875 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
18876 only matching indices and non-negative final offsets.
18877 (intersect_aggregates_with_edge): Pass src_idx to
18878 agg_replacements_to_vector. Pass src_idx insstead of index to
18879 intersect_with_agg_replacements.
18880
7a92038b
MJ
188812013-02-21 Martin Jambor <mjambor@suse.cz>
18882
18883 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
18884 instead of hard-wired defaults.
18885
c0da9c37
MR
188862013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
18887
18888 * doc/invoke.texi (MIPS Options): Update documentation of the
18889 floating-point multiply-accumulate instruction restrictions.
18890
d247ea0c 188912013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
18892
18893 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
18894 asan_shadow_offset on x86_64 linux.
18895
22deefcb
RB
188962013-02-21 Richard Biener <rguenther@suse.de>
18897
18898 PR tree-optimization/56415
18899 Revert
18900 2013-02-11 Richard Biener <rguenther@suse.de>
18901
18902 PR tree-optimization/56273
18903 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
18904 first VRP run.
18905
7bcc6e75
JJ
189062013-02-21 Jakub Jelinek <jakub@redhat.com>
18907
a0ad148f
JJ
18908 PR bootstrap/56258
18909 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
18910 instead of @itemx.
18911
7bcc6e75
JJ
18912 PR inline-asm/56405
18913 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
18914 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
18915
a0a7b611
JH
189162013-02-20 Jan Hubicka <jh@suse.cz>
18917
18918 PR tree-optimization/56265
88b97037
UB
18919 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
18920 when target is referenced for first time.
a0a7b611 18921
c0e50f72
RB
189222013-02-20 Richard Biener <rguenther@suse.de>
18923
18924 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
18925 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
18926 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
18927 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
18928 not return anything.
18929 (rename_ssa_copies): Do not remove unused locals.
18930 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 18931 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
18932 * passes.c (execute_function_todo): Do not schedule unused locals
18933 removal if cleanup_tree_cfg did something.
18934 * tree-ssa-live.c (remove_unused_locals): Dump statistics
18935 about the number of removed locals.
18936
a52ca739
RB
189372013-02-20 Richard Biener <rguenther@suse.de>
18938
18939 PR tree-optimization/56398
88b97037 18940 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 18941
ec9c9d1b
MJ
189422013-02-20 Martin Jambor <mjambor@suse.cz>
18943
18944 PR tree-optimization/55334
18945 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
18946 restricted pointers to arrays.
18947
e91c8ed6 189482013-02-20 Richard Biener <rguenther@suse.de>
88b97037 18949 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
18950
18951 PR tree-optimization/56396
18952 * tree-ssa-ccp.c (n_const_val): New static variable.
18953 (get_value): Return NULL for SSA names we don't have a lattice
18954 entry for.
18955 (ccp_initialize): Initialize n_const_val.
18956 * tree-ssa-copy.c (n_copy_of): New static variable.
18957 (init_copy_prop): Initialize n_copy_of.
18958 (get_value): Return NULL_TREE for SSA names we don't have a
18959 lattice entry for.
18960
3d916479
MJ
189612013-02-20 Martin Jambor <mjambor@suse.cz>
18962
18963 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
18964
71a86758
RB
189652013-02-20 Richard Biener <rguenther@suse.de>
18966
18967 * genpreds.c (write_lookup_constraint): Do not compare first
18968 letter of the constraint again.
18969
79836a12
RB
189702013-02-20 Richard Biener <rguenther@suse.de>
18971
18972 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
18973 and ceil_log2.
18974 (get_use_iv_cost): Terminate hashtable walk when coming across
18975 an empty entry.
18976
bbe4fb2c
IZ
189772013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
18978
18979 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
18980 reassociation for avx2 targets.
18981
a72d8780 189822012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 18983
c77f83d5
EI
18984 * config/microblaze/microblaze.c: microblaze_has_clz = 0
18985 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 18986 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
18987 version and TARGET_PATTERN_COMPARE check
18988 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 18989
a72d8780 189902012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 18991
a72d8780 18992 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
18993 function before branching.
18994
242387fa
AB
189952012-02-19 Andrey Belevantsev <abel@ispras.ru>
18996
18997 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
18998 DUMP_INSN_RTX_UID.
18999 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
19000
b4979ab9
AB
190012012-02-19 Andrey Belevantsev <abel@ispras.ru>
19002
19003 PR middle-end/55889
b4979ab9
AB
19004 * sel-sched.c: Include ira.h.
19005 (implicit_clobber_conflict_p): New function.
19006 (moveup_expr): Use it.
88b97037 19007 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 19008
24d63016
RB
190092013-02-19 Richard Biener <rguenther@suse.de>
19010
19011 PR tree-optimization/56384
19012 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
19013 (vn_hash_type): Split out from ...
19014 (vn_hash_constant_with_type): ... here.
19015 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
19016 (vn_phi_eq): Compare types from vn_phi_s structure.
19017 (vn_phi_lookup): Populate vn_phi_s type.
19018 (vn_phi_insert): Likewise.
19019
a475fd3d
JJ
190202013-02-19 Jakub Jelinek <jakub@redhat.com>
19021
47cc28f5
JJ
19022 PR tree-optimization/56350
19023 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
19024 if haven't found reduction or nested cycle operand, rather than
19025 asserting we must find it.
19026
a475fd3d
JJ
19027 PR tree-optimization/56381
19028 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
19029 to fold_build3.
19030
190312013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
19032 Jakub Jelinek <jakub@redhat.com>
19033
19034 PR target/52555
19035 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
19036 (swap_optab_enable): Same.
19037 (init_all_optabs): Use argument instead of global.
88b97037 19038 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
19039 * expr.h (init_all_optabs): Add argument to prototype.
19040 (TREE_OPTIMIZATION_OPTABS): New.
19041 (save_optabs_if_changed): Protoize.
19042 * optabs.h: Declare this_fn_optabs.
19043 * optabs.c (save_optabs_if_changed): New.
19044 Declare this_fn_optabs.
19045 (init_optabs): Add argument to init_all_optabs() call.
19046 * function.c (invoke_set_current_function_hook): Handle per
19047 function optabs.
19048 * function.h (struct function): New field optabs.
19049 * config/mips/mips.c (mips_set_mips16_mode): Handle when
19050 optimization_current_node has changed.
19051 * target-globals.h (save_target_globals_default_opts): Protoize.
19052 * target-globals.c (save_target_globals_default_opts): New.
19053
3f587ca3
JDA
190542013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19055
19056 PR target/56347
19057 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
19058 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
19059
19060 PR target/56214
19061 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
19062 and HImode, require all displacements to be an integer multiple of
19063 their mode size.
ceaca33e
JDA
19064 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
19065 only allow QImode and HImode when reload is in progress and strict is
19066 true. Likewise for symbolic addresses. Use base14_operand to check
19067 displacements in REG+BASE addresses.
19068
fe0b4796
RB
190692013-02-18 Richard Biener <rguenther@suse.de>
19070
19071 PR tree-optimization/56366
19072 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19073 handle sign-conversion of outer-loop initial induction value.
19074
6aaf596b
RB
190752013-02-18 Richard Biener <rguenther@suse.de>
19076
73db8ff1 19077 PR middle-end/56349
6aaf596b
RB
19078 * cfghooks.c (merge_blocks): If we merge a latch into another
19079 block adjust references to it.
19080 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
19081 (verify_loop_structure): Verify that a recorded latch is in fact
19082 a latch.
19083
5e97dfb6
RB
190842013-02-18 Richard Biener <rguenther@suse.de>
19085
19086 PR tree-optimization/56321
19087 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
19088 order SSA name release and virtual operand unlinking.
19089
825527e8
EI
190902013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19091
19092 * config/microblaze/microblaze.md (save_stack_block): Define.
19093 (restore_stack_block): Likewise.
19094
debd11d9
EI
190952013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19096
19097 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
19098 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
19099 * config/microblaze/microblaze.c (microblaze_option_override):
19100 Bail out early for PIC modes when target does not support PIC.
19101
8ec77be0
EI
191022013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19103
88b97037 19104 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
19105 Replace with a microblaze version.
19106 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 19107 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
19108 microblaze.
19109
b41288b3
JJ
191102013-02-16 Jakub Jelinek <jakub@redhat.com>
19111 Dodji Seketeli <dodji@redhat.com>
19112
19113 PR asan/56330
88b97037 19114 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
19115 (instrument_mem_region_access): Do not forget to always put
19116 instrumentation of the of 'base' and 'base + len' in a "if (len !=
19117 0) statement, even for cases where either 'base' or 'base + len'
19118 are not instrumented -- because they have been previously
19119 instrumented. Simplify the logic by putting all the statements
19120 instrument 'base + len' inside a sequence, and then insert that
19121 sequence right before the current insertion point. Then, to
19122 instrument 'base + len', just get an iterator on that statement.
19123 And do not forget to update the pointer to iterator the function
19124 received as argument.
19125
47918951
VM
191262013-02-15 Vladimir Makarov <vmakarov@redhat.com>
19127
19128 PR rtl-optimization/56348
19129 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
19130
3fb7c699
SB
191312013-02-15 Steven Bosscher <steven@gcc.gnu.org>
19132
19133 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
19134 (clean_graph_dump_file): Pass base to start_graph_dump.
19135
576fe41a
RH
191362013-02-14 Richard Henderson <rth@redhat.com>
19137
19138 PR target/55941
19139 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
19140
bb3accfa
SB
191412013-02-14 Steven Bosscher <steven@gcc.gnu.org>
19142
19143 * collect2-aix.h: Define F_LOADONLY.
19144
03143140
RB
191452013-02-14 Richard Biener <rguenther@suse.de>
19146
19147 PR lto/50494
19148 * varasm.c (output_constant_def_1): Get the decl representing
19149 the constant as argument.
19150 (output_constant_def): Wrap output_constant_def_1.
19151 (make_decl_rtl): Use output_constant_def_1 with the decl
19152 representing the constant.
19153 (build_constant_desc): Optionally re-use a decl already
19154 representing the constant.
19155 (tree_output_constant_def): Adjust.
19156
8fb06726
DS
191572013-02-14 Dodji Seketeli <dodji@redhat.com>
19158
19159 Fix an asan crash
19160 * asan.c (instrument_builtin_call): Really put the length of the
19161 second source argument into src1_len.
19162
c4bfe8bf
JJ
191632013-02-13 Jakub Jelinek <jakub@redhat.com>
19164
19165 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
19166 argument. If it is false, don't create edge from then_bb to
19167 fallthru_bb.
19168 (insert_if_then_before_iter): Pass true to it.
19169 (build_check_stmt): Pass false to it.
19170 (transform_statements): Flush hash table only on extended basic
19171 block boundaries, rather than at the beginning of every bb.
19172 Don't flush hash table on nonfreeing_call_p calls.
19173 * tree-flow.h (nonfreeing_call_p): New prototype.
19174 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
19175
7afe2801
DM
191762013-02-13 David S. Miller <davem@davemloft.net>
19177
19178 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
19179
70cc3288
VM
191802013-02-13 Vladimir Makarov <vmakarov@redhat.com>
19181
19182 PR target/56184
19183 * ira.c (max_regno_before_ira): Move from ...
19184 (ira): ... here.
19185 (fix_reg_equiv_init): Use max_regno_before_ira instead of
19186 vec_safe_length.
19187
6422242b
JJ
191882013-02-13 Jakub Jelinek <jakub@redhat.com>
19189
19190 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
19191
976a81ee
RB
191922013-02-13 Richard Biener <rguenther@suse.de>
19193
19194 PR lto/56295
19195 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
19196 globals in MEM_REFs.
19197
c1874a87
RB
191982013-02-13 Richard Biener <rguenther@suse.de>
19199
19200 * loop-init.c (loop_optimizer_init): Clear loop state when
19201 re-initializing preserved loops.
19202 * loop-unswitch.c (unswitch_single_loop): Return whether
19203 we unswitched the loop. Do not verify loop state here.
88b97037 19204 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 19205
b4ab7d34
KS
192062013-02-13 Kostya Serebryany <kcc@google.com>
19207
88b97037
UB
19208 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
19209 on x86_64 linux.
b4ab7d34
KS
19210 * sanitizer.def: Rename __asan_init to __asan_init_v1.
19211
bdcbe80c
DS
192122013-02-12 Dodji Seketeli <dodji@redhat.com>
19213
19214 Avoid instrumenting duplicated memory access in the same basic block
19215 * Makefile.in (asan.o): Add new dependency on hash-table.h
19216 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
19217 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
19218 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
19219 (free_mem_ref_resources, has_mem_ref_been_instrumented)
19220 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
19221 (get_mem_ref_of_assignment): New functions.
19222 (get_mem_refs_of_builtin_call): Extract from
19223 instrument_builtin_call and tweak a little bit to make it fit with
19224 the new signature.
19225 (instrument_builtin_call): Use the new
19226 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
19227 of is_gimple_builtin_call.
19228 (instrument_derefs, instrument_mem_region_access): Insert the
19229 instrumented memory reference into the hash table.
19230 (maybe_instrument_assignment): Renamed instrument_assignment into
19231 this, and change it to advance the iterator when instrumentation
19232 actually happened and return true in that case. This makes it
19233 homogeneous with maybe_instrument_assignment, and thus give a
19234 chance to callers to be more 'regular'.
19235 (transform_statements): Clear the memory reference hash table
19236 whenever we enter a new BB, when we cross a function call, or when
19237 we are done transforming statements. Use
19238 maybe_instrument_assignment instead of instrumentation. No more
19239 need to special case maybe_instrument_assignment and advance the
19240 iterator after calling it; it's now handled just like
19241 maybe_instrument_call. Update comment.
19242
4861a1f7
RB
192432013-02-13 Richard Biener <rguenther@suse.de>
19244
19245 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19246 Fix loop discovery code.
19247
1c86bd80
VM
192482013-02-12 Vladimir Makarov <vmakarov@redhat.com>
19249
19250 PR inline-asm/56148
19251 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 19252 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
19253 the operand is not reloaded. Prefer to reload conflicting operand
19254 if earlyclobber and matching operands are the same.
19255
7cbda518
RB
192562013-02-12 Richard Biener <rguenther@suse.de>
19257
19258 PR lto/56297
19259 * lto-streamer-out.c (write_symbol): Do not output symbols
19260 for hard register variables.
19261
e68a4ef6
GJL
192622013-02-12 Georg-Johann Lay <avr@gjlay.de>
19263
19264 PR target/54222
19265 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
19266 (umulsidi3_insn, mulsidi3_insn): New insns.
19267
a72d8780 192682013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
19269
19270 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
19271 (struct tune_params): Add vec_costs field.
19272 * config/arm/arm.c (arm_builtin_vectorization_cost)
19273 (arm_add_stmt_cost): New functions.
19274 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
19275 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
19276 (arm_default_vec_cost): New struct of type cpu_vec_costs.
19277 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
19278 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
19279 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
19280 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
19281
43320568
RB
192822013-02-12 Richard Biener <rguenther@suse.de>
19283
19284 PR lto/56295
19285 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
19286 decls again if possible.
19287
a011aa39
RB
192882013-02-12 Richard Biener <rguenther@suse.de>
19289
19290 PR middle-end/56288
19291 * tree-ssa.c (verify_ssa_name): Fix check, move
19292 SSA_NAME_IN_FREE_LIST check up.
19293
6da26889
JJ
192942013-02-12 Jakub Jelinek <jakub@redhat.com>
19295 Steven Bosscher <steven@gcc.gnu.org>
19296
19297 PR rtl-optimization/56151
19298 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
19299 equal to op0 or op1, and last_insn pattern is CODE operation
19300 with MEM dest and one of the operands matches that MEM.
19301
f80e0faf
ST
193022013-02-11 Sriraman Tallam <tmsriramgoogle.com>
19303
19304 * doc/extend.texi: Document Function Multiversioning and "default"
19305 parameter string to target attribute.
19306 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
19307 target attribute parameter is "default".
19308 (ix86_compare_version_priority): Remove checks for target attribute.
19309 (ix86_mangle_function_version_assembler_name): Change error to sorry.
19310 Remove check for target attribute equal to NULL. Add assert.
19311 (ix86_generate_version_dispatcher_body): Change error to sorry.
19312
6c59ffd1
IS
193132013-02-11 Iain Sandoe <iain@codesourcery.com>
19314 Jack Howarth <howarth@bromo.med.uc.edu>
19315 Patrick Marlier <patrick.marlier@gmail.com>
19316
19317 PR libitm/55693
19318 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
19319 define ENDFILE_SPEC as TM_DESTRUCTOR.
19320 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
19321
a72d8780 193222013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
19323 Jack Howarth <howarth@bromo.med.uc.edu>
19324 Jakub Jelinek <jakub@redhat.com>
19325
19326 PR sanitizer/55617
19327 * config/darwin.c (cdtor_record): Rename ctor_record.
19328 (sort_cdtor_records): Rename sort_ctor_records.
19329 (finalize_dtors): New routine to sort destructors by
19330 priority before use in assemble_integer.
19331 (machopic_asm_out_destructor): Use finalize_dtors if needed.
19332
b63fe007
UB
193332013-02-11 Uros Bizjak <ubizjak@gmail.com>
19334
19335 PR rtl-optimization/56275
19336 * simplify-rtx.c (avoid_constant_pool_reference): Check that
19337 offset is non-negative and less than cmode size before
19338 calling simplify_subreg.
19339
8e89b5b5
RB
193402013-02-11 Richard Biener <rguenther@suse.de>
19341
19342 PR tree-optimization/56264
19343 * cfgloop.h (fix_loop_structure): Adjust prototype.
19344 * loop-init.c (fix_loop_structure): Return the number of
19345 newly discovered loops.
19346 * tree-cfgcleanup.c (repair_loop_structures): When new loops
19347 are discovered, do a full loop-closed SSA rewrite.
19348
b4a4b56d
RB
193492013-02-11 Richard Biener <rguenther@suse.de>
19350
19351 PR tree-optimization/56273
19352 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19353 first VRP run.
19354 (check_array_ref): Fix missing newline in dumps.
19355 (search_for_addr_array): Likewise.
19356
0c885229
DE
193572013-02-09 David Edelsohn <dje.gcc@gmail.com>
19358
19359 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
19360
59ac9a55
JJ
193612013-02-09 Jakub Jelinek <jakub@redhat.com>
19362
19363 PR target/56256
19364 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
19365
25bb0bb5
VM
193662013-02-08 Vladimir Makarov <vmakarov@redhat.com>
19367
19368 PR rtl-optimization/56246
0c885229 19369 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
19370 reload pseudo.
19371 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
19372 constraints are satisfied.
19373
a698cc03
JL
193742013-02-08 Jeff Law <law@redhat.com>
19375
19376 PR debug/53948
19377 * emit-rtl.c (reg_is_parm_p): New function.
19378 * regs.h (reg_is_parm_p): New prototype.
19379 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
19380 callee-clobbered registers.
19381
e1122ddd
MM
193822013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19383
19384 PR target/56043
19385 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
19386 If there is no implicit builtin declaration, just return NULL.
19387
19c5f6e6
UB
193882013-02-08 Uros Bizjak <ubizjak@gmail.com>
19389
19390 * config/i386/sse.md (FMAMODEM): New mode iterator.
19391 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
19392 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
19393
2480f2ca 193942013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 19395
2480f2ca
UB
19396 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
19397 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
19398 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
19399
194002013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19401
19402 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
19403 (microblaze*-*-elf): Likewise.
19404 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
19405 LINK_SPEC.
19406 * config/microblaze/microblaze-c.c: Add builtin defines for
19407 _LITTLE_ENDIAN and _BIG_ENDIAN.
19408 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
19409 add to TARGET_DEFAULT flags.
76ef61fb 19410 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
19411 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
19412 * config/microblaze/microblaze.md: Update extendsidi2 and
19413 movdi_internal instructions to use low-order / high-order reg
19414 print_operands.
19415 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
19416 options and inversemask / mask of LITTLE_ENDIAN.
19417 * config/microblaze/t-microblaze: Expand multilib options to
19418 include mlittle-endian (le) and update exceptions patterns.
19419
600a5961
JJ
194202013-02-08 Jakub Jelinek <jakub@redhat.com>
19421
5df81313
JJ
19422 PR rtl-optimization/56195
19423 * lra-constraints.c (get_reload_reg): Don't reuse regs
19424 if they have smaller mode than requested, if they have
19425 wider mode than requested, try to return a SUBREG.
19426
600a5961
JJ
19427 PR tree-optimization/56250
19428 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
19429 if type is unsigned and code isn't MULT_EXPR.
19430
ff544649
GJL
194312013-02-08 Georg-Johann Lay <avr@gjlay.de>
19432
19433 PR tree-optimization/56064
19434 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
19435 bits according to mode.
19436 * fixed-value.h (fixed_from_double_int)
19437 (const_fixed_from_double_int): Adjust comments.
19438
e45cde98
RB
194392013-02-08 Richard Biener <rguenther@suse.de>
19440
19441 PR lto/56231
19442 * lto-streamer.h (struct data_in): Remove current_file, current_line
19443 and current_col members.
19444 * lto-streamer-out.c (lto_output_location): Stream changed bits
19445 en-block for efficiency.
19446 * lto-streamer-in.c (clear_line_info): Remove.
19447 (lto_input_location): Cache current file, line and column
19448 globally via local statics. Read changed bits en-block.
19449 (input_function): Do not call clear_line_info.
19450 (lto_read_body): Likewise.
19451 (lto_input_toplevel_asms): Likewise.
19452
c1ca73d8
MM
194532013-02-08 Michael Matz <matz@suse.de>
19454
19455 PR tree-optimization/52448
19456 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
19457 (nt_call_phase): New static.
19458 (add_or_mark_expr): Only mark accesses with newer phase than any
19459 call seen.
19460 (nonfreeing_call_p): New.
19461 (nt_init_block): Update nt_call_phase, mark blocks as visited.
19462 (nt_fini_block): Keep blocks marked as visited.
19463 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
19464
57548aa2
RB
194652013-02-08 Richard Biener <rguenther@suse.de>
19466
19467 * ira.c (ira): Free broken dominator information.
19468
8e10366f
UB
194692013-02-08 Uros Bizjak <ubizjak@gmail.com>
19470
19471 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
19472
f64fb0fa
MP
194732013-02-08 Marek Polacek <polacek@redhat.com>
19474
8e10366f 19475 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 19476
0375167b
RB
194772013-02-08 Richard Biener <rguenther@suse.de>
19478
19479 PR middle-end/56181
19480 * cfgloop.h (flow_loops_find): Adjust.
19481 (bb_loop_header_p): Declare.
19482 * cfgloop.c (bb_loop_header_p): New function split out from ...
19483 (flow_loops_find): ... here. Adjust function signature,
19484 support incremental loop structure update.
19485 (verify_loop_structure): Cleanup. Verify a loop is a loop.
19486 * cfgloopmanip.c (fix_loop_structure): Move ...
19487 * loop-init.c (fix_loop_structure): ... here.
19488 (apply_loop_flags): Split out from ...
19489 (loop_optimizer_init): ... here.
19490 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
19491 in incremental mode, only remove dead loops here.
19492
85d768f3
GJL
194932013-02-08 Georg-Johann Lay <avr@gjlay.de>
19494
19495 PR target/54222
19496 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
19497 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
19498 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
19499 (*round<mode>3.libgcc): New insns for fixed-modes.
19500 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
19501 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
19502 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
19503 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
19504 implementations. Define to __builtin_avr_absFX,
19505 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
19506 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
19507 __builtin_avr_countlsFX, respectively.
19508 * config/avr/avr-c.c (target.h): Include it.
19509 (enum avr_builtin_id): New enum.
19510 (avr_resolve_overloaded_builtin): New static function.
19511 (avr_register_target_pragmas): Use it to set
19512 targetm.resolve_overloaded_builtin.
19513 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
19514 tree nodes used by DEF_BUILTIN.
19515 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
19516 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
19517 <AVR_BUILTIN_xxBITS>: Same.
19518
661bc682
RB
195192013-02-08 Richard Biener <rguenther@suse.de>
19520
19521 * cfgloop.c (verify_loop_structure): Properly handle
19522 a loop exiting to another loop header.
19523 * ira-int.h (ira_loops): Remove.
19524 * ira.c (ira_loops): Remove.
19525 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
19526 (do_reload): Use loop_optimizer_finalize.
19527 * ira-build.c (create_loop_tree_nodes): Use get_loops and
19528 number_of_loops to access the loop tree.
19529 (more_one_region_p): Likewise.
19530 (finish_loop_tree_nodes): Likewise.
19531 (rebuild_regno_allocno_maps): Likewise.
19532 (mark_loops_for_removal): Likewise.
19533 (mark_all_loops_for_removal): Likewise.
19534 (remove_unnecessary_regions): Likewise.
19535 (ira_build): Likewise.
19536 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
19537
0d5049b2
RB
195382013-02-08 Richard Biener <rguenther@suse.de>
19539
19540 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
19541 * ipa-pure-const.c (analyze_function): Avoid calling
19542 mark_irreducible_loops twice.
8e10366f 19543 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 19544
499f32e8
DM
195452013-02-07 David S. Miller <davem@davemloft.net>
19546
19547 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
19548 on 'reg'.
19549 * var-tracking.c (vt_add_function_parameter): Test the presence of
19550 HAVE_window_save properly and do not remap argument registers when
19551 we have a leaf function.
19552
6edc3e32
UB
195532013-02-07 Uros Bizjak <ubizjak@gmail.com>
19554
19555 PR bootstrap/56227
19556 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
19557 instead of "ll".
19558 * config/i386/i386.c (ix86_print_operand): Ditto.
19559
5306401f
VM
195602013-02-07 Vladimir Makarov <vmakarov@redhat.com>
19561
6edc3e32 19562 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 19563
027ece11
VM
195642013-02-07 Vladimir Makarov <vmakarov@redhat.com>
19565
19566 PR rtl-optimization/56225
19567 * lra-constraints.c (process_alt_operands): Check that reload hard
19568 reg can hold value for strict_low_part.
19569
f980dfdb
JJ
195702013-02-07 Jakub Jelinek <jakub@redhat.com>
19571
19572 PR debug/56154
19573 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
19574 dwarf2out_end_function.
19575 (in_first_function_p, maybe_at_text_label_p,
19576 first_loclabel_num_not_at_text_label): New variables.
19577 (dwarf2out_var_location): In the first function find out
6edc3e32 19578 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
19579 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
19580 functions.
19581
73dd3123
EB
195822013-02-07 Eric Botcazou <ebotcazou@adacore.com>
19583
19584 PR rtl-optimization/56178
19585 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
19586 SUBREG of a register. Tidy up related block of code.
19587 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
19588 note if the source is a register or a SUBREG of a register.
19589
e3936f47
JJ
195902013-02-07 Jakub Jelinek <jakub@redhat.com>
19591
19592 PR target/56228
19593 * config/rs6000/rs6000.md (ptrm): New mode attr.
19594 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
19595 call_value_indirect_aix<pttrsize>,
19596 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
19597 m in constraints.
19598
d96d674b
MH
195992013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
19600
19601 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
19602 if -bnortl. Convert to strcmp and strncmp.
19603
921f2dee
AM
196042013-02-07 Alan Modra <amodra@gmail.com>
19605
19606 PR target/54009
19607 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
19608 addresses won't wrap when offsetting.
19609 (rs6000_secondary_reload): Provide secondary reloads needed for
19610 wrapping LO_SUM addresses.
19611
d09c7dba
TS
196122013-02-06 Thomas Schwinge <thomas@codesourcery.com>
19613
19614 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
19615 MACH, just __MACH__.
19616
a44bbd48
RB
196172013-02-06 Richard Biener <rguenther@suse.de>
19618
19619 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
19620 instead of calling fix_loop_structure.
19621
6d840d99
JJ
196222013-02-06 Jakub Jelinek <jakub@redhat.com>
19623
19624 PR middle-end/56217
19625 * omp-low.c (use_pointer_for_field): Return false if
19626 lower_send_shared_vars doesn't generate any copy-out code.
19627
0f33baa9
TV
196282013-02-06 Tom de Vries <tom@codesourcery.com>
19629
19630 PR rtl-optimization/56131
19631 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
19632 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
19633 of the label is NULL. Add comment.
19634
11f1e3ab
JJ
196352013-02-05 Jakub Jelinek <jakub@redhat.com>
19636
31502f9f
JJ
19637 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
19638
a74db9bd
JJ
19639 PR sanitizer/55374
19640 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
19641 (STATIC_LIBTSAN_LIBS): Likewise.
19642 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
19643 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
19644 is defined, don't add anything else beyond that.
19645 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
19646 (LINK_COMMAND_SPEC): Use them.
19647
11f1e3ab
JJ
19648 PR tree-optimization/56205
19649 * tree-stdarg.c (check_all_va_list_escapes): Return true if
19650 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
19651 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
19652
14ac6aa2
RB
196532013-02-05 Richard Biener <rguenther@suse.de>
19654
19655 PR tree-optimization/53342
19656 PR tree-optimization/53185
19657 * tree-vectorizer.h (vect_check_strided_load): Remove.
19658 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
19659 not disallow peeling for vectorized strided loads.
19660 (vect_check_strided_load): Make static and simplify.
19661 (vect_analyze_data_refs): Adjust.
19662 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
19663 correctly when vectorizing strided loads.
19664
6f22445a
RB
196652013-02-05 Richard Biener <rguenther@suse.de>
19666
19667 * doc/install.texi: Refer to ISL, not PPL.
19668
39f9719e
JH
196692013-02-05 Jan Hubicka <jh@suse.cz>
19670
ec4224ac
JH
19671 PR tree-optimization/55789
19672 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
19673
196742013-02-05 Jan Hubicka <jh@suse.cz>
19675
19676 PR tree-optimization/55789
39f9719e
JH
19677 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
19678 the dead call anyway.
19679
956d3b33
EB
196802013-02-05 Eric Botcazou <ebotcazou@adacore.com>
19681
19682 PR sanitizer/55374
19683 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
19684
196852013-02-04 Alexander Potapenko <glider@google.com>
19686 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
19687 Jakub Jelinek <jakub@redhat.com>
19688
19689 PR sanitizer/55617
19690 * config/darwin.c (sort_ctor_records): Stabilized qsort
19691 on constructor priority by using original position.
19692 (finalize_ctors): New routine to sort constructors by
19693 priority before use in assemble_integer.
19694 (machopic_asm_out_constructor): Use finalize_ctors if needed.
19695
7ac3af38
JJ
196962013-02-04 Jakub Jelinek <jakub@redhat.com>
19697
19698 PR libstdc++/54314
19699 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
19700 about visibility on artificial decls.
19701 * config/sol2.c (solaris_assemble_visibility): Likewise.
19702
152689dc
KT
197032013-02-04 Kai Tietz <ktietz@redhat.com>
19704
19705 PR target/56186
19706 * config/i386/i386.c (function_value_ms_64): Add additional valtype
19707 argument and improve checking of return-argument types for 16-byte
19708 modes.
19709 (ix86_function_value_1): Add additional valtype argument on call
19710 of function_value_64.
19711 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
19712 handling infunction_value_64 function.
19713
2b5987b5
MGD
197142013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
19715
7ac3af38 19716 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 19717
14597080
RB
197182013-02-04 Richard Biener <rguenther@suse.de>
19719
19720 PR tree-optimization/56188
19721 * tree-ssa-structalias.c (label_visit): Consider case with
19722 initially non-empty points-to set.
19723 (perform_var_substitution): Dump node mapping and clean up.
19724
ed73881e
RG
197252013-02-04 Richard Guenther <rguenther@suse.de>
19726
19727 PR lto/56168
19728 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
19729 node prevail as last resort.
19730 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 19731 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 19732
139a0707
RB
197332013-02-04 Richard Biener <rguenther@suse.de>
19734
19735 PR tree-optimization/56113
19736 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
19737 Merge into ...
19738 (equiv_class_lookup_or_add): ... this.
19739 (label_visit): Adjust and fix error in previous patch.
19740 (perform_var_substitution): Adjust.
19741
50fe8924
OE
197422013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
19743
19744 * config/sh/divtab.c: Fix formatting and comments throughout the file.
19745 * config/sh/sh4-300.md: Likewise.
19746 * config/sh/sh4a.md: Likewise.
19747 * config/sh/constraints.md: Likewise.
19748 * config/sh/sh.md: Likewise.
19749 * config/sh/netbsd-elf.h: Likewise.
19750 * config/sh/predicates.md: Likewise.
19751 * config/sh/sh-protos.h: Likewise.
19752 * config/sh/ushmedia.h: Likewise.
19753 * config/sh/linux.h: Likewise.
19754 * config/sh/sh.c: Likewise.
19755 * config/sh/superh.h: Likewise.
19756 * config/sh/elf.h: Likewise.
19757 * config/sh/sh4.md: Likewise.
19758 * config/sh/sh.h: Likewise.
19759
1a04ac2b
JDA
197602013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19761
19762 * config/pa/constraints.md: Adjust unused letters. Change "T"
19763 constraint to match_test floating_point_store_memory_operand().
19764 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
19765 (base14_operand): New.
19766 (floating_point_store_memory_operand): New.
19767 (integer_store_memory_operand): Revise to use base14_operand and
19768 reg_plus_base_memory_operand.
19769 (move_dest_operand): Allow symbolic_memory_operands.
19770 (symbolic_memory_operand): Check for LO_SOM.
19771 (symbolic_operand): Change default case to break.
19772 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
19773 CONST_DOUBLE values to be reloaded by putting them into memory when
19774 the destination is a floating point register.
19775 (movdf): Remove code to handle CONST_DOUBLE.
19776 (movsf): Likewise.
19777 (reload_indf_r1): New.
19778 (reload_insf_r1): New.
19779 Consistently use "Q" and "T" constraints with integer and floating
19780 point move instructions, respectively.
19781 (movdi): Remove FAIL.
19782 Change predicate for source operand unamed DImode move from
19783 general_operand to move_src_operand.
19784 (umulsidi3): Change predicate for destination operand to
19785 register_operand.
19786 Likewise for similar unamed patterns.
19787 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
19788 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
19789 (hppa_legitimize_address): Simplify mask calculation.
19790 (pa_emit_move_sequence): Revised handling of secondary reloads from
19791 REG+D addresses for floating point loads and stores. Directly handle
19792 loading CONST0_RTX (mode) to a floating point register.
19793 (pa_secondary_reload): Handle reloading DF and SFmode constant values
19794 to floating point registers. Don't restrict secondary reloads to
19795 floating point registers to integer modes. Revise some comments and
19796 cleanup some code.
19797 (TARGET_LEGITIMATE_ADDRESS_P): Define.
19798 (pa_legitimate_address_p): New.
19799 (pa_legitimize_reload_address): New.
19800 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
19801 (STRICT_REG_OK_FOR_BASE_P): New.
19802 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
19803 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
19804
3bf65591
DE
198052013-02-03 David Edelsohn <dje.gcc@gmail.com>
19806 Andrew Dixie <andrewd@gentrack.com>
19807
19808 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
19809 flag set.
19810
c0a8a3e6
RS
198112013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
19812
19813 * expmed.c (extract_bit_field_1): Pass the full width of the
19814 structure to get_best_reg_extraction_insn.
19815
99113dff
DE
198162013-02-01 David Edelsohn <dje.gcc@gmail.com>
19817
19818 PR target/54601
19819 * configure.ac (use_cxa_atexit): Add AIX.
19820 * configure: Regenerate.
19821
19822 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
19823
ddd84654
JJ
198242013-02-01 Jakub Jelinek <jakub@redhat.com>
19825
19826 PR debug/54793
19827 * final.c (need_profile_function): New variable.
19828 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
19829 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
19830 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
19831 notes, targetm.asm_out.function_prologue doesn't emit anything,
19832 HAVE_prologue and profiler should be emitted before prologue,
19833 set need_profile_function instead of emitting it.
19834 (final_scan_insn): If need_profile_function, emit
19835 profile_function on the first NOTE_INSN_BASIC_BLOCK or
19836 NOTE_INSN_FUNCTION_BEG note.
19837
198382013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
19839
19840 * config/rs6000/rs6000.md (smulditi3): New.
19841 (umulditi3): New.
19842
ff2a9d88
RH
19843 * config/alpha/alpha.md (umulditi3): New.
19844
14d52b90
DE
198452013-02-01 David Edelsohn <dje.gcc@gmail.com>
19846
19847 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
19848 (ASM_OUTPUT_ALIGNED_LOCAL): New.
19849
8c7ca45c
RB
198502013-02-01 Richard Biener <rguenther@suse.de>
19851
19852 PR tree-optimization/56113
19853 * tree-ssa-structalias.c (label_visit): Reduce work for
19854 single-predecessor nodes.
19855
9f419393
EB
198562013-02-01 Eric Botcazou <ebotcazou@adacore.com>
19857
19858 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
19859 range isn't testing for zero.
19860
c5f4be84
SB
198612013-01-31 Steven Bosscher <steven@gcc.gnu.org>
19862
19863 PR middle-end/56113
19864 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
19865
dbdbd982
NC
198662013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
19867 Nick Clifton <nickc@redhat.com>
19868
19869 * config/v850/constraints.md (Q): Define as a memory constraint.
19870 * config/v850/predicates.md (label_ref_operand): New predicate.
19871 (e3v5_shift_operand): New predicate.
19872 (ior_operator): New predicate.
19873 * config/v850/t-v850: Add e3v5 multilib.
19874 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
19875 (v850_gen_movdi): Prototype.
19876 * config/v850/v850.c: Add support for e3v5 architecture.
19877 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
19878 TARGET_V850E_UP.
19879 (construct_save_jarl): Add e3v5 long JARL support.
19880 (v850_adjust_insn_length): New function. Adjust length of call
19881 insns when using e3v5 instructions.
19882 (v850_gen_movdi): New function: Generate instructions to move a
19883 DImode value.
19884 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
19885 (CPP_SPEC): Define __v850e3v5__ as appropriate.
19886 (TARGET_USE_FPU): Enable for e3v5.
19887 (CONST_OK_FOR_W): New macro.
19888 (ADJUST_INSN_LENGTH): Define.
19889 * config/v850/v850.md (UNSPEC_LOOP): Define.
19890 (attr cpu): Add v850e3v5.
19891 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
19892 (movdi): New pattern.
19893 (movdi_internal): New pattern.
19894 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
19895 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
19896 (cstoresf4): Likewise.
19897 (cstoredf4): Likewise.
19898 (insv): New pattern.
19899 (rotlso3_a): New pattern.
19900 (rotlsi3_b): New pattern
19901 (rotlsi3_v850e3v5): New pattern.
19902 (doloop_begin): New pattern.
19903 (fix_loop_counter): New pattern.
19904 (doloop_end): New pattern.
19905 (branch_normal): Add e3v5 long branch support.
19906 (branch_invert): Likewise.
19907 (branch_z_normal): Likewise.
19908 (branch_z_invert): Likewise.
19909 (branch_nz_normal): Likewise.
19910 (branch_nz_invert): Likewise.
19911 (call_internal_short): Add e3v5 register-indirect JARL support.
19912 (call_internal_long): Likewise.
19913 (call_value_internal_short): Likewise.
19914 (call_value_internal_long): Likewise.
19915 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
19916 (mloop): New option.
19917 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 19918 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 19919
73861a41
PK
199202013-01-31 Paul Koning <ni1d@arrl.net>
19921
19922 PR debug/55059
19923 PR debug/54508
19924 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
19925 children if parent is a class.
19926 (prune_unused_types_prune): Don't add DW_AT_declaration.
19927
e44978dc
RB
199282013-01-31 Richard Biener <rguenther@suse.de>
19929
19930 PR tree-optimization/56157
19931 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
19932 match up operand with SLP child.
19933
90b10dec
JM
199342013-01-31 Jason Merrill <jason@redhat.com>
19935
04d2dadd 19936 PR debug/54410
90b10dec
JM
19937 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
19938 parameters the first time.
19939 (gen_scheduled_generic_parms_dies): Check completeness here.
19940
6e616110
RB
199412013-01-31 Richard Biener <rguenther@suse.de>
19942
19943 PR middle-end/53073
19944 * common.opt (faggressive-loop-optimizations): New flag,
19945 enabled by default.
19946 * doc/invoke.texi (faggressive-loop-optimizations): Document.
19947 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
19948 infer_loop_bounds_from_undefined by it.
19949
636f59cf
RB
199502013-01-31 Richard Biener <rguenther@suse.de>
19951
19952 PR tree-optimization/56150
19953 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
19954 visit virtual operands.
19955 (find_uses_to_rename_bb): Likewise.
19956
199572013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
19958
19959 PR tree-optimization/56150
19960 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
19961 mixed store non-store stmts.
19962
32887460
JJ
199632013-01-30 Jakub Jelinek <jakub@redhat.com>
19964
e60e09a0
JJ
19965 PR sanitizer/55374
19966 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
19967 LIBASAN_EARLY_SPEC is defined.
19968 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
19969 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
19970 before %o.
19971 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
19972
32887460
JJ
19973 PR c++/55742
19974 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
19975 invalid args instead of ICEing on it.
19976 (ix86_valid_target_attribute_tree): Return error_mark_node if
19977 ix86_valid_target_attribute_inner_p failed.
19978 (ix86_valid_target_attribute_p): Return false only if
19979 ix86_valid_target_attribute_tree returned error_mark_node. Allow
19980 target("default") attribute.
19981 (sorted_attr_string): Change argument from const char * to tree,
19982 merge in all target attribute arguments rather than just one.
19983 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
19984 instead of free. Avoid using strcat.
19985 (ix86_mangle_function_version_assembler_name): Mangle
19986 target("default") as if no target attribute is present. Adjust
19987 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
19988 instead of xmalloc and XDELETEVEC instead of free.
19989 (ix86_function_versions): Don't return true if one of the decls
19990 doesn't have target attribute. If they don't and one of the decls
19991 is DECL_FUNCTION_VERSIONED, report an error. Adjust
19992 sorted_attr_string caller. Use XDELETEVEC instead of free.
19993 (ix86_supports_function_versions): Remove.
19994 (make_name): Fix up formatting.
19995 (make_dispatcher_decl): Remove resolver_name and its initialization.
19996 Avoid leaking memory.
19997 (is_function_default_version): Return true if there is
19998 target("default") attribute rather than no target attribute at all.
19999 (make_resolver_func): Avoid leaking memory.
20000 (ix86_generate_version_dispatcher_body): Likewise.
20001 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
20002 * target.def (supports_function_versions): Remove.
20003 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
20004 * doc/tm.texi: Regenerated.
20005
73cca0cc
VM
200062013-01-30 Vladimir Makarov <vmakarov@redhat.com>
20007
20008 PR rtl-optimization/56144
20009 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
20010 for values with side effects.
20011
11452e7b
RB
200122013-01-30 Richard Biener <rguenther@suse.de>
20013
20014 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
20015 (sparseset_pop): Likewise.
20016 * cfganal.c (compute_idf): Likewise. Increase work-stack size
20017 to be able to use quick_push in the worker loop.
20018
01cb1ef5
MP
200192013-01-30 Marek Polacek <polacek@redhat.com>
20020
20021 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
20022
e892936e
RB
200232013-01-30 Richard Biener <rguenther@suse.de>
20024
20025 PR lto/56147
6edc3e32 20026 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 20027
cc06c01d
GJL
200282013-01-30 Georg-Johann Lay <avr@gjlay.de>
20029
20030 PR tree-optimization/56064
20031 * fixed-value.c (fixed_from_double_int): New function.
20032 * fixed-value.h (fixed_from_double_int): New prototype.
20033 (const_fixed_from_double_int): New static inline function.
20034 * fold-const.c (native_interpret_fixed): New static function.
20035 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
20036 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
20037 (native_encode_fixed): New static function.
20038 (native_encode_expr) <FIXED_CST>: Use it.
20039 (native_interpret_int): Move double_int worker code to...
20040 * double-int.c (double_int::from_buffer): ...this new static method.
20041 * double-int.h (double_int::from_buffer): Prototype it.
20042
d394a308
RB
200432013-01-30 Richard Biener <rguenther@suse.de>
20044
20045 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
20046 New pointer-map and obstack.
20047 (init_alias_vars): Allocate pointer-map and obstack.
20048 (delete_points_to_sets): Free them.
20049 (find_what_var_points_to): Cache result.
20050 (find_what_p_points_to): Adjust for changed interface of
20051 find_what_var_points_to.
20052 (compute_points_to_sets): Likewise.
20053 (ipa_pta_execute): Likewise.
20054
20804d96
RO
200552013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20056
20057 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
20058 * configure: Regenerate.
20059 * config.in: Regenerate.
20060 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
20061 #nobits/#progbits if supported.
20062
a7ad88a2
OE
200632013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
20064
20065 PR target/56121
20066 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
20067 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
20068 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
20069
7af79f92
GY
200702013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20071
91bfca59
OE
20072 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
20073 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 20074
753bcf7b
GY
200752013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20076
91bfca59
OE
20077 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
20078 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 20079
8cbc2ea8
GY
200802013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20081
91bfca59
OE
20082 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
20083 declaration.
20084 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
20085 * config/arm/cortex-a7.md: New bypasses using
20086 arm_mac_accumulator_is_result.
8cbc2ea8 20087
697a3325
GY
200882013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20089
91bfca59 20090 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 20091 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
20092 (cortex_a7_fpfmad): New reservation.
20093 (cortex_a7_fpmacs): Use ffmas and update required units.
20094 (cortex_a7_fpmuld): Update required units and latency.
20095 (cortex_a7_fpmacd): Likewise.
20096 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
20097 (cortex_a7_neon). Likewise.
20098 (bypass) Update participating units.
697a3325 20099
29637783
GY
201002013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20101
91bfca59
OE
20102 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
20103 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
20104 from fmac to ffma.
20105 * config/arm/vfp11.md (vfp_farith): Use ffmas.
20106 (vfp_fmul): Use ffmad.
20107 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
20108 (cortex_r4_fmacd): Use ffmad.
20109 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
20110 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
20111 (cortex_a9_fmacd): Use ffmad.
20112 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
20113 (cortex_a8_vfp_macd): Use ffmad.
20114 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
20115 (cortex_a5_fpmacd): Use ffmad.
20116 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
20117 (cortex_a15_vfp_macd): Use ffmad.
20118 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 20119
2ee8a2d5
JM
201202013-01-29 Jason Merrill <jason@redhat.com>
20121
20122 PR libstdc++/54314
20123 * varasm.c (default_assemble_visibility): Don't warn about
20124 visibility on artificial decls.
20125
78d087bc
RB
201262013-01-29 Richard Biener <rguenther@suse.de>
20127
20128 PR tree-optimization/56113
20129 * tree-ssa-structalias.c (equiv_class_lookup): Also return
20130 the bitmap leader.
20131 (label_visit): Free duplicate bitmaps and record the leader instead.
20132 (perform_var_substitution): Adjust.
20133
83ba4d6f
RB
201342013-01-29 Richard Biener <rguenther@suse.de>
20135
20136 PR tree-optimization/55270
20137 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
20138 the CFG, schedule loops for fixup.
20139
66dfe13f
NC
201402013-01-29 Nick Clifton <nickc@redhat.com>
20141
20142 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
20143 SP_REG.
20144
5a579c3b
LE
201452013-01-28 Leif Ekblad <leif@rdos.net>
20146
20147 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
20148 * config/i386/i386.h (TARGET_RDOS): New macro.
20149 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
20150 * config/i386/i386.c (ix86_option_override_internal): For 64bit
20151 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
20152 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
20153 DEFAULT_LARGE_SECTION_THRESHOLD.
20154 * config/i386/i386.md (R14_REG, R15_REG): New constants.
20155 * config/i386/rdos.h: New file.
20156 * config/i386/rdos64.h: New file.
20157
51e44392
BS
201582013-01-28 Bernd Schmidt <bernds@codesourcery.com>
20159
20160 PR other/54814
20161 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
20162 TEST_HARD_REG_BIT.
20163
db1fb332
JJ
201642013-01-28 Jakub Jelinek <jakub@redhat.com>
20165
20166 PR rtl-optimization/56117
20167 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
20168 call cselib_lookup_from_insn on the MEM before calling
20169 add_insn_mem_dependence.
20170
16917761
RB
201712013-01-28 Richard Biener <rguenther@suse.de>
20172
20173 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
20174 to a stmt that didn't have one.
20175 (copy_phis_for_bb): Likewise for PHI arguments.
20176 (copy_debug_stmt): Likewise for debug stmts.
20177
b9fc0497
RB
201782013-01-28 Richard Biener <rguenther@suse.de>
20179
20180 PR tree-optimization/56034
6edc3e32 20181 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
20182 (partition_builtin_p): Adjust.
20183 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
20184 it is the last partition.
20185 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
20186 up the vertex for the definition.
20187 (classify_partition): Classify whether a partition is a
20188 PKIND_REDUCTION, thus has uses outside of the loop.
20189 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
20190 Merge all PKIND_REDUCTION partitions into the last partition.
20191 (tree_loop_distribution): Seed partitions from reductions as well.
20192
aa710d25
JJ
201932013-01-28 Jakub Jelinek <jakub@redhat.com>
20194
0bfbca58
JJ
20195 PR tree-optimization/56125
20196 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
20197 pow(x,c) into sqrt(x) * powi(x, n/2) or
20198 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
20199 optimizing for size.
20200 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
20201 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
20202 integer.
20203
aa710d25
JJ
20204 PR tree-optimization/56094
20205 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
20206 to UNKNOWN_LOCATION while gimplifying expr.
20207
77dc5297
UB
202082013-01-27 Uros Bizjak <ubizjak@gmail.com>
20209
20210 PR target/56114
20211 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
20212 operand 0 in movabs insn template for -masm=intel asm alternative.
20213 (*movabs<mode>_2): Ditto for operand 1.
20214
0bfbca58 202152013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
20216
20217 PR target/54663
20218 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
20219 of microblaze-c.o
20220
0bfbca58 202212013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
20222
20223 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
20224 tm_file.
20225
0bfbca58 202262013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
20227
20228 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
20229 Undef to avoid warning.
20230
478f60f9
MH
202312013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20232
20233 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
20234 * configure: Regenerate.
20235
d7fa6ee2
JJ
202362013-01-25 Jakub Jelinek <jakub@redhat.com>
20237
20238 PR tree-optimization/56098
20239 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
20240 for stmts with volatile ops.
20241 (cond_store_replacement): Don't optimize if assign has volatile ops.
20242 (cond_if_else_store_replacement_1): Don't optimize if either
20243 then_assign or else_assign have volatile ops.
20244 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
20245 volatile ops.
20246
f8fe87bd
GJL
202472013-01-25 Georg-Johann Lay <avr@gjlay.de>
20248
20249 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
20250
28398d0d
GJL
202512013-01-25 Georg-Johann Lay <avr@gjlay.de>
20252
20253 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
20254 missing ':' in asm example.
20255
b7d7d917
TB
202562013-01-25 Tejas Belagod <tejas.belagod@arm.com>
20257
20258 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
20259 entries into lane and laneq entries.
77dc5297
UB
20260 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
20261 Remove AdvSIMD scalar modes.
b7d7d917
TB
20262 (aarch64_sq<r>dmulh_laneq<mode>): New.
20263 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
20264 modes.
20265 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
20266 builtin implementations to relfect changes in RTL in aarch64-simd.md.
20267 * config/aarch64/iterators.md (VCOND): New.
20268 (VCONQ): New.
20269
556f9906
GJL
202702013-01-25 Georg-Johann Lay <avr@gjlay.de>
20271
20272 PR target/54222
20273 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
20274 Add NULL LIBNAME argument to existing definitions.
20275 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
20276 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
20277 * config/avr/avr.c (DEF_BUILTIN): Same.
20278 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
20279 (avr_expand_builtin): Expand to a vanilla call if a libgcc
20280 implementation is available (DECL_ASSEMBLER_NAME is set).
20281 (avr_fold_absfx): New static function.
20282 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
20283 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
20284 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
20285 AVR_BUILTIN_ABSLLK.
20286 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
20287 (abshk, absk, abslk, absllk): Provide as static inline functions.
20288
1f546bbb
MP
202892013-01-25 Marek Polacek <polacek@redhat.com>
20290
20291 PR tree-optimization/56035
20292 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
20293
7e184bd7
UB
202942012-01-24 Uros Bizjak <ubizjak@gmail.com>
20295
20296 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
20297 (*movtf_internal_rex64): Add (!o,C) alternative
20298 (*movxf_internal_rex64): Ditto.
20299 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
20300
f5ba49ac
SM
203012013-01-24 Shenghou Ma <minux.ma@gmail.com>
20302
20303 * doc/invoke.texi: fix typo.
20304 * doc/objc.texi: fix typo.
20305
a6343728
RS
203062013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
20307
20308 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
20309 for the first two alternatives.
20310
cd030c07
DN
203112013-01-24 Diego Novillo <dnovillo@google.com>
20312
77dc5297 20313 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
20314 (ggc-zone.o): Remove.
20315 * configure.ac: Remove option --with-gc.
20316 * configure: Re-generate.
20317 * doc/install.texi: Remove documentation for --with-gc.
20318 * gengtype.c (write_enum_defn): Remove. Update all users.
20319 (write_Types_process_field): Remove generation of gt_e_* argument.
20320 (output_type_enum): Remove. Update all users.
20321 (write_enum_defn): Remove. Update all users.
20322 (enum alloc_zone): Remove. Update all users.
77dc5297 20323 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
20324 * ggc-common.c (ggc_splay_alloc): Remove first argument.
20325 Update all callers.
20326 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 20327 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
20328 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
20329 Update all users.
aaf1e810 20330 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
20331 (struct alloc_zone): Remove.
20332 (ggc_internal_alloc_zone_stat): Remove.
20333 (ggc_internal_cleared_alloc_zone_stat): Remove.
20334 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
20335 (ggc_pch_count_object): Remove last argument. Update all users.
20336 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
20337 (struct alloc_zone): Remove.
20338 * ggc-zone.c: Remove.
77dc5297 20339 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
20340 (struct alloc_zone): Remove.
20341 (ggc_alloc_typed_stat): Remove.
20342 (ggc_alloc_typed): Remove.
20343 (ggc_splay_alloc): Remove first argument.
20344 (rtl_zone): Remove. Update all users.
20345 (tree_zone): Remove. Update all users.
20346 (tree_id_zone): Remove. Update all users.
20347 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 20348 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 20349 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 20350 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 20351
a861ffa4
GJL
203522013-01-24 Georg-Johann Lay <avr@gjlay.de>
20353
20354 * config/avr/avr.c (avr_out_fract): Make register numbers that
20355 might be outside of source operand signed.
20356
593c0ddd
UB
203572013-01-24 Uros Bizjak <ubizjak@gmail.com>
20358
20359 * config/i386/constraints.md (Yf): New constraint.
20360 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
20361 of f constraint to conditionaly disable x87 register preferences.
20362 (*movdf_internal): Ditto.
20363 (*movsf_internal): Ditto.
20364
e86c0101
SB
203652013-01-24 Steven Bosscher <steven@gcc.gnu.org>
20366
20367 PR inline-asm/55934
20368 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
20369 that have operands with impossible constraints.
20370 Add a FIXME for a speed-up opportunity.
20371 * lra-constraints.c (process_alt_operands): Verify that a class
20372 selected from constraints on asms is valid for the operand mode.
20373 (curr_insn_transform): Remove incorrect comment.
20374
f6fee35f
DE
203752013-01-23 David Edelsohn <dje.gcc@gmail.com>
20376
20377 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
20378 TOC operand is a valid symbol ref in the constant pool.
20379
203802013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 20381
aaf1e810 20382 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 20383
dc62d7d1
GJL
203842013-01-23 Georg-Johann Lay <avr@gjlay.de>
20385
20386 PR target/54222
20387 * config/avr/stdfix.h: New file.
20388 * t-avr (stdfix-gcc.h): New rule to build it.
20389 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
20390
2660d12d
KS
203912013-01-23 Kostya Serebryany <kcc@google.com>
20392
77dc5297
UB
20393 * config/darwin.h: remove dependency on
20394 CoreFoundation (asan on Mac OS).
2660d12d 20395
a70418fc
JJ
203962013-01-23 Jakub Jelinek <jakub@redhat.com>
20397
20398 PR target/49069
20399 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
20400 instead of cmpdi_operand for first comparison operand.
20401 Don't assert that comparison operands aren't both constants.
20402
47876a2a
JW
204032013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
20404
20405 * doc/install.texi (Downloading the Source): Update references to
20406 downloading separate components.
20407
204082013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
20409
20410 * doc/extend.texi (__int128): Improve grammar.
20411
47876a2a 204122013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
20413
20414 PR target/56028
20415 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
20416 alternative to (o,r).
20417 (*movdi_internal_rex64): Remove (!o,n) alternative.
20418 (DImode immediate->memory splitter): Remove.
20419 (DImode immediate->memory peephole2): Remove.
20420 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
20421 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
20422 alternative to (!o,*r).
20423 (*movtf_internal_sse): New pattern.
20424 (*movxf_internal_rex64): New pattern.
20425 (*movxf_internal): Disable for TARGET_64BIT.
20426 (*movdf_internal_rex64): Remove (!o,F) alternative.
20427
3a984f10
JJ
204282013-01-22 Jakub Jelinek <jakub@redhat.com>
20429
502498d5
JJ
20430 PR middle-end/56074
20431 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
20432 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
20433 * tree-vect-loop-manip.c (find_loop_location): Also ignore
20434 stmt locations where LOCATION_LOCUS of the stmt location is
20435 UNKNOWN_LOCATION or BUILTINS_LOCATION.
20436
3a984f10
JJ
20437 PR target/55686
20438 * config/i386/i386.md (UNSPEC_STOS): New.
20439 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
20440 *strsetqi_1): Add UNSPEC_STOS.
20441
fa817f7f
PC
204422013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
20443
20444 PR c++/56067
20445 * doc/invoke.texi: Remove left over -Wsynth example.
20446
8f498c1b
JJ
204472013-01-21 Jakub Jelinek <jakub@redhat.com>
20448
20449 PR tree-optimization/56051
20450 * fold-const.c (fold_binary_loc): Don't fold
20451 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
20452 a narrowing conversion, or widening conversion from signed
20453 to unsigned.
20454
47876a2a 204552013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
20456
20457 PR rtl-optimization/56023
20458 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
20459 dependent on debug instruction.
20460
5b9db1bc
MJ
204612013-01-21 Martin Jambor <mjambor@suse.cz>
20462
20463 PR middle-end/56022
20464 * function.c (allocate_struct_function): Call
20465 invoke_set_current_function_hook earlier.
20466
e8bb7d68
JJ
204672013-01-21 Jakub Jelinek <jakub@redhat.com>
20468
20469 * reload1.c (init_reload): Only initialize reload_obstack
20470 during the first call.
20471
616a4e32
MP
204722013-01-21 Marek Polacek <polacek@redhat.com>
20473
20474 * cfgloop.c (verify_loop_structure): Fix up grammar.
20475
4401981b
YHH
204762013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
20477
20478 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
20479 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
20480
8e87740b
RR
204812013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20482
20483 PR target/56058
20484 * config/arm/marvell-pj4.md: Update copyright year.
20485 Fix up use of alu to alu_reg and simple_alu_imm.
20486
47876a2a 204872013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
20488
20489 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
20490
89d56d79
VM
204912013-01-20 Vladimir Makarov <vmakarov@redhat.com>
20492
20493 PR target/55433
20494 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 20495 insn for secondary memory move when memory mode should be different.
89d56d79 20496
fe603553
JDA
204972013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20498
20499 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
20500 atomic_storedi_1): New patterns.
20501
01284895
VK
205022013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20503
20504 btver2 pipeline descriptions.
20505 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
20506 descriptions.
20507 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 20508 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
20509 type attributes.
20510 * config/i386/btver2.md: New file describing btver2 pipelines.
20511
5630e3e1
JL
205122013-01-19 Andrew Pinski <apinski@cavium.com>
20513
20514 PR tree-optimization/52631
20515 * tree-ssa-sccvn (visit_use): Before looking up the original
20516 statement, try looking up the simplified expression.
20517
650ae806
AG
205182013-01-19 Anthony Green <green@moxielogic.com>
20519
20520 * config/moxie/moxie.c (moxie_expand_prologue): Set
20521 current_function_static_stack_size.
20522
e300ec2d
JJ
205232013-01-18 Jakub Jelinek <jakub@redhat.com>
20524
20525 PR tree-optimization/56029
20526 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
20527 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
20528
a3d7af04
SS
205292013-01-18 Sharad Singhai <singhai@google.com>
20530
20531 PR tree-optimization/55995
20532 * dumpfile.c (dump_loc): Print location only if available.
20533 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
20534
66aa7879
VM
205352013-01-18 Vladimir Makarov <vmakarov@redhat.com>
20536
20537 PR target/55433
20538 * lra-constraints.c (curr_insn_transform): Reuse original insn for
20539 secondary memory move.
20540 (inherit_reload_reg): Use rclass instead of cl for
20541 check_secondary_memory_needed_p.
20542
3f0fee7b
JJ
205432013-01-18 Jakub Jelinek <jakub@redhat.com>
20544
20545 PR middle-end/56015
20546 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 20547 the case where writing real complex part of target modifies op1.
3f0fee7b 20548
70c67693
JG
205492013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
20550
20551 * config/aarch64/aarch64-simd.md
20552 (aarch64_vcond_internal<mode>): Handle unordered cases.
20553 * config/aarch64/iterators.md (v_cmp_result): New.
20554
df8de9b3
YHH
205552013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
20556 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20557
20558 * config/arm/marvell-pj4.md: New file.
20559 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
20560 * config/arm/arm.md (generic_sched): Add marvell_pj4.
20561 (generic_vfp): Likewise.
20562 * config/arm/arm-cores.def: Add marvell-pj4.
20563 * config/arm/arm-tune.md: Regenerate.
20564 * config/arm/arm-tables.opt: Regenerate.
20565 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
20566 * doc/invoke.texi: Document marvell-pj4.
20567
be30c356
TB
205682013-01-18 Tejas Belagod <tejas.belagod@arm.com>
20569
20570 * config/aarch64/arm_neon.h: Map scalar types to standard types.
20571
0bfbca58 205722013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
20573
20574 PR debug/54114
20575 PR debug/54402
20576 PR debug/49888
20577 * var-tracking.c (negative_power_of_two_p): New.
20578 (global_get_addr_cache, local_get_addr_cache): New.
20579 (get_addr_from_global_cache, get_addr_from_local_cache): New.
20580 (vt_canonicalize_addr): Rewrite using the above. Adjust the
20581 heading comment.
20582 (vt_stack_offset_p): Remove.
20583 (vt_canon_true_dep): Always canonicalize loc's address.
20584 (clobber_overlapping_mems): Make sure we have a MEM.
20585 (local_get_addr_clear_given_value): New.
20586 (val_reset): Clear local cached entries.
20587 (compute_bb_dataflow): Create and release the local cache.
20588 Disable duplicate MEMs clobbering.
20589 (emit_notes_in_bb): Clobber MEMs likewise.
20590 (vt_emit_notes): Create and release the local cache.
20591 (vt_initialize, vt_finalize): Create and release the global
20592 cache, respectively.
1f6bc337 20593 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 20594
0bfbca58 205952013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
20596
20597 PR libmudflap/53359
20598 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
20599 not found in the symtab.
20600
0bfbca58 206012013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 20602
c350ba53 20603 PR debug/56006
3aa03517
AO
20604 PR rtl-optimization/55547
20605 PR rtl-optimization/53827
20606 PR debug/53671
20607 PR debug/49888
20608 * alias.c (offset_overlap_p): New, factored out of...
20609 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
20610 the conservative special case for symbolic constants. Don't
20611 adjust zero sizes on alignment.
20612
c664546f
JL
206132013-01-18 Bernd Schmidt <bernds@codesourcery.com>
20614
20615 PR rtl-optimization/52573
20616 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
20617 REG_UNUSED for the same register.
20618
1bd3f750
MP
206192013-01-17 Richard Biener <rguenther@suse.de>
20620 Marek Polacek <polacek@redhat.com>
20621
20622 PR rtl-optimization/55833
20623 * loop-unswitch.c (unswitch_loops): Move loop verification...
20624 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
20625 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
20626 Set it to true when we're removing a loop from hierarchy tree in
20627 an irreducible region.
20628 (fix_bb_placements): Adjust caller.
20629 (fix_loop_placements): Likewise.
20630
e52a8b71
GJL
206312013-01-17 Georg-Johann Lay <avr@gjlay.de>
20632
20633 * config/avr/builtins.def (DEF_BUILTIN): Factor out
20634 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
20635 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
20636 Remove ID. Adjust comments.
20637 * config/avr/avr-c.c (avr_builtin_name): Remove.
20638 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
20639 * config/avr/avr.c (avr_tolower): New static function.
20640 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
20641 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
20642 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
20643 default expansion.
20644
8386a7ea
JH
206452013-01-17 Jan Hubicka <jh@suse.cz>
20646
610fb637 20647 PR tree-optimization/55273
8386a7ea
JH
20648 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
20649
47876a2a 206502013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
20651
20652 PR target/55981
20653 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
20654 store through atomic_store<mode>_1.
20655 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
20656
8222c37e
MJ
206572013-01-17 Martin Jambor <mjambor@suse.cz>
20658
20659 PR tree-optimizations/55264
20660 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
20661 for virtual methods.
20662 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
20663 virtual methods before inlining is over.
20664 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
20665 virtual functions.
20666 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
20667 non-virtual.
20668
79f01c76
VM
206692013-01-16 Vladimir Makarov <vmakarov@redhat.com>
20670
20671 PR rtl-optimization/56005
20672 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
20673 pending reads for prefetch.
20674
d0b6bb1b
IB
206752013-01-16 Ian Bolton <ian.bolton@arm.com>
20676
aaf1e810 20677 * config/aarch64/aarch64.md
d0b6bb1b
IB
20678 (*cstoresi_neg_uxtw): New pattern.
20679 (*cmovsi_insn_uxtw): New pattern.
20680 (*<optab>si3_uxtw): New pattern.
20681 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
20682 (*<optab>si3_insn_uxtw): New pattern.
20683 (*bswapsi2_uxtw): New pattern.
20684
cb9cf03b
RB
206852013-01-16 Richard Biener <rguenther@suse.de>
20686
20687 * tree-inline.c (tree_function_versioning): Remove set but
20688 never used variable.
20689
2cfc56b9
RB
206902013-01-16 Richard Biener <rguenther@suse.de>
20691
20692 PR tree-optimization/55964
20693 * tree-flow.h (rename_variables_in_loop): Remove.
20694 (rename_variables_in_bb): Likewise.
20695 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
20696 (copy_loop_before): Adjust and delete update-ssa status.
20697 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 20698 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
20699 (rename_variables_in_loop): Remove.
20700 (slpeel_update_phis_for_duplicate_loop): Likewise.
20701 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
20702 use available cfg machinery instead of duplicating it.
20703 Update PHI nodes and perform poor-mans SSA update here.
20704 (slpeel_tree_peel_loop_to_edge): Adjust.
20705
c25a0c60
RB
207062013-01-16 Richard Biener <rguenther@suse.de>
20707
20708 PR tree-optimization/54767
20709 PR tree-optimization/53465
20710 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
20711 (vrp_visit_phi_node): For PHI arguments coming via backedges
20712 drop all symbolical range information.
20713 (execute_vrp): Compute backedges.
20714
04b535af
RB
207152013-01-16 Richard Biener <rguenther@suse.de>
20716
20717 * doc/install.texi: Update CLooG and ISL requirements to
20718 0.18.0 and 0.11.1.
20719
8b0a1e0b
CB
207202013-01-16 Christian Bruel <christian.bruel@st.com>
20721
20722 PR target/55301
20723 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
20724 (broken_move): Handle UNSPECV_SP_SWITCH_B.
20725 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
20726
207272013-01-16 DJ Delorie <dj@redhat.com>
20728
20729 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
20730 (UNSPECV_SP_SWITCH_E): New.
20731 (sp_switch_1): Change to an unspec.
20732 (sp_switch_2): Change to an unspec. Don't use post-inc when we
20733 replace $r15.
20734
207352013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
20736
20737 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
20738 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
20739 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
20740 (expand_mem_thread_fence): Ditto.
20741 (expand_mem_signal_fence): Ditto.
20742 (expand_atomic_load): Ditto.
20743 (expand_atomic_store): Ditto.
20744
0bfbca58 207452013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
20746
20747 PR rtl-optimization/55547
20748 PR rtl-optimization/53827
20749 PR debug/53671
20750 PR debug/49888
20751 * alias.c (memrefs_conflict_p): Set sizes to negative after
20752 AND adjustments.
20753
305e3ac1
JJ
207542013-01-15 Jakub Jelinek <jakub@redhat.com>
20755
20756 PR target/55940
20757 * function.c (thread_prologue_and_epilogue_insns): Always
20758 add crtl->drap_reg to set_up_by_prologue.set, even if
20759 stack_realign_drap is false.
20760
f78ac4f2
JBG
207612013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20762
20763 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
20764 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
20765 *call): Fix indention.
20766
a78a8cc4
TV
207672013-01-15 Tom de Vries <tom@codesourcery.com>
20768
20769 PR target/55876
20770 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
20771 Update comment.
20772
0e80383f
VM
207732013-01-15 Vladimir Makarov <vmakarov@redhat.com>
20774
305e3ac1 20775 PR rtl-optimization/55153
0e80383f
VM
20776 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
20777
207b5956
MJ
207782013-01-15 Martin Jambor <mjambor@suse.cz>
20779
20780 PR tree-optimization/55920
20781 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
20782 accesses as grp_to_be_debug_replaced.
20783
a7818b54
JJ
207842013-01-15 Jakub Jelinek <jakub@redhat.com>
20785
20786 PR tree-optimization/55920
20787 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
20788 there is non-useless type conversion needed from debug rhs to lhs,
20789 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
20790
b0fe107e
JM
207912013-01-15 Joseph Myers <joseph@codesourcery.com>
20792 Mikael Pettersson <mikpe@it.uu.se>
20793
20794 PR target/43961
20795 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
20796 Thumb.
20797 (ASM_OUTPUT_CASE_LABEL): Remove.
20798 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
20799 * final.c (shorten_branches): Update alignment of labels before
20800 jump tables if CASE_VECTOR_SHORTEN_MODE.
20801
34ab62ee
RB
208022013-01-15 Richard Biener <rguenther@suse.de>
20803
20804 PR bootstrap/55961
20805 * system.h: Do not include gmp.h for building host tools.
20806
783a3a05
RB
208072013-01-15 Richard Biener <rguenther@suse.de>
20808
20809 PR middle-end/55882
20810 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
20811 account for bitpos when computing alignment.
20812
3a579e09
VY
208132013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
20814
20815 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
20816 (ix86_target_macros_internal): Likewise.
20817
20818 * config/i386/i386.c (m_CORE2I7): Removed.
20819 (m_CORE_HASWELL): New macro.
20820 (m_CORE_ALL): Likewise.
20821 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
20822 (initial_ix86_arch_features): Likewise.
20823 (processor_target_table): Initializations for Core avx2.
20824 (cpu_names): New names "core-avx2".
20825 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
20826 PROCESSOR_CORE_HASWELL.
20827 (ix86_issue_rate): New case.
20828 (ia32_multipass_dfa_lookahead): Likewise.
20829 (ix86_sched_init_global): Likewise.
20830
20831 * config/i386/i386.h (TARGET_HASWELL): New macro.
20832 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
20833 (processor_type): New PROCESSOR_HASWELL.
20834
955f5a07
JJ
208352013-01-15 Jakub Jelinek <jakub@redhat.com>
20836
ff784829
JJ
20837 PR tree-optimization/55955
20838 * tree-vect-loop.c (vectorizable_reduction): Give up early on
20839 *SHIFT_EXPR and *ROTATE_EXPR codes.
20840
955f5a07
JJ
20841 PR tree-optimization/48766
20842 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
20843 -ftrapv disable -fwrapv.
20844
aeb8b4e9
GJL
208452013-01-14 Georg-Johann Lay <avr@gjlay.de>
20846
20847 PR target/55974
20848 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
20849 etc. to 1 and not to __flash.
20850 Use LL suffix for __INT24_MAX__ with -mint8.
20851 Use ULL suffix for __UINT24_MAX__ with -mint8.
20852
1c494c6a
GJL
208532013-01-14 Georg-Johann Lay <avr@gjlay.de>
20854
20855 * config/avr/avr-arch.h
20856 (struct base_arch_s): Use typedef avr_arch_t instead.
20857 (struct arch_info_s): Use typedef avr_arch_info_t instead.
20858 (struct mcu_type_s): Use typedef avr_mcu_t instead.
20859 * config/avr/avr.c: Same.
20860 * config/avr/avr-devices.c: Same.
20861 * config/avr/driver-avr.c: Same.
20862 * config/avr/gen-avr-mmcu-texi.c: Same.
20863 * config/avr/avr-mcus.def: Adjust comment.
20864
a50344cb
TB
208652013-01-14 Tejas Belagod <tejas.belagod@arm.com>
20866
88e784e6
UB
20867 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
20868 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 20869
47876a2a 208702013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
20871 Andi Kleen <ak@linux.intel.com>
20872
20873 PR target/55948
20874 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
20875 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
20876 memmodel flag.
20877
00892272
GJL
208782013-01-14 Georg-Johann Lay <avr@gjlay.de>
20879
20880 * config/avr/avr-stdint.h: Remove trailing blanks.
20881 * config/avr/avr-log.h: Same.
20882 * config/avr/avr-arch.h: Same.
20883 * config/avr/avr-devices.c: Same.
20884 * config/avr/avr-dimode.md: Same.
20885 * config/avr/predicates.md: Same.
20886 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 20887
00892272
GJL
20888 * config/avr/avr-protos.h: Same. And:
20889 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
20890 (init_cumulative_args): Rename to avr_init_cumulative_args.
20891 (expand_prologue): Rename to avr_expand_prologue.
20892 (expand_epilogue): Rename to avr_expand_epilogue.
20893 (adjust_insn_length): Rename to avr_adjust_insn_length.
20894 (notice_update_cc): Rename to avr_notice_update_cc.
20895 (final_prescan_insn): Rename to avr_final_prescan_insn.
20896 * config/avr/avr.c: Same.
20897 * config/avr/avr.h: Same.
20898 * config/avr/avr.md: Remove trailing blanks.
20899 (prologue): Use avr_expand_prologue.
20900 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
20901
7bb01996
RB
209022013-01-14 Richard Biener <rguenther@suse.de>
20903
20904 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
20905 verify_location, collect_subblocks): New functions.
20906 (verify_gimple_in_cfg): Verify that locations only reference
20907 BLOCKs in the functions BLOCK tree.
20908
2724573f
RB
209092013-01-14 Richard Biener <rguenther@suse.de>
20910
20911 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
20912 PHI argument.
20913 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
20914 unshare reference.
20915 (insert_out_of_ssa_copy_on_edge): Likewise.
20916 (rewrite_close_phi_out_of_ssa): Likewise.
20917 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
20918 debug expressions.
20919 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
20920 propagated constants.
20921 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
20922 can not be shared.
20923
9a0bbab6
GJL
209242013-01-14 Georg-Johann Lay <avr@gjlay.de>
20925
20926 * config/avr/avr-modes.def: Add GPL copyright notice.
20927
45805f17
UB
209282013-01-13 Uros Bizjak <ubizjak@gmail.com>
20929
20930 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
20931 MEMMODEL_MASK to determine memory model.
20932 (atomic_store<mode>): Ditto from operands[2].
20933 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
20934
9d60be38
JJ
209352013-01-13 Jakub Jelinek <jakub@redhat.com>
20936
20937 PR fortran/55935
45805f17 20938 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
20939 (fold_gimple_assign): Don't call unshare_expr here.
20940 (fold_ctor_reference): Call unshare_expr.
20941
e7f49d92
TG
209422013-01-13 Terry Guo <terry.guo@arm.com>
20943
aaf1e810
EB
20944 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
20945 * doc/fragments.texi: Document MULTILIB_REUSE.
20946 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 20947 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 20948 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
20949 (tmpmultilib4): Ditto.
20950 (multilib_reuse): New multilib argument.
20951
fbd03a27
RS
209522013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
20953
20954 * Makefile.in: Update copyright.
20955
b3681f13
TV
209562013-01-12 Tom de Vries <tom@codesourcery.com>
20957
20958 PR middle-end/55890
20959 * calls.c (expand_call): Check if arg_nr is valid.
20960
3f287e4b
MM
209612013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20962
20963 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
20964 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
20965 documentation. Add missing '__' in front of
20966 __builtin_ia32_packssdw256.
3f287e4b 20967
1abcd5eb
AK
209682013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20969
20970 PR target/55719
20971 * config/s390/s390.c (s390_preferred_reload_class): Do not return
20972 NO_REGS for larl operands.
20973 (s390_reload_larl_operand): Use s390_load_address instead of
20974 emit_move_insn.
20975
980d0812
RB
209762013-01-11 Richard Biener <rguenther@suse.de>
20977
20978 * tree-cfg.c (verify_node_sharing_1): Split out from ...
20979 (verify_node_sharing): ... here.
20980 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
20981
7cb9fd07
EB
209822013-01-11 Eric Botcazou <ebotcazou@adacore.com>
20983
20984 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
20985 Substitute TREECHECKING.
20986 * configure: Regenerate.
20987 * Makefile.in (TREECHECKING): New.
20988
47876a2a 209892013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
20990
20991 PR tree-optimization/44061
20992 * tree-vrp.c (extract_range_basic): Compute zero as
20993 value-range for __builtin_constant_p of function parameters.
20994
d1e082c2
RS
209952013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
20996
45805f17 20997 Update copyright years.
d1e082c2 20998
f85021b0
VM
209992013-01-10 Vladimir Makarov <vmakarov@redhat.com>
21000
9d60be38 21001 PR rtl-optimization/55672
0160442c
VM
21002 * lra-eliminations.c (mark_not_eliminable): Permit addition with
21003 const to be eliminable.
f85021b0 21004
7a8b1ec4
DE
210052013-01-10 David Edelsohn <dje.gcc@gmail.com>
21006
21007 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
21008 * configure: Regenerate.
21009
ad2e5b71
RB
210102013-01-10 Richard Biener <rguenther@suse.de>
21011
ddf9322d 21012 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 21013
ffc5b2bb
RB
210142013-01-10 Richard Biener <rguenther@suse.de>
21015
21016 PR bootstrap/55792
21017 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
21018 locations for virtual PHI arguments.
21019 (rewrite_update_phi_arguments): Likewise.
21020
e1f674e4
JS
210212013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
21022
21023 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
21024 on to assembler.
21025
a57fc743
JJ
210262013-01-10 Jakub Jelinek <jakub@redhat.com>
21027
21028 PR tree-optimization/55921
21029 * tree-complex.c (expand_complex_asm): New function.
21030 (expand_complex_operations_1): Call it for GIMPLE_ASM.
21031
0ff4390d
AK
210322013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21033
21034 PR target/55718
21035 * config/s390/s390.c (s390_symref_operand_p)
21036 (s390_loadrelative_operand_p): Merge the two functions.
21037 (s390_check_qrst_address, print_operand_address): Add parameters
21038 to s390_loadrelative_operand_p invokation.
21039 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
21040 (s390_reload_larl_operand, s390_secondary_reload): Use
21041 s390_loadrelative_operand_p instead of s390_symref_operand_p.
21042 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
21043
6f557e0e
MS
210442013-01-09 Mike Stump <mikestump@comcast.net>
21045
21046 * dse.c (record_store): Remove unnecessary assert.
21047
7770c9e9
JH
210482013-01-09 Jan Hubicka <jh@suse.cz>
21049
21050 PR tree-optimization/55569
21051 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
21052 * cfgloop.h (scale_loop_profile): Likewise.
21053
a19b1432
JH
210542013-01-09 Jan Hubicka <jh@suse.cz>
21055
21056 PR lto/45375
ddf9322d
UB
21057 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
21058 functions.
a19b1432
JH
21059 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
21060
9a002da8
RS
210612013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
21062
21063 PR middle-end/55114
21064 * expr.h (maybe_emit_group_store): Declare.
21065 * expr.c (maybe_emit_group_store): New function.
21066 * builtins.c (expand_builtin_int_roundingfn): Call it.
21067 (expand_builtin_int_roundingfn_2): Likewise.
21068
511dcace
VM
210692013-01-09 Vladimir Makarov <vmakarov@redhat.com>
21070
e1f2b729 21071 PR rtl-optimization/55829
511dcace
VM
21072 * lra-constraints.c (match_reload): Add code for absent output.
21073 (curr_insn_transform): Add code for reloads of matched inputs
21074 without output.
21075
7b0fe4f4
UB
210762013-01-09 Uros Bizjak <ubizjak@gmail.com>
21077
21078 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
21079 attribute of movddup insn to DF.
21080 (*vec_interleave_lowv2df): Ditto.
21081 (vec_dupv2df): Ditto.
21082
870ca331
JH
210832013-01-09 Jan Hubicka <jh@suse.cz>
21084
21085 PR tree-optimiation/55875
21086 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
21087 EVERY_ITERATION parameter.
7b0fe4f4 21088 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
21089 (idx_infer_loop_bounds): Similarly here.
21090 (n_of_executions_at_most): Simplify
21091 to only test for cases where statement is dominated by the
7b0fe4f4 21092 particular bound; handle correctly the "postdominance" test.
870ca331
JH
21093 (scev_probably_wraps_p): Use max loop iterations info
21094 as a global bound first.
21095
6f575fe4 210962013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
21097 Nick Clifton <nickc@redhat.com>
21098
21099 * config/v850/v850.md (cbranchsf4): New pattern.
21100 (cstoresf4): New pattern.
21101 (cbranchdf4): New pattern.
21102 (cstoredf4): New pattern.
21103 (movsicc): Disallow floating point comparisons.
21104 (cmpsf_le_insn): Fix order of operators.
21105 (cmpsf_lt_insn): Likewise.
21106 (cmpsf_eq_insn): Likewise.
21107 (cmpdf_le_insn): Likewise.
21108 (cmpdf_lt_insn): Likewise.
21109 (cmpdf_eq_insn): Likewise.
21110 (cmpsf_ge_insn): Use LE comparison.
21111 (cmpdf_ge_insn): Likewise.
21112 (cmpsf_gt_insn): Use LT comparison.
21113 (cmpdf_gt_insn): Likewise.
21114 (cmpsf_ne_insn): Delete pattern.
21115 (cmpdf_ne_insn): Delete pattern.
21116 * config/v850/v850.c (v850_gen_float_compare): Use
21117 gen_cmpdf_eq_insn for NE comparison.
21118 (v850_float_z_comparison_operator)
21119 (v850_float_nz_comparison_operator): Move from here ...
21120 * config/v850/predicates.md: ... to here. Move GT and GE
21121 comparisons into v850_float_z_comparison_operator.
21122 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
21123 Delete prototype.
21124 (v850_float_nz_comparison_operator): Likewise.
21125
f0d54148
JDA
211262013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21127
21128 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
21129 with calls to gen_insvsi/gen_insvdi.
21130
8f01beca
VK
211312013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21132
21133 * config/i386/i386.c (initial_ix86_tune_features): Set up
21134 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
21135
2aa579ad
JJ
211362013-01-09 Steven Bosscher <steven@gcc.gnu.org>
21137 Jakub Jelinek <jakub@redhat.com>
21138
21139 PR tree-optimization/48189
21140 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
21141 If nitercst is 0, don't predict the exit edge.
21142
6edc3e32 211432013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
21144
21145 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
21146 in asm_fprintf with reg_names.
21147 (aarch64_print_operand_address): Likewise.
21148 (aarch64_return_addr): Likewise.
21149 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
21150
f6f94d94
JDA
211512013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21152
21153 * config/pa/pa.h (VAL_U6_BITS_P): Define.
21154 (INT_U6_BITS): Likewise.
21155 * config/pa/predicates.md (uint6_operand): New predicate.
21156 (shift5_operand, shift6_operand): Likewise.
21157 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
21158 arith32_operand.
21159 (lshrdi3): Use shift6_operand.
21160 (shrpsi4, shrpdi4): New insn patterns.
21161 (extzv): Delete expander.
21162 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
21163 predicates in unamed zero extract patterns. Tighten common constraint.
21164 (extv): Delete expander.
21165 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
21166 predicates in unamed sign extract patterns. Tighten common constraint.
21167 (insv): Delete expander.
21168 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
21169 predicates in unamed insert patterns. Tighten common constraint.
21170 Change uint32_operand predicate to uint6_operand predicate in unamed
21171 DImode pattern to insert constant values of type 1...1xxxx.
21172
36b72910
JH
211732013-01-04 Jan Hubicka <jh@suse.cz>
21174
21175 PR tree-optimization/55823
7b0fe4f4
UB
21176 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
21177 issue.
36b72910 21178
47876a2a 211792013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
21180 Uros Bizjak <ubizjak@gmail.com>
21181
21182 PR rtl-optimization/55845
21183 * df-problems.c (can_move_insns_across): Stop scanning at
21184 volatile_insn_p source instruction or give up if
21185 across_from .. across_to range contains any volatile_insn_p
21186 instructions.
21187
4369c11e
TB
211882013-01-08 Tejas Belagod <tejas.belagod@arm.com>
21189
7b0fe4f4
UB
21190 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
21191 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
21192 Declare.
4369c11e 21193 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 21194 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 21195
aeb7e7c1
JJ
211962013-01-08 Jakub Jelinek <jakub@redhat.com>
21197
21198 PR fortran/55341
21199 * asan.c (asan_clear_shadow): New function.
21200 (asan_emit_stack_protection): Use it.
21201
a02ad1aa
TB
212022013-01-08 Tejas Belagod <tejas.belagod@arm.com>
21203
21204 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
21205 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
21206 with tab instead of space.
21207
f90d87f5
NC
212082013-01-08 Nick Clifton <nickc@redhat.com>
21209
21210 * config/rl78/rl78.c (rl78_expand_prologue): Always select
21211 register bank 0 at the start of an interrupt handler.
83ffd964
NC
21212 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
21213 MDBH registers.
f90d87f5 21214
385eb93d
JG
212152013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
21216
21217 * config/aarch64/aarch64-simd.md
21218 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
21219 (aarch64_simd_bsl): Likewise.
21220 (aarch64_vcond_internal<mode>): Likewise.
21221 (vcond<mode><mode>): Likewise.
21222 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
21223 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
21224
4dcd1054
JG
212252013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
21226
21227 * config/aarch64/aarch64-builtins.c
21228 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
21229
4267a4a6
MJ
212302013-01-08 Martin Jambor <mjambor@suse.cz>
21231
21232 PR debug/55579
21233 * tree-sra.c (analyze_access_subtree): Return true also after
21234 potentially creating a debug-only replacement.
21235
5f4e6de3
JJ
212362013-01-08 Jakub Jelinek <jakub@redhat.com>
21237
3138f224
JJ
21238 PR middle-end/55890
21239 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
21240
5f4e6de3
JJ
21241 PR tree-optimization/54120
21242 * tree-vrp.c (range_fits_type_p): Don't allow
21243 src_precision < precision from signed vr to unsigned_p
21244 if vr->min or vr->max is negative.
21245 (simplify_float_conversion_using_ranges): Test can_float_p
21246 against CODE_FOR_nothing.
21247
f3ef18ff
JJ
212482013-01-08 Jakub Jelinek <jakub@redhat.com>
21249 Richard Biener <rguenther@suse.de>
21250
21251 PR middle-end/55851
21252 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
21253 types instead of just INTEGER_TYPE types.
21254
25c210f9
MK
212552013-01-07 Mark Kettenis <kettenis@openbsd.org>
21256
21257 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
21258 TF_SIZE): Define.
f90d87f5 21259
81826a7b
SE
212602013-01-07 Steve Ellcey <sellcey@mips.com>
21261
21262 PR target/42661
21263 * config/mips/mips.opt: Change mad to mmad to match documentation.
21264
35678514
GJL
212652013-01-07 Georg-Johann Lay <avr@gjlay.de>
21266
21267 PR target/55897
21268 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
21269 .progmemx.data now.
21270
e5669488
GJL
212712013-01-07 Georg-Johann Lay <avr@gjlay.de>
21272
21273 PR target/55897
21274 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
21275 (avr_addrspace_t): Add .section_name field.
21276 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
21277 array size.
21278 (avr_addrspace): Same. Initialize .section_name. Remove last
21279 NULL entry. Put __memx into .progmemx.data.
21280 (progmem_section_prefix): Remove.
21281 (avr_asm_init_sections): No need to initialize progmem_section.
21282 (avr_asm_named_section): Use avr_addrspace[].section_name to get
21283 section name prefix.
21284 (avr_asm_select_section): Ditto. And use get_unnamed_section to
21285 retrieve the progmem section.
21286 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
21287 boundary to run over avr_addrspace[].
21288 (avr_register_target_pragmas): Ditto.
21289
656e6f37
JJ
212902013-01-06 Jakub Jelinek <jakub@redhat.com>
21291
21292 * varasm.c (output_constant_def_contents): For asan_protect_global
21293 protected strings, adjust DECL_ALIGN if needed, before testing for
21294 anchored symbols.
21295 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
21296 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
21297 normal decls.
21298 (output_object_block): For asan protected decls, emit asan padding
21299 after their contents.
21300 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
21301 (asan_finish_file): Test it here instead.
21302
6edc3e32
UB
213032013-01-07 Nick Clifton <nickc@redhat.com>
21304 Matthias Klose <doko@debian.org>
21305 Doug Kwan <dougkwan@google.com>
21306 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
21307
21308 PR driver/55470
21309 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
21310
21311 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
21312
21313 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
21314
7b0fe4f4 21315 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
21316
21317 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
21318
2a095093
GJL
213192013-01-07 Georg-Johann Lay <avr@gjlay.de>
21320
f3b503f4 21321 PR target/54461
2a095093
GJL
21322 * doc/install.texi (Cross-Compiler-Specific Options): Document
21323 --with-avrlibc.
21324
383f9b34
TB
213252013-01-07 Tejas Belagod <tejas.belagod@arm.com>
21326
21327 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
21328 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
21329 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
21330 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
21331 vqmovun_high_s64): Fix source operand number and update copyright.
21332
3626621a
RB
213332013-01-07 Richard Biener <rguenther@suse.de>
21334
21335 PR middle-end/55890
21336 * gimple.h (gimple_call_builtin_p): New overload.
21337 * gimple.c (validate_call): New function.
21338 (gimple_call_builtin_p): Likewise.
21339 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21340 Use gimple_call_builtin_p.
21341 (find_func_clobbers): Likewise.
21342 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
21343 (strlen_optimize_stmt): Likewise.
21344
8b2ea410
JG
213452013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
21346
21347 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
21348 (vld1q_dup_*): Likewise.
21349 (vld1_*): Likewise.
21350 (vld1q_*): Likewise.
21351 (vld1_lane_*): Likewise.
21352 (vld1q_lane_*): Likewise.
21353
9713d329
RB
213542013-01-07 Richard Biener <rguenther@suse.de>
21355
21356 * lto-streamer.h (LTO_minor_version): Bump to 2.
21357
3520f7cc
JG
213582013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
21359
21360 * config/aarch64/aarch64-protos.h
21361 (aarch64_const_double_zero_rtx_p): Rename to...
21362 (aarch64_float_const_zero_rtx_p): ...this.
21363 (aarch64_float_const_representable_p): New.
21364 (aarch64_output_simd_mov_immediate): Likewise.
21365 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
21366 move immediate case.
21367 * config/aarch64/aarch64.c
21368 (aarch64_const_double_zero_rtx_p): Rename to...
21369 (aarch64_float_const_zero_rtx_p): ...this.
21370 (aarch64_print_operand): Allow printing of new constants.
21371 (aarch64_valid_floating_const): New.
21372 (aarch64_legitimate_constant_p): Check for valid floating-point
21373 constants.
21374 (aarch64_simd_valid_immediate): Likewise.
21375 (aarch64_vect_float_const_representable_p): New.
21376 (aarch64_float_const_representable_p): Likewise.
21377 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
21378 (aarch64_output_simd_mov_immediate): New.
21379 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
21380 (*movdf_aarch64): Likewise.
21381 * config/aarch64/constraints.md (Ufc): New.
21382 (Y): call aarch64_float_const_zero_rtx.
21383 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
21384
e167c04d
RB
213852013-01-07 Richard Biener <rguenther@suse.de>
21386
21387 PR tree-optimization/55888
21388 PR tree-optimization/55862
21389 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
21390 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
21391 not if it is contained therein.
21392
0139aaab
GJL
213932013-01-07 Georg-Johann Lay <avr@gjlay.de>
21394
21395 * config/avr/t-avr: Typo.
21396
4a176b23
GJL
213972013-01-07 Georg-Johann Lay <avr@gjlay.de>
21398
21399 PR55243
21400 * config/avr/t-avr: Don't automatically rebuild
21401 $(srcdir)/config/avr/t-multilib
21402 $(srcdir)/config/avr/avr-tables.opt
21403 $(srcdir)/doc/avr-mmcu.texi
21404 (avr-mcus): New phony target to build them on request.
21405 (s-avr-mlib, s-avr-mmcu-texi): Remove.
21406 * avr/avr-mcus.def: Adjust comments.
21407
c7afdc98
UB
214082013-01-07 Uros Bizjak <ubizjak@gmail.com>
21409
21410 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
21411
1ab05c31
RS
214122013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21413
21414 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
21415
488e3acc
RS
214162013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21417
21418 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
21419
a89599d2
DE
214202013-01-05 David Edelsohn <dje.gcc@gmail.com>
21421
21422 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
21423 to generate profiling.
21424 * config/rs6000/aix64.h (LIB_SPEC): Same.
21425
70f09188
AP
214262013-01-04 Andrew Pinski <apinski@cavium.com>
21427
21428 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
21429 New function.
21430 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
21431
918d445f
UB
214322013-01-04 Uros Bizjak <ubizjak@gmail.com>
21433
21434 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
21435 unconditionally.
21436 (ix86_expand_move): Ditto.
21437 (ix86_zero_extend_to_Pmode): Ditto.
21438 (ix86_expand_call): Ditto.
21439 (ix86_expand_special_args_builtin): Ditto.
21440 (ix86_expand_builtin): Ditto.
21441
361618ec
RB
214422013-01-04 Richard Biener <rguenther@suse.de>
21443
21444 PR tree-optimization/55862
21445 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
21446 translating them through PHI nodes.
21447
87eab554
MJ
214482013-01-04 Martin Jambor <mjambor@suse.cz>
21449
21450 PR tree-optimization/55755
21451 * tree-sra.c (sra_modify_assign): Do not check that an access has no
21452 children when trying to avoid producing a VIEW_CONVERT_EXPR.
21453
33879b9f
MP
214542013-01-04 Marek Polacek <polacek@redhat.com>
21455
21456 PR middle-end/55859
21457 * opts.c (default_options_optimization): Clarify error message.
21458
3068819a
RB
214592013-01-04 Richard Biener <rguenther@suse.de>
21460
21461 PR middle-end/55863
21462 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
21463 reassociation.
21464
0e4ae794
JDA
214652013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21466
21467 PR target/53789
21468 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
21469 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
21470 references.
0e4ae794 21471
65c88cef
RH
214722013-01-03 Richard Henderson <rth@redhat.com>
21473
21474 * config/i386/i386.c (ix86_expand_move): Always assign to op1
21475 after eliminating TLS symbols.
21476
8ac16127
MG
214772013-01-03 Marc Glisse <marc.glisse@inria.fr>
21478
21479 PR bootstrap/50167
21480 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
21481 * graphite-poly.c (debug_gmp_value): Likewise.
21482
bb664f09
UB
214832013-01-03 Uros Bizjak <ubizjak@gmail.com>
21484
21485 PR target/55712
21486 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
21487 selected code model, define __code_mode_small__, __code_model_medium__,
21488 __code_model_large__, __code_model_32__ or __code_model_kernel__.
21489 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
21490 xchg temporary register with %k. Declare temporary register as
21491 early clobbered.
21492 [__x86_64__]: For medium and large code models, preserve %rbx register.
21493
bcf1ef00
RB
214942013-01-03 Richard Biener <rguenther@suse.de>
21495
0506634a 21496 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
21497 (dump_subscript): Adjust.
21498 (finalize_ddr_dependent): Do not dump redundant info.
21499 (analyze_siv_subscript): Adjust.
21500 (subscript_dependence_tester): Likewise.
21501 (compute_affine_dependence): Likewise.
21502
59fd17e3
RB
215032013-01-03 Richard Biener <rguenther@suse.de>
21504
21505 Revert
21506 2013-01-03 Richard Biener <rguenther@suse.de>
21507
21508 PR tree-optimization/55857
21509 * tree-vect-stmts.c (vectorizable_load): Do not setup
21510 re-alignment for invariant loads.
21511
21512 2013-01-02 Richard Biener <rguenther@suse.de>
21513
21514 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 21515 invariant load do not generate a vector load from the scalar location.
59fd17e3 21516
595c2679
RB
215172013-01-03 Richard Biener <rguenther@suse.de>
21518
21519 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
21520 for not vectorizing.
21521 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21522 not build INDIRECT_REFs, call get_name once only.
21523 (vect_create_data_ref_ptr): Likewise. Dump base object kind
21524 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
21525
90bb7d7a
RB
215262013-01-03 Richard Biener <rguenther@suse.de>
21527
21528 PR tree-optimization/55857
21529 * tree-vect-stmts.c (vectorizable_load): Do not setup
21530 re-alignment for invariant loads.
21531
f09b77ca
RB
215322013-01-03 Richard Biener <rguenther@suse.de>
21533
21534 PR lto/55848
21535 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
21536 prefer a built-in decl.
21537
3461a16e
JJ
215382013-01-03 Jakub Jelinek <jakub@redhat.com>
21539
df8e2b4f
JJ
21540 * gcc.c (process_command): Update copyright notice dates.
21541 * gcov.c (print_version): Likewise.
21542 * gcov-dump.c (print_version): Likewise.
21543
3461a16e
JJ
21544 PR rtl-optimization/55838
21545 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
21546 iv0.step, iv1.step and step.
21547
8b5546d6
JJ
215482013-01-03 Jakub Jelinek <jakub@redhat.com>
21549 Marc Glisse <marc.glisse@inria.fr>
21550
21551 PR tree-optimization/55832
21552 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
21553 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
21554 integer_{one,zero}_node.
21555
8ab1d2e9
JJ
215562013-01-03 Jakub Jelinek <jakub@redhat.com>
21557
21558 PR debug/54402
21559 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
21560 * var-tracking.c (reverse_op): Don't add reverse ops to
21561 VALUEs that have already
0506634a 21562 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 21563
5b9ad1d4
GP
215642013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
21565
21566 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
21567
e25a6711
TJ
215682013-01-02 Teresa Johnson <tejohnson@google.com>
21569
21570 * dumpfile.c (dump_loc): Print filename with location.
21571 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
21572 new location_t parameter to emit complete unroll message with
21573 new dump framework.
21574 (canonicalize_loop_induction_variables): Compute loops location
21575 and pass to try_unroll_loop_completely.
21576 * loop-unroll.c (report_unroll_peel): New function.
21577 (peel_loops_completely): Use new dump format with location
21578 for main dumpfile message, and invoke report_unroll_peel on success.
21579 (decide_unrolling_and_peeling): Ditto.
21580 (decide_peel_once_rolling): Remove old dumpfile message subsumed
21581 by report_unroll_peel.
21582 (decide_peel_completely): Ditto.
21583 (decide_unroll_constant_iterations): Ditto.
21584 (decide_unroll_runtime_iterations): Ditto.
21585 (decide_peel_simple): Ditto.
21586 (decide_unroll_stupid): Ditto.
21587 * cfgloop.c (get_loop_location): New function.
21588 * cfgloop.h (get_loop_location): Declare.
21589
77878621
ST
215902013-01-02 Sriraman Tallam <tmsriram@google.com>
21591
21592 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
21593 NULL.
21594
9e65d03e
JDA
215952013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21596
21597 PR middle-end/55198
21598 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
21599 BLKmode objects when EXPAND_MEMORY is specified.
21600
6a7da30f
ST
216012013-01-02 Sriraman Tallam <tmsriram@google.com>
21602
21603 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
21604 in loop predicate.
21605 (fold_builtin_cpu): Do not share cpu model decls across statements.
21606
e78167f2
JM
216072013-01-02 Jason Merrill <jason@redhat.com>
21608
21609 PR c++/55804
21610 * tree.c (build_array_type_1): Revert earlier change.
21611
8c075fb4
YZ
216122013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
21613
21614 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
21615 "cortex-a57".
21616 * config/aarch64/aarch64-tune.md: Re-generate.
21617
0682ed3e
RB
216182013-01-02 Richard Biener <rguenther@suse.de>
21619
21620 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 21621 invariant load do not generate a vector load from the scalar location.
0682ed3e 21622
b8f6a302
RB
216232013-01-02 Richard Biener <rguenther@suse.de>
21624
21625 PR bootstrap/55784
21626 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
21627 * configure: Regenerate.
21628
04b80dbb
RS
216292013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
21630
21631 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
21632 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
21633 (expand_builtin_int_roundingfn_2): Keep the original target around
21634 for the fallback case.
21635
635b0b0c
RS
216362013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
21637
21638 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
21639 to be clear for sign changes.
21640
42d57399
JH
216412013-01-01 Jan Hubicka <jh@suse.cz>
21642
21643 * ipa-inline-analysis.c: Fix formatting.
21644
5bb6669d
JJ
216452013-01-01 Jakub Jelinek <jakub@redhat.com>
21646
21647 PR tree-optimization/55831
21648 * tree-vect-loop.c (get_initial_def_for_induction): Use
21649 gsi_after_labels instead of gsi_start_bb.
ad41bd84 21650\f
86a2db33 21651Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
21652
21653Copying and distribution of this file, with or without modification,
21654are permitted in any medium without royalty provided the copyright
21655notice and this notice are preserved.