]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
ipa-inline-analysis.c (find_foldable_builtin_expect): Find the candidate of builtin_e...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
111c3f39
RX
12013-10-03 Rong Xu <xur@google.com>
2
3 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
4 the candidate of builtin_expect such that we should fix the
5 size/time estimation.
6 (estimate_function_body_sizes): Do the acutally size/time fix-up
7 for builtin_expect.
8
942df739
RX
92013-10-03 Rong Xu <xur@google.com>
10
11 * predict.c (tree_predict_by_opcode): Get the probability
12 for builtin_expect from param builtin_expect_probability.
13 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
14 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
15 * doc/invoke.texi: Add documentation for builtin-expect-probability.
16 * gcc.target/i386/cold-attribute-2.c: Fix the test by using original
17 probability.
18 * gcc.dg/tree-ssa/ipa-split-5.c: Ditto.
19 * gcc.dg/tree-ssa/ipa-split-6.c: Ditto.
20
2284b034
MG
212013-10-03 Marc Glisse <marc.glisse@inria.fr>
22
23 PR c++/19476
24 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
25 * calls.c (alloca_call_p): Use get_callee_fndecl.
26 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
27 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
28 Likewise.
29 (vrp_visit_stmt): Remove duplicated code.
30
0609bdf2
MM
312013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
32
33 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
34 ceildf2, btruncdf2, instead of vsx_* name.
35
36 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
37 iterators to only do V2DF and V4SF here. Move the DF code to
38 rs6000.md where it is combined with SF mode. Replace <VSv> with
39 just 'v' since only vector operations are handled with these insns
40 after moving the DF support to rs6000.md.
41 (vsx_sub<mode>3): Likewise.
42 (vsx_mul<mode>3): Likewise.
43 (vsx_div<mode>3): Likewise.
44 (vsx_fre<mode>2): Likewise.
45 (vsx_neg<mode>2): Likewise.
46 (vsx_abs<mode>2): Likewise.
47 (vsx_nabs<mode>2): Likewise.
48 (vsx_smax<mode>3): Likewise.
49 (vsx_smin<mode>3): Likewise.
50 (vsx_sqrt<mode>2): Likewise.
51 (vsx_rsqrte<mode>2): Likewise.
52 (vsx_fms<mode>4): Likewise.
53 (vsx_nfma<mode>4): Likewise.
54 (vsx_copysign<mode>3): Likewise.
55 (vsx_btrunc<mode>2): Likewise.
56 (vsx_floor<mode>2): Likewise.
57 (vsx_ceil<mode>2): Likewise.
58 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
59 (vsx_sminsf3): Likewise.
60 (vsx_fmadf4): Likewise.
61 (vsx_fmsdf4): Likewise.
62 (vsx_nfmadf4): Likewise.
63 (vsx_nfmsdf4): Likewise.
64 (vsx_cmpdf_internal1): Likewise.
65
66 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
67 simpler to select whether a target has SPE or traditional floating
68 point support in iterators.
69 (TARGET_DF_SPE): Likewise.
70 (TARGET_SF_FPR): Likewise.
71 (TARGET_DF_FPR): Likewise.
72 (TARGET_SF_INSN): Macros to say whether floating point support
73 exists for a given operation for expanders.
74 (TARGET_DF_INSN): Likewise.
75
76 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
77 combining of SF/DF mode operations, using both traditional and VSX
78 registers.
79 (Fvsx): Likewise.
80 (Ff): Likewise.
81 (Fv): Likewise.
82 (Fs): Likewise.
83 (Ffre): Likewise.
84 (FFRE): Likewise.
85 (abs<mode>2): Combine SF/DF modes using traditional floating point
86 instructions. Add support for using the upper DF registers with
87 VSX support, and SF registers with power8-vector support. Update
88 expanders for operations supported by both the SPE and traditional
89 floating point units.
90 (abs<mode>2_fpr): Likewise.
91 (nabs<mode>2): Likewise.
92 (nabs<mode>2_fpr): Likewise.
93 (neg<mode>2): Likewise.
94 (neg<mode>2_fpr): Likewise.
95 (add<mode>3): Likewise.
96 (add<mode>3_fpr): Likewise.
97 (sub<mode>3): Likewise.
98 (sub<mode>3_fpr): Likewise.
99 (mul<mode>3): Likewise.
100 (mul<mode>3_fpr): Likewise.
101 (div<mode>3): Likewise.
102 (div<mode>3_fpr): Likewise.
103 (sqrt<mode>3): Likewise.
104 (sqrt<mode>3_fpr): Likewise.
105 (fre<Fs>): Likewise.
106 (rsqrt<mode>2): Likewise.
107 (cmp<mode>_fpr): Likewise.
108 (smax<mode>3): Likewise.
109 (smin<mode>3): Likewise.
110 (smax<mode>3_vsx): Likewise.
111 (smin<mode>3_vsx): Likewise.
112 (negsf2): Delete SF operations that are merged with DF.
113 (abssf2): Likewise.
114 (addsf3): Likewise.
115 (subsf3): Likewise.
116 (mulsf3): Likewise.
117 (divsf3): Likewise.
118 (fres): Likewise.
119 (fmasf4_fpr): Likewise.
120 (fmssf4_fpr): Likewise.
121 (nfmasf4_fpr): Likewise.
122 (nfmssf4_fpr): Likewise.
123 (sqrtsf2): Likewise.
124 (rsqrtsf_internal1): Likewise.
125 (smaxsf3): Likewise.
126 (sminsf3): Likewise.
127 (cmpsf_internal1): Likewise.
128 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
129 (negdf2): Delete DF operations that are merged with SF.
130 (absdf2): Likewise.
131 (nabsdf2): Likewise.
132 (adddf3): Likewise.
133 (subdf3): Likewise.
134 (muldf3): Likewise.
135 (divdf3): Likewise.
136 (fred): Likewise.
137 (rsqrtdf_internal1): Likewise.
138 (fmadf4_fpr): Likewise.
139 (fmsdf4_fpr): Likewise.
140 (nfmadf4_fpr): Likewise.
141 (nfmsdf4_fpr): Likewise.
142 (sqrtdf2): Likewise.
143 (smaxdf3): Likewise.
144 (smindf3): Likewise.
145 (cmpdf_internal1): Likewise.
146 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
147 (btrunc<mode>2): Delete separate expander, and combine with the
148 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
149 (btrunc<mode>2_fpr): Likewise.
150 (ceil<mode>2): Likewise.
151 (ceil<mode>2_fpr): Likewise.
152 (floor<mode>2): Likewise.
153 (floor<mode>2_fpr): Likewise.
154 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
155 Add support for using the upper registers with VSX and
156 power8-vector. Move insns to be closer to the define_expands. On
157 VSX systems, prefer the traditional form of FMA over the VSX
158 version, since the traditional form allows the target not to
159 overlap with the inputs.
160 (fms<mode>4_fpr): Likewise.
161 (nfma<mode>4_fpr): Likewise.
162 (nfms<mode>4_fpr): Likewise.
163
5bea0c6c
KT
1642013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
165 Richard Earnshaw <richard.earnshaw@arm.com>
166
167 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
168 (struct mult_cost_table): Likewise.
169 (struct mem_cost_table): Likewise.
170 (struct fp_cost_table): Likewise.
171 (struct vector_cost_table): Likewise.
172 (cpu_cost_table): Likewise.
173 * config/arm/arm.opt (mold-rts-costs): New option.
174 (mnew-generic-costs): Likewise.
175 * config/arm/arm.c (generic_extra_costs): New table.
176 (cortexa15_extra_costs): Likewise.
177 (arm_slowmul_tune): Use NULL as new costs.
178 (arm_fastmul_tune): Likewise.
179 (arm_strongarm_tune): Likewise.
180 (arm_xscale_tune): Likewise.
181 (arm_9e_tune): Likewise.
182 (arm_v6t2_tune): Likewise.
183 (arm_cortex_a5_tune): Likewise.
184 (arm_cortex_a9_tune): Likewise.
185 (arm_v6m_tune): Likewise.
186 (arm_fa726te_tune): Likewise.
187 (arm_cortex_a15_tune): Use cortex15_extra_costs.
188 (arm_cortex_tune): Use generict_extra_costs.
189 (shifter_op_p): New function.
190 (arm_unspec_cost): Likewise.
191 (LIBCALL_COST): Define.
192 (arm_new_rtx_costs): New function.
193 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
194 table is available. Use old costs otherwise unless mnew-generic-costs
195 is specified.
196 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
197 (cpu_cost_table): Declare.
198
24c56925
MS
1992013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
200
201 PR target/58460
202 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
203 (*subs_mul_imm_<mode>)
204 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
205 (*sub_<shift>_<mode>)
206 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
207 Remove k constraint.
208
2ab8f063
IB
2092013-10-03 Ian Bolton <ian.bolton@arm.com>
210
211 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
212 code.
213 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
214
79221839
TJ
2152013-10-02 Teresa Johnson <tejohnson@google.com>
216
217 * predict.c (probably_never_executed): New function.
218 (probably_never_executed_bb_p): Invoke probably_never_executed.
219 (probably_never_executed_edge_p): Ditto.
220 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
221 Treat profile insanities conservatively.
222
d441afe0
JDA
2232013-10-02 John David Anglin <danglin@gcc.gnu.org>
224
225 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
226
80f466c4
VM
2272013-10-02 Vladimir Makarov <vmakarov@redhat.com>
228
229 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
230 use it. Use smaller increase for scratch. Don't increase reject
231 for early clobber scratch.
232 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
233 setting eliminated regs except setting fp from hfp.
234 (lra_eliminate): Check lra_insn_recog_data on NULL.
235
6e228b4b
MM
2362013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
237
238 PR target/58587
239 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
240 setting -mvsx-timode by default until the underlying problem is
241 fixed.
242 (RS6000_CPU, power7 defaults): Likewise.
243
11b54a5a
UB
2442013-10-02 Uros Bizjak <ubizjak@gmail.com>
245
246 * config/x-linux (host-linux.o): Remove header dependencies.
247 Use $(COMPILE) and $(POSTCOMPILE).
248 * config/t-linux-android (linux-android.o): Ditto.
249
bbc02b69
UB
2502013-10-02 Uros Bizjak <ubizjak@gmail.com>
251
252 * Makefile.in (expmed.o-warn): Remove.
253
440917de
AM
2542013-10-02 Andrew MacLeod <amacleod@redhat.com>
255
256 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
257 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
258
99206ca9
TJ
2592013-10-02 Teresa Johnson <tejohnson@google.com>
260
261 * dojump.c (do_jump_1): Divide probability between
262 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
263
56e82b14
TT
2642013-10-02 Tom Tromey <tromey@redhat.com>
265
266 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
267
3d9c733e
AM
2682013-10-02 Andrew MacLeod <amacleod@redhat.com>
269
270 * tree-flow.h: Remove some prototypes.
271 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
272 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
273 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
274 mark_virtual_phi_result_for_renaming): Relocate here.
275 * tree-into-ssa.h: Add prototypes.
bbc02b69 276 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
277 single_pred_before_succ_order.
278 (blocks_in_phiopt_order): Rename and move to cfganal.c.
279 (nonfreeing_call_p) Move to gimple.c.
280 * cfganal.c (single_pred_before_succ_order): Move and renamed from
281 tree-ssa-phiopt.c.
282 * basic-block.h (single_pred_before_succ_order): Add prototype.
283 * gimple.c (nonfreeing_call_p): Relocate here.
284 * gimple.h: Add prototype.
285 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
286 * tree-ssa-dom.h: New file. Relocate prototypes here.
287 * tree-ssa.h: Include tree-ssa-dom.h.
288
78cedfb1
UB
2892013-10-02 Uros Bizjak <ubizjak@gmail.com>
290
291 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
292 Use $(COMPILE) and $(POSTCOMPILE).
293
294 * config/alpha/x-alpha (driver-alpha.o): Ditto.
295
744730a4
AM
2962013-10-02 Andrew MacLeod <amacleod@redhat.com>
297
298 * tree-flow.h: Remove some prototypes.
299 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
300 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
301 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
302 propagate_tree_value*): Move from here to...
303 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
304 propagate_tree_value*): Relocate here.
305 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
306 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
307 * gimple-fold.c: Remove gimple-fold.h from include list.
308 * tree-vrp.c: Remove gimple-fold.h from include list.
309 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
310 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
311 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
312 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
313 * sese.c: Add tree-ssa-propagate.h to include list.
314
826a536d
RB
3152013-10-02 Richard Biener <rguenther@suse.de>
316
317 * tree-loop-distribution.c: Include tree-vectorizer.h for
318 find_loop_location.
319 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 320 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
321 (partition_alloc): Adjust.
322 (partition_builtin_p): Likewise.
323 (partition_has_writes): Remove.
324 (partition_reduction_p): New function.
325 (partition_merge_into): Likewise.
326 (generate_code_for_partition): Commonize builtin partition
327 handling tail.
328 (rdg_cannot_recompute_vertex_p): Remove.
329 (already_processed_vertex_p): Likewise.
330 (rdg_flag_vertex): Do not set has_writes.
331 (classify_partition): Adjust.
332 (rdg_build_partitions): Do not set has_writes, treat all
333 partitions as useful.
78cedfb1 334 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
335 (tree_loop_distribution): Report number of loops and library
336 calls generated as opt-info.
337
4b403ece
AM
3382013-10-02 Andrew MacLeod <amacleod@redhat.com>
339
340 * tree-flow.h: Include new .h files. Move prototypes.
341 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
342 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
343 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
344 * tree-pretty-print.h: Add prototypes from tree-flow.h.
345 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
346 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
347 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
348 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 349 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
350 tree-dfa.h.
351 * gimple-low.h: New File. Add prototypes from tree-flow.h.
352 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
353 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
354 * tree-scalar-evolution.c: Include tree.h.
355 * sese.c: Include tree.h.
356 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
357 * dwarf2out.c: Include tree-dfa.h.
358 * tree-chrec.c: Include tree.h.
359 * tree-data-ref.c: Include tree.h.
360
1d2151c6
YZ
3612013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
362
363 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
364 Fix whitespace.
365
441ad147
RO
3662013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
367
368 * config/t-sol2 (sol2-c.o): Remove header dependencies.
369 Use $(COMPILE) and $(POSTCOMPILE).
370 (sol2-cxx.o): Likewise.
371 (sol2-stubs.o): Likewise.
372 (sol2.o): Likewise.
373 * config/x-solaris (host-solaris.o): Likewise.
374
375 * config/sparc/t-sparc (sparc.o): Remove.
376 (sparc-c.o): Remove header dependencies.
377 Use $(COMPILE) and $(POSTCOMPILE).
378 * config/sparc/x-sparc: Likewise.
379
2deaf8b0
JR
3802013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
381
382 * config/arc/arc-opts.h: Add 2013 to Copyright years.
383 * config/arc/arc700.md: Likewise.
384 * config/arc/arc-modes.def: Likewise.
385 * config/arc/arc-simd.h: Likewise.
386 * config/arc/t-arc-uClibc: Likewise.
387 * config/arc/t-arc-newlib: Likewise.
388
f6fe771a
RL
3892013-10-02 Renlin Li <renlin.li@arm.com>
390
78cedfb1
UB
391 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
392 plus_constant.
f6fe771a
RL
393 (aarch64_expand_epilogue): Likewise.
394
0916f876
YZ
3952013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
396 Yufeng Zhang <yufeng.zhang@arm.com>
397
398 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
399 declaration.
400 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
401 'base_in' represent a conversion and legal_cast_p_1 holds; set
402 'base_in' with the returned value from get_unwidened.
403
ebfcd719
KT
4042013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
405
406 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
407 plus_constant is not used.
408
157ca3e9
WM
4092013-10-01 Wei Mi <wmi@google.com>
410
78cedfb1 411 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
412 * config/i386/i386.md: Add define_peephole2 to
413 break partial reg stall for cvtss2sd/cvtsd2ss.
414
cd4dd8f0
JR
4152013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
416
417 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 418 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 419
1465e5cf
JL
4202013-10-01 Jeff Law <law@redhat.com>
421
422 * tree-ssa-threadupdate.c (struct redirection_data): Delete
423 outgoing_edge and intermediate_edge fields. Instead store the path.
424 (redirection_data::hash): Hash on the last edge's destination index.
425 (redirection_data::equal): Check the entire thread path.
426 (lookup_redirectio_data): Corresponding changes.
427 (create_edge_and_update_destination_phis): Likewise.
428 (thread_single_edge): Likewise.
429
25c606cb 4302013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 431 Diego Novillo <dnovillo@google.com>
25c606cb
JR
432
433 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
434 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
435 (vld32wh_insn, vld32wl_insn): Delete commented-out old
436 versions of these patterns.
437
0ccbc132
JR
438 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
439 (__builtin_arc_aligned): Likewise.
440
f55d4a20
JR
441 * config/arc/arc.md: Expand adc_0 comment stating the intended
442 purpose and why it isn't ready.
443 Replace commented out call_value_via_label_mixed with a
444 plain comment about bl_s.
445
5719867d 446 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
447 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
448 Remove if (1) condition.
449 (arc_encode_section_info): Fix comment.
450
6462fab0
JR
4512013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
452
453 * config/arc/arc.c (arc_conditional_register_usage):
454 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
455 Also set reg_alloc_order for DMA config regs.
456
5d5f6720
JR
4572013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
458 Jeremy Bennett <jeremy.bennett@embecosm.com>
459
460 * doc/install.texi (--with-cpu): Mention ARC.
461 (arc-*-elf32): New paragraph.
462 (arc-linux-uclibc): Likewise.
463 * doc/md.texi (Machine Constraints): Add ARC part.
464 * doc/invoke.texi: (menu): Add ARC Options.
465 (Machine Dependent Options) <ARC Options>: Add synopsis.
466 (node ARC Options): Add.
467 * doc/extend.texi (long_call / short_call attribute): Add ARC.
468 (ARC Built-in Functions): New section defining
469 generic ARC built-in functions.
470 (ARC SIMD Built-in Functions): New section defining SIMD specific
471 built-in functions.
472 (Declaring Attributes of Functions): Extended
473 description of short_call and long_call attributes for ARC and
474 added index entries.
475
526b7aee
SV
4762013-10-01 Saurabh Verma <saurabh.verma@codito.com>
477 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
478 Joern Rennecke <joern.rennecke@embecosm.com>
479 Muhammad Khurram Riaz <khurram.riaz@arc.com>
480 Brendan Kehoe <brendan@zen.org>
481 Michael Eager <eager@eagercon.com>
482 Simon Cook <simon.cook@embecosm.com>
483 Jeremy Bennett <jeremy.bennett@embecosm.com>
484
485 * config/arc, common/config/arc: New directories.
486
53426f6c
JR
4872013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
488 Brendan Kehoe <brendan@zen.org>
489 Simon Cook <simon.cook@embecosm.com>
490
491 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
492
1df9f5a9
AM
4932013-10-01 Andrew MacLeod <amacleod@redhat.com>
494
495 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
496 * tree-ssa-coalesce.h: New. Move prototype to here.
497 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
498 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
499 (gimple_can_coalesce_p): Move to...
500 * gimple.c (gimple_can_coalesce_p): Here.
501
80560f95
AM
5022013-10-01 Andrew MacLeod <amacleod@redhat.com>
503
504 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
505 (dump_decl_set): Move to gimple.c.
506 * gimple.h: Don't include tree-ssa-operands.h.
507 (dump_decl_set): Add prototype.
508 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
509 Move to gimple-ssa.h.
510 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
511 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
512 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
513 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
514 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
515 than PHI_ARG_DEF.
516 (dump_decl_set): Relocate here.
517 * gimple-ssa.h: New file.
518 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
519 Relocate from gimple.h.
520 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
521 * tree-ssa-operands.c (swap_ssa_operands): Rename from
522 swap_tree_operands and remove non-ssa path.
523 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
524 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
525 swap_ssa_operands.
526 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
527 vect_is_simple_reduction_1): Use swap_ssa_operands.
528 * tree-flow.h: Move various prototypes to tree-phinodes.h.
529 (enum need_phi_state): Move to tree-into-ssa.c.
530 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
531 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
532 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
533 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
534 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
535 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
536 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
537 num_imm_uses): Move to ssa-iterators.h.
538 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
539 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
540 tree-phinodes.h.
541 (op_iter_done, op_iter_next_def, op_iter_next_tree,
542 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
543 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
544 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
545 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
546 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
547 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
548 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
549 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
550 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
551 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
552 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
553 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
554 (set_phi_nodes): Move to tree-phinodes.h.
555 * tree-ssa-operands.h (enum ssa_op_iter_type,
556 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
557 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
558 (dump_decl_set): Remove prototype.
559 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
560 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
561 (set_phi_nodes): Relocate from tree-flow-inline.h.
562 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
563 tree-flow-inline.h
564 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
565 include list. Temporarily add gimple.h to include list.
566 * ssa-iterators.h: New file.
567 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
568 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
569 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
570 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
571 Relocate from tree-ssa-operands.h.
572 (delink_imm_use, link_imm_use_to_list, link_imm_use,
573 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
574 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
575 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
576 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
577 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
578 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
579 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
580 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
581 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
582 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
583 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
584 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
585 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
586 Relocate from tree-flow-inline.h.
587 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
588
8da00d65
VP
5892013-10-01 Vidya Praveen <vidyapraveen@arm.com>
590
591 * aarch64-simd.md
592 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
593 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
594 Insert '\t' to output template.
595 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
596 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
597 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
598 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
599
e2ebe1c2
UB
6002013-10-01 Uros Bizjak <ubizjak@gmail.com>
601
602 * doc/install.texi (Host/target specific installation notes for GCC):
603 Put @anchor before @heading.
604 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
605 Use @email for email addresses.
606
aee2d611
JL
6072013-10-01 Jeff Law <law@redhat.com>
608
609 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
610 a vec. Only delete the path if we create one without successfully
611 registering a jump thread.
612 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
613 as a pointer.
614 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
615 (paths): New vector of jump threading paths.
616 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
617 (THREAD_PATH): New accessor macro for the entire thread path.
618 (lookup_redirection_data): Get intermediate and final outgoing edge
619 from the thread path.
620 (create_edge_and_update_destination_phis): Copy the threading path.
621 (ssa_fix_duplicate_block_edges): Get edges and block types from the
622 jump threading path.
623 (ssa_redirect_edges): Get edges and block types from the jump threading
624 path. Free the path vector.
625 (thread_block): Get edges from the jump threading path. Look at the
626 entire path to see if we thread to a loop exit. If we cancel a jump
627 thread request, then free the path vector.
628 (thread_single_edge): Get edges and block types from the jump threading
629 path. Free the path vector.
630 (thread_through_loop_header): Get edges and block types from the jump
631 threading path. Free the path vector.
632 (mark_threaded_blocks): Iterate over the vector of paths and store
633 the path on the appropriate edge. Get edges and block types from the
634 jump threading path.
635 (mark_threaded_blocks): Get edges and block types from the jump
636 threading path. Free the path vector.
637 (thread_through_all_blocks): Use the vector of paths rather than
638 a vector of 3-edge sets.
639 (register_jump_thread): Accept pointer to a path vector rather
640 than the path vector itself. Store the path vector for later use.
641 Simplify.
642
966f97ac 6432013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 644 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
645
646 PR target/58574
647 * config/s390/s390.c (s390_split_branches): Modify check for table
648 jump insns.
649 (s390_chunkify_start): Rearrange table jump insn check in order to
650 deal with compare and branch insns correctly.
651
3a323a38
KV
6522013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
653
654 PR target/58578
655 Revert
656 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
657 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
658 define_insn_and_split.
659 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
660 (shiftsi3_compare): New pattern.
661 (rrx): New pattern.
662 * config/arm/unspecs.md (UNSPEC_RRX): New.
663
90444831
AM
6642013-10-01 Alan Modra <amodra@gmail.com>
665
666 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
667 casing inout operands.
668
818625cf
RB
6692013-10-01 Richard Biener <rguenther@suse.de>
670
671 PR tree-optimization/58553
672 * tree-loop-distribution.c (struct partition_s): Add niter member.
673 (classify_partition): Populate niter member for the partition
674 and properly identify whether the relevant store happens before
675 or after the loop exit.
676 (generate_memset_builtin): Use niter member from the partition.
677 (generate_memcpy_builtin): Likewise.
678
30f641cd
RS
6792013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
680
681 * vec.h (vec_prefix, vec): Prefix member names with "m_".
682 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
683
65d3284b
RS
6842013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
685
686 * basic-block.h (edge_list): Prefix member names with "m_".
687 * context.h (context): Likewise.
688 * domwalk.h (dom_walker): Likewise.
689 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
690 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
691 * hash-table.h (hash_table): Likewise.
692 * machmode.h (bit_field_mode_iterator): Likewise.
693 * pass_manager.h (pass_list): Likewise.
694 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
695 * tree-pass.h (pass_data): Likewise.
696 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
697 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
698 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
699 * asan.c (pass_data_asan): Update accordingly.
700 * cfganal.c (control_dependences::find_control_dependence): Likewise.
701 (control_dependences::control_dependences): Likewise.
702 (control_dependences::~control_dependences): Likewise.
703 (control_dependences::~control_dependences): Likewise.
704 (control_dependences::get_edges_dependent_on): Likewise.
705 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
706 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
707 * context.c (gcc::context::context): Likewise.
708 * cprop.c (pass_rtl_cprop::clone): Likewise.
709 * domwalk.c (dom_walker::walk): Likewise.
710 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
711 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
712 * mode-switching.c (pass_mode_switching::clone): Likewise.
713 * passes.c (opt_pass::opt_pass): Likewise.
714 (pass_manager::pass_manager): Likewise.
715 * predict.c (pass_strip_predict_hints::clone): Likewise.
716 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
717 (pass_split_all_insns::clone): Likewise.
718 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
719 Likewise.
720 (bit_field_mode_iterator::next_mode): Likewise.
721 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
722 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
723 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
724 * tree-complex.c (pass_lower_complex::clone): Likewise.
725 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
726 * tree-object-size.c (pass_object_sizes::clone): Likewise.
727 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
728 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
729 (pass_fold_builtins::clone): Likewise.
730 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
731 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
732 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
733 (pass_cd_dce::clone): Likewise.
734 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
735 (pass_phi_only_cprop::clone): Likewise.
736 * tree-ssa-dse.c (pass_dse::clone): Likewise.
737 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
738 * tree-ssa-loop.c (pass_lim::clone): Likewise.
739 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
740 * tree-ssa-pre.c (pass_fre::clone): Likewise.
741 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
742 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
743 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
744 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
745 * tree-vrp.c (pass_vrp::clone): Likewise.
746 * tsan.c (pass_tsan::clone): Likewise.
747
f66d0891
JJ
7482013-09-30 Jakub Jelinek <jakub@redhat.com>
749
d2a365a8
JJ
750 PR middle-end/58564
751 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
752 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
753
f66d0891
JJ
754 PR middle-end/58564
755 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
756 optimization, punt if sign_bit_p looked through any zero extension.
757
05357ac3
TJ
7582013-09-30 Teresa Johnson <tejohnson@google.com>
759
760 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
761 Update redirected out edge count in joiner case.
762 (ssa_redirect_edges): Common the joiner and non-joiner cases
763 so that joiner case gets profile updates.
764
ca406576
RB
7652013-09-30 Richard Biener <rguenther@suse.de>
766
767 PR tree-optimization/58554
e2ebe1c2
UB
768 * tree-loop-distribution.c (classify_partition): Require
769 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
770 (tree_loop_distribution): Calculate dominance info.
771
92d649c4
VK
7722013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
773
774 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
775 (NO_PROFILE_COUNTERS): Likewise.
776 (PROFILE_HOOK): Likewise.
777 (FUNCTION_PROFILER): Likewise.
778 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
779
bd9534e2
IS
7802013-09-30 Iain Sandoe <iain@codesourcery.com>
781
782 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
783 calls and defines in TARGET_MACHO conditional.
784 (load_macho_picbase_di): Likewise.
785 (reload_macho_picbase): Likewise.
786 (reload_macho_picbase_si): Likewise.
787 (reload_macho_picbase_di): Likewise.
788 (nonlocal_goto_receiver): Likewise.
789
4494fbc9
NC
7902013-09-30 Nick Clifton <nickc@redhat.com>
791
792 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
793 that use the MSP430X ISA.
794 (msp430_option_override): Scan -mmcu command line option for any
795 MCU name that supports the MSP430X ISA.
796 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
797 -mmcu options which enable the MSP430X ISA.
798
791d9044
RB
7992013-09-30 Richard Biener <rguenther@suse.de>
800
801 PR middle-end/58532
802 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
803 before looking for setjmp-like calls.
804
e1c5c877
IS
8052013-09-29 Iain Sandoe <iain@codesourcery.com>
806
807 PR target/10901
808 * config/darwin-protos.h (machopic_get_function_picbase): New.
809 * config/darwin.c (machopic_get_function_picbase): New.
810 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
811 label for a new func. (load_macho_picbase_di): Likewise.
812 (reload_macho_picbase): New expand.
813 (reload_macho_picbase_si): New insn.
814 (reload_macho_picbase_di): New insn.
815 (nonlocal_goto_receiver): New define and split.
816 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
817 (unspecv enum): Add UNSPECV_NLGR.
818
749278c5
IS
8192013-09-29 Iain Sandoe <iain@codesourcery.com>
820
821 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
822 that altivec registers are correctly sized on Darwin.
823
2c43a51c
IS
8242013-09-29 Iain Sandoe <iain@codesourcery.com>
825
826 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
827 darwin-driver.o): Use COMPILE and POSTCOMPILE.
828 * config/x-darwin (host-darwin.o): Likewise.
829 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
830 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
831 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
832
7a5911d3
UB
8332013-09-29 Uros Bizjak <ubizjak@gmail.com>
834
835 * doc/invoke.texi: Fix usage of @tie{} command.
836
3f67a73d
EB
8372013-09-29 Eric Botcazou <ebotcazou@adacore.com>
838
839 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
840
9ac2f538
JH
8412013-09-28 Jan Hubicka <jh@suse.cz>
842
843 * config/i386/x86-tune.def: Add documentation for each of the options;
844 add whitespace.
845
b0ff06da
JH
8462013-09-28 Jan Hubicka <jh@suse.cz>
847
7a5911d3
UB
848 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
849 generic.
b0ff06da
JH
850 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
851 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
852 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
853 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
854 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
855
c3284718
RS
8562013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
857
858 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
859 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
860 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
861 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
862 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
863 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
864 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
865 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
866 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
867 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
868 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
869 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
870 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
871 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
872 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
873 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
874 gimple.h, godump.c, graphite-clast-to-gimple.c,
875 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
876 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
877 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
878 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
879 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
880 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
881 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
882 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
883 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
884 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
885 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
886 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
887 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
888 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
889 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
890 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
891 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
892 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
893 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
894 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
895 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
896 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
897 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
898 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
899 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
900 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
901 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
902 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
903 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
904 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
905 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
906 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
907 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
908 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
909 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
910 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
911 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
912 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
913 whitespace before "(".
914
c6285bd7
SL
9152013-09-28 Sandra Loosemore <sandra@codesourcery.com>
916
917 * expr.h (extract_bit_field): Remove packedp parameter.
918 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
919 from forward declaration.
920 (store_split_bit_field): Remove packedp arg from calls to
921 extract_fixed_bit_field.
922 (extract_bit_field_1): Remove packedp parameter and packedp
923 argument from recursive calls and calls to extract_fixed_bit_field.
924 (extract_bit_field): Remove packedp parameter and corresponding
925 arg to extract_bit_field_1.
926 (extract_fixed_bit_field): Remove packedp parameter. Remove code
927 to issue warnings.
928 (extract_split_bit_field): Remove packedp arg from call to
929 extract_fixed_bit_field.
930 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
931 (copy_blkmode_from_reg): Likewise.
932 (copy_blkmode_to_reg): Likewise.
933 (read_complex_part): Likewise.
934 (store_field): Likewise.
935 (expand_expr_real_1): Likewise.
936 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
937 to extract_bit_field.
938 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
939 call to extract_bit_field.
940 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
941 call to extract_bit_field.
942 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
943 and special packedp behavior from -fstrict-volatile-bitfields
944 documentation.
945
522d4efc
JBG
9462013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
947
948 * lra-eliminations.c (init_elim_table): Guard value_p.
949
19cdb489
MM
9502013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
951
952 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
953 DFmode, DImode, and SFmode in the upper VSX registers based on the
954 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
955 if -mpower8-vector. Combine -mvsx-timode handling with the rest
956 of the VSX register handling.
957
958 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
959 (f32_sv): Likewise.
960 (zero_extendsidi2_lfiwzx): Add support for loading into the
961 Altivec registers with -mpower8-vector. Use wu/wv constraints to
962 only do VSX memory options on Altivec registers.
963 (extendsidi2_lfiwax): Likewise.
964 (extendsfdf2_fpr): Likewise.
965 (mov<mode>_hardfloat, SF/SD modes): Likewise.
966 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
967 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
968 (movdi_internal64): Likewise.
969
d6d11272
XDL
9702013-09-27 Xinliang David Li <davidxl@google.com>
971
972 * opts.c (finish_options): Adjust parameters
973 according to vect cost model.
974 (common_handle_option): Set dynamic vect cost
975 model for FDO.
976 targhooks.c (default_add_stmt_cost): Compute stmt cost
977 unconditionally.
978 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
979 Use helper function.
980 * tree-vectorizer.h (unlimited_cost_model): New function.
981 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
982 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
983 function.
984 (vect_enhance_data_refs_alignment): Ditto.
985 * flag-types.h: New enum.
986 * common/config/i386/i386-common.c (ix86_option_init_struct):
987 No need to initialize vect_cost_model flag.
988 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
989 unconditionally.
990
ac1857a3
DN
9912013-09-27 Diego Novillo <dnovillo@google.com>
992
993 * gimple.h (enum ssa_mode): Remove.
994
3c468b4c
PM
9952013-09-27 Paulo Matos <pmatos@broadcom.com>
996
997 PR middle-end/58463
998 * gcc.dg/pr58463.c: New test.
999
0d0e2af6
PM
10002013-09-27 Paulo Matos <pmatos@broadcom.com>
1001
1002 * cfgloop.h (number_of_loops): Fix typo in check for null.
1003
09dc585e
JJ
10042013-09-27 Jakub Jelinek <jakub@redhat.com>
1005
1006 PR middle-end/58551
1007 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
1008 are children of outermost saved_cfun's loop, and set it up to
1009 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
1010 if loop != loop0 and SESE region contains bbs that belong to loop0.
1011
ec5a3504
RS
10122013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
1013
1014 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
1015 (binary_scale_code_p, get_base_term, get_index_term): New functions.
1016 (set_address_segment, set_address_base, set_address_index)
1017 (set_address_disp): Accept the argument unconditionally.
1018 (baseness): Remove must_be_base_p and must_be_index_p checks.
1019 (decompose_normal_address): Classify as much as possible in the
1020 main loop.
1021
f91aec98
RS
10222013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
1023
1024 * cse.c (count_reg_usage): Handle INT_LIST.
1025 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
1026 * reginfo.c (reg_scan_mark_refs): Likewise.
1027 * reload1.c (eliminate_regs_1): Likewise.
1028
a9195970
IS
10292013-09-27 Iain Sandoe <iain@codesourcery.com>
1030
1031 PR middle-end/58547
1032 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
1033 signed.
1034
e6f1c509
RB
10352013-09-27 Richard Biener <rguenther@suse.de>
1036
1037 PR tree-optimization/58459
1038 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
1039 restriction not propagating into loops.
1040
84f48495
FW
10412013-09-26 Florian Weimer <fw@deneb.enyo.de>
1042
1043 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
1044 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
1045 * doc/tree-ssa.texi (Walking use-def chains): Delete.
1046
74fc8b8a
RB
10472013-09-26 Richard Biener <rguenther@suse.de>
1048
7a5911d3 1049 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 1050
b4ada065
RB
10512013-09-26 Richard Biener <rguenther@suse.de>
1052
1053 * alias.h (component_uses_parent_alias_set): Rename to ...
1054 (component_uses_parent_alias_set_from): ... this.
1055 * alias.c (component_uses_parent_alias_set): Rename to ...
1056 (component_uses_parent_alias_set_from): ... this and return
1057 the desired parent.
1058 (reference_alias_ptr_type_1): Use the result from
1059 component_uses_parent_alias_set_from instead of stripping
1060 components one at a time.
1061 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
1062
78bca40d
AM
10632013-09-26 Andrew MacLeod <amacleod@redhat.com>
1064
7a5911d3
UB
1065 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
1066 Move prototypes to...
78bca40d
AM
1067 * tree-ssa-ter.h: New File. Move prototypes here.
1068 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
1069 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
1070 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 1071 from is_replaceable_p.
78bca40d
AM
1072 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
1073 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
1074 (process_replaceable): Use ter_is_replaceable_p.
1075 (find_replaceable_in_bb): Use ter_is_replaceable_p.
1076 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
1077 newly refactored ssa_is_replaceable_p.
1078 * cfgexpand.c: Include tree-outof-ssa.h.
1079 * ssaexpand.h: Delete.
1080
ff2a63a7
AM
10812013-09-26 Andrew MacLeod <amacleod@redhat.com>
1082
1083 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
1084 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
1085 tree-ssa.c
1086 (create_gimple_tmp): Delete.
1087 (get_expr_type, build_assign, build_type_cast): Move to...
1088 * gimple-builder.c: New File.
1089 (get_expr_type): Relocate from gimple.c.
1090 (build_assign, build_type_cast): Change to only create ssanames.
1091 * gimple.h: Move prototypes to...
1092 * gimple-builder.h: New File. Here.
1093 * tree-ssa.h: And here.
1094 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
1095 count_uses_and_derefs): Relocate from gimple.c.
1096 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
1097 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
1098 * tree-ssa-math-opts (execute_cse_reciprocals): Use
1099 gimple_replace_ssa_lhs.
1100 * asan.c: Include gimple-builder.h.
1101 * Makefile.in: Add gimple-builder.o.
1102
a2544177
RB
11032013-09-26 Richard Biener <rguenther@suse.de>
1104
1105 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
1106 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
1107 (loe_visit_block): Use gcc_checking_assert.
1108 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
1109 gimple_assign_ssa_name_copy_p.
1110 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
1111 change.
1112
6d1ca9a0
DE
11132013-09-26 David Edelsohn <dje.gcc@gmail.com>
1114
1115 * config/rs6000/t-rs6000 (rs6000.o): Remove.
1116 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
1117
46e950db
RB
11182013-09-26 Richard Biener <rguenther@suse.de>
1119
1120 PR tree-optimization/58539
1121 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
1122 the fact that debug statements are not taking part in loop-closed
1123 SSA construction.
1124
40ada30a
NC
11252013-09-26 Nick Clifton <nickc@redhat.com>
1126
1127 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
1128 time warning message.
1129 (msp430_print_operand_raw): Delete unused letter parameter.
1130 (TARGET_PRINT_OPERAND_ADDRESS): Define.
1131 (msp430_print_operand_address): New function.
1132 (msp430_print_operand): Move address printing code from here to
1133 new function.
1134 * config/msp430/msp430.md (movsipsi2): Add comment in generated
1135 assembler.
1136 (zero_extendpsisi2): Likewise.
1137 (extendpsisi2): New pattern.
1138 (andneghi3): New pattern.
1139
38e8f663
YR
11402013-09-26 Yvan Roux <yvan.roux@linaro.org>
1141
1142 * config/aarch64/aarch64.opt (mlra): New option.
1143 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
1144 (TARGET_LRA_P): Define.
1145
4167e8d4
EB
11462013-09-26 Eric Botcazou <ebotcazou@adacore.com>
1147
1148 * expr.c (expand_assignment): Remove obsolete comment.
1149
5254eac4
JL
11502013-09-25 Jeff Law <law@redhat.com>
1151
1152 * tree-flow.h (thread_through_all_blocks): Prototype moved into
1153 tree-ssa-threadupdate.h.
1154 (register_jump_thread): Similarly.
1155 * tree-ssa-threadupdate.h: New header file.
1156 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
1157 * tree-vrp.c: Likewise.
1158 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
1159 (thread_around_empty_blocks): Change type of path vector argument to
1160 an edge,type pair from just an edge. Initialize both elements when
1161 appending to a jump threading path. Tweak references to elements
1162 appropriately.
1163 (thread_across_edge): Similarly. Release memory for the elements
1164 as needed.
1165 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
1166 (dump_jump_thread_path): New function broken out from
1167 register_jump_thread.
1168 (register_jump_thread): Use dump_jump_thread_path. Change type of
1169 path vector entries. Search the path for NULL edges and dump
1170 the path if one is found. Tweak the conversion of path to 3-edge
1171 form to use the block copy type information embedded in the path.
1172
20f114a3
YR
11732013-09-25 Yvan Roux <yvan.roux@linaro.org>
1174
1175 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
1176
3936bafc
YR
11772013-09-25 Yvan Roux <yvan.roux@linaro.org>
1178 Vladimir Makarov <vmakarov@redhat.com>
1179
1180 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
1181 from the least significant bit.
1182 (strip_address_mutations): Add bitfield operations handling.
1183 (must_be_index_p): Add shifting and rotate operations handling.
1184 (set_address_base): Use must_be_base_p predicate.
4167e8d4 1185 (set_address_index): Use must_be_index_p predicate.
3936bafc 1186
b86f6e9e
AI
11872013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
1188 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1189 Sergey Lega <sergey.s.lega@intel.com>
1190 Anna Tikhonova <anna.tikhonova@intel.com>
1191 Ilya Tocar <ilya.tocar@intel.com>
1192 Andrey Turetskiy <andrey.turetskiy@intel.com>
1193 Ilya Verbin <ilya.verbin@intel.com>
1194 Kirill Yukhin <kirill.yukhin@intel.com>
1195 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1196
1197 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
1198 Use new names.
1199 (ix86_expand_vector_move_misalign): Support new unaligned load and
1200 stores and use new names.
1201 (CODE_FOR_sse2_storedqu): Rename to ...
1202 (CODE_FOR_sse2_storedquv16qi): ... this.
1203 (CODE_FOR_sse2_loaddqu): Rename to ...
1204 (CODE_FOR_sse2_loaddquv16qi): ... this.
1205 (CODE_FOR_avx_loaddqu256): Rename to ...
1206 (CODE_FOR_avx_loaddquv32qi): ... this.
1207 (CODE_FOR_avx_storedqu256): Rename to ...
1208 (CODE_FOR_avx_storedquv32qi): ... this.
1209 * config/i386/i386.md (fpint_logic): New.
1210 * config/i386/sse.md (VMOVE): Extend for AVX512.
1211 (VF): Ditto.
1212 (VF_128_256): New.
1213 (VF_512): Ditto.
1214 (VI_UNALIGNED_LOADSTORE): Ditto.
1215 (sse2_avx_avx512f): Ditto.
1216 (sse2_avx2): Extend for AVX512.
1217 (sse4_1_avx2): Ditto.
1218 (avx2_avx512f): New.
1219 (sse): Extend for AVX512.
1220 (sse2): Ditto.
1221 (sse4_1): Ditto.
1222 (avxsizesuffix): Ditto.
1223 (sseintvecmode): Ditto.
1224 (ssePSmode): Ditto.
1225 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
1226 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
1227 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
1228 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
1229 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
1230 (<sse2_avx_avx512f>_storedqu<mode): ... this.
1231 (<sse>_movnt<mode>): Replace constraint "x" with "v".
1232 (STORENT_MODE): Extend for AVX512.
1233 (*absneg<mode>2): Replace constraint "x" with "v".
1234 (*mul<mode>3): Ditto.
1235 (*ieee_smin<mode>3): Ditto.
1236 (*ieee_smax<mode>3): Ditto.
1237 (avx_cmp<mode>3): Replace VF with VF_128_256.
1238 (*<sse>_maskcmp<mode>3_comm): Ditto.
1239 (<sse>_maskcmp<mode>3): Ditto.
1240 (<sse>_andnot<mode>3): Extend for AVX512.
1241 (<code><mode>3, anylogic): Replace VF with VF_128_256.
1242 (<code><mode>3, fpint_logic): New.
1243 (*<code><mode>3): Extend for AVX512.
1244 (avx512flogicsuff): New.
1245 (avx512f_<logic><mode>): Ditto.
1246 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
1247 VF_128_256.
1248 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
1249 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
1250 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
1251 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
1252 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
1253 (xop_vpermil2<mode>3): Ditto.
1254 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
1255 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
1256 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
1257 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
1258
4d44d03c
TT
12592013-09-25 Tom Tromey <tromey@redhat.com>
1260
1261 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
1262 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
1263 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
1264 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
1265 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
1266 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
1267 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
1268 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
1269 (GRAPHITE_HTAB_H): Remove.
1270
86aaf68d
TT
12712013-09-25 Tom Tromey <tromey@redhat.com>
1272
1273 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
1274
c987deb8
TT
12752013-09-25 Tom Tromey <tromey@redhat.com>
1276
1277 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
1278
9439747e
TT
12792013-09-25 Tom Tromey <tromey@redhat.com>
1280
1281 * config/i386/t-i386 (i386.o): Remove.
1282 (i386-c.o): Use COMPILE and POSTCOMPILE.
1283
aefc31a1
TT
12842013-09-25 Tom Tromey <tromey@redhat.com>
1285
1286 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
1287
b6541edc
TT
12882013-09-25 Tom Tromey <tromey@redhat.com>
1289
1290 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
1291 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
1292 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
1293 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
1294 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
1295 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
1296 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
1297 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
1298 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
1299 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
1300 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
1301 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
1302 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
1303 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
1304 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
1305 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
1306 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
1307 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
1308 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
1309 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
1310 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
1311 (tree-ssa-pre.o, tree-ssa-sccvn.o)
1312 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
1313 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
1314 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
1315 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
1316 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
1317 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
1318 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
1319 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
1320 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
1321 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
1322 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
1323 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
1324 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
1325 (graphite-clast-to-gimple.o, graphite-dependences.o)
1326 (graphite-interchange.o, graphite-poly.o)
1327 (graphite-scop-detection.o, graphite-sese-to-poly.o)
1328 (graphite-optimize-isl.o, tree-vect-loop.o)
1329 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
1330 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
1331 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
1332 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
1333 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
1334 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
1335 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
1336 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
1337 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
1338 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
1339 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
1340 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
1341 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
1342 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
1343 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
1344 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
1345 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
1346 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
1347 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
1348 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
1349 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
1350 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
1351 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
1352 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
1353 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
1354 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
1355 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
1356 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
1357 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
1358 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
1359 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
1360 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
1361 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
1362 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
1363 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
1364 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
1365 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
1366 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
1367 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
1368 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
1369 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
1370 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
1371 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
1372 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
1373 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
1374 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
1375 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
1376 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
1377 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
1378 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
1379 (gcov-dump.o): Remove.
1380 (default-c.o): Use COMPILE and POSTCOMPILE.
1381 (CFLAGS-gcc.o): New variable.
1382 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
1383
8c796d19
TT
13842013-09-25 Tom Tromey <tromey@redhat.com>
1385
1386 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
1387 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
1388 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
1389 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
1390 (c-family/c-pragma.o, c-family/c-pretty-print.o)
1391 (c-family/c-semantics.o, c-family/c-ada-spec.o)
1392 (c-family/array-notation-common.o, c-family/stub-objc.o)
1393 (c-family/c-ubsan.o): Remove.
1394
0a6c2227
TT
13952013-09-25 Tom Tromey <tromey@redhat.com>
1396
1397 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
1398
f3bc55f0
TT
13992013-09-25 Tom Tromey <tromey@redhat.com>
1400
1401 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
1402 to add -DENABLE_SHARED_LIBGCC.
1403 (gcc.o): Don't use subshell.
1404
c11c795e
TT
14052013-09-25 Tom Tromey <tromey@redhat.com>
1406
1407 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
1408 * configure.ac: Don't invoke AM_PROG_CC_C_O.
1409 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
1410 * configure, config.in: Rebuild.
1411
043378c3
TT
14122013-09-25 Tom Tromey <tromey@redhat.com>
1413
1414 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
1415 (COMPILE, POSTCOMPILE): New variables.
1416 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
1417 (DEPFILES): New variable.
1418 Include ".Po" files.
1419 * configure.ac: Add checks for dependency checking.
1420 * configure, aclocal.m4: Regenerate.
1421
eab34643
TT
14222013-09-25 Tom Tromey <tromey@redhat.com>
1423
1424 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 1425 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 1426
d2db5e91
TT
14272013-09-25 Tom Tromey <tromey@redhat.com>
1428
1429 * Makefile.in (generated_files): Add options.h,
1430 target-hooks-def.h, insn-opinit.h,
1431 common/common-target-hooks-def.h, pass-instances.def,
1432 c-family/c-target-hooks-def.h.
1433
af33629e
JL
14342013-09-25 Jeff Law <law@redhat.com>
1435
1436 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
1437 than foo[foo.length () - 1] to access last member in a vec.
1438 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
1439
ed0d3051
RB
14402013-09-25 Richard Biener <rguenther@suse.de>
1441
1442 PR middle-end/58521
1443 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
1444
123485ca
JH
14452013-09-25 Jan Hubicka <jh@suse.cz>
1446
1447 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
1448 test.
1449
d70b0f1f
MP
14502013-09-25 Marek Polacek <polacek@redhat.com>
1451
1452 PR sanitizer/58420
1453 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
1454 when determining the type name.
1455
e3f02798
OE
14562013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
1457
1458 * config/sh/sh.md: Fix formatting.
1459
7a5911d3 14602013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 1461
7a5911d3
UB
1462 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
1463 max peel iterations parameter.
4f17aa0b
XDL
1464 * param.def: New parameter.
1465 * doc/invoke.texi: Document New parameter.
1466
0498471b
CL
14672013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
1468
1469 * gimple-pretty-print.c: Various whitespace tweaks.
1470 * tree-core.h: Likewise.
1471 * tree-pretty-print.c: Likewise.
1472 * tree-ssa-alias.c: Likewise.
1473 * tree-ssa-copy.c: Likewise.
1474 * tree-ssanames.c: Likewise.
1475 * tree-ssanames.h: Likewise.
1476 * tree-vrp.c: Likewise.
1477
5a8c2b57
AM
14782013-09-24 Alan Modra <amodra@gmail.com>
1479
1480 PR middle-end/57134
1481 PR middle-end/57586
7a5911d3
UB
1482 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
1483 for output operands that disallow regs. Don't use EXPAND_WRITE on
1484 inout operands.
5a8c2b57 1485
f40333af
RB
14862013-09-24 Richard Biener <rguenther@suse.de>
1487
1488 PR middle-end/58513
1489 * tree.c (reference_alias_ptr_type): Move ...
1490 * alias.c (reference_alias_ptr_type): ... here and implement
1491 in terms of the new reference_alias_ptr_type_1.
1492 (ref_all_alias_ptr_type_p): New helper.
1493 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
1494 use ref_all_alias_ptr_type_p.
1495 (get_deref_alias_set): Add flag_strict_aliasing check here.
1496 (reference_alias_ptr_type_1): New function, split out from ...
1497 (get_alias_set): ... here.
1498 (alias_ptr_types_compatible_p): New function.
1499 * alias.h (reference_alias_ptr_type): Declare.
1500 (alias_ptr_types_compatible_p): Likewise.
1501 * tree.h (reference_alias_ptr_type): Remove.
1502 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
1503 to compare MEM_REF alias types.
1504
583e8bf5
RB
15052013-09-24 Richard Biener <rguenther@suse.de>
1506
1507 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
1508
5e8586d7
MM
15092013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1510
19c3e797
MM
1511 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
1512 reload helper function arrays into a single array reg_addr.
1513 (reload_fpr_gpr): Likewise.
1514 (reload_gpr_vsx): Likewise.
1515 (reload_vsx_gpr): Likewise.
1516 (struct rs6000_reg_addr): Likewise.
1517 (reg_addr): Likewise.
1518 (rs6000_debug_reg_global): Change rs6000_vector_reload,
1519 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
1520 (rs6000_init_hard_regno_mode_ok): Likewise.
1521 (rs6000_secondary_reload_direct_move): Likewise.
1522 (rs6000_secondary_reload): Likewise.
1523
5e8586d7
MM
1524 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
1525 constraints: wu, ww, and wy. Repurpose wv constraint added during
1526 power8 changes. Put wg constraint in alphabetical order.
1527
1528 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
1529 for future work to add ISA 2.07 VSX single precision support.
1530 (-mvsx-scalar-double): Change default from -1 to 1, update
1531 documentation comment.
1532 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
1533 (-mupper-regs-df): New debug switch to control whether DF values
1534 can go in the traditional Altivec registers.
1535 (-mupper-regs-sf): New debug switch to control whether SF values
1536 can go in the traditional Altivec registers.
1537
1538 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
1539 and wy constraints.
1540 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
1541 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
1542 Add new constraints, wu/ww/wy. Repurpose wv constraint.
1543 (rs6000_debug_legitimate_address_p): Print if we are running
1544 before, during, or after reload.
1545 (rs6000_secondary_reload): Add a comment.
1546 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
1547
1548 * config/rs6000/constraints.md (wa constraint): Sort w<x>
1549 constraints. Update documentation string.
1550 (wd constraint): Likewise.
1551 (wf constraint): Likewise.
1552 (wg constraint): Likewise.
1553 (wn constraint): Likewise.
1554 (ws constraint): Likewise.
1555 (wt constraint): Likewise.
1556 (wx constraint): Likewise.
1557 (wz constraint): Likewise.
1558 (wu constraint): New constraint for ISA 2.07 SFmode scalar
1559 instructions.
1560 (ww constraint): Likewise.
1561 (wy constraint): Likewise.
1562 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
1563 the previous submissions.
1564 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
1565
e5af9ddd
RS
15662013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
1567
1568 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
1569 (REG_BR_PROB): Say that the probability is stored in an int_list.
1570 * reg-notes.def: Update commentary to mention INT_LIST.
1571 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
1572 (INT_LIST): New rtx.
1573 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
1574 * rtlanal.c (int_reg_note_p): New function.
1575 (alloc_reg_note): Assert that the note does not have an int argument.
1576 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
1577 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
1578 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
1579 rather than an INSN_LIST. Handle INT_LIST.
1580 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
1581 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
1582 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
1583 Manipulate them as ints rather than rtxes.
1584 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
1585 * regmove.c (copy_src_to_dest): Likewise.
1586 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
1587
1588 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
1589 into the cases that need it.
1590 * config/arm/arm.c (arm_unwind_emit): Likewise.
1591
1592 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
1593 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
1594 * loop-doloop.c (add_test, doloop_modify): Likewise.
1595 * loop-unswitch.c (compare_and_jump_seq): Likewise.
1596 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
1597 * predict.c (combine_predictions_for_insn): Likewise.
1598 * print-rtl.c (print_rtx): Handle INT_LIST.
1599 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
1600 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
1601 * config/arm/arm.c (emit_unlikely_jump): Likewise.
1602 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
1603 (ix86_split_fp_branch, predict_jump): Likewise.
1604 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
1605 * config/sh/sh.c (expand_cbranchsi4): Likewise.
1606 * config/spu/spu.c (ea_load_store_inline): Likewise.
1607
1608 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
1609 value of a REG_BR_PROB note.
1610 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1611 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
1612 * emit-rtl.c (try_split): Likewise.
1613 * predict.c (br_prob_note_reliable_p): Likewise.
1614 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
1615 * reorg.c (mostly_true_jump): Likewise.
1616 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
1617 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
1618 * config/i386/i386.c (ix86_print_operand): Likewise.
1619 * config/ia64/ia64.c (ia64_print_operand): Likewise.
1620 * config/mmix/mmix.c (mmix_print_operand): Likewise.
1621 * config/rs6000/rs6000.c (output_cbranch): Likewise.
1622 * config/s390/s390.c (s390_expand_tbegin): Likewise.
1623 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
1624 * config/sparc/sparc.c (output_cbranch): Likewise.
1625 * config/spu/spu.c (get_branch_target): Likewise.
1626 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
1627 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
1628
450ad0cd
JH
16292013-09-23 Jan Hubicka <jh@suse.cz>
1630
1631 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
1632 for ipa-devirt.
1633 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
1634 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
1635 of external calls
1636 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
1637 (gimple_fold_call): Dump inconsistent devirtualizations; add
1638 sanity check for type based devirtualizations.
1639 * ipa-prop.c: Include ipa-utils.h
1640 (ipa_intraprocedural_devirtualization): Add sanity check.
1641 (try_make_edge_direct_virtual_call): Likewise.
1642
cefce769
EB
16432013-09-23 Eric Botcazou <ebotcazou@adacore.com>
1644
1645 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
1646 assignment statements.
1647
a895a2b8
KV
16482013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
1649
1650 * gimple-pretty-print.c (dump_ssaname_info): New function.
1651 (dump_gimple_phi): Call it.
1652 (pp_gimple_stmt_1): Likewise.
1653 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
1654 (range_info_def): Declare.
1655 * tree-pretty-print.c (pp_double_int): New function.
1656 (dump_generic_node): Call it.
1657 * tree-pretty-print.h (pp_double_int): Declare.
1658 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
1659 * tree-ssanames.h (range_info_def): New structure.
1660 (value_range_type): Move definition here.
1661 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
1662 Declare.
1663 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
1664 initialization.
1665 (set_range_info): New function.
1666 (get_range_info): Likewise.
1667 (duplicate_ssa_name_range_info): Likewise.
1668 (duplicate_ssa_name_fn): Check pointer type and call
1669 duplicate_ssa_name_range_info.
1670 * tree-ssa-copy.c (fini_copy_prop): Likewise.
1671 * tree-vrp.c (value_range_type): Remove definition, now in
1672 tree-ssanames.h.
7a5911d3 1673 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
1674 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
1675 (SSA_NAME_RANGE_INFO): New macro.
1676
984af6ac
RB
16772013-09-23 Richard Biener <rguenther@suse.de>
1678
1679 PR tree-optimization/58464
1680 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 1681 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
1682 (phi_translate_1): Remove recursion detection here.
1683 (phi_translate): Pre-seed the cache with NULL to catch
1684 recursion here in a more generic way.
1685 (bitmap_find_leader): Adjust comment.
1686 (get_representative_for): Dump value-numbers.
1687 (create_expression_by_pieces): Likewise.
1688 (insert_into_preds_of_block): Likewise.
1689
0e26cf79
CB
16902013-09-23 Christian Bruel <christian.bruel@st.com>
1691
1692 PR target/58475
1693 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
1694 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
1695
4d0e5b54
JG
16962013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
1697
1698 Revert r202780:
1699 2013-09-20 Renlin Li <renlin.li@arm.com>
1700
7a5911d3
UB
1701 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
1702 plus_constant.
4d0e5b54
JG
1703 (aarch64_expand_epilogue): Likewise.
1704 (aarch64_legitimize_reload_address): Likewise.
1705
ca081cc8
EB
17062013-09-22 Eric Botcazou <ebotcazou@adacore.com>
1707
1708 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
1709 NULL_TREE before pushing them onto the vector. Likewise for labels.
1710
8fc53a5f
EB
17112013-09-21 Eric Botcazou <ebotcazou@adacore.com>
1712
1713 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
1714 comparison operators when -fno-trapping-math is in effect.
1715 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
1716 comparison operators in TFmode and assert that unsupported operators
1717 cannot reach here.
1718 (ia64_print_operand): Likewise.
1719
17202013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
1721
1722 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
1723 (sse_typeless_stores): Enable for core
1724 (sse_load0_by_pxor): Likewise.
1725 (four_jump_limit): Disable for core.
1726 (pad_returns): Likewise.
1727 (avoid_vector_decode): Likewise.
1728 (fuse_cmp_and_branch): Enable for cores.
1729 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
1730
578e51e6
JDA
17312013-09-20 John David Anglin <danglin@gcc.gnu.org>
1732
96ce28a3
JDA
1733 PR middle-end/56791
1734 * config/pa/pa.c (pa_option_override): Disable auto increment and
1735 decrement instructions until reload is completed.
1736
578e51e6
JDA
1737 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
1738 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
1739 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
1740
6fcd3a13 17412013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 1742 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
1743
1744 * config/rl78/rl78.c: Various whitespace and comment tweaks.
1745 (need_to_save): Save bank 0 on interrupts.
1746 (characterize_address): Strip far address wrappers.
1747 (rl78_as_legitimate_address): Likewise.
1748 (transcode_memory_rtx): Likewise.
1749 (rl78_peep_movhi_p): Disable this peephole after devirt.
1750 (rl78_propogate_register_origins): Forget all origins when a
1751 CLOBBER is seen.
1752 * config/rl78/rl78-virt.md: Various whitespace tweaks.
1753 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
1754 peephole2's.
1755 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
1756 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
1757 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
1758 relocating.
1759 * config/rl78/constraints.md: Various whitespace and paren tweaks.
1760
4a08db33
JDA
17612013-09-20 John David Anglin <danglin@gcc.gnu.org>
1762
1763 * config/pa/pa.md: In "scc" insn patterns, change output template to
1764 handle const0_rtx in reg_or_0_operand operands.
1765
7691132c
JBG
17662013-09-20 Martin Husemann <martin@NetBSD.org>
1767
1768 PR target/56875
1769 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
1770 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
1771
a3cc13cc
RB
17722013-09-20 Richard Biener <rguenther@suse.de>
1773
1774 PR middle-end/58484
1775 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
1776 remembering SSA name version and block index.
1777 (new_scev_info_str): Adjust.
1778 (hash_scev_info): Likewise. Also hash the block index.
1779 (eq_scev_info): Adjust.
1780 (find_var_scev_info): Likewise.
1781 (struct instantiate_cache_entry): Remove.
1782 (struct instantiate_cache_type): Use a htab to map name, block
1783 to chrec.
1784 (instantiate_cache_type::~instantiate_cache_type): Adjust.
1785 (get_instantiated_value_entry): Likewise.
1786 (hash_idx_scev_info, eq_idx_scev_info): New functions.
1787 (instantiate_scev_name): Adjust.
1788
925f3871
JL
17892013-09-20 Jeff Law <law@redhat.com>
1790
1791 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
1792
2888c331
YZ
17932013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
1794
1795 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
1796 Call aarch64_simd_expand_args to update op[argc].
1797
0a811e96
BS
17982013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
1799
7a5911d3
UB
1800 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
1801 plugin argument.
0a811e96 1802
0078f462
BS
18032013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
1804
7a5911d3
UB
1805 * gengtype.c (file_rules): Added rule for *.cc files.
1806 (get_output_file_with_visibility): Give fatal message when no
1807 rules found.
0078f462 1808
d20e48b0
RL
18092013-09-20 Renlin Li <renlin.li@arm.com>
1810
1811 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
1812 (aarch64_expand_epilogue): Likewise.
1813 (aarch64_legitimize_reload_address): Likewise.
1814
59bb1544
BE
18152013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
1816
1817 PR middle-end/57748
1818 * expr.c (expand_assignment): Remove misalignp code path.
1819
a5430019
MP
18202013-09-20 Marek Polacek <polacek@redhat.com>
1821
1822 PR sanitizer/58413
1823 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
1824 TYPE_PRECISION. Add asserts.
1825
9fed7f3a
RB
18262013-09-20 Richard Biener <rguenther@suse.de>
1827
1828 PR tree-optimization/58453
1829 * tree-loop-distribution.c (distribute_loop): Apply the cost
1830 model for -ftree-loop-distribute-patterns, too.
1831
a820c834
RB
18322013-09-20 Richard Biener <rguenther@suse.de>
1833
1834 PR middle-end/58473
1835 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
1836 make type comparison less strict.
1837
3cbe17f7
AM
18382013-09-20 Alan Modra <amodra@gmail.com>
1839
1840 * configure: Regenerate.
1841 * aclocal.m4: Regenerate.
1842
87fccdbb
MP
18432013-09-20 Marek Polacek <polacek@redhat.com>
1844
1845 PR other/58467
1846 * doc/extend.texi: Document that attribute used is meant to be used
1847 on variables with static storage duration.
1848
8928eff3
JJ
18492013-09-19 Jakub Jelinek <jakub@redhat.com>
1850
1851 PR tree-optimization/58472
1852 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
1853 simd_lane_access set inv_p = false.
1854 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
1855 the simduid magic VAR_DECL.
1856
b7b28c53
JH
18572013-09-19 Jan Hubicka <jh@suse.cz>
1858
1859 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
1860
83ae86f5
JL
18612013-09-17 Jeff Law <law@redhat.com>
1862
1863 * tree-ssa-dom.c (record_temporary_equivalences): New function
1864 split out of dom_opt_dom_walker::after_dom_children.
1865 (dom_opt_dom_walker::thread_across_edge): Move common code
1866 in here from dom_opt_dom_walker::after_dom_children.
1867 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
1868
9d532162
JH
18692013-09-19 Jan Hubicka <jh@suse.cz>
1870
1871 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
1872 (TARGET_GENERIC): Use PROCESOR_GENERIC
1873 (enum processor_type): Unify generic32 and 64.
1874 * i386.md (cpu): Likewise.
1875 * x86-tune.def (use_leave): Enable for generic32.
1876 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
1877 * athlon.md: Change generic64 to generic in all occurences.
1878 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
1879 (ix86_target_macros_internal): Likewise.
1880 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
1881 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
1882 to ..
9d532162
JH
1883 (generic_memcpy, generic_memset, generic_cost): This one.
1884 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
1885 (m_GENERIC32, m_GENERIC64): Remove.
1886 (m_GENERIC): Turn into one flag.
1887 (processor_target): Unify generic tunnings.
1888 (ix86_option_override_internal): Replace generic32/64 by generic.
1889 (ix86_issue_rate): Likewise.
1890 (ix86_adjust_cost): Likewise.
1891
188c7d00
JH
18922013-09-19 Jan Hubicka <jh@suse.cz>
1893
1894 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
1895 of speculative flag.
1896
4befd127
JJ
18972013-09-19 Jakub Jelinek <jakub@redhat.com>
1898
1899 * omp-low.c (expand_omp_sections): Always pass len - 1 to
1900 GOMP_sections_start, even if !exit_reachable.
1901
8a26ad39
VM
19022013-09-18 Vladimir Makarov <vmakarov@redhat.com>
1903
1904 * lra-constraints.c (need_for_all_save_p): Use macro
1905 HARD_REGNO_CALL_PART_CLOBBERED.
1906 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
1907 set up pseudo conflict hard regs.
1908
09487185
MM
19092013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1910
1911 PR target/58452
1912 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
1913 operands.
1914
080cbf9e
VM
19152013-09-18 Vladimir Makarov <vmakarov@redhat.com>
1916
1917 PR rtl-optimization/58438
1918 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
1919 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
1920 from previous subpasses.
1921
a0f70fcb
RE
19222013-09-18 Richard Earnshaw <rearnsha@arm.com>
1923
1924 * arm.c (arm_get_frame_offsets): Validate architecture supports
1925 LDRD/STRD before accepting the tuning preference.
1926 (arm_expand_prologue): Likewise.
1927 (arm_expand_epilogue): Likewise.
1928
0547c9b6
RB
19292013-09-18 Richard Biener <rguenther@suse.de>
1930
1931 PR tree-optimization/58417
1932 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
1933 have chrecs with symbols defined in the loop as operands.
1934 (chrec_fold_multiply): Likewise.
1935 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
1936 parameters before folding binary operations.
1937 (struct instantiate_cache_entry_hasher): Remove.
1938 (struct instantiate_cache_type): Use a pointer-map.
1939 (instantiate_cache_type::instantiate_cache_type): New function.
1940 (instantiate_cache_type::get): Likewise.
1941 (instantiate_cache_type::set): Likewise.
1942 (instantiate_cache_type::~instantiate_cache_type): Adjust.
1943 (get_instantiated_value_entry): Likewise.
1944 (global_cache): New global.
1945 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
1946 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
1947 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
1948 (instantiate_scev_name): Adjust.
1949 (instantiate_scev): Construct global instead of local cache.
1950 (resolve_mixers): Likewise.
1951
309dc1aa
DM
19522013-09-18 Daniel Morris <danielm@ecoscentric.com>
1953 Paolo Carlini <paolo.carlini@oracle.com>
1954
1955 PR c++/58458
1956 * doc/implement-cxx.texi: Fix references to the C++ standards.
1957
995a1b4a
JJ
19582013-09-18 Jakub Jelinek <jakub@redhat.com>
1959
1960 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
1961 * tree-vect-data-refs.c (vect_analyze_data_refs): For
1962 simd_lane_access drs, update also DR_ALIGNED_TO.
1963
ce6923c5
MP
19642013-09-18 Marek Polacek <polacek@redhat.com>
1965
1966 PR sanitizer/58411
1967 * doc/extend.texi: Document no_sanitize_undefined attribute.
1968 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
1969 no_sanitize_undefined attribute.
1970
d30d00a2
NC
19712013-09-18 Nick Clifton <nickc@redhat.com>
1972
1973 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
1974 (ASM_DECLARE_FUNCTION_NAME): Define.
1975
4d9192b5
TS
19762013-09-17 Trevor Saunders <tsaunders@mozilla.com>
1977
1978 * compare-elim.c (find_comparison_dom_walker): New class
1979 (find_comparisons_in_bb): Rename to
1980 find_comparison_dom_walker::before_dom_children
1981 (find_comparisons): Adjust
1982 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
1983 adjust.
1984 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
1985 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
1986 (init_walk_dominator_tree): Remove declaration.
1987 (fini_walk_dominator_tree): Remove declaration.
1988 * fwprop.c (single_def_use_dom_walker): New class
1989 (single_def_use_enter_block): Convert to
1990 single_def_use_dom_walker::before_dom_children.
1991 (single_def_use_leave_block): Convert to
1992 single_def_use_dom_walker::after_dom_children.
1993 (build_single_def_use_links): Adjust.
1994 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
1995 class.
1996 (find_candidates_in_block): Convert to
1997 find_candidates_dom_walker::before_dom_children.
1998 (execute_strength_reduction): Adjust.
1999 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
2000 (sese_dom_walker): New class.
2001 (sese_dom_walker::sese_dom_walker): New constructor.
2002 (sese_dom_walker::~sese_dom_walker): New destructor.
2003 (build_sese_conditions_before): Convert to
2004 sese_dom_walker::before_dom_children.
2005 (build_sese_conditions_after): Convert to
2006 sese_dom_walker::after_dom_children.
2007 (build_poly_scop): Adjust
2008 * tree-into-ssa.c (rewrite_dom_walker): New class
2009 (rewrite_enter_block): Convert to
2010 rewrite_dom_walker::before_dom_children.
2011 (rewrite_leave_block): Convert to
2012 rewrite_dom_walker::after_dom_children.
2013 (rewrite_update_dom_walker): New class.
2014 (rewrite_update_enter_block): Convert to
2015 rewrite_update_dom_walker::before_dom_children.
2016 (rewrite_update_leave_block): Convert to
2017 rewrite_update_dom_walker::after_dom_children.
2018 (rewrite_blocks, rewrite_into_ssa): Adjust.
2019 (mark_def_dom_walker): New class.
2020 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
2021 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
2022 (mark_def_sites_blocks): Convert to
2023 mark_def_dom_walker::before_dom_children.
2024 (mark_def_site_blocks): Remove.
2025 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
2026 (tree_ssa_dominator_optimize): Adjust.
2027 (dom_thread_across_edge): Convert to method
2028 dom_opt_dom_walker::thread_across_edge.
2029 (dom_opt_enter_block): Convert to member function
2030 dom_opt_dom_walker::before_dom_children.
2031 (dom_opt_leave_block): Convert to member function
2032 dom_opt_dom_walker::after_dom_children.
2033 * tree-ssa-dse.c (dse_dom_walker): New class.
2034 (dse_enter_block): Convert to member function
2035 dse_dom_walker::before_dom_children.
2036 (tree_ssa_dse): Adjust.
2037 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
2038 (determine_invariantness_stmt): Convert to method
2039 invariantness_dom_walker::before_dom_children.
2040 (determine_invariantness): Remove
2041 (move_computations_dom_walker): New class.
2042 (move_computations_stmt): Convert to method
2043 move_computations_dom_walker::before_dom_children.
2044 (move_computations, tree_ssa_lim): Adjust.
2045 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
2046 (nt_init_block): Make method
2047 notrappping_dom_walker::before_dom_children.
2048 (nt_fini_block): Make
2049 method nontrapping_dom_walker::after_dom_children.
2050 (get_non_trapping): Adjust.
2051 * tree-ssa-pre.c (eliminate_dom_walker): New class.
2052 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
2053 (eliminate_leave_block): Make method.
2054 eliminate_dom_walker::after_dom_children.
2055 (eliminate): Adjust
2056 * tree-ssa-strlen.c (strlen_dom_walker): New class.
2057 (strlen_enter_block): Make method
2058 strlen_dom_walker::before_dom_children.
2059 (strlen_leave_block): Make
2060 method strlen_dom_walker::after_dom_children.
2061 (tree_ssa_strlen): Adjust.
2062 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
2063 (tree_ssa_uncprop): Adjust.
2064 (uncprop_leave_block): Make method
2065 uncprop_dom_walker::after_dom_children.
2066 (uncprop_leave_block): Make method
2067 uncprop_dom_walker::before_dom_children.
2068
3b3cc26b
BC
20692013-09-18 Bin Cheng <bin.cheng@arm.com>
2070
7a5911d3
UB
2071 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
2072 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 2073
b5ba3a9b
NC
20742013-09-17 Nick Clifton <nickc@redhat.com>
2075
2076 * config/rl78/rl78-real.md (bf): New pattern.
2077 (bt): New pattern.
2078 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
2079 (rl78_print_operand): Do not put a # before a %B.
2080 * config/rl78/rl78.opt: Tweak doc strings.
2081
09d5094b
DD
20822013-09-17 DJ Delorie <dj@redhat.com>
2083
2084 * config/rl78/constraints.md (Wcv): Allow up to $r31.
2085 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
2086 (rl78_option_override): Likewise, if -mallregs.
2087 (is_virtual_register): Likewise.
2088 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
2089 (REGNO_OK_FOR_BASE_P): Likewise.
2090 * config/rl78/rl78.opt (-mallregs): New.
2091
2ba1dca1
NC
20922013-09-17 Nick Clifton <nickc@redhat.com>
2093
2094 * config/rl78/rl78.c (need_to_save): Change return type to bool.
2095 For interrupt functions: save all call clobbered registers if the
2096 interrupt handler is not a leaf function.
2097 (rl78_expand_prologue): Always recompute the frame information.
2098 For interrupt functions: only select bank 0 if one of the bank 0
2099 registers is going to be psuhed.
2100
2e7c3f21
DD
21012013-09-17 DJ Delorie <dj@redhat.com>
2102
2103 * config/rl78/constraints.md: For each W* constraint, rename to C*
2104 and create a W* constraint that checks for an optional ES: prefix
2105 pattern also.
2106 * config/rl78/rl78.md (UNS_ES_ADDR): New.
2107 (es_addr): New. Used to wrap far addresses.
2108 * config/rl78/rl78-protos.h (rl78_es_addr): New.
2109 (rl78_es_base): New.
2110 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
2111 wrapped far addresses.
2112 (rl78_print_operand_1): Unwrap far addresses before processing.
2113 (rl78_lo16): Wrap far addresses in unspecs.
2114 (rl78_es_addr): New.
2115 (rl78_es_base): New.
2116 (insn_ok_now): Check for not-yet-wrapped far addresses.
2117 (transcode_memory_rtx): Properly re-wrap far addresses.
2118
5c26a69a
SH
21192013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2120
2121 * config/sparc/t-rtems: Add leon3 multilibs.
2122
181f5f3e
CH
21232013-09-17 Cong Hou <congh@google.com>
2124
2125 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
2126 when checking the dot production pattern. The type of rhs operand
2127 of multiply is now checked correctly.
2128
8d34e421
JL
21292013-09-17 Jeff Law <law@redhat.com>
2130
2131 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
2132 edge implied equivalences into successor phis.
2133 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
2134 here from tree-ssa-threadedge.c.
2135 (mark_threaded_blocks): When threading through a joiner, if both
2136 successors of the joiner's clone reach the same block, verify the
2137 PHI arguments are equal. If not, cancel the jump threading request.
2138 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
2139 tree-ssa-threadupdate.c
2140 (thread_across_edge): Don't check PHI argument equality when
2141 threading through joiner block here.
7a5911d3 2142
c152901f
AM
21432013-09-17 Andrew MacLeod <amacleod@redhat.com>
2144
2145 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
2146 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
2147 (warn_uninit, warn_uninitialized_vars,
2148 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
2149 Move to tree-ssa-uninit.c.
78cedfb1 2150 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 2151 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
2152 ssa_undefined_value_p.
2153 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
2154 (warn_uninit, warn_uninitialized_vars,
2155 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
2156 Move from tree-ssa.c.
2157 * tree-ssa.h: Adjust prototypes.
c152901f 2158
b631d45a
JH
21592013-09-17 Jan Hubicka <jh@suse.cz>
2160
2161 PR middle-end/58332
2162 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
2163 * ipa-inline.c (can_inline_edge_p): Do not downgrade
2164 FUNCTION_NOT_OPTIMIZED.
2165 * ipa-inline-analysis.c (compute_inline_parameters): Function
2166 not optimized is not inlinable unless it is alwaysinline.
2167 (inline_analyze_function): Force calls in not optimized
2168 function not inlinable.
2169
5b79657a
JH
21702013-09-17 Jan Hubicka <jh@suse.cz>
2171
2172 PR middle-end/58329
2173 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
2174 to return NULL.
2175 * ipa.c (function_and_variable_visibility): Likewise.
2176 * ipa-profile.c (ipa_profile): Likewise.
2177
27442c24
BE
21782013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
2179
2180 PR ipa/58398
2181 * cgraph.c (cgraph_function_body_availability): Check for ifunc
2182 attribute, and don't inline the resolver in this case.
2183
753b9bc3
TJ
21842013-09-17 Teresa Johnson <tejohnson@google.com>
2185
2186 * coverage.c (get_coverage_counts): Add missing newline.
2187
e3d3cfb4
KT
21882013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2189
2190 PR tree-optimization/58088
2191 * fold-const.c (mask_with_trailing_zeros): New function.
2192 (fold_binary_loc): Make sure we don't recurse infinitely
2193 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
2194 Use mask_with_trailing_zeros where appropriate.
2195
9a0ac98f
YR
21962013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
2197
2198 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
2199 of 'prev' var to get better distance estimation.
2200
78bbd765
EB
22012013-09-17 Eric Botcazou <ebotcazou@adacore.com>
2202
2203 * tree-inline.h (struct copy_body_data): Add transform_parameter.
2204 * tree-inline.c (is_parameter_of): New predicate.
2205 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
2206 a parameter has been remapped.
2207 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
2208 (optimize_inline_calls): Initialize transform_parameter.
2209 (copy_gimple_seq_and_replace_locals): Likewise.
2210 (tree_function_versioning): Likewise.
2211 (maybe_inline_call_in_expr): Likewise.
2212
cad055a4
NC
22132013-09-17 Nick Clifton <nickc@redhat.com>
2214
2215 * config/msp430/msp430-protos.h: Add prototypes for new functions.
2216 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
2217 interrupt handlers.
2218 (is_attr_func): New function.
2219 (msp430_is_interrupt_func): New function.
2220 (is_naked_func): New function.
2221 (is_reentrant_func): New function.
2222 (is_critical_func): New function.
2223 (msp430_start_function): Add annotations for function attributes.
2224 (msp430_attr): New function.
2225 (msp430_attribute_table): New.
2226 (msp430_function_section): New function.
2227 (TARGET_ASM_FUNCTION_SECTION): Define.
2228 (msp430_builtin): New enum.
2229 (msp430_init_builtins): New function.
2230 (msp430_builtin_devl): New function.
2231 (msp430_expand_builtin): New function.
2232 (TARGET_INIT_BUILTINS): Define.
2233 (TARGET_EXPAND_BUILTINS): Define.
2234 (TARGET_BUILTIN_DECL): Define.
2235 (msp430_expand_prologue): Add support for naked, interrupt,
2236 critical and reentrant functions.
2237 (msp430_expand_epilogue): Likewise.
2238 (msp430_print_operand): Handle 'O' character.
2239 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
2240 NO_TRAMPOLINES.
2241 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
2242 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
2243 (pushm): Use a 'n' rather than an 'i' constraint.
2244 (msp_return): Add generation of the interrupt return instruction.
2245 (disable_interrupts): New pattern.
2246 (enable_interrupts): New pattern.
2247 (push_intr_state): New pattern.
2248 (pop_intr_state): New pattern.
2249 (bic_SR): New pattern.
2250 (bis_SR): New pattern.
2251 * doc/extend.texi: Document MSP430 function attributes and builtin
2252 functions.
2253
deb6c11a
RB
22542013-09-17 Richard Biener <rguenther@suse.de>
2255
2256 PR tree-optimization/58432
2257 * tree-loop-distribution.c (tree_loop_distribution): Also
2258 scan PHIs for outside loop uses and seed a partition from them.
2259
c068654b
BC
22602013-09-17 Bin Cheng <bin.cheng@arm.com>
2261
2262 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
2263 (restructure_reference): Call backtrace_base_for_ref.
2264
567969e4
AM
22652013-09-17 Alan Modra <amodra@gmail.com>
2266
2267 PR target/57589
7a5911d3
UB
2268 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
2269 patch.
567969e4 2270
5c0029de
DD
22712013-09-16 DJ Delorie <dj@redhat.com>
2272
2273 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
2274 vregs location for RL78/G10.
2275 (rl78_expand_prologue): Avoid SEL on G10.
2276 (rl78_expand_epilogue): Likewise.
2277 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
2278 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
2279 __RL78_G10__ when appropriate.
2280 (ASM_SPEC): Pass -mg10 along to the assembler.
2281 * config/rl78/rl78.md (sel_rb): Disable for G10.
2282 * config/rl78/rl78.opt: Add -mg10 option.
2283 * config/rl78/t-rl78: Add -mg10 multilib.
2284
ea0f3e87
XDL
22852013-09-16 Xinliang David Li <davidxl@google.com>
2286
2287 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
2288 * omp-low.c (omp_max_vf): Ditto.
2289 (expand_omp_simd): Ditto.
2290 * tree-vectorizer.c (vectorize_loops): Ditto.
2291 (gate_vect_slp): Ditto.
2292 (gate_increase_alignment): Ditto.
2293 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
2294 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
2295 (gate_tree_vectorize): Name change.
2296 (tree_vectorize): Ditto.
2297 (pass_vectorize::gate): Call new function.
2298 (pass_vectorize::execute): Ditto.
7a5911d3 2299 * opts.c: O3 default setting change.
ea0f3e87
XDL
2300 (finish_options): Check new flag.
2301 * doc/invoke.texi: Document new flags.
2302 * common.opt: New flags.
2303
4f3da2e5
AS
23042013-09-16 Andreas Schwab <schwab@linux-m68k.org>
2305
2306 * doc/tm.texi.in (Cond Exec Macros): Remove node.
2307 (Condition Code): Don't reference it.
2308 * doc/tm.texi: Regenerate.
2309
aa940f7c
VM
23102013-09-16 Vladimir Makarov <vmakarov@redhat.com>
2311
2312 PR middle-end/58418
2313 * lra-constraints.c (undo_optional_reloads): Consider all optional
2314 reload even if it did not get a hard reg.
2315
e645e942
TJ
23162013-09-16 Teresa Johnson <tejohnson@google.com>
2317
2318 * dumpfile.c (dump_loc): Remove newline emission.
2319 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
2320 emission to dump_printf_loc calls where missing.
2321 (vect_mark_for_runtime_alias_test): Ditto.
2322 (vect_analyze_data_ref_dependence): Ditto.
2323 (vect_analyze_data_ref_dependences): Ditto.
2324 (vect_slp_analyze_data_ref_dependence): Ditto.
2325 (vect_slp_analyze_data_ref_dependences): Ditto.
2326 (vect_compute_data_ref_alignment): Ditto.
2327 (vect_update_misalignment_for_peel): Ditto.
2328 (vect_verify_datarefs_alignment): Ditto.
2329 (vector_alignment_reachable_p): Ditto.
2330 (vect_get_data_access_cost): Ditto.
2331 (vect_enhance_data_refs_alignment): Ditto.
2332 (vect_find_same_alignment_drs): Ditto.
2333 (vect_analyze_data_refs_alignment): Ditto.
2334 (vect_analyze_group_access): Ditto.
2335 (vect_analyze_data_ref_access): Ditto.
2336 (vect_analyze_data_ref_accesses): Ditto.
2337 (vect_prune_runtime_alias_test_list): Ditto.
2338 (vect_analyze_data_refs): Ditto.
2339 (vect_create_addr_base_for_vector_ref): Ditto.
2340 (vect_create_data_ref_ptr): Ditto.
2341 (vect_grouped_store_supported): Ditto.
2342 (vect_grouped_load_supported): Ditto.
2343 * value-prof.c (check_counter): Ditto.
2344 (check_ic_target): Ditto.
2345 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
2346 (vect_recog_widen_mult_pattern): Ditto.
2347 (vect_recog_widen_sum_pattern): Ditto.
2348 (vect_recog_over_widening_pattern): Ditto.
2349 (vect_recog_widen_shift_pattern): Ditto.
2350 (vect_recog_rotate_pattern): Ditto.
2351 (vect_recog_vector_vector_shift_pattern): Ditto.
2352 (vect_recog_divmod_pattern): Ditto.
2353 (vect_recog_mixed_size_cond_pattern): Ditto.
2354 (vect_recog_bool_pattern): Ditto.
2355 (vect_pattern_recog_1): Ditto.
2356 (vect_pattern_recog): Ditto.
2357 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
2358 (vect_is_simple_iv_evolution): Ditto.
2359 (vect_analyze_scalar_cycles_1): Ditto.
2360 (vect_get_loop_niters): Ditto.
2361 (vect_analyze_loop_1): Ditto.
2362 (vect_analyze_loop_form): Ditto.
2363 (vect_analyze_loop_operations): Ditto.
2364 (vect_analyze_loop_2): Ditto.
2365 (vect_analyze_loop): Ditto.
2366 (report_vect_op): Ditto.
2367 (vect_is_slp_reduction): Ditto.
2368 (vect_is_simple_reduction_1): Ditto.
2369 (vect_get_known_peeling_cost): Ditto.
2370 (vect_estimate_min_profitable_iters): Ditto.
2371 (vect_model_reduction_cost): Ditto.
2372 (vect_model_induction_cost): Ditto.
2373 (get_initial_def_for_induction): Ditto.
2374 (vect_create_epilog_for_reduction): Ditto.
2375 (vectorizable_reduction): Ditto.
2376 (vectorizable_induction): Ditto.
2377 (vectorizable_live_operation): Ditto.
2378 (vect_loop_kill_debug_uses): Ditto.
2379 (vect_transform_loop): Ditto.
2380 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
2381 (vect_stmt_relevant_p): Ditto.
2382 (process_use): Ditto.
2383 (vect_mark_stmts_to_be_vectorized): Ditto.
2384 (vect_model_simple_cost): Ditto.
2385 (vect_model_promotion_demotion_cost): Ditto.
2386 (vect_model_store_cost): Ditto.
2387 (vect_get_store_cost): Ditto.
2388 (vect_model_load_cost): Ditto.
2389 (vect_get_load_cost): Ditto.
2390 (vect_init_vector_1): Ditto.
2391 (vect_get_vec_def_for_operand): Ditto.
2392 (vect_finish_stmt_generation): Ditto.
2393 (vectorizable_call): Ditto.
2394 (vectorizable_conversion): Ditto.
2395 (vectorizable_assignment): Ditto.
2396 (vectorizable_shift): Ditto.
2397 (vectorizable_operation): Ditto.
2398 (vectorizable_store): Ditto.
2399 (vectorizable_load): Ditto.
2400 (vectorizable_condition): Ditto.
2401 (vect_analyze_stmt): Ditto.
2402 (vect_transform_stmt): Ditto.
2403 (vect_is_simple_use): Ditto.
2404 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
2405 (vect_can_advance_ivs_p): Ditto.
2406 (vect_update_ivs_after_vectorizer): Ditto.
2407 (vect_do_peeling_for_loop_bound): Ditto.
2408 (vect_gen_niters_for_prolog_loop): Ditto.
2409 (vect_update_inits_of_drs): Ditto.
2410 (vect_create_cond_for_alias_checks): Ditto.
2411 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
2412 (vect_build_slp_tree_1): Ditto.
2413 (vect_supported_load_permutation_p): Ditto.
2414 (vect_analyze_slp_instance): Ditto.
2415 (vect_analyze_slp): Ditto.
2416 (vect_make_slp_decision): Ditto.
2417 (vect_detect_hybrid_slp): Ditto.
2418 (vect_bb_vectorization_profitable_p): Ditto.
2419 (vect_slp_analyze_bb_1): Ditto.
2420 (vect_update_slp_costs_according_to_vf): Ditto.
2421 (vect_get_mask_element): Ditto.
2422 (vect_transform_slp_perm_load): Ditto.
2423 (vect_schedule_slp_instance): Ditto.
2424 (vect_schedule_slp): Ditto.
2425 (vect_slp_transform_bb): Ditto.
2426 * profile.c (read_profile_edge_counts): Ditto.
2427 (compute_branch_probabilities): Ditto.
2428 * coverage.c (get_coverage_counts): Ditto.
2429
46f851f3
DN
24302013-09-16 Diego Novillo <dnovillo@google.com>
2431
7a5911d3 2432 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 2433
1632a686
JH
24342013-09-16 Jan Hubicka <jh@suse.cz>
2435
2436 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 2437 abstract functions; for static functions check the presence of body.
1632a686 2438
828e70c1
JG
24392013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2440
2441 * config/aarch64/aarch64-simd-builtins.def (fma): New.
2442 * config/aarch64/aarch64-simd.md
2443 (aarch64_mla_elt<mode>): New.
2444 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
2445 (aarch64_mls_elt<mode>): Likewise.
2446 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
2447 (aarch64_fma4_elt<mode>): Likewise.
2448 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
2449 (aarch64_fma4_elt_to_128v2df): Likewise.
2450 (aarch64_fma4_elt_to_64df): Likewise.
2451 (fnma<mode>4): Likewise.
2452 (aarch64_fnma4_elt<mode>): Likewise.
2453 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
2454 (aarch64_fnma4_elt_to_128v2df): Likewise.
2455 (aarch64_fnma4_elt_to_64df): Likewise.
2456 * config/aarch64/iterators.md (VDQSF): New.
2457 * config/aarch64/arm_neon.h
2458 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
2459 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
2460
779aea46
JG
24612013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2462
2463 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
2464 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
2465 (aarch64_mul3_elt_to_128df): Likewise.
2466 (aarch64_mul3_elt_to_64v2df): Likewise.
2467 * config/aarch64/iterators.md (VEL): Also handle DFmode.
2468 (VMUL): New.
2469 (VMUL_CHANGE_NLANES) Likewise.
2470 (h_con): Likewise.
2471 (f): Likewise.
2472 * config/aarch64/arm_neon.h
2473 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
2474
a407a750
JG
24752013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
2476
2477 * config/aarch64/arm_neon.h
2478 (vcvtx_high_f32_f64): Fix parameters.
2479
f77e2d2d 24802013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 2481 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 2482
a5bd71fa 2483 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 2484
36875e8f
RB
24852013-09-16 Richard Biener <rguenther@suse.de>
2486
2487 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
2488 (dot_rdg_1): Handle control_dd.
2489 (create_edge_for_control_dependence): New function.
2490 (create_rdg_edges): Add control dependences if asked for.
2491 (build_rdg): Likewise.
2492 (generate_loops_for_partition): If there are not necessary
2493 control stmts remove all their dependencies.
2494 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
2495 (distribute_loop): Pass on control dependences.
2496 (tree_loop_distribution): Compute control dependences and remove
2497 restriction on number of loop nodes.
2498
96e24d49
JJ
24992013-09-16 Jakub Jelinek <jakub@redhat.com>
2500
2501 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
2502 for internal calls.
2503
40dbb05c
RS
25042013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
2505
2506 * cse.c (try_const_anchors): Punt on CC modes.
2507
97191ad0
JBG
25082013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2509
2510 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
2511
403a3fb7
JDA
25122013-09-14 John David Anglin <danglin@gcc.gnu.org>
2513
2514 PR target/58382
2515 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
2516 calls to word_mode.
2517
fb5610fb
IS
25182013-09-14 Iain Sandoe <iain@codesourcery.com>
2519
2520 PR target/48094
2521 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
2522 seen.
2523 (darwin_objc1_section): Likewise.
fb5610fb
IS
2524 (darwin_file_end): Emit Image Info section when required.
2525
afdec9bd
JH
25262013-09-14 Jan Hubicka <jh@suse.cz>
2527
2528 * tree-into-ssa.c (gate_into_ssa): New.
2529 (pass_data_build_ssa): Use it.
2530 * cgraph.h (expand_thunk): Update prototype.
2531 * cgraphunit.c (analyze_function): Expand thunks early.
2532 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
2533 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
2534 set lowered flag; do not add new function.
2535 (assemble_thunks_and_aliases): Update.
2536 * tree-ssa.c (gate_init_datastructures): New gate.
2537 (pass_data_init_datastructures): Use it.
2538
492d1e0a
IS
25392013-09-14 Iain Sandoe <iain@codesourcery.com>
2540
2541 PR target/58269
f77e2d2d 2542 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
2543 xmm register set described in the psABI.
2544
d13c6b70
EG
25452013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
2546
f77e2d2d
JBG
2547 * dwarf2out.c (should_emit_struct_debug): Add check
2548 for type_decl variable is not NULL.
d13c6b70 2549
88b0e79e
JC
25502013-09-13 Jacek Caban <jacek@codeweavers.com>
2551
2552 * config.gcc: Use new winnt-c.c target hooks
2553 * config/t-winnt: New file
2554 * config/winnt-c.c: New file
2555 * doc/tm.texi.in: Document new hook
2556 * doc/tm.texi: Regenerated
2557
19ba6aab
JH
25582013-09-13 Jan Hubicka <jh@suse.cz>
2559
2560 PR middle-end/58094
2561 * ipa-inline.c (check_callers): New function.
2562 (check_caller_edge): Remove.
2563 (want_inline_function_to_all_callers_p): Also permit alises that are
2564 called dirrectly.
2565 (inline_to_all_callers): Terminate the walk when devirtualization
2566 introduce new calls.
2567
a93c18c8
JH
25682013-09-13 Jan Hubicka <jh@suse.cz>
2569
2570 * ipa-inline-analysis.c (struct growth_data): Add node.
2571 (do_estimate_growth_1): Fix detection of recursion.
2572
f3b331d1
JJ
25732013-09-13 Jakub Jelinek <jakub@redhat.com>
2574
2575 PR tree-optimization/58392
2576 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
2577 to avoid shadowing of outer loop variable. If
2578 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
2579 replace_by_duplicate_decl simduid of loops that have it set and
2580 set dest_cfun->has_simduid_loops and/or
2581 dest_cfun->has_force_vect_loops.
2582 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
2583 instead of maybe_lookup_decl.
2584 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
2585 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
2586 call. Copy over force_vect and copy and remap simduid. Set
2587 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
2588 (copy_cfg_body): Remove blocks_to_copy argument. Use
2589 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
2590 caller. Don't set cfun->has_simduid_loops and/or
2591 cfun->has_force_vect_loops here.
2592 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
2593 caller.
2594 (expand_call_inline, tree_function_versioning): Adjust copy_body
2595 callers.
2596
ae6d0907
MJ
25972013-09-13 Martin Jambor <mjambor@suse.cz>
2598
2599 PR bootstrap/58388
2600 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
2601 the assert if the edge was a speculative one.
2602
2fd5894f
RB
26032013-09-13 Richard Biener <rguenther@suse.de>
2604
2605 * tree-data-ref.h (known_dependences_p): Move here ...
2606 * tree-loop-distribution.c (known_dependences_p): ... from here.
2607 (dump_rdg_component, debug_rdg_component): Remove.
2608 (dump_rdg): Adjust.
2609 (generate_loops_for_partition): Use gimple_uid instead of
2610 relying on matching stmt visit order.
2611 (rdg_build_partitions): Take starting stmt vector.
2612 (ldist_gen): Merge into ...
2613 (distribute_loop): ... this function. Do not compute starting
2614 vertices vector.
2615 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
2616
86eb4bd7
KT
26172013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2618
2619 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
2620 Set type attribute correctly. Set predicable_short_it attribute.
2621 (cmpsi_shiftsi): Remove %? from output template.
2622
83a95546
RB
26232013-09-13 Richard Biener <rguenther@suse.de>
2624
2625 * tree-loop-distribution.c (struct rdg_component,
2626 rdg_defs_used_in_other_loops_p, free_rdg_components,
2627 rdg_build_components): Remove.
2628 (stmts_from_loop): Do not record virtual PHIs.
2629 (generate_loops_for_partition): Skip virtual PHIs.
2630 (build_rdg_partition_for_component): Rename to ...
2631 (build_rdg_partition_for_vertex): ... this and adjust.
2632 (rdg_build_partitions): Take a vector of starting vertices
2633 instead of components. Remove unnecessary leftover handling.
2634 (ldist_gen): Do not build components or record other stores.
2635 (distribute_loop): Do not distribute loops containing stmts
2636 with side-effects.
2637
c0ecf7f1
CB
26382013-09-13 Christian Bruel <christian.bruel@st.com>
2639
2640 PR target/58314
2641 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
2642
34f56efc
KT
26432013-09-13 Kai Tietz <ktietz@redhat.com>
2644
740f2bf3
KT
2645 * config.gcc: Separate cases for mingw and cygwin targets,
2646 and add 64-bit cygwin target case.
2647
34f56efc
KT
2648 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
2649 dll-export inline-functions.
2650 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
2651
2652
26532013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
2654
2655 PR middle-end/58387
2656 Revert:
2657 2013-09-06 Jeff Law <law@redhat.com>
2658
2659 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
2660 edge implied equivalences into successor phis.
2661
aadb52ad
DD
26622013-09-12 DJ Delorie <dj@redhat.com>
2663
2664 * config/rl78/rl78-virt.md: Change from | to \; for asm line
2665 separators.
2666
90ae7019
BM
26672013-09-12 Brooks Moses <bmoses@google.com>
2668
2669 PR driver/42955
2670 * Makefile.in: Do not install driver binaries in $(target)/bin.
2671
17b2557c
DD
26722013-09-12 DJ Delorie <dj@redhat.com>
2673
c5215a9b
DD
2674 * config/rl78/rl78.opt (mrelax): New.
2675 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
2676 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
2677
17b2557c
DD
2678 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
2679 between SP and FP.
2680 (rl78_expand_epilogue): Likewise.
2681
ecafcf05
VM
26822013-09-12 Vladimir Makarov <vmakarov@redhat.com>
2683
2684 PR middle-end/58335
84f6d9fa 2685 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
2686 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
2687 pointer elimination with using remove_reg_equal_offset_note.
2688
8369f38a
DD
26892013-09-12 DJ Delorie <dj@redhat.com>
2690
f6a83b4a
DD
2691 * config/msp430/: New port.
2692 * config.gcc (msp430): Added.
2693 * doc/invoke.texi: Document MSP430 options.
2694 * doc/install.texi: Document msp430-elf
2695 * doc/md.texi: Document msp430-elf
2696 * doc/contrib.texi: Document msp430-elf
2697
8369f38a
DD
2698 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
2699 PSImode.
2700
a854f856
MJ
27012013-09-12 Martin Jambor <mjambor@suse.cz>
2702
2703 PR ipa/58389
2704 * ipa-prop.c (remove_described_reference): Give up if the edge in the
2705 reference descriptor is NULL.
2706 (ipa_edge_removal_hook): If owning a reference descriptor, set its
2707 edge to NULL.
2708
b12ebd96
AM
27092013-09-12 Andrew MacLeod <amacleod@redhat.com>
2710
2711 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
2712 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
2713 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
2714 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
2715 make_temp_ssa_name): move to tree-ssanames.h
2716 * tree-ssa-alias.h: Move prototype.
2717 * tree-ssa.h: Include tree-ssanames.h.
2718 * tree-ssanames.c (FREE_SSANAMES): Move to here.
2719 * tree-ssanames.h: New. Move items from tree-flow*.h
2720 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
2721
e1fb4ad3
RB
27222013-09-12 Richard Biener <rguenther@suse.de>
2723
2724 PR tree-optimization/58404
2725 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2726 propagate non-invariant addresses into dereferences wrapped
2727 in component references.
2728
154c9188
RB
27292013-09-12 Richard Biener <rguenther@suse.de>
2730
2731 PR tree-optimization/58402
2732 * passes.def: Move pass_late_warn_uninitialized later.
2733
7a300452
AM
27342013-09-12 Andrew MacLeod <amacleod@redhat.com>
2735
2736 * tree-ssa.h: New. Move content from tree-flow.h and
2737 tree-flow-inline.h.
2738 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
2739 Move prototypes belonging to tree-ssa.c.
f77e2d2d 2740 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
2741 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
2742 tree-ssa.h.
2743 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
2744 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
2745 to...
2746 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
2747 * tree.h: Move prototype to tree-ssa.h.
2748 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
2749 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
2750 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
2751 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
2752 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
2753 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
2754 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
2755 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
2756 graphite-blocking.c, graphite-clast-to-gimple.c,
2757 graphite-dependences.c, graphite-interchange.c,
2758 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
2759 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
2760 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
2761 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
2762 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
2763 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
2764 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
2765 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
2766 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
2767 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
2768 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
2769 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
2770 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
2771 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
2772 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
2773 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
2774 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
2775 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
2776 value-prof.c, var-tracking.c,
2777 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
2778
97463b2b
RB
27792013-09-12 Richard Biener <rguenther@suse.de>
2780
2781 PR tree-optimization/58396
2782 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
2783 (build_rdg): Take a loop-nest parameter, fix memleaks.
2784 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
2785
80ecd89d
YR
27862013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
2787
2788 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
2789 for SLM.
2790
893e85fa
CM
27912013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
2792
2793 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
2794 The FMA instruction names should have a 'v' prefix.
2795
174ec470
RB
27962013-09-12 Richard Biener <rguenther@suse.de>
2797
2798 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
2799 (dot_rdg): Use popen instead of system in optional code.
2800 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
2801 (already_processed_vertex_p): Adjust.
2802 (has_anti_or_output_dependence, predecessor_has_mem_write,
2803 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
2804 rdg_flag_uses): Remove.
2805 (rdg_flag_vertex): Simplify.
2806 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
2807 remove recursion.
2808 (build_rdg_partition_for_component): Process the first vertex
2809 of a component only.
2810 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
2811
38c89763
AM
28122013-09-12 Alan Modra <amodra@gmail.com>
2813
2814 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
2815
3e3d9d17
DD
28162013-09-11 DJ Delorie <dj@redhat.com>
2817 Nick Clifton <nickc@redhat.com>
2818
2819 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
2820 (rl78_stack_based_mem): New.
2821 * config/rl78/constraints.md (Iv08): New.
2822 (Iv16): New.
2823 (Iv24): New.
2824 (Is09): New.
2825 (Is17): New.
2826 (Is25): New.
2827 (ISsi): New.
2828 (IShi): New.
2829 (ISqi): New.
2830 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
2831 (movhi): Likewise.
2832 (movsi): Change from expand to insn-and-split.
2833 (ashrsi3): Clobber AX.
2834 (lshrsi3): New.
2835 (ashlsi3): New.
2836 (cbranchsi4): New.
2837 * config/rl78/rl78.md (CC_REG): Fix.
2838 (addsi3): Allow memory and immediate operands.
2839 (addsi3_internal): Split into...
2840 (addsi3_internal_virt): ...new, and ...
2841 (addsi3_internal_real): ...new.
2842 (subsi): New.
2843 (subsi3_internal_virt): New.
2844 (subsi3_internal_real): New.
2845 (mulsi3): Add memory operand.
2846 (mulsi3_rl78): Likewise.
2847 (mulsi3_g13): Likewise.
2848 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
2849 (cbranchqi4_real): Add more constraint options.
2850 (cbranchhi4_real): Expand pattern.
2851 (cbranchhi4_real_signed): New.
2852 (cbranchhi4_real_inverted): New.
2853 (cbranchsi4_real_lt): New.
2854 (cbranchsi4_real_ge): New.
2855 (cbranchsi4_real_signed): New.
2856 (cbranchsi4_real): New.
2857 (peephole2): New.
893e85fa
CM
2858 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
2859 constant shifts.
3e3d9d17
DD
2860 (lshrsi3_virt): Likewise.
2861 (ashlsi3_virt): Likewise.
2862 (cbranchqi4_virt_signed): New.
2863 (cbranchhi4_virt_signed): New.
2864 (cbranchsi4_virt): New.
2865 * config/rl78/rl78.c: Whitespace fixes throughout.
2866 (move_elim_pass): New.
2867 (pass_data_rl78_move_elim): New.
2868 (pass_rl78_move_elim): New.
2869 (make_pass_rl78_move_elim): New.
2870 (rl78_devirt_info): Run devirt earlier.
2871 (rl78_move_elim_info): New.
2872 (rl78_asm_file_start): Register it.
2873 (rl78_split_movsi): New.
2874 (rl78_as_legitimate_address): Allow virtual base registers when
2875 appropriate.
2876 (rl78_addr_space_convert): Remove spurious debug stuff.
2877 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
2878 (rl78_print_operand): More cases for not printing '#'.
2879 (rl78_expand_compare): Remove most of the logic.
2880 (content_memory): New.
2881 (clear_content_memory): New.
2882 (get_content_index): New.
2883 (get_content_name): New.
2884 (display_content_memory): New.
2885 (update_content): New.
2886 (record_content): New.
2887 (already_contains): New.
2888 (insn_ok_now): Re-recog insns with virtual registers.
2889 (add_postponed_content_update): New.
2890 (process_postponed_content_update): New.
2891 (gen_and_emit_move): New.
893e85fa
CM
2892 (transcode_memory_rtx): Record new location content.
2893 Use gen_and_emit_move.
3e3d9d17
DD
2894 (force_into_acc): New.
2895 (move_to_acc): Use gen_and_emit_move.
2896 (move_from_acc): Likewise.
2897 (move_acc_to_reg): Likewise.
2898 (move_to_x): Likewise.
2899 (move_to_hl): Likewise.
2900 (move_to_de): Likewise.
2901 (rl78_alloc_physical_registers_op1): Record location content.
2902 (has_constraint): New.
2903 (rl78_alloc_physical_registers_op2): Record location content.
2904 Optimize use of HL.
2905 (rl78_alloc_physical_registers_ro1): Likewise.
2906 (rl78_alloc_physical_registers_cmp): Likewise.
2907 (rl78_alloc_physical_registers_umul): Likewise.
2908 (rl78_alloc_address_registers_macax): New.
2909 (rl78_alloc_physical_registers): Initialize and set location
2910 content memory as needed.
2911 (rl78_reorg): Make sure split2 is called.
2912 (rl78_rtx_costs): New.
2913
088845a5
RS
29142013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
2915
2916 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
2917 for (not (neg ...)) and (neg (not ...)) cases.
2918
5c2961cf
RB
29192013-09-11 Richard Biener <rguenther@suse.de>
2920
2921 PR middle-end/58377
2922 * passes.def: Split critical edges before late uninit warning passes.
2923 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
2924
427e6a14
JJ
29252013-09-11 Jakub Jelinek <jakub@redhat.com>
2926
2927 PR tree-optimization/58385
2928 * fold-const.c (build_range_check): If both low and high are NULL,
2929 use omit_one_operand_loc to preserve exp side-effects.
2930
df45c0cc
KT
29312013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2932
2933 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
2934
80ab0b19
RB
29352013-09-11 Richard Biener <rguenther@suse.de>
2936
2937 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
2938 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
2939 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
2940 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
2941 stmts_from_loop, known_dependences_p, build_empty_rdg,
2942 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
2943 * tree-loop-distribution.c: ... here.
2944 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
2945 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
2946 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
2947 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
2948 * tree-loop-distribution.c: ... here.
2949 * tree-loop-distribution.c: Include gimple-pretty-print.h.
2950 (struct partition_s): Add loops member.
2951 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
2952 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
2953 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
2954
85a77221
AI
29552013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2956 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2957 Sergey Lega <sergey.s.lega@intel.com>
2958 Anna Tikhonova <anna.tikhonova@intel.com>
2959 Ilya Tocar <ilya.tocar@intel.com>
2960 Andrey Turetskiy <andrey.turetskiy@intel.com>
2961 Ilya Verbin <ilya.verbin@intel.com>
2962 Kirill Yukhin <kirill.yukhin@intel.com>
2963 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2964
2965 * config/i386/constraints.md (k): New.
2966 (Yk): Ditto.
2967 * config/i386/i386.c (const regclass_map): Add new mask registers.
2968 (dbx_register_map): Ditto.
2969 (dbx64_register_map): Ditto.
2970 (svr4_dbx_register_map): Ditto.
2971 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
2972 disabled.
2973 (ix86_preferred_reload_class): Disable constants for mask registers.
2974 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
2975 (ix86_hard_regno_mode_ok): Support new mask registers.
2976 (x86_order_regs_for_local_alloc): Ditto.
2977 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
2978 (FIXED_REGISTERS): Add new mask registers.
2979 (CALL_USED_REGISTERS): Ditto.
2980 (REG_ALLOC_ORDER): Ditto.
2981 (VALID_MASK_REG_MODE): New.
2982 (FIRST_MASK_REG): Ditto.
2983 (LAST_MASK_REG): Ditto.
2984 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
2985 (MAYBE_MASK_CLASS_P): New.
2986 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
2987 (REG_CLASS_CONTENTS): Ditto.
2988 (MASK_REGNO_P): New.
2989 (ANY_MASK_REG_P): Ditto.
2990 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
2991 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
2992 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
2993 mask registers.
85a77221
AI
2994 (attribute "type"): Add mskmov, msklog.
2995 (attribute "length_immediate"): Support them.
2996 (attribute "memory"): Ditto.
2997 (attribute "prefix_0f"): Ditto.
2998 (*movhi_internal): Support new mask registers.
2999 (*movqi_internal): Ditto.
3000 (define_split): Split out clobber pattern is a logic
3001 insn on mask registers.
3002 (*k<logic><mode>): New.
3003 (*andhi_1): Extend to support mask regs.
3004 (*andqi_1): Extend to support mask regs.
3005 (kandn<mode>): New.
3006 (define_split): Split and-not to and and not if operands
3007 are not mask regs.
3008 (*<code><mode>_1): Separate HI mode to new pattern...
3009 (*<code>hi_1): This.
3010 (*<code>qi_1): Extend to support mask regs.
3011 (kxnor<mode>): New.
3012 (kortestzhi): Ditto.
3013 (kortestchi): Ditto.
3014 (kunpckhi): Ditto.
3015 (*one_cmpl<mode>2_1): Remove HImode and handle it...
3016 (*one_cmplhi2_1): ...Here, now with mask registers support.
3017 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
3018 (HI/QImode arithmetics splitter): Don't split if mask registers
3019 are used.
85a77221
AI
3020 (HI/QImode not splitter): Ditto.
3021 * config/i386/predicated.md (mask_reg_operand): New.
3022 (general_reg_operand): Ditto.
3023
7e570821
AI
30242013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
3025
3026 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
3027 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
3028
9e1376e9
JL
30292013-09-10 Jeff Law <law@redhat.com>
3030
3031 PR tree-optimization/58380
3032 * tree-ssa-threadupdate.c (thread_block): Recognize another case
3033 of threading through a buried loop header.
3034
3035 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
3036 return value for single successor case.
3037
5bbcb888
JH
30382013-09-10 Jan Hubicka <jh@suse.cz>
3039
3040 * ipa-devirt.c (ipa_devirt): Enable with LTO.
3041
d742ff4b
RE
30422013-09-10 Richard Earnshaw <rearnsha@arm.com>
3043
3044 PR target/58361
3045 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
3046 support conditional execution.
3047 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
3048
b0681c9e
VM
30492013-09-10 Vladimir Makarov <vmakarov@redhat.com>
3050
3051 * lra.c (lra): Clear lra_optional_reload_pseudos before every
3052 constraint pass.
f77e2d2d
JBG
3053 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
3054 Check destination too to check move insn.
b0681c9e 3055 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
3056 changed its allocation and the optional reload was inherited on last
3057 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
3058 (lra_undo_inheritance): Add check that inherited pseudo still in
3059 memory.
3060
c9b1c957
JG
30612013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
3062
3063 * config/aarch64/aarch64.md (generic_sched): New.
3064 * config/aarch64/aarch64-generic.md (load): Make conditional
3065 on generic_sched attribute.
3066 (nonload): Likewise.
3067
82d618d3
JH
30682013-09-10 Jan Hubicka <jh@suse.cz>
3069
3070 * lto-cgraph.c: Include ipa-utils.h.
3071 (compute_ltrans_boundary): Also add possible targets into the boundary.
3072
668b6894
JH
30732013-09-10 Jan Hubicka <jh@suse.cz>
3074
3075 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
3076 VAR_DECL of vtable rather than full expression.
3077
4f90d3e0
JH
30782013-09-10 Jan Hubicka <jh@suse.cz>
3079 Paolo Carlini <paolo.carlini@oracle.com>
3080
3081 * cgraphunit.c (analyze_functions): Save input_location, set it
3082 to UNKNOWN_LOCATION and restore it at the end.
3083
39e87baf
MJ
30842013-09-10 Martin Jambor <mjambor@suse.cz>
3085
3086 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
3087 represented by a thunk.
3088
581aedec
JL
30892013-09-10 Jeff Law <law@redhat.com>
3090
3091 PR tree-optimization/58343
3092 * tree-ssa-threadupdate.c (thread_block): Identify and disable
3093 jump threading requests through loop headers buried in the middle
3094 of a jump threading path.
3095
3096 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
3097 in return value/type.
3098
84cf4ab6
JJ
30992013-09-10 Jakub Jelinek <jakub@redhat.com>
3100
3101 PR rtl-optimization/58365
3102 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
3103 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
3104 it differs.
3105
447dd906
RB
31062013-09-10 Richard Biener <rguenther@suse.de>
3107
3108 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
3109 * tree-data-ref.c (create_rdg_vertices): Collect all data
3110 references, signal failure to the caller, use data-ref API.
893e85fa
CM
3111 (build_rdg): Compute data references only once. Maintain lifetime
3112 of data references and data dependences from within RDG.
447dd906
RB
3113 (free_rdg): Free dependence relations.
3114 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
3115 inventing extra dependences.
3116 (distribute_loop): Update for RDG API changes.
3117
f14a7324
KT
31182013-09-10 Kai Tietz <ktietz@redhat.com>
3119
3120 * doc/invoke.texi (fms-extensions): Document changed
3121 behavior for ms-abi targets.
3122 * config/i386/i386.c (ix86_option_override_internal):
3123 Set default value of option -fms-extension for ms-abi targets.
3124
ff131f26
MZ
31252013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
3126
3127 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
3128
33115a2c
AM
31292013-09-10 Alan Modra <amodra@gmail.com>
3130
3131 PR target/58330
3132 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
3133
b6872a13
AM
31342013-09-10 Alan Modra <amodra@gmail.com>
3135
3136 * config/rs6000/predicates.md (add_cint_operand): New.
3137 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
3138 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
3139 using add_cint_operand.
3140 (largetoc_high_plus_aix): Likewise.
3141
28fd0ba2
JJ
31422013-09-09 Jakub Jelinek <jakub@redhat.com>
3143
3144 PR tree-optimization/58364
3145 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
3146 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
3147 the current range can't be an unconditional true or false.
3148
552d99fe
JG
31492013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
3150
3151 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
3152
f43245d1
UB
31532013-09-09 Uros Bizjak <ubizjak@gmail.com>
3154
3155 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
3156
c9b0866a
PC
31572013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
3158
3159 PR c++/43452
3160 * doc/invoke.texi (-Wdelete-incomplete): Document it.
3161
78d8b9f0
IB
31622013-09-09 Ian Bolton <ian.bolton@arm.com>
3163
3164 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
3165 NO_REGS for immediate that can't be moved directly into FP_REGS.
3166
274b2532
KT
31672013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3168
3169 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
3170 comparison with negated operand.
c9b0866a
PC
3171 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
3172 RTL form.
274b2532 3173
467a3558
RB
31742013-09-09 Richard Biener <rguenther@suse.de>
3175
3176 PR middle-end/58326
3177 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
3178 of a subloop record all its block as affecting loop-closed SSA form.
3179
088c5368
RS
31802013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3181
3182 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
3183 of an rtx/bitpos pair.
3184 (store_fixed_bit_field): Update accordingly.
3185
69db2d57
RS
31862013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3187
3188 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
3189 GEN_INT.
3190 * builtins.c (expand_errno_check): Likewise.
3191 * dwarf2cfi.c (init_return_column_size): Likewise.
3192 * except.c (sjlj_mark_call_sites): Likewise.
3193 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
3194 * lra-constraints.c (emit_inc): Likewise.
3195 * ree.c (combine_set_extension): Likewise.
3196 * regmove.c (fixup_match_2): Likewise.
3197 * reload1.c (inc_for_reload): Likewise.
3198
69a59f0f
RS
31992013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3200
3201 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
3202 (force_to_mode, simplify_shift_const_1, simplify_comparison):
3203 Use gen_int_mode with the mode of the associated simplify_* call.
3204 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
3205 * expmed.c (expand_shift_1): Likewise.
3206 * function.c (instantiate_virtual_regs_in_insn): Likewise.
3207 * loop-iv.c (iv_number_of_iterations): Likewise.
3208 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3209 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3210
2f1cd2eb
RS
32112013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3212
3213 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
3214 of the associated expand_* call.
3215 (asan_emit_stack_protection): Likewise.
3216 * builtins.c (round_trampoline_addr): Likewise.
3217 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
3218 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
3219 (emit_store_flag): Likewise.
3220 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
3221 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
3222 Likewise.
3223 * function.c (instantiate_virtual_regs_in_insn): Likewise.
3224 * ifcvt.c (noce_try_store_flag_constants): Likewise.
3225 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
3226 * modulo-sched.c (generate_prolog_epilog): Likewise.
3227 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
3228 (expand_ctz, expand_ffs, expand_unop): Likewise.
3229
4789c0ce
RS
32302013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3231
3232 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
3233 of the associated gen_rtx_* call.
3234 * caller-save.c (init_caller_save): Likewise.
3235 * combine.c (find_split_point, make_extraction): Likewise.
3236 (make_compound_operation): Likewise.
3237 * dwarf2out.c (mem_loc_descriptor): Likewise.
3238 * explow.c (plus_constant, probe_stack_range): Likewise.
3239 * expmed.c (expand_mult_const): Likewise.
3240 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
3241 * reload1.c (init_reload): Likewise.
3242 * valtrack.c (cleanup_auto_inc_dec): Likewise.
3243 * var-tracking.c (adjust_mems): Likewise.
3244 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
3245 rather than gen_rtx_fmt_ee.
3246
a811f7cb
JH
32472013-09-09 Jan Hubicka <jh@suse.cz>
3248
3249 PR middle-end/58294
3250 * value-prof.c (gimple_ic): Copy also abnormal edges.
3251
dcad1dd3
RS
32522013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
3253
3254 * asan.c (asan_shadow_cst): Use gen_int_mode.
3255
daf5c770
JH
32562013-09-08 Jan Hubicka <jh@suse.cz>
3257
3258 * ipa-profile.c: Add toplevel comment.
3259 (ipa_propagate_frequency_1): Be more conservative when profile is read.
3260 (contains_hot_call_p): New function.
3261 (ipa_propagate_frequency): Set frequencies based on counts when
3262 profile is read.
3263 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
3264 profile; do not tamper with profile after inlining if it is read.
3265
a12cd2db
JH
32662013-09-08 Jan Hubicka <jh@suse.cz>
3267
3268 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
3269 speculative edges.
3270
856a1588
JH
32712013-09-08 Jan Hubicka <jh@suse.cz>
3272
3273 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
3274 summary generation.
3275
4f4b0b73
JL
32762013-09-08 Jeff Law <law@redhat.com>
3277
3278 PR bootstrap/58340
3279 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
3280 of 'found'.
3281
cc4029ee
AK
32822013-09-08 Andi Kleen <ak@linux.intel.com>
3283
3284 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
3285
7b395ddd
JH
32862013-09-08 Jan Hubicka <jh@suse.cz>
3287
3288 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
3289
c34c46dd
RS
32902013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
3291
3292 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
3293 for non-debug insns.
3294 * lra.c (new_insn_reg): Take the containing insn as a parameter.
3295 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
3296 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
3297 accordingly.
3298
3462aa02
JH
32992013-09-08 Jan Hubicka <jh@suse.cz>
3300
3301 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
3302 targets and devirtualize to BUILT_IN_UNREACHABLE.
3303 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
3304 * ipa.c (walk_polymorphic_call_targets): New function.
3305 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
3306 functions; use the new timevar.
3307 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
3308 was removed from the program.
3309 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
3310 not consider it in the walk when its vtable is dead.
3311 (possible_polymorphic_call_targets_1): Pass anonymous flag to
3312 record_binfo.
3313 (devirt_variable_node_removal_hook): New function.
3314 (possible_polymorphic_call_targets): Also register
3315 devirt_variable_node_removal_hook.
3316 (ipa_devirt): Do not do non-speculative devirtualization.
3317 (gate_ipa_devirt): One execute if devirtualizing speculatively.
3318
26e5b0fd
JH
33192013-09-08 Jan Hubicka <jh@suse.cz>
3320
3321 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
3322 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
3323 varpool_remove_variable_insertion_hook): Declare.
3324 * varpool.c (varpool_node_hook_list): New structure.
3325 (first_varpool_node_removal_hook,
3326 first_varpool_variable_insertion_hook): New variables.
3327 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
3328 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
3329 varpool_remove_variable_insertion_hook,
3330 varpool_call_variable_insertion_hooks): New functions.
3331 (varpool_remove_node): Use it.
3332
97f1f314 33332013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 3334
97f1f314
PC
3335 PR c++/54941
3336 * diagnostic.c (diagnostic_build_prefix): When s.file is
3337 "<built-in>" don't output line and column numbers.
6df2ca09 3338
bcb650cb
JH
33392013-09-06 Jan Hubicka <jh@suse.cz>
3340
3341 * cgraphunit.c (expand_thunk): Get body before touching arguments.
3342 * lto-streamer-out.c: Stream thunks, too.
3343 * lto-streamer-in.c (input_function): Pop cfun here
3344 (lto_read_body): Instead of here.
3345
87f3fea8
CT
33462013-09-06 Caroline Tice <cmtice@google.com>
3347
3348 * doc/install.texi: Add documentation for the --enable-vtable-verify
3349 and the --disable-libvtv configure options.
3350
5e8d9b45
JL
33512013-09-06 Jeff Law <law@redhat.com>
3352
3353 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3354 edge implied equivalences into successor phis.
3355
3a001aff
JR
33562013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
3357
3358 * resource.c (mark_referenced_resources): Handle COND_EXEC.
3359
33602013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
3361
3362 * resource.c (mark_target_live_regs): Compute resources taking
3363 into account if a call is predicated or not.
3364
2c641f8b
EB
33652013-09-06 Eric Botcazou <ebotcazou@adacore.com>
3366
3367 * toplev.c (output_stack_usage): Be prepared for suffixes created by
3368 the compiler in the function names.
3369
a81b0a3d
JH
33702013-09-06 Jan Hubicka <jh@suse.cz>
3371
3372 PR middle-end/58094
3373 * ipa-inline.c (has_caller_p): New function.
3374 (want_inline_function_to_all_callers_p): Use it.
3375 (sum_callers, inline_to_all_callers): Break out from ...
3376 (ipa_inline): ... here.
3377
68e4ca7e
JH
33782013-09-06 Jan Hubicka <jh@suse.cz>
3379
2c641f8b
EB
3380 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
3381 only when AVX is enabled.
68e4ca7e 3382
3c73e2fe
JG
33832013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3384
3385 * config/aarch64/aarch64.md
3386 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
3387 is fpsimd_<load/store>2.
3388 (load_pair<mode>): Likewise.
3389 (store_pair<mode>): Likewise.
3390
8c48eecd
JG
33912013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3392
3393 * config/arm/types.md (type): Add "mrs" type.
3394 * config/aarch64/aarch64.md
3395 (aarch64_load_tp_hard): Make type "mrs".
3396 * config/arm/arm.md
3397 (load_tp_hard): Make type "mrs".
3398 * config/arm/cortex-a15.md: Update with new attributes.
3399 * config/arm/cortex-a5.md: Update with new attributes.
3400 * config/arm/cortex-a53.md: Update with new attributes.
3401 * config/arm/cortex-a7.md: Update with new attributes.
3402 * config/arm/cortex-a8.md: Update with new attributes.
3403 * config/arm/cortex-a9.md: Update with new attributes.
3404 * config/arm/cortex-m4.md: Update with new attributes.
3405 * config/arm/cortex-r4.md: Update with new attributes.
3406 * config/arm/fa526.md: Update with new attributes.
3407 * config/arm/fa606te.md: Update with new attributes.
3408 * config/arm/fa626te.md: Update with new attributes.
3409 * config/arm/fa726te.md: Update with new attributes.
3410
9ea187a5
JG
34112013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3412
3413 * config/aarch64/aarch64.md
3414 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
3415 (*movtf_aarch64): Likewise.
3416 * config/arm/arm.md
3417 (thumb1_movdi_insn): Use "multiple" for type where more than one
3418 instruction is used for a move.
3419 (*arm32_movhf): Likewise.
3420 (*thumb_movdf_insn): Likewise.
3421
292b89b3
JG
34222013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3423
3424 * config/arm/types.md (type): Rename fcpys to fmov.
3425 * config/arm/vfp.md
3426 (*arm_movsi_vfp): Rename type fcpys as fmov.
3427 (*thumb2_movsi_vfp): Likewise
3428 (*movhf_vfp_neon): Likewise
3429 (*movhf_vfp): Likewise
3430 (*movsf_vfp): Likewise
3431 (*thumb2_movsf_vfp): Likewise
3432 (*movsfcc_vfp): Likewise
3433 (*thumb2_movsfcc_vfp): Likewise
3434 * config/aarch64/aarch64-simd.md
3435 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
3436 * config/aarch64/aarch64.md
3437 (*movsi_aarch64): Replace type mov_reg with fmovs.
3438 (*movdi_aarch64): Likewise
3439 (*movsf_aarch64): Likewise
3440 (*movdf_aarch64): Likewise
3441 * config/arm/arm.c
3442 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
3443 * config/arm/iwmmxt.md
3444 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
3445 * config/arm/arm1020e.md: Update with new attributes.
3446 * config/arm/cortex-a15-neon.md: Update with new attributes.
3447 * config/arm/cortex-a5.md: Update with new attributes.
3448 * config/arm/cortex-a53.md: Update with new attributes.
3449 * config/arm/cortex-a7.md: Update with new attributes.
3450 * config/arm/cortex-a8-neon.md: Update with new attributes.
3451 * config/arm/cortex-a9.md: Update with new attributes.
3452 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3453 * config/arm/cortex-r4f.md: Update with new attributes.
3454 * config/arm/marvell-pj4.md: Update with new attributes.
3455 * config/arm/vfp11.md: Update with new attributes.
3456
6a24a83e
JG
34572013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3458
3459 * config/aarch64/aarch64.md
3460 (*madd<mode>): Fix type attribute.
3461 (*maddsi_uxtw): Likewise.
3462 (*msub<mode>): Likewise.
3463 (*msubsi_uxtw): Likewise.
3464 (<su_optab>maddsidi4): Likewise.
3465 (<su_optab>msubsidi4): Likewise.
3466
b86923f0
JG
34672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3468
3469 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
3470 * config/arm/arm.md (core_cycles): Remove fdiv.
3471 * config/arm/vfp.md:
3472 (*sqrtsf2_vfp): Update for attribute changes.
3473 (*sqrtdf2_vfp): Likewise.
3474 * config/aarch64/aarch64.md:
3475 (sqrt<mode>2): Update for attribute changes.
3476 * config/arm/arm1020e.md: Update with new attributes.
3477 * config/arm/cortex-a15-neon.md: Update with new attributes.
3478 * config/arm/cortex-a5.md: Update with new attributes.
3479 * config/arm/cortex-a53.md: Update with new attributes.
3480 * config/arm/cortex-a7.md: Update with new attributes.
3481 * config/arm/cortex-a8-neon.md: Update with new attributes.
3482 * config/arm/cortex-a9.md: Update with new attributes.
3483 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3484 * config/arm/cortex-r4f.md: Update with new attributes.
3485 * config/arm/marvell-pj4.md: Update with new attributes.
3486 * config/arm/vfp11.md: Update with new attributes.
3487
7b49c9e1
JG
34882013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3489
3490 * config/arm/types.md
3491 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
3492 * config/aarch64/aarch64.md
3493 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
3494 new attributes.
3495 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
3496 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
3497 (float<GPI:mode><GPF:mode>2): Likewise.
3498 * config/arm/vfp.md
3499 (*truncsisf2_vfp): Update with new attributes.
3500 (*truncsidf2_vfp): Likewise.
3501 (fixuns_truncsfsi2): Likewise.
3502 (fixuns_truncdfsi2): Likewise.
3503 (*floatsisf2_vfp): Likewise.
3504 (*floatsidf2_vfp): Likewise.
3505 (floatunssisf2): Likewise.
3506 (floatunssidf2): Likewise.
3507 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
3508 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
3509 * config/arm/arm1020e.md: Update with new attributes.
3510 * config/arm/cortex-a15-neon.md: Update with new attributes.
3511 * config/arm/cortex-a5.md: Update with new attributes.
3512 * config/arm/cortex-a53.md: Update with new attributes.
3513 * config/arm/cortex-a7.md: Update with new attributes.
3514 * config/arm/cortex-a8-neon.md: Update with new attributes.
3515 * config/arm/cortex-a9.md: Update with new attributes.
3516 * config/arm/cortex-m4-fpu.md: Update with new attributes.
3517 * config/arm/cortex-r4f.md: Update with new attributes.
3518 * config/arm/marvell-pj4.md: Update with new attributes.
3519 * config/arm/vfp11.md: Update with new attributes.
3520
e7df8af8
JG
35212013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3522
3523 * config/aarch64/arm_neon.h
3524 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
3525 (vqtbx<1,2,3,4><q>_s8): Likewise.
3526
594726e4
JG
35272013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3528
f43245d1
UB
3529 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
3530 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
3531 (add<mode>3): Add type attribute.
3532 (add<mode>3): Likewise.
3533 (usadd<mode>3): Likewise.
3534 (ssadd<mode>3): Likewise.
3535 (sub<mode>3): Likewise.
3536 (sub<mode>3): Likewise.
3537 (ussub<mode>3): Likewise.
3538 (sssub<mode>3): Likewise.
3539 (ssmulsa3): Likewise.
3540 (usmulusa3): Likewise.
3541 (arm_usatsihi): Likewise.
3542 * config/arm/vfp.md
3543 (*movdi_vfp): Add types for all instructions.
3544 (*movdi_vfp_cortexa8): Likewise.
3545 (*movhf_vfp_neon): Likewise.
3546 (*movhf_vfp): Likewise.
3547 (*movdf_vfp): Likewise.
3548 (*thumb2_movdf_vfp): Likewise.
3549 (*thumb2_movdfcc_vfp): Likewise.
3550 * config/arm/arm.md: Add type attribute to all insn patterns.
3551 (*thumb1_adddi3): Add type attribute.
3552 (*arm_adddi3): Likewise.
3553 (*adddi_sesidi_di): Likewise.
3554 (*adddi_zesidi_di): Likewise.
3555 (*thumb1_addsi3): Likewise.
3556 (addsi3_compare0): Likewise.
3557 (*addsi3_compare0_scratch): Likewise.
3558 (*compare_negsi_si): Likewise.
3559 (cmpsi2_addneg): Likewise.
3560 (*addsi3_carryin_<optab>): Likewise.
3561 (*addsi3_carryin_alt2_<optab>): Likewise.
3562 (*addsi3_carryin_clobercc_<optab>): Likewise.
3563 (*subsi3_carryin): Likewise.
3564 (*subsi3_carryin_const): Likewise.
3565 (*subsi3_carryin_compare): Likewise.
3566 (*subsi3_carryin_compare_const): Likewise.
3567 (*arm_subdi3): Likewise.
3568 (*thumb_subdi3): Likewise.
3569 (*subdi_di_zesidi): Likewise.
3570 (*subdi_di_sesidi): Likewise.
3571 (*subdi_zesidi_di): Likewise.
3572 (*subdi_sesidi_di): Likewise.
3573 (*subdi_zesidi_ze): Likewise.
3574 (thumb1_subsi3_insn): Likewise.
3575 (*arm_subsi3_insn): Likewise.
3576 (*anddi3_insn): Likewise.
3577 (*anddi_zesidi_di): Likewise.
3578 (*anddi_sesdi_di): Likewise.
3579 (*ne_zeroextracts): Likewise.
3580 (*ne_zeroextracts): Likewise.
3581 (*ite_ne_zeroextr): Likewise.
3582 (*ite_ne_zeroextr): Likewise.
3583 (*anddi_notdi_di): Likewise.
3584 (*anddi_notzesidi): Likewise.
3585 (*anddi_notsesidi): Likewise.
3586 (andsi_notsi_si): Likewise.
3587 (thumb1_bicsi3): Likewise.
3588 (*iordi3_insn): Likewise.
3589 (*iordi_zesidi_di): Likewise.
3590 (*iordi_sesidi_di): Likewise.
3591 (*thumb1_iorsi3_insn): Likewise.
3592 (*xordi3_insn): Likewise.
3593 (*xordi_zesidi_di): Likewise.
3594 (*xordi_sesidi_di): Likewise.
3595 (*arm_xorsi3): Likewise.
3596 (*andsi_iorsi3_no): Likewise.
3597 (*smax_0): Likewise.
3598 (*smax_m1): Likewise.
3599 (*arm_smax_insn): Likewise.
3600 (*smin_0): Likewise.
3601 (*arm_smin_insn): Likewise.
3602 (*arm_umaxsi3): Likewise.
3603 (*arm_uminsi3): Likewise.
3604 (*minmax_arithsi): Likewise.
3605 (*minmax_arithsi_): Likewise.
3606 (*satsi_<SAT:code>): Likewise.
3607 (arm_ashldi3_1bit): Likewise.
3608 (arm_ashrdi3_1bit): Likewise.
3609 (arm_lshrdi3_1bit): Likewise.
3610 (*arm_negdi2): Likewise.
3611 (*thumb1_negdi2): Likewise.
3612 (*arm_negsi2): Likewise.
3613 (*thumb1_negsi2): Likewise.
3614 (*negdi_extendsid): Likewise.
3615 (*negdi_zero_extend): Likewise.
3616 (*arm_abssi2): Likewise.
3617 (*thumb1_abssi2): Likewise.
3618 (*arm_neg_abssi2): Likewise.
3619 (*thumb1_neg_abss): Likewise.
3620 (one_cmpldi2): Likewise.
3621 (extend<mode>di2): Likewise.
3622 (*compareqi_eq0): Likewise.
3623 (*arm_extendhisi2addsi): Likewise.
3624 (*arm_movdi): Likewise.
3625 (*thumb1_movdi_insn): Likewise.
3626 (*arm_movt): Likewise.
3627 (*thumb1_movsi_insn): Likewise.
3628 (pic_add_dot_plus_four): Likewise.
3629 (pic_add_dot_plus_eight): Likewise.
3630 (tls_load_dot_plus_eight): Likewise.
3631 (*thumb1_movhi_insn): Likewise.
3632 (*thumb1_movsf_insn): Likewise.
3633 (*movdf_soft_insn): Likewise.
3634 (*thumb_movdf_insn): Likewise.
3635 (cbranchsi4_insn): Likewise.
3636 (cbranchsi4_scratch): Likewise.
3637 (*negated_cbranchsi4): Likewise.
3638 (*tbit_cbranch): Likewise.
3639 (*tlobits_cbranch): Likewise.
3640 (*tstsi3_cbranch): Likewise.
3641 (*cbranchne_decr1): Likewise.
3642 (*addsi3_cbranch): Likewise.
3643 (*addsi3_cbranch_scratch): Likewise.
3644 (*arm_cmpdi_insn): Likewise.
3645 (*arm_cmpdi_unsig): Likewise.
3646 (*arm_cmpdi_zero): Likewise.
3647 (*thumb_cmpdi_zero): Likewise.
3648 (*deleted_compare): Likewise.
3649 (*mov_scc): Likewise.
3650 (*mov_negscc): Likewise.
3651 (*mov_notscc): Likewise.
3652 (*cstoresi_eq0_thumb1_insn): Likewise.
3653 (cstoresi_nltu_thumb1): Likewise.
3654 (cstoresi_ltu_thu): Likewise.
3655 (thumb1_addsi3_addgeu): Likewise.
3656 (*arm_jump): Likewise.
3657 (*thumb_jump): Likewise.
3658 (*check_arch2): Likewise.
3659 (arm_casesi_internal): Likewise.
3660 (thumb1_casesi_dispatch): Likewise.
3661 (*arm_indirect_jump): Likewise.
3662 (*thumb1_indirect_jump): Likewise.
3663 (nop): Likewise.
3664 (*and_scc): Likewise.
3665 (*ior_scc): Likewise.
3666 (*compare_scc): Likewise.
3667 (*cond_move): Likewise.
3668 (*cond_arith): Likewise.
3669 (*cond_sub): Likewise.
3670 (*cmp_ite0): Likewise.
3671 (*cmp_ite1): Likewise.
3672 (*cmp_and): Likewise.
3673 (*cmp_ior): Likewise.
3674 (*ior_scc_scc): Likewise.
3675 (*ior_scc_scc_cmp): Likewise.
3676 (*and_scc_scc): Likewise.
3677 (*and_scc_scc_cmp): Likewise.
3678 (*and_scc_scc_nod): Likewise.
3679 (*negscc): Likewise.
3680 (movcond_addsi): Likewise.
3681 (movcond): Likewise.
3682 (*ifcompare_plus_move): Likewise.
3683 (*if_plus_move): Likewise.
3684 (*ifcompare_move_plus): Likewise.
3685 (*if_move_plus): Likewise.
3686 (*ifcompare_arith_arith): Likewise.
3687 (*if_arith_arith): Likewise.
3688 (*ifcompare_arith_move): Likewise.
3689 (*if_arith_move): Likewise.
3690 (*ifcompare_move_arith): Likewise.
3691 (*if_move_arith): Likewise.
3692 (*ifcompare_move_not): Likewise.
3693 (*if_move_not): Likewise.
3694 (*ifcompare_not_move): Likewise.
3695 (*if_not_move): Likewise.
3696 (*ifcompare_shift_move): Likewise.
3697 (*if_shift_move): Likewise.
3698 (*ifcompare_move_shift): Likewise.
3699 (*if_move_shift): Likewise.
3700 (*ifcompare_shift_shift): Likewise.
3701 (*ifcompare_not_arith): Likewise.
3702 (*ifcompare_arith_not): Likewise.
3703 (*if_arith_not): Likewise.
3704 (*ifcompare_neg_move): Likewise.
3705 (*if_neg_move): Likewise.
3706 (*ifcompare_move_neg): Likewise.
3707 (*if_move_neg): Likewise.
3708 (prologue_thumb1_interwork): Likewise.
3709 (*cond_move_not): Likewise.
3710 (*sign_extract_onebit): Likewise.
3711 (*not_signextract_onebit): Likewise.
3712 (stack_tie): Likewise.
3713 (align_4): Likewise.
3714 (align_8): Likewise.
3715 (consttable_end): Likewise.
3716 (consttable_1): Likewise.
3717 (consttable_2): Likewise.
3718 (consttable_4): Likewise.
3719 (consttable_8): Likewise.
3720 (consttable_16): Likewise.
3721 (*thumb1_tablejump): Likewise.
3722 (prefetch): Likewise.
3723 (force_register_use): Likewise.
3724 (thumb_eh_return): Likewise.
3725 (load_tp_hard): Likewise.
3726 (load_tp_soft): Likewise.
3727 (tlscall): Likewise.
3728 (*arm_movtas_ze): Likewise.
3729 (*arm_rev): Likewise.
3730 (*arm_revsh): Likewise.
3731 (*arm_rev16): Likewise.
3732 * config/arm/thumb2.md
3733 (*thumb2_smaxsi3): Likewise.
3734 (*thumb2_sminsi3): Likewise.
3735 (*thumb32_umaxsi3): Likewise.
3736 (*thumb2_uminsi3): Likewise.
3737 (*thumb2_negdi2): Likewise.
3738 (*thumb2_abssi2): Likewise.
3739 (*thumb2_neg_abss): Likewise.
3740 (*thumb2_movsi_insn): Likewise.
3741 (tls_load_dot_plus_four): Likewise.
3742 (*thumb2_movhi_insn): Likewise.
3743 (*thumb2_mov_scc): Likewise.
3744 (*thumb2_mov_negs): Likewise.
3745 (*thumb2_mov_negs): Likewise.
3746 (*thumb2_mov_nots): Likewise.
3747 (*thumb2_mov_nots): Likewise.
3748 (*thumb2_movsicc_): Likewise.
3749 (*thumb2_movsfcc_soft_insn): Likewise.
3750 (*thumb2_indirect_jump): Likewise.
3751 (*thumb2_and_scc): Likewise.
3752 (*thumb2_ior_scc): Likewise.
3753 (*thumb2_ior_scc_strict_it): Likewise.
3754 (*thumb2_cond_move): Likewise.
3755 (*thumb2_cond_arith): Likewise.
3756 (*thumb2_cond_ari): Likewise.
3757 (*thumb2_cond_sub): Likewise.
3758 (*thumb2_negscc): Likewise.
3759 (*thumb2_movcond): Likewise.
3760 (thumb2_casesi_internal): Likewise.
3761 (thumb2_casesi_internal_pic): Likewise.
3762 (*thumb2_alusi3_short): Likewise.
3763 (*thumb2_mov<mode>_shortim): Likewise.
3764 (*thumb2_addsi_short): Likewise.
3765 (*thumb2_subsi_short): Likewise.
3766 (thumb2_addsi3_compare0): Likewise.
3767 (*thumb2_cbz): Likewise.
3768 (*thumb2_cbnz): Likewise.
3769 (*thumb2_one_cmplsi2_short): Likewise.
3770 (*thumb2_negsi2_short): Likewise.
3771 (*orsi_notsi_si): Likewise.
3772 * config/arm/arm1020e.md: Update with new attributes.
3773 * config/arm/arm1026ejs.md: Update with new attributes.
3774 * config/arm/arm1136jfs.md: Update with new attributes.
3775 * config/arm/arm926ejs.md: Update with new attributes.
3776 * config/arm/cortex-a15.md: Update with new attributes.
3777 * config/arm/cortex-a5.md: Update with new attributes.
3778 * config/arm/cortex-a53.md: Update with new attributes.
3779 * config/arm/cortex-a7.md: Update with new attributes.
3780 * config/arm/cortex-a8.md: Update with new attributes.
3781 * config/arm/cortex-a9.md: Update with new attributes.
3782 * config/arm/cortex-m4.md: Update with new attributes.
3783 * config/arm/cortex-r4.md: Update with new attributes.
3784 * config/arm/fa526.md: Update with new attributes.
3785 * config/arm/fa606te.md: Update with new attributes.
3786 * config/arm/fa626te.md: Update with new attributes.
3787 * config/arm/fa726te.md: Update with new attributes.
3788
1c83b673
JG
37892013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
3790
3791 * config/aarch64/aarch64-simd.md
3792 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
3793 <vwx> iterator to ensure correct register choice.
3794 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
3795 (aarch64_sqdmull_n<mode>): Likewise.
3796 (aarch64_sqdmull2_n<mode>_internal): Likewise.
3797 * config/aarch64/arm_neon.h
3798 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
3799 (vml<as><q>_n_<su>16): Likewise.
3800 (vml<as>l_high_lane<q>_<su>16): Likewise.
3801 (vml<as>l_high_n_<su>16): Likewise.
3802 (vml<as>l_lane<q>_<su>16): Likewise.
3803 (vml<as>l_n_<su>16): Likewise.
3804 (vmul<q>_lane<q>_<su>16): Likewise.
3805 (vmul<q>_n_<su>16): Likewise.
3806 (vmull_lane<q>_<su>16): Likewise.
3807 (vmull_n_<su>16): Likewise.
3808 (vmull_high_lane<q>_<su>16): Likewise.
3809 (vmull_high_n_<su>16): Likewise.
3810 (vqrdmulh<q>_n_s16): Likewise.
3811
bb1ae543
TB
38122013-09-06 Tejas Belagod <tejas.belagod@arm.com>
3813
3814 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
3815 have the correct lane parameter.
3816
f23c0742
RB
38172013-09-06 Richard Biener <rguenther@suse.de>
3818
3819 * cfganal.c (control_dependences::~control_dependences):
3820 Properly free all of the vector.
3821
c1d49770
KY
38222013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
3823
3824 PR target/58269
3825 * config/i386/i386.c (ix86_conditional_register_usage):
3826 Proper initialize extended SSE registers.
3827
6da47f52
JH
38282013-09-06 Jan Hubicka <jh@suse.cz>
3829
3830 PR tree-optimization/58311
3831 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
3832
38332013-09-06 Jan Hubicka <jh@suse.cz>
3834
3835 * Makefile.in (tree-sra.o): Update dependencies.
3836 * tree-sra.c: Include ipa-utils.h
3837 (scan_function): Use recursive_call_p.
3838 (has_caller_p): New function.
3839 (cgraph_for_node_and_aliases): Count also callers of aliases.
3840
fc11f321
JH
38412013-09-06 Jan Hubicka <jh@suse.cz>
3842
3843 PR middle-end/58094
3844 * cgraph.h (symtab_semantically_equivalent_p): Declare.
3845 * tree-tailcall.c: Include ipa-utils.h.
3846 (find_tail_calls): Use it.
3847 * ipa-pure-const.c (check_call): Likewise.
3848 * ipa-utils.c (recursive_call_p): New function.
3849 * ipa-utils.h (recursive_call_p): Dclare.
3850 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
3851 (symtab_semantically_equivalent_p): New function.
3852 * Makefile.in (tree-tailcall.o): Update dependencies.
3853
9a6af450
EB
38542013-09-06 Eric Botcazou <ebotcazou@adacore.com>
3855
3856 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
3857 non-inlinable part.
3858
35f32ad4
RB
38592013-09-06 Richard Biener <rguenther@suse.de>
3860
3861 * lto-streamer.h (lto_global_var_decls): Remove.
3862 * Makefile.in (OBJS): Remove lto-symtab.o.
3863 (lto-symtab.o): Remove.
3864 (GTFILES): Remove lto-symtab.c
3865 * lto-symtab.c: Move to lto/
3866
d12a76f3
AK
38672013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3868
3869 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
3870 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
3871 (UNSPEC_FPINT_RINT): New constant definitions.
3872 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
3873 definition with 2 attributes.
3874 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
3875 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
3876 definitions.
3877
38782013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3879
f43245d1 3880 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
3881 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
3882 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
3883 attribute to "z196_alone".
3884 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
3885 "zEC12_simple".
3886
c8e9d8c3
RB
38872013-09-06 Richard Biener <rguenther@suse.de>
3888
3889 * basic-block.h (class control_dependences): New.
3890 * tree-ssa-dce.c (control_dependence_map): Remove.
3891 (cd): New global.
3892 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
3893 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
3894 find_pdom, find_control_dependence, find_all_control_dependences):
3895 Move to cfganal.c.
f43245d1
UB
3896 (mark_control_dependent_edges_necessary,
3897 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
3898 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
3899 * cfganal.c (set_control_dependence_map_bit,
3900 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
3901 find_all_control_dependences): Move from tree-ssa-dce.c and
3902 implement as methods of control_dependences class.
3903 (control_dependences::control_dependences): New.
3904 (control_dependences::~control_dependences): Likewise.
3905 (control_dependences::get_edges_dependent_on): Likewise.
3906 (control_dependences::get_edge): Likewise.
3907
7d2ba471
JH
39082013-09-04 Jan Hubicka <jh@suse.cz>
3909
3910 * tree.c (types_same_for_odr): Drop overactive check.
3911 * ipa-devirt.c (hash_type_name): Likewise.
3912
e18412fc
JH
39132013-09-04 Jan Hubicka <jh@suse.cz>
3914
3915 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
3916 (analyze_functions): ... here.
3917
d352b245
JH
39182013-09-04 Jan Hubicka <jh@suse.cz>
3919
3920 PR middle-end/58201
3921 * cgraphunit.c (analyze_functions): Clear AUX fields
3922 after processing; initialize assembler name has.
3923
770da076
JL
39242013-09-05 Jeff Law <law@redhat.com>
3925
3926 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
3927 from thread_around_empty_block. Record threading path into PATH.
3928 Recurse if threading through the initial block is successful.
3929 (thread_across_edge): Corresponding changes to slightly simplify.
3930
fe6f68e2
JG
39312013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
3932
3933 * config/aarch64/aarch64.md
3934 (type): Remove frecpe, frecps, frecpx.
3935 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
3936 fix to be a TARGET_SIMD instruction.
3937 (aarch64_frecps): Remove.
3938 * config/aarch64/aarch64-simd.md
3939 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
3940 (aarch64_frecps<mode>): Handle all float/vector of float modes.
3941
6e4150e1
JG
39422013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
3943 Sofiane Naci <sofiane.naci@arm.com>
3944
f43245d1 3945 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 3946 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
3947 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
3948 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
3949 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
3950 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
3951 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
3952 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
3953 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 3954 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 3955 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
3956 shift* types.
3957 * config/arm/arm-fixed.md: Update for attribute changes
3958 all occurrences of arlo_* types.
3959 * config/arm/thumb2.md: Update for attribute changes all occurrences
3960 of arlo_* types.
3961 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
3962 (cortexa7_older_only): Likewise.
3963 (cortexa7_younger): Likewise.
3964 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
3965 (1020alu_shift_op): Likewise.
3966 (1020alu_shift_reg_op): Likewise.
3967 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
3968 (alu_shift_op): Likewise.
3969 (alu_shift_reg_op): Likewise.
f43245d1 3970 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
3971 (11_alu_shift_op): Likewise.
3972 (11_alu_shift_reg_op): Likewise.
3973 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
3974 (9_alu_shift_reg_op): Likewise.
3975 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
3976 attribute changes.
3977 (cortex_a15_alu_shift): Likewise.
3978 (cortex_a15_alu_shift_reg): Likewise.
3979 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
3980 attribute changes.
3981 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
3982 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
3983 attribute changes.
6e4150e1 3984 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
3985 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
3986 attribute changes.
6e4150e1
JG
3987 (cortex_a7_alu_reg): Likewise.
3988 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
3989 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
3990 attribute changes.
6e4150e1
JG
3991 (cortex_a8_alu_shift): Likewise.
3992 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 3993 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 3994 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
3995 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
3996 attribute changes.
6e4150e1
JG
3997 * config/arm/cortex-r4.md
3998 (cortex_r4_alu): Update for attribute changes.
3999 (cortex_r4_mov): Likewise.
4000 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 4001 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 4002 (526_alu_shift_op): Likewise.
f43245d1
UB
4003 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
4004 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 4005 (626te_alu_shift_op): Likewise.
f43245d1 4006 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
4007 (726te_alu_shift_op): Likewise.
4008 (726te_alu_shift_reg_op): Likewise.
4009 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
4010 (mp626_alu_shift_op): Likewise.
4011 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
4012 (pj4_alu_conds): Likewise.
4013 (pj4_shift): Likewise.
4014 (pj4_shift_conds): Likewise.
4015 (pj4_alu_shift): Likewise.
4016 (pj4_alu_shift_conds): Likewise.
4017 * config/aarch64/aarch64.md: Update for attribute change
4018 all occurrences of arlo_* and shift* types.
4019
e6523306
MS
40202013-09-05 Mike Stump <mikestump@comcast.net>
4021
4022 * tree.h: Move documentation for tree_function_decl to tree-core.h
4023 with the declaration.
4024
80a18161
PB
40252013-09-05 Peter Bergner <bergner@vnet.ibm.com>
4026
4027 PR target/58139
4028 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
4029 looking for widest mode.
4030
6994430a
EB
40312013-09-05 Eric Botcazou <ebotcazou@adacore.com>
4032
4033 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
4034
e67f39f7
RB
40352013-09-05 Richard Biener <rguenther@suse.de>
4036
4037 PR tree-optimization/58137
4038 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4039 Do not create vectors of pointers.
4040 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
4041 types for the components of the vector initializer.
4042 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
4043 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
4044
568cda29
MJ
40452013-09-05 Martin Jambor <mjambor@suse.cz>
4046
4047 * ipa-prop.c (remove_described_reference): Accept missing references,
4048 return false if that hppens, otherwise return true.
4049 (cgraph_node_for_jfunc): New function.
4050 (try_decrement_rdesc_refcount): Likewise.
4051 (try_make_edge_direct_simple_call): Use them.
4052 (ipa_edge_removal_hook): Remove references from rdescs.
4053 (ipa_edge_duplication_hook): Clone rdescs and their references
4054 when the new edge has the same caller as the old one.
4055 * cgraph.c (cgraph_resolve_speculation): Remove speculative
4056 reference before removing any edges.
4057
5a200acb
RE
40582013-09-05 Richard Earnshaw <rearnsha@arm.com>
4059
4060 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
4061 initial store.
4062 * thumb2.md (thumb2_storewb_parisi): New pattern.
4063
5922847b
YZ
40642013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
4065
4066 * config/aarch64/aarch64-option-extensions.def: Add
4067 AARCH64_OPT_EXTENSION of 'crc'.
4068 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
4069 (AARCH64_ISA_CRC): Ditto.
4070 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
4071 description of the CRC extension.
4072
996746aa
AI
40732013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
4074
4075 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
4076 * config/rs6000/linux.h: Ditto.
4077 * alpha/linux.h: Ditto.
4078 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
4079 no_c99_libc_has_function.
4080 * config/c6x/uclinux-elf.h: Ditto.
4081 * config/lm32/uclinux-elf.h: Ditto.
4082 * config/m68k/uclinux.h: Ditto.
4083 * config/moxie/uclinux.h: Ditto.
4084 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
4085 (crisv32-*-linux*, cris-*-linux*): Ditto.
4086 * config/bfin/bfin.c: Include "tm_p.h".
4087
c370d99f
RB
40882013-09-05 Richard Biener <rguenther@suse.de>
4089
4090 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
4091 check for a definition without a basic-block.
4092
003bb7f3
JG
40932013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
4094 Sofiane Naci <sofiane.naci@arm.com>
4095
4096 * config/aarch64/aarch64.md
4097 (*movti_aarch64): Rename r_2_f and f_2_r.
4098 (*movsf_aarch64): Likewise.
4099 (*movdf_aarch64): Likewise.
4100 (*movtf_aarch64): Likewise.
4101 (aarch64_movdi_<mode>low): Likewise.
4102 (aarch64_movdi_<mode>high): Likewise.
4103 (aarch64_mov<mode>high_di): Likewise.
4104 (aarch64_mov<mode>low_di): Likewise.
4105 (aarch64_movtilow_tilow): Likewise.
4106 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
4107 values to config/arm/types.md
4108 (attribute "conds"): Update for attribute change.
4109 (anddi3_insn): Likewise.
4110 (iordi3_insn): Likewise.
4111 (xordi3_insn): Likewise.
4112 (one_cmpldi2): Likewise.
4113 * config/arm/types.md (type): Add Neon types.
4114 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
4115 use "type" attribute.
4116 (movmisalign<mode>_neon_store): Likewise.
4117 (movmisalign<mode>_neon_load): Likewise.
4118 (vec_set<mode>_internal): Likewise.
4119 (vec_setv2di_internal): Likewise.
4120 (vec_extract<mode>): Likewise.
4121 (vec_extractv2di): Likewise.
4122 (add<mode>3_neon): Likewise.
4123 (adddi3_neon): Likewise.
4124 (sub<mode>3_neon): Likewise.
4125 (subdi3_neon): Likewise.
4126 (mul<mode>3_neon): Likewise.
4127 (mul<mode>3add<mode>_neon): Likewise.
4128 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
4129 (fma<VCVTF:mode>4)): Likewise.
4130 (fma<VCVTF:mode>4_intrinsic): Likewise.
4131 (fmsub<VCVTF:mode>4)): Likewise.
4132 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
4133 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
4134 (ior<mode>3): Likewise.
4135 (and<mode>3): Likewise.
4136 (anddi3_neon): Likewise.
4137 (orn<mode>3_neon): Likewise.
4138 (orndi3_neon): Likewise.
4139 (bic<mode>3_neon): Likewise.
4140 (bicdi3_neon): Likewise.
4141 (xor<mode>3): Likewise.
4142 (one_cmpl<mode>2): Likewise.
4143 (abs<mode>2): Likewise.
4144 (neg<mode>2): Likewise.
4145 (umin<mode>3_neon): Likewise.
4146 (umax<mode>3_neon): Likewise.
4147 (smin<mode>3_neon): Likewise.
4148 (smax<mode>3_neon): Likewise.
4149 (vashl<mode>3): Likewise.
4150 (vashr<mode>3_imm): Likewise.
4151 (vlshr<mode>3_imm): Likewise.
4152 (ashl<mode>3_signed): Likewise.
4153 (ashl<mode>3_unsigned): Likewise.
4154 (neon_load_count): Likewise.
4155 (ashldi3_neon_noclobber): Likewise.
4156 (signed_shift_di3_neon): Likewise.
4157 (unsigned_shift_di3_neon): Likewise.
4158 (ashrdi3_neon_imm_noclobber): Likewise.
4159 (lshrdi3_neon_imm_noclobber): Likewise.
4160 (widen_ssum<mode>3): Likewise.
4161 (widen_usum<mode>3): Likewise.
4162 (quad_halves_<code>v4si): Likewise.
4163 (quad_halves_<code>v4sf): Likewise.
4164 (quad_halves_<code>v8hi): Likewise.
4165 (quad_halves_<code>v16qi): Likewise.
4166 (reduc_splus_v2di): Likewise.
4167 (neon_vpadd_internal<mode>): Likewise.
4168 (neon_vpsmin<mode>): Likewise.
4169 (neon_vpsmax<mode>): Likewise.
4170 (neon_vpumin<mode>): Likewise.
4171 (neon_vpumax<mode>): Likewise.
4172 (ss_add<mode>_neon): Likewise.
4173 (us_add<mode>_neon): Likewise.
4174 (ss_sub<mode>_neon): Likewise.
4175 (us_sub<mode>_neon): Likewise.
4176 (neon_vadd<mode>_unspec): Likewise.
4177 (neon_vaddl<mode>): Likewise.
4178 (neon_vaddw<mode>): Likewise.
4179 (neon_vhadd<mode>): Likewise.
4180 (neon_vqadd<mode>): Likewise.
4181 (neon_vaddhn<mode>): Likewise.
4182 (neon_vmul<mode>): Likewise.
4183 (neon_vmla<mode>): Likewise.
4184 (neon_vmlal<mode>): Likewise.
4185 (neon_vmls<mode>): Likewise.
4186 (neon_vmlsl<mode>): Likewise.
4187 (neon_vqdmulh<mode>): Likewise.
4188 (neon_vqdmlal<mode>): Likewise.
4189 (neon_vqdmlsl<mode>): Likewise.
4190 (neon_vmull<mode>): Likewise.
4191 (neon_vqdmull<mode>): Likewise.
4192 (neon_vsub<mode>_unspec): Likewise.
4193 (neon_vsubl<mode>): Likewise.
4194 (neon_vsubw<mode>): Likewise.
4195 (neon_vqsub<mode>): Likewise.
4196 (neon_vhsub<mode>): Likewise.
4197 (neon_vsubhn<mode>): Likewise.
4198 (neon_vceq<mode>): Likewise.
4199 (neon_vcge<mode>): Likewise.
4200 (neon_vcgeu<mode>): Likewise.
4201 (neon_vcgt<mode>): Likewise.
4202 (neon_vcgtu<mode>): Likewise.
4203 (neon_vcle<mode>): Likewise.
4204 (neon_vclt<mode>): Likewise.
4205 (neon_vcage<mode>): Likewise.
4206 (neon_vcagt<mode>): Likewise.
4207 (neon_vtst<mode>): Likewise.
4208 (neon_vabd<mode>): Likewise.
4209 (neon_vabdl<mode>): Likewise.
4210 (neon_vaba<mode>): Likewise.
4211 (neon_vabal<mode>): Likewise.
4212 (neon_vmax<mode>): Likewise.
4213 (neon_vmin<mode>): Likewise.
4214 (neon_vpaddl<mode>): Likewise.
4215 (neon_vpadal<mode>): Likewise.
4216 (neon_vpmax<mode>): Likewise.
4217 (neon_vpmin<mode>): Likewise.
4218 (neon_vrecps<mode>): Likewise.
4219 (neon_vrsqrts<mode>): Likewise.
4220 (neon_vqabs<mode>): Likewise.
4221 (neon_vqneg<mode>): Likewise.
4222 (neon_vcls<mode>): Likewise.
4223 (clz<mode>2): Likewise.
4224 (popcount<mode>2): Likewise.
4225 (neon_vrecpe): Likewise.
4226 (neon_vrsqrte): Likewise.
4227 (neon_vget_lane<mode>_sext_internal): Likewise.
4228 (neon_vget_lane<mode>_zext_internal): Likewise.
4229 (neon_vdup_n<mode>): Likewise.
4230 (neon_vdup_nv2di): Likewise.
4231 (neon_vdpu_lane<mode>_internal): Likewise.
4232 (neon_vswp<mode>): Likewise.
4233 (float<mode><V_cvtto>2): Likewise.
4234 (floatuns<mode><V_cvtto>2): Likewise.
4235 (fix_trunc<mode><V_cvtto>)2): Likewise
4236 (fixuns_trunc<mode><V_cvtto)2): Likewise.
4237 (neon_vcvt<mode>): Likewise.
4238 (neon_vcvtv4sfv4hf): Likewise.
4239 (neon_vcvtv4hfv4sf): Likewise.
4240 (neon_vcvt_n<mode>): Likewise.
4241 (neon_vmovn<mode>): Likewise.
4242 (neon_vqmovn<mode>): Likewise.
4243 (neon_vqmovun<mode>): Likewise.
4244 (neon_vmovl<mode>): Likewise.
4245 (neon_vmul_lane<mode>): Likewise.
4246 (neon_vmull_lane<mode>): Likewise.
4247 (neon_vqdmull_lane<mode>): Likewise.
4248 (neon_vqdmulh_lane<mode>): Likewise.
4249 (neon_vmla_lane<mode>): Likewise.
4250 (neon_vmlal_lane<mode>): Likewise.
4251 (neon_vqdmlal_lane<mode>): Likewise.
4252 (neon_vmls_lane<mode>): Likewise.
4253 (neon_vmlsl_lane<mode>): Likewise.
4254 (neon_vqdmlsl_lane<mode>): Likewise.
4255 (neon_vext<mode>): Likewise.
4256 (neon_vrev64<mode>): Likewise.
4257 (neon_vrev32<mode>): Likewise.
4258 (neon_vrev16<mode>): Likewise.
4259 (neon_vbsl<mode>_internal): Likewise.
4260 (neon_vshl<mode>): Likewise.
4261 (neon_vqshl<mode>): Likewise.
4262 (neon_vshr_n<mode>): Likewise.
4263 (neon_vshrn_n<mode>): Likewise.
4264 (neon_vqshrn_n<mode>): Likewise.
4265 (neon_vqshrun_n<mode>): Likewise.
4266 (neon_vshl_n<mode>): Likewise.
4267 (neon_vqshl_n<mode>): Likewise.
4268 (neon_vqshlu_n<mode>): Likewise.
4269 (neon_vshll_n<mode>): Likewise.
4270 (neon_vsra_n<mode>): Likewise.
4271 (neon_vsri_n<mode>): Likewise.
4272 (neon_vsli_n<mode>): Likewise.
4273 (neon_vtbl1v8qi): Likewise.
4274 (neon_vtbl2v8qi): Likewise.
4275 (neon_vtbl3v8qi): Likewise.
4276 (neon_vtbl4v8qi): Likewise.
4277 (neon_vtbx1v8qi): Likewise.
4278 (neon_vtbx2v8qi): Likewise.
4279 (neon_vtbx3v8qi): Likewise.
4280 (neon_vtbx4v8qi): Likewise.
4281 (neon_vtrn<mode>_internal): Likewise.
4282 (neon_vzip<mode>_internal): Likewise.
4283 (neon_vuzp<mode>_internal): Likewise.
4284 (neon_vld1<mode>): Likewise.
4285 (neon_vld1_lane<mode>): Likewise.
4286 (neon_vld1_dup<mode>): Likewise.
4287 (neon_vld1_dupv2di): Likewise.
4288 (neon_vst1<mode>): Likewise.
4289 (neon_vst1_lane<mode>): Likewise.
4290 (neon_vld2<mode>): Likewise.
4291 (neon_vld2_lane<mode>): Likewise.
4292 (neon_vld2_dup<mode>): Likewise.
4293 (neon_vst2<mode>): Likewise.
4294 (neon_vst2_lane<mode>): Likewise.
4295 (neon_vld3<mode>): Likewise.
4296 (neon_vld3qa<mode>): Likewise.
4297 (neon_vld3qb<mode>): Likewise.
4298 (neon_vld3_lane<mode>): Likewise.
4299 (neon_vld3_dup<mode>): Likewise.
4300 (neon_vst3<mode>): Likewise.
4301 (neon_vst3qa<mode>): Likewise.
4302 (neon_vst3qb<mode>): Likewise.
4303 (neon_vst3_lane<mode>): Likewise.
4304 (neon_vld4<mode>): Likewise.
4305 (neon_vld4qa<mode>): Likewise.
4306 (neon_vld4qb<mode>): Likewise.
4307 (neon_vld4_lane<mode>): Likewise.
4308 (neon_vld4_dup<mode>): Likewise.
4309 (neon_vst4<mode>): Likewise.
4310 (neon_vst4qa<mode>): Likewise.
4311 (neon_vst4qb<mode>): Likewise.
4312 (neon_vst4_lane<mode>): Likewise.
4313 (neon_vec_unpack<US>_lo_<mode>): Likewise.
4314 (neon_vec_unpack<US>_hi_<mode>): Likewise.
4315 (neon_vec_<US>mult_lo_<mode>): Likewise.
4316 (neon_vec_<US>mult_hi_<mode>): Likewise.
4317 (neon_vec_<US>shiftl_<mode>): Likewise.
4318 (neon_unpack<US>_<mode>): Likewise.
4319 (neon_vec_<US>mult_<mode>): Likewise.
4320 (vec_pack_trunc_<mode>): Likewise.
4321 (neon_vec_pack_trunk_<mode>): Likewise.
4322 (neon_vabd<mode>_2): Likewise.
4323 (neon_vabd<mode>_3): Likewise.
4324 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
4325 (thumb2_movsi_vfp): Likewise.
4326 (movdi_vfp): Likewise.
4327 (movdi_vfp_cortexa8): Likewise.
4328 (movhf_vfp_neon): Likewise.
4329 (movhf_vfp): Likewiwse.
4330 (movsf_vfp): Likewiwse.
4331 (thumb2_movsf_vfp): Likewiwse.
4332 (movdf_vfp): Likewise.
4333 (thumb2_movdf_vfp): Likewise.
4334 (movsfcc_vfp): Likewise.
4335 (thumb2_movsfcc_vfp): Likewise.
4336 (movdfcc_vfp): Likewise.
4337 (thumb2_movdfcc_vfp): Likewise.
4338 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
4339 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
4340 (v10_v2c): Likewise.
4341 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
4342 attribute change.
4343 (cortex_a15_neon_int_2): Likewise.
4344 (cortex_a15_neon_int_3): Likewise.
4345 (cortex_a15_neon_int_4): Likewise.
4346 (cortex_a15_neon_int_5): Likewise.
4347 (cortex_a15_neon_vqneg_vqabs): Likewise.
4348 (cortex_a15_neon_vmov): Likewise.
4349 (cortex_a15_neon_vaba): Likewise.
4350 (cortex_a15_neon_vaba_qqq): Likewise.
4351 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4352 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
4353 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
4354 scalar_64_32_long_scalar): Likewise.
4355 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4356 (cortex_a15_neon_mla_qqq_8_16): Likewise.
4357 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4358 lotype_qdd_64_32_long): Likewise.
4359 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4360 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4361 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
4362 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4363 (cortex_a15_neon_shift_1): Likewise.
4364 (cortex_a15_neon_shift_2): Likewise.
4365 (cortex_a15_neon_shift_3): Likewise.
4366 (cortex_a15_neon_vshl_ddd): Likewise.
4367 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4368 (cortex_a15_neon_vsra_vrsra): Likewise.
4369 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
4370 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
4371 (cortex_a15_neon_fp_vmul_ddd): Likewise.
4372 (cortex_a15_neon_fp_vmul_qqd): Likewise.
4373 (cortex_a15_neon_fp_vmla_ddd): Likewise.
4374 (cortex_a15_neon_fp_vmla_qqq): Likewise.
4375 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
4376 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
4377 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
4378 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
4379 (cortex_a15_neon_bp_simple): Likewise.
4380 (cortex_a15_neon_bp_2cycle): Likewise.
4381 (cortex_a15_neon_bp_3cycle): Likewise.
4382 (cortex_a15_neon_vld1_1_2_regs): Likewise.
4383 (cortex_a15_neon_vld1_3_4_regs): Likewise.
4384 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
4385 (cortex_a15_neon_vld2_4_regs): Likewise.
4386 (cortex_a15_neon_vld3_vld4): Likewise.
4387 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
4388 (cortex_a15_neon_vst1_3_4_regs): Likewise.
4389 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
4390 (cortex_a15_neon_vst3_vst4): Likewise.
4391 (cortex_a15_neon_vld1_vld2_lane): Likewise.
4392 (cortex_a15_neon_vld3_vld4_lane" 10
4393 (cortex_a15_neon_vst1_vst2_lane): Likewise.
4394 (cortex_a15_neon_vst3_vst4_lane): Likewise.
4395 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
4396 (cortex_a15_neon_ldm_2): Likewise.0
4397 (cortex_a15_neon_stm_2): Likewise.
4398 (cortex_a15_neon_mcr): Likewise.
4399 (cortex_a15_neon_mcr_2_mcrr): Likewise.
4400 (cortex_a15_neon_mrc): Likewise.
4401 (cortex_a15_neon_mrrc): Likewise.
4402 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
4403 change.
4404 (cortex_a15_alu_shift): Likewise.
4405 (cortex_a15_alu_shift_reg): Likewise.
4406 (cortex_a15_mult32): Likewise.
4407 (cortex_a15_mult64): Likewise.
4408 (cortex_a15_block): Likewise.
4409 (cortex_a15_branch): Likewise.
4410 (cortex_a15_load1): Likewise.
4411 (cortex_a15_load3): Likewise.
4412 (cortex_a15_store1): Likewise.
4413 (cortex_a15_store3): Likewise.
4414 (cortex_a15_call): Likewise.
f43245d1 4415 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
4416 (cortex_a5_f2r): Likewise.
4417 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
4418 change.
4419 (cortex_a53_f2r): Likewise.
4420 * config/arm/cortex-a7.md
4421 (cortex_a7_branch): Update for attribute change.
4422 (cortex_a7_call): Likewise.
4423 (cortex_a7_alu_imm): Likewise.
4424 (cortex_a7_alu_reg): Likewise.
4425 (cortex_a7_alu_shift): Likewise.
4426 (cortex_a7_mul): Likewise.
4427 (cortex_a7_load1): Likewise.
4428 (cortex_a7_store1): Likewise.
4429 (cortex_a7_load2): Likewise.
4430 (cortex_a7_store2): Likewise.
4431 (cortex_a7_load3): Likewise.
4432 (cortex_a7_store3): Likewise.
4433 (cortex_a7_load4): Likewise.
4434 (cortex_a7_store4): Likewise.
4435 (cortex_a7_fpalu): Likewise.
4436 (cortex_a7_fconst): Likewise.
4437 (cortex_a7_fpmuls): Likewise.
4438 (cortex_a7_neon_mul): Likewise.
4439 (cortex_a7_fpmacs): Likewise.
4440 (cortex_a7_neon_mla: Likewise.
4441 (cortex_a7_fpmuld: Likewise.
4442 (cortex_a7_fpmacd: Likewise.
4443 (cortex_a7_fpfmad: Likewise.
4444 (cortex_a7_fdivs: Likewise.
4445 (cortex_a7_fdivd: Likewise.
4446 (cortex_a7_r2f: Likewise.
4447 (cortex_a7_f2r: Likewise.
4448 (cortex_a7_f_flags: Likewise.
4449 (cortex_a7_f_loads: Likewise.
4450 (cortex_a7_f_loadd: Likewise.
4451 (cortex_a7_f_stores: Likewise.
4452 (cortex_a7_f_stored: Likewise.
4453 (cortex_a7_neon): Likewise.
4454 * config/arm/cortex-a8-neon.md
4455 (cortex_a8_neon_mrc): Update for attribute change.
4456 (cortex_a8_neon_mrrc): Likewise.
4457 (cortex_a8_neon_int_1): Likewise.
4458 (cortex_a8_neon_int_2): Likewise.
4459 (cortex_a8_neon_int_3): Likewise.
4460 (cortex_a8_neon_int_4): Likewise.
4461 (cortex_a8_neon_int_5): Likewise.
4462 (cortex_a8_neon_vqneg_vqabs): Likewise.
4463 (cortex_a8_neon_vmov): Likewise.
4464 (cortex_a8_neon_vaba): Likewise.
4465 (cortex_a8_neon_vaba_qqq): Likewise.
4466 (cortex_a8_neon_vsma): Likewise.
4467 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4468 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
4469 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
4470 long_scalar): Likewise.
003bb7f3
JG
4471 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4472 (cortex_a8_neon_mla_qqq_8_16): Likewise.
4473 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4474 long_scalar_qdd_64_32_long): Likewise.
4475 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4476 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4477 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
4478 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4479 (cortex_a8_neon_shift_1): Likewise.
4480 (cortex_a8_neon_shift_2): Likewise.
4481 (cortex_a8_neon_shift_3): Likewise.
4482 (cortex_a8_neon_vshl_ddd): Likewise.
4483 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4484 (cortex_a8_neon_vsra_vrsra): Likewise.
4485 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
4486 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
4487 (cortex_a8_neon_fp_vsum): Likewise.
4488 (cortex_a8_neon_fp_vmul_ddd): Likewise.
4489 (cortex_a8_neon_fp_vmul_qqd): Likewise.
4490 (cortex_a8_neon_fp_vmla_ddd): Likewise.
4491 (cortex_a8_neon_fp_vmla_qqq): Likewise.
4492 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
4493 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
4494 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
4495 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
4496 (cortex_a8_neon_bp_simple): Likewise.
4497 (cortex_a8_neon_bp_2cycle): Likewise.
4498 (cortex_a8_neon_bp_3cycle): Likewise.
4499 (cortex_a8_neon_ldr): Likewise.
4500 (cortex_a8_neon_str): Likewise.
4501 (cortex_a8_neon_vld1_1_2_regs): Likewise.
4502 (cortex_a8_neon_vld1_3_4_regs): Likewise.
4503 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
4504 (cortex_a8_neon_vld2_4_regs): Likewise.
4505 (cortex_a8_neon_vld3_vld4): Likewise.
4506 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
4507 (cortex_a8_neon_vst1_3_4_regs): Likewise.
4508 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
4509 (cortex_a8_neon_vst3_vst4): Likewise.
4510 (cortex_a8_neon_vld1_vld2_lane): Likewise.
4511 (cortex_a8_neon_vld3_vld4_lane): Likewise.
4512 (cortex_a8_neon_vst1_vst2_lane): Likewise.
4513 (cortex_a8_neon_vst3_vst4_lane): Likewise.
4514 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
4515 (cortex_a8_neon_mcr): Likewise.
4516 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 4517 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
4518 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
4519 change.
4520 (ca9_neon_mrrc): Likewise.
4521 (cortex_a9_neon_int_1): Likewise.
4522 (cortex_a9_neon_int_2): Likewise.
4523 (cortex_a9_neon_int_3): Likewise.
4524 (cortex_a9_neon_int_4): Likewise.
4525 (cortex_a9_neon_int_5): Likewise.
4526 (cortex_a9_neon_vqneg_vqabs): Likewise.
4527 (cortex_a9_neon_vmov): Likewise.
4528 (cortex_a9_neon_vaba): Likewise.
4529 (cortex_a9_neon_vaba_qqq): Likewise.
4530 (cortex_a9_neon_vsma): Likewise.
4531 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4532 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
4533 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
4534 long_scalar): Likewise.
003bb7f3
JG
4535 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
4536 (cortex_a9_neon_mla_qqq_8_16): Likewise.
4537 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
4538 long_scalar_qdd_64_32_long): Likewise.
4539 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
4540 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
4541 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
4542 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
4543 (cortex_a9_neon_shift_1): Likewise.
4544 (cortex_a9_neon_shift_2): Likewise.
4545 (cortex_a9_neon_shift_3): Likewise.
4546 (cortex_a9_neon_vshl_ddd): Likewise.
4547 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
4548 (cortex_a9_neon_vsra_vrsra): Likewise.
4549 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
4550 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
4551 (cortex_a9_neon_fp_vsum): Likewise.
4552 (cortex_a9_neon_fp_vmul_ddd): Likewise.
4553 (cortex_a9_neon_fp_vmul_qqd): Likewise.
4554 (cortex_a9_neon_fp_vmla_ddd): Likewise.
4555 (cortex_a9_neon_fp_vmla_qqq): Likewise.
4556 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
4557 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
4558 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
4559 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
4560 (cortex_a9_neon_bp_simple): Likewise.
4561 (cortex_a9_neon_bp_2cycle): Likewise.
4562 (cortex_a9_neon_bp_3cycle): Likewise.
4563 (cortex_a9_neon_ldr): Likewise.
4564 (cortex_a9_neon_str): Likewise.
4565 (cortex_a9_neon_vld1_1_2_regs): Likewise.
4566 (cortex_a9_neon_vld1_3_4_regs): Likewise.
4567 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
4568 (cortex_a9_neon_vld2_4_regs): Likewise.
4569 (cortex_a9_neon_vld3_vld4): Likewise.
4570 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
4571 (cortex_a9_neon_vst1_3_4_regs): Likewise.
4572 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
4573 (cortex_a9_neon_vst3_vst4): Likewise.
4574 (cortex_a9_neon_vld1_vld2_lane): Likewise.
4575 (cortex_a9_neon_vld3_vld4_lane): Likewise.
4576 (cortex_a9_neon_vst1_vst2_lane): Likewise.
4577 (cortex_a9_neon_vst3_vst4_lane): Likewise.
4578 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
4579 (cortex_a9_neon_mcr): Likewise.
4580 (cortex_a9_neon_mcr_2_mcrr): Likewise.
4581 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
4582 (cortex_a9_fps): Likewise.
4583 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
4584 change.
4585 (cortex_m4_fmuls): Likewise.
4586 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
4587 change.
4588 (cortex_r4_mrc): Likewise.
4589 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 4590 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 4591 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
4592 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
4593 attribute change.
003bb7f3
JG
4594 (pj4_core_to_vfp): Likewise.
4595 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
4596 attribute change.
4597 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
4598 (vfp_fstore): Likewise.
4599 * doc/md.texi: Change references to neon_type to refer to type.
4600
fbe0dc78
DS
46012013-09-04 Dodji Seketeli <dodji@redhat.com>
4602
4603 * tree.h (DECL_BUILT_IN): Fix typo in comment.
4604
c167bc5b
DE
46052013-09-04 David Edelsohn <dje.gcc@gmail.com>
4606
4607 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
4608 lglobl if not weak.
4609
035cb59f
ER
46102013-09-04 Easwaran Raman <eraman@google.com>
4611
4612 PR middle-end/57370
4613 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
4614 (build_and_add_sum): Use it.
4615 (appears_later_in_bb): Simplify code.
4616
71191083
TJ
46172013-09-04 Teresa Johnson <tejohnson@google.com>
4618
4619 * dumpfile.c (dump_finish): Don't close stderr/stdout.
4620
0c488213
JG
46212013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
4622
4623 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
4624
61a74079
JH
46252013-09-04 Jan Hubicka <jh@suse.cz>
4626
4627 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
4628 * ipa-devirt.c: Include diganostic.h
4629 (odr_type_d): Add types and types_set.
4630 (hash_type_name): Work for types with vtables during LTO.
4631 (odr_hasher::remove): Fix comment; destroy types_set.
4632 (add_type_duplicate): New function,
4633 (get_odr_type): Use it.
4634 (dump_type_inheritance_graph): Dump type duplicates.
4635 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
4636 graph.
4637 * tree.c (types_same_for_odr): Give exact answers on types with
4638 virtual tables.
4639
24ba8195
DS
46402013-09-04 Dodji Seketeli <dodji@redhat.com>
4641
4642 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 4643 explaining their differences.
24ba8195 4644
0a04869e
SKS
46452013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
4646
4647 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
4648
3b18bc42
JL
46492013-09-03 Jeff Law <law@redhat.com>
4650
4651 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
4652 when not threading through a joiner block. Pass joiner/no joiner
4653 state to register_jump_thread.
4654 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
4655 state from argument rather than implying on path length.
4656 Dump the entire jump thread path into debugging dump.
4657 * tree-flow.h (register_jump_thread): Update prototype.
4658
ae84e151
XDL
46592013-08-29 Xinliang David Li <davidxl@google.com>
4660
4661 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4662 Remove a trivial gcc_assert.
4663
c716e67f
XDL
46642013-08-29 Xinliang David Li <davidxl@google.com>
4665
4666 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
4667 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
4668 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4669 Delay base decl alignment adjustment.
4670 * tree-vectorizer.c (vect_destroy_datarefs): New function.
4671 * tree-vectorizer.h: New data structure.
4672 (set_dr_misalignment): New function.
4673 (dr_misalignment): Ditto.
4674 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
4675 (vectorizable_load): Ditto.
4676 (ensure_base_align): New function.
4677 (vectorize_loops): Add dbg_cnt support.
4678 (execute_vect_slp): Ditto.
4679 * dbgcnt.def: New debug counter.
4680 * Makefile: New dependency.
4681
db8800bc
MI
46822013-09-03 Meador Inge <meadori@codesourcery.com>
4683
4684 Revert:
4685
4686 2013-08-30 Meador Inge <meadori@codesourcery.com>
4687
4688 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
4689
0d9b4f5c
DE
46902013-09-03 David Edelsohn <dje.gcc@gmail.com>
4691
4692 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
4693 function descriptor.
4694
29e810b9
RB
46952013-09-03 Richard Biener <rguenther@suse.de>
4696
4697 * tree-affine.c (add_elt_to_tree): Fix association issue,
4698 avoid useless converts and make sure to always return a
4699 properly typed result.
4700
dbfc2894
RB
47012013-09-03 Richard Biener <rguenther@suse.de>
4702
4703 PR middle-end/57656
4704 * fold-const.c (negate_expr_p): Fix division case.
4705 (negate_expr): Likewise.
4706
fa3bf4ce
RB
47072013-09-03 Richard Biener <rguenther@suse.de>
4708
4709 PR lto/58285
4710 * tree-streamer-out.c: Include tm.h.
4711 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
4712
a64bbb3f
JH
47132013-09-03 Jan Hubicka <jh@suse.cz>
4714
4715 * tree-profile.c (tree_profiling): Cleanup CFG when done.
4716
93ed07e2
AM
47172013-09-03 Alan Modra <amodra@gmail.com>
4718
4719 * config.gcc (powerpc*-*-linux*): Add support for little-endian
4720 multilibs to big-endian target and vice versa.
4721 * config/rs6000/t-linux64: Use := assignment on all vars.
4722 (MULTILIB_EXTRA_OPTS): Remove fPIC.
4723 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
4724 * config/rs6000/t-linux64le: New file.
4725 * config/rs6000/t-linux64bele: New file.
4726 * config/rs6000/t-linux64lebe: New file.
4727
07d6cd64
JH
47282013-09-02 Jan Hubicka <jh@suse.cz>
4729
4730 * ipa-inline-transform.c (inline_transform): Do not
4731 optimize_inline_calls when not optimizing.
4732
8e4c9a10
JH
47332013-09-02 Jan Hubicka <jh@suse.cz>
4734
4735 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
4736 duplicated nodes for assembler names.
4737 * symtab.c (symtab_unregister_node): Do not attempt to unlink
4738 hard registers from assembler name hash.
4739
c91061e6
JH
47402013-09-02 Jan Hubicka <jh@suse.cz>
4741
4742 * ipa-split.c (execute_split_functions): Split externally visible
4743 functions called once.
4744
2fd0985c
MJ
47452013-09-02 Martin Jambor <mjambor@suse.cz>
4746
4747 PR ipa/58106
4748 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
4749 linked list. When finding the correct duplicate, also consider also
4750 the caller in additon to its inlined_to node.
4751
91bd4114
JG
47522013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
4753
4754 * config/aarch64/aarch64-simd-builtins.def
4755 (dup_lane_scalar): Remove.
4756 * config/aarch64/aarch64-simd.md
4757 (aarch64_simd_dup): Add 'w->w' alternative.
4758 (aarch64_dup_lane<mode>): Allow for VALL.
4759 (aarch64_dup_lane_scalar<mode>): Remove.
4760 (aarch64_dup_lane_<vswap_width_name><mode>): New.
4761 (aarch64_get_lane_signed<mode>): Add w->w altenative.
4762 (aarch64_get_lane_unsigned<mode>): Likewise.
4763 (aarch64_get_lane<mode>): Likewise.
4764 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
4765 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
4766 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
4767 (VCON): Change container of V2SF.
4768 (vswap_width_name): Likewise.
4769 * config/aarch64/arm_neon.h
4770 (__aarch64_vdup_lane_any): New.
4771 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
4772 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
4773 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
4774
d617d2d8
EB
47752013-09-02 Eric Botcazou <ebotcazou@adacore.com>
4776
4777 PR middle-end/56382
4778 * expr.c (emit_move_complex): Do not move complex FP values as parts if
4779 the source or the destination is a single hard register.
4780
63fdb7be
RB
47812013-09-02 Richard Biener <rguenther@suse.de>
4782
4783 PR middle-end/57511
4784 * tree-scalar-evolution.c (instantiate_scev_name): Allow
4785 non-linear SCEVs.
4786
78de2333
RB
47872013-09-02 Richard Biener <rguenther@suse.de>
4788
4789 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
4790 arithmetic to sizetype.
4791
85ff4ec6
BC
47922013-09-02 Bin Cheng <bin.cheng@arm.com>
4793
4794 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
4795 Find auto-increment use both before and after candidate.
4796
576016fe
MP
47972013-09-02 Marek Polacek <polacek@redhat.com>
4798
4799 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
4800
08f835dc
JH
48012013-09-01 Jan Hubicka <jh@suse.cz>
4802
4803 * Makefile.in: Add ipa-profile.o
4804 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
4805 * cgraph.c (struct cgraph_propagate_frequency_data,
4806 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
4807 ipa-profile.c; replace cgraph_ by ipa_ prefix.
4808 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
4809 * ipa-inline-analysis.c: Include ipa-utils.h;
4810 drop duplicated cfgloop.h.
08f835dc
JH
4811 (inline_update_callee_summaries): Update.
4812 * ipa-profile.c: New file.
4813 * ipa-utils.h (ipa_propagate_frequency): Declare.
4814 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 4815 data-streamer.h, value-prof.h.
08f835dc
JH
4816 (symtab_remove_unreachable_nodes): Update profile.
4817 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
4818 account_time_size, cmp_counts, dump_histogram,
4819 ipa_profile_generate_summary, ipa_profile_write_summary,
4820 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
4821 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 4822 Move to ipa-profile.c.
08f835dc 4823
cec8583c
JDA
48242013-09-01 John David Anglin <danglin@gcc.gnu.org>
4825
4826 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
4827
bbc9396b
JH
48282013-09-01 Jan Hubicka <jh@suse.cz>
4829
4830 * common.opt (fdevirtualize-speculatively): New function.
4831 * invoke.texi (fdevirtualize-speculatively): Document.
4832 * ipa-devirt.c: Include ipa-inline.h
4833 (likely_target_p): New function.
4834 (ipa_devirt): New function.
4835 (gate_ipa_devirt): New function.
4836 (pass_data_ipa_devirt): New static var.
4837 (pass_ipa_devirt): Likewise.
4838 (make_pass_ipa_devirt): New function.
4839 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
4840 (common_handle_option): Disable devirtualization when
4841 value range profiling is available.
4842 * passes.def (pass_ipa_devirt): Add.
4843 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 4844 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 4845
0cea211e
IS
48462013-09-01 Iain Sandoe <iain@codesourcery.com>
4847
4848 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
4849 include sanitize(undefined).
4850
5e351e96
DN
48512013-08-31 Diego Novillo <dnovillo@google.com>
4852
4853 * Makefile.in (TREE_CORE_H): Define.
4854 (TREE_H): Use.
4855 (GTFILES): Add tree-core.h.
4856 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
4857 size the array.
4858 * tree-core.h: New file.
4859 Move all data structures, enum, typedefs, global
4860 declarations and constants from ...
4861 * tree.h: ... here.
4862
63bf9a90
JH
48632013-08-31 Jan Hubicka <jh@suse.cz>
4864
4865 * bulitins.c (expand_builtin): Do not early exit for gcov
4866 instrumented functions.
4867
5c0abd6a
MP
48682013-08-31 Marek Polacek <polacek@redhat.com>
4869
4870 * ubsan.c: Include tm_p.h.
4871
4843f032
JH
48722013-08-31 Jan Hubicka <jh@suse.cz>
4873
8356c89c
JH
4874 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
4875 warning.
4876
4843f032
JH
4877 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
4878 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 4879 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
4880 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
4881 (ipa_merge_profiles): New function.
4882 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
4883 (lto_input_function_body): Likewise.
5e581212
JH
4884 * ipa-utils.h (ipa_merge_profiles): Declare.
4885 * lto-streamer.h (lto_input_function_body): Update prototype.
4886 (emit_label_in_global_context_p): Remove.
4887 * lto-symtab.c: Include ipa-utils.h
4888 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 4889
57292ce9
JH
48902013-08-31 Jan Hubicka <jh@suse.cz>
4891
4892 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
4893
b9cbfeeb
JH
48942013-08-31 Jan Hubicka <jh@suse.cz>
4895
4896 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
4897
41dedebd
UB
48982013-08-31 Uros Bizjak <ubizjak@gmail.com>
4899
4900 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
4901 "cmp" RTX before signed_comparison_operator check to account
4902 for "code" changes.
4903
06d65050
JH
49042013-08-30 Jan Hubicka <jh@suse.cz>
4905
41dedebd 4906 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
4907 (detect_type_change_1): Rename to ...
4908 (detect_type_change): ... this one; early return on non-polymorphic
4909 types.
41dedebd 4910 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
4911 use of detect_type_change.
4912 (compute_complex_assign_jump_func): Add param_type parameter;
4913 update use of detect_type_change_ssa.
4914 (compute_complex_ancestor_jump_func): Likewise.
4915 (ipa_get_callee_param_type): New function.
4916 (ipa_compute_jump_functions_for_edge): Compute parameter type;
4917 update calls to the jump function computation functions.
4918
600b5b1d
TJ
49192013-08-30 Teresa Johnson <tejohnson@google.com>
4920 Steven Bosscher <steven@gcc.gnu.org>
4921
4922 * cfgrtl.c (fixup_new_cold_bb): New routine.
4923 (commit_edge_insertions): Invoke fixup_partitions.
4924 (find_partition_fixes): New routine.
4925 (fixup_partitions): Ditto.
4926 (verify_hot_cold_block_grouping): Update comments.
4927 (rtl_verify_edges): Invoke find_partition_fixes.
4928 (rtl_verify_bb_pointers): Update comments.
4929 (rtl_verify_bb_layout): Ditto.
4930 * basic-block.h (probably_never_executed_edge_p): Declare.
4931 (fixup_partitions): Ditto.
4932 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
4933 * bb-reorder.c (sanitize_hot_paths): New function.
4934 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
4935 sanitize_hot_paths.
4936 * predict.c (probably_never_executed_edge_p): New routine.
4937 * cfg.c (check_bb_profile): Add partition insanity warnings.
4938
0a6ea5c9
MI
49392013-08-30 Meador Inge <meadori@codesourcery.com>
4940
4941 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
4942
de5a5fa1
MP
49432013-08-30 Marek Polacek <polacek@redhat.com>
4944
4945 * Makefile.in (ubsan.o): Add.
4946 (c-family/c-ubsan.o): Add.
4947 (builtins.o): Add ubsan.h dependency.
4948 * ubsan.h: New file.
4949 * ubsan.c: New file.
4950 * common.opt: Add -fsanitize=undefined option.
4951 (flag_sanitize): Add variable.
4952 (fsanitize=): Add option. Add Driver.
4953 (fsanitize=thread): Remove option.
4954 (fsanitize=address): Likewise.
4955 (static-libubsan): New option.
4956 * doc/invoke.texi: Document the new flag and -static-libubsan.
4957 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
4958 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
4959 * builtin-attrs.def (ATTR_COLD): Define.
4960 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
4961 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
4962 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
4963 * flag-types.h (sanitize_code): New enum.
4964 * opts.c (common_handle_option): Parse command line arguments
4965 of -fsanitize=. Add -fsanitize=unreachable option.
4966 * varasm.c (get_variable_section): Adjust.
4967 (assemble_noswitch_variable): Likewise.
4968 (assemble_variable): Likewise.
4969 (output_constant_def_contents): Likewise.
4970 (categorize_decl_for_section): Likewise.
4971 (place_block_symbol): Likewise.
4972 (output_object_block): Likewise.
4973 * builtins.def: Likewise.
4974 * toplev.c (compile_file): Likewise.
4975 (process_options): Likewise.
4976 * cppbuiltin.c: Likewise.
4977 * tsan.c (tsan_pass): Likewise.
4978 (tsan_gate): Likewise.
4979 (tsan_gate_O0): Likewise.
4980 * cfgexpand.c (partition_stack_vars): Likewise.
4981 (expand_stack_vars): Likewise.
4982 (defer_stack_allocation): Likewise.
4983 (expand_used_vars): Likewise.
4984 * cfgcleanup.c (old_insns_match_p): Likewise.
4985 * asan.c (asan_finish_file): Likewise.
4986 (asan_instrument): Likewise.
4987 (gate_asan): Likewise.
4988 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
4989 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
4990 (asan_global_struct): Use pointer_sized_int_node instead
4991 calling build_nonstandard_integer_type.
4992 (initialize_sanitizer_builtins): Likewise.
4993 (asan_finish_file): Likewise.
4994 * gcc.c: Document %{%:function(args):X}.
4995 (static_spec_functions): Add sanitize.
4996 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
4997 store funcval != NULL there.
4998 (do_spec_1): Adjust handle_spec_function caller.
4999 (handle_braces): Allow %:function(args) as condition.
5000 (sanitize_spec_function): New function.
5001 (ADD_STATIC_LIBUBSAN_LIBS): Define.
5002 (LIBUBSAN_SPEC): Likewise.
5003 (LIBUBSAN_EARLY_SPEC): Likewise.
5004 (SANITIZER_SPEC): Handle libubsan.
5005 (SANITIZER_EARLY_SPEC): Likewise.
5006 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
5007 instead of fsanitize=address.
5008 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
5009 instead of fsanitize=address*.
5010 * builtins.c: Include ubsan.h.
5011 (fold_builtin_0): Instrument __builtin_unreachable.
5012 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
5013 instead of flag_asan.
5014 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
5015 (pointer_sized_int_node): Define.
41dedebd 5016 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 5017
f07f30cf
MS
50182013-08-30 Mike Stump <mikestump@comcast.net>
5019
5020 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
5021 with RE patterns.
5022
8a41354f
JH
50232013-08-29 Jan Hubicka <jh@suse.cz>
5024
5025 * cgraph.c (cgraph_function_body_availability): Handle weakref
5026 correctly.
5027 * passes.def: Remove pass_fixup_cfg.
5028 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
5029 track when we need to remove functions.
5030 (gate_ipa_inline): Execute inlining always; add comment why.
5031 (pass_data_ipa_inline): Remove TODO_remove_functions.
5032 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
5033 do not produce summaries.
5034 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
5035 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
5036 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
5037 constant pool and vtable.
5038
dc8d7a0f
TB
50392013-08-30 Tejas Belagod <tejas.belagod@arm.com>
5040
41dedebd
UB
5041 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
5042 New arm_neon.h's internal macros to specify 64-bit constants.
5043 Avoid using stdint.h's macros.
dc8d7a0f 5044
ac7eacd2
JR
50452013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
5046
5047 * recog.c (verify_changes): Verify that changes[i].old is non-zero
5048 before applying REG_P.
5049
8b29fd4e
JJ
50502013-08-30 Jakub Jelinek <jakub@redhat.com>
5051
5052 PR tree-optimization/58277
5053 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
5054 after seeing too many stmts with vdef in between dombb and current
5055 bb, invalidate everything.
5056
26d75703
RB
50572013-08-30 Richard Biener <rguenther@suse.de>
5058
5059 * fold-const.c (fold_single_bit_test): Fix overflow test.
5060
f7e088e7
EB
50612013-08-30 Eric Botcazou <ebotcazou@adacore.com>
5062
5063 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
5064 and which can live in a register, always retrieve the value on entry.
5065 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
5066 passed by invisible reference specially.
5067 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
5068 (vt_add_function_parameter): Correctly deal with a parameter passed by
5069 invisible reference.
5070
50712013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
5072
5073 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
5074
6e8dad05
RB
50752013-08-30 Richard Biener <rguenther@suse.de>
5076
5077 PR tree-optimization/58228
5078 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
5079 allow invariant loads in nested loop vectorization.
5080
062ef2c8
RB
50812013-08-30 Richard Biener <rguenther@suse.de>
5082
5083 PR tree-optimization/58223
5084 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
5085 (has_anti_or_output_dependence): ... this and adjust to also
5086 look for output dependences.
5087 (mark_nodes_having_upstream_mem_writes): Adjust.
5088 (rdg_flag_uses): Likewise.
5089
7a764c60
RB
50902013-08-30 Richard Biener <rguenther@suse.de>
5091
5092 PR tree-optimization/58010
5093 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5094 assert that we have a loop-closed PHI.
5095
82e9d642
JH
50962013-08-29 Jan Hubicka <jh@suse.cz>
5097
5098 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
5099 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
5100 * lto-section-in.c (lto_free_function_in_decl_state): New function.
5101 (lto_free_function_in_decl_state_for_node): New function.
5102
9cc1fb4b
XDL
51032013-08-29 Xinliang David Li <davidxl@google.com>
5104
41dedebd 5105 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
5106 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
5107 Emit alignment peeling message with default -fopt-info.
5108 (vect_loop_versioning): Emit loop version info message.
41dedebd 5109 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
5110 (execute_vect_slp): Ditto.
5111
440a5082
EB
51122013-08-29 Eric Botcazou <ebotcazou@adacore.com>
5113
5114 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
5115 of the clone from the DECL_NAME of the original function.
5116
3fa3690d
OE
51172013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
5118
5119 * passes.c (register_pass): Add overload.
5120 * tree-pass.h (register_pass): Forward declare it. Add comment.
5121
0170f33c
JH
51222013-08-29 Jan Hubicka <jh@suse.cz>
5123
41dedebd
UB
5124 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
5125 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
5126 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
5127 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
5128 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
5129 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 5130 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
5131 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
5132
103ff0d6
TJ
51332013-08-29 Teresa Johnson <tejohnson@google.com>
5134
5135 * dumpfile.c (dump_loc): Output column number.
5136 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
5137 * doc/invoke.texi: Document optall -fopt-info flag.
5138 * profile.c (read_profile_edge_counts): Use new dump framework.
5139 (compute_branch_probabilities): Ditto.
5140 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
5141 when pass not in any opt group.
5142 * pass_manager.h (pass_manager::get_pass_profile): New method.
5143 * value-prof.c (check_counter): Use new dump framework.
5144 (check_ic_target): Ditto.
5145 * coverage.c (get_coverage_counts): Ditto.
5146 (coverage_init): Setup new dump framework.
5147
301bbc16
RB
51482013-08-29 Richard Biener <rguenther@suse.de>
5149
5150 PR tree-optimization/58246
5151 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
5152 handle the dominance check inside a basic-block.
5153
1b275000
RB
51542013-08-29 Richard Biener <rguenther@suse.de>
5155
5156 PR middle-end/57287
5157 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
5158 of default defs that appear in abnormal PHI nodes.
5159
6b1184ba
RB
51602013-08-29 Richard Biener <rguenther@suse.de>
5161
5162 PR tree-optimization/57685
5163 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
5164 single-use operands to avoid exponential complexity.
5165
1b08b734
DC
51662013-08-28 Dehao Chen <dehao@google.com>
5167
5168 * ipa-inline.c (edge_badness): Fix integer underflow.
5169
48a3fa69
UB
51702013-08-28 Uros Bizjak <ubizjak@gmail.com>
5171
5172 * gtm-builtins.def (_ITM_free): Declare leaf.
5173
215f73e6
JJ
51742013-08-28 Jakub Jelinek <jakub@redhat.com>
5175
5176 PR target/58067
5177 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
5178 (*tls_local_dynamic_base_64_largepic): Likewise.
5179 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
5180 Remove predicate from call operand.
5181 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
5182 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
5183
34554d1a
JL
51842013-08-28 Jeff Law <law@redhat.com>
5185
5186 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
5187 checks for the number of predecessors and successors allowed.
5188 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
5189 which require copying a joiner block if there is a request which
5190 is a subpath that requires no joiner block copying.
5191
c01c111b
JH
51922013-08-28 Jan Hubicka <jh@suse.cz>
5193
5194 * lto-streamer-out.c (DFS_write_tree_body): Drop
5195 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
5196 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
5197 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
5198 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
5199 Do not read DECL_ERROR_ISSUED.
5200 (unpack_ts_decl_with_vis_value_fields): Do not read
5201 DECL_DEFER_OUTPUT.
48a3fa69
UB
5202 (lto_input_ts_binfo_tree_pointers): Do not read
5203 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
5204 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
5205 write DECL_ERROR_ISSUED..
5206 (pack_ts_decl_with_vis_value_fields): Do not write
5207 DECL_DEFER_OUTPUT.
5208 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 5209 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
5210 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
5211 * tree.h (tree_decl_common): Update comment.
5212 (DECL_ERROR_ISSUED): Remove.
5213
4b128ece
JJ
52142013-08-28 Jakub Jelinek <jakub@redhat.com>
5215
5216 PR middle-end/58257
5217 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
5218
12211b99 52192013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
5220
5221 * builtins.def (free): Declare leaf.
5222
8dce4dbc
DM
52232013-08-27 David Malcolm <dmalcolm@redhat.com>
5224
5225 * gdbhooks.py: New.
5226 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
5227 * configure: Regenerate.
5228
b8f6e610
MJ
52292013-08-27 Martin Jambor <mjambor@suse.cz>
5230
5231 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
5232 (ipa_ancestor_jf_data): Likewise.
5233 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
5234 (ipa_get_jf_pass_through_type_preserved): New function.
5235 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
5236 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 5237 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
5238 (ipa_get_jf_ancestor_result): Likewise.
5239 (propagate_vals_accross_pass_through): Use
5240 ipa_get_jf_pass_through_result to do all the value mappings.
5241 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
5242 type_preserved flag.
5243 (ipa_set_jf_cst_copy): New function.
5244 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
5245 (ipa_set_jf_arith_pass_through): Likewise.
5246 (ipa_set_ancestor_jf): Likewise.
5247 (compute_complex_assign_jump_func): Set type_preserved instead of
5248 punting.
5249 (ipa_compute_jump_functions_for_edge): Likewise.
5250 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
5251 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 5252 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
5253 (ipa_write_jump_function): Stream the type_preserved flags.
5254 (ipa_read_jump_function): Likewise.
5255
74bf76ed
JJ
52562013-08-27 Jakub Jelinek <jakub@redhat.com>
5257 Aldy Hernandez <aldyh@redhat.com>
5258
5259 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
5260 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
5261 * function.h (struct function): Add has_force_vect_loops and
5262 has_simduid_loops.
12211b99 5263 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
5264 * gimple.c (gimple_build_omp_critical): Add KIND argument and
5265 handle it.
5266 * gimple.def: Update CLAUSES comments.
5267 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
5268 (gimple_build_omp_for): Add argument to prototype.
5269 (gimple_omp_for_kind): New.
5270 (gimple_omp_for_set_kind): New.
5271 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
5272 GOVD_DATA_SHARE_CLASS.
5273 (enum omp_region_type): Add ORT_SIMD.
5274 (gimple_add_tmp_var): Handle ORT_SIMD.
5275 (gimplify_var_or_parm_decl): Same.
5276 (is_gimple_stmt): Same.
5277 (omp_firstprivatize_variable): Same.
5278 (omp_add_variable): Only use splay_tree_insert if lookup failed.
5279 (omp_notice_variable): Handle ORT_SIMD.
12211b99 5280 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
5281 (omp_check_private): Handle ORT_SIMD.
5282 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
5283 OMP_CLAUSE_SAFELEN.
5284 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
5285 Handle OMP_CLAUSE_LASTPRIVATE.
5286 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
5287 OMP_CLAUSE_SAFELEN.
5288 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
5289 (gimplify_expr): Handle OMP_SIMD.
5290 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
5291 (expand_GOMP_SIMD_VF): New.
5292 (expand_GOMP_SIMD_LAST_LANE): New.
5293 * internal-fn.def (GOMP_SIMD_LANE): New.
5294 (GOMP_SIMD_VF): New.
5295 (GOMP_SIMD_LAST_LANE): New.
5296 * omp-low.c: Include target.h.
5297 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
5298 OMP_CLAUSE_SAFELEN.
5299 (check_omp_nesting_restrictions): Same.
5300 (omp_max_vf): New.
5301 (lower_rec_simd_input_clauses): New.
5302 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
5303 OMP_CLAUSE_LINEAR.
5304 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
5305 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
5306 (expand_omp_build_assign): New.
5307 (expand_omp_for_init_counts): New.
5308 (expand_omp_for_init_vars): New.
5309 (extract_omp_for_update_vars): New.
5310 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
5311 and rewrite accordingly.
5312 (expand_omp_simd): New.
5313 (expand_omp_for): Use expand_omp_simd.
5314 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
5315 (lower_omp_for): Do not lower the body.
5316 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
5317 in their own loops.
5318 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
5319 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
5320 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
5321 (gate_tree_if_conversion): Similarly.
5322 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
5323 gimple_build_omp_for.
5324 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
5325 * tree-parloops (create_parallel_loop): Pass kind argument to
5326 gimple_build_omp_for.
5327 * tree-pretty-print.c (dump_omp_clause): Add cases for
5328 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
5329 OMP_CLAUSE__SIMDUID_.
5330 (dump_generic_node): Handle OMP_SIMD.
5331 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
5332 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
5333 unroll OMP_SIMD loops here.
12211b99 5334 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 5335 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 5336 loop->safelen.
74bf76ed
JJ
5337 (vect_analyze_data_refs): Handle simd loops.
5338 * tree-vect-loop.c (vectorizable_live_operation): Handle
5339 IFN_GOMP_SIMD*.
12211b99 5340 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
5341 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
5342 (vectorizable_load): Same.
12211b99 5343 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
5344 (struct simduid_to_vf): New.
5345 (simduid_to_vf::hash): New.
5346 (simduid_to-vf::equal): New.
5347 (struct simd_array_to_simduid): New.
5348 (simd_array_to_simduid::hash): New.
5349 (simd_array_to_simduid::equal): New.
5350 (adjust_simduid_builtins): New.
5351 (struct note_simd_array_uses_struct): New.
5352 (note_simd_array_uses_cb): New.
5353 (note_simd_array_uses): New.
5354 (vectorize_loops): Handle simd hints and adjust simd builtins
5355 accordingly.
5356 * tree-vectorizer.h (struct _stmt_vec_info): Add
5357 simd_lane_access_p field.
5358 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
5359 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
5360 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
5361 (omp_clause_code_name): Same.
5362 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
5363 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
5364 * tree.def (OMP_SIMD): New entry.
12211b99
UB
5365 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
5366 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
5367 (OMP_CLAUSE_DECL): Adjust range for new clauses.
5368 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
5369 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
5370 (OMP_CLAUSE_LINEAR_STEP): New.
5371 (OMP_CLAUSE_SAFELEN_EXPR): New.
5372 (OMP_CLAUSE__SIMDUID__DECL): New.
5373 (find_omp_clause): New prototype.
5374
d0cf4e84
L
53752013-08-27 H.J. Lu <hongjiu.lu@intel.com>
5376
5377 * config/i386/driver-i386.c (host_detect_local_cpu): Update
5378 Haswell processor detection.
5379
992592ec
CW
53802013-08-27 Christian Widmer <shadow@umbrox.de>
5381
5382 PR target/57927
5383 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
5384 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
5385 AVX2 capable processors.
5386
9116eb22
TB
53872013-08-27 Tejas Belagod <tejas.belagod@arm.com>
5388
5389 * config/aarch64/arm_neon.h: Replace all inline asm implementations
5390 of vget_low_* with implementations in terms of other intrinsics.
5391
1c5abb53
MG
53922013-08-27 Marc Glisse <marc.glisse@inria.fr>
5393
5394 PR middle-end/57219
5395 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
5396 values to -1, 0 and 1.
5397
2e100703
VP
53982013-08-27 Vidya Praveen <vidyapraveen@arm.com>
5399
5400 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
5401 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
5402 (<optab><mode>3_insn): Remove.
5403 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
5404 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5405 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5406 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
5407 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
5408 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
5409 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
5410 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
5411 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
5412 (ror<mode>3_insn): Likewise.
5413 * config/aarch64/predicates.md (aarch64_simd_register): New.
5414
4ded8276
RB
54152013-08-27 Richard Biener <rguenther@suse.de>
5416
5417 PR tree-optimization/57521
5418 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
5419 one edge is non-critical.
5420 (find_phi_replacement_condition): Make sure to use a non-critical
5421 edge. Cleanup and remove old bug workarounds.
5422 (bb_postdominates_preds): Remove.
5423 (if_convertible_loop_p_1): Do not compute post-dominators.
5424 (combine_blocks): Do not free post-dominators.
5425 (main_tree_if_conversion): Likewise.
5426 (pass_data_if_conversion): Add TODO_verify_ssa.
5427
5aa11061
DD
54282013-08-27 DJ Delorie <dj@redhat.com>
5429
5430 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
5431
fd91cfe3
YZ
54322013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
5433
5434 * function.c (assign_parm_find_data_types): Set passed_mode and
5435 nominal_mode to the TYPE_MODE of nominal_type for the built
5436 pointer type in case of the struct-pass-by-reference.
5437
907555ce
JR
54382013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5439
5440 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
5441 (UINT16_TYPE): Change default to "unsigned int".
5442
67518c93
JR
5443 * config/avr/avr.opt (mfract-convert-truncate): New option.
5444 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
5445 is set, round negative fractional integers according to n1169
5446 when converting to integer types.
5447
d6d989fc
JH
54482013-08-26 Jan Hubicka <jh@suse.cz>
5449
5450 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
5451 methods can not be called indirectly when their address is not taken.
5452
2aa3da06
JH
54532013-08-26 Jan Hubicka <jh@suse.cz>
5454
12211b99
UB
5455 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
5456 ctor_for_folding.
2aa3da06 5457
0987ffe7
JH
54582013-08-26 Jan Hubicka <jh@suse.cz>
5459
5460 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
5461 can be unshared.
5462
befe8647
JR
54632013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5464
5465 * reload.c (find_valid_class): Allow classes that do not include
5466 FIRST_PSEUDO_REGISTER - 1.
5467
a21e735e
JH
54682013-08-26 Jan Hubicka <jh@suse.cz>
5469
5470 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
5471 fix edge count/frequency when speculation failed; fix type check
5472 for the direct call.
5473
e067bd43
JH
54742013-08-26 Jan Hubicka <jh@suse.cz>
5475
5476 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
5477
e8aec975
JH
54782013-08-26 Jan Hubicka <jh@suse.cz>
5479
5480 * ipa-inline-transform.c (inline_transform): Be ready for basic block
5481 to be changed by edge redirection.
5482
d0b66480
JH
54832013-08-26 Jan Hubicka <jh@suse.cz>
5484
12211b99
UB
5485 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
5486 formating; add sanity check.
d0b66480
JH
5487 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
5488 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
5489 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
5490 (resolve_noninline_speculation): Update callee keys, too.
5491
0f9aaac7
JH
54922013-08-26 Jan Hubicka <jh@suse.cz>
5493
5494 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
5495 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
5496
4b37444e
JR
54972013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
5498
5499 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
5500 into proper place.
5501
5339fc0c
UB
55022013-08-26 Uros Bizjak <ubizjak@gmail.com>
5503
5504 * config/i386/i386.c (ix86_debug_options): Remove prototype.
5505 (x86_64_elf_select_section): Ditto.
5506 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
5507 arguments.
5508 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
5509 (output_set_got): Ditto.
5510 (ix86_unary_operator_ok): Ditto.
5511 (ix86_expand_builtin): Ditto.
5512
d5c3d3ef
JH
55132013-08-23 Jan Hubicka <jh@suse.cz>
5514
5339fc0c 5515 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 5516
5b1e7435
JH
55172013-08-23 Jan Hubicka <jh@suse.cz>
5518
5519 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
5520 (tree_decl_with_vis): Add FINAL field.
5521
ead69dac
JL
55222013-08-23 Jeff Law <law@redhat.com>
5523
5524 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
5525 the debugging dump when the expression is fully redundant.
5526
025311c4
GDR
55272013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5528
5529 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
5530 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
5531 * pretty-print.c (pp_formatted_text_data): Likewise.
5532 (pp_write_text_to_stream): Likewise.
5533 (pp_write_text_as_dot_label_to_stream): Likewise.
5534 (pp_append_r): Likewise.
5535 (pp_format): Likewise.
5536 (pp_flush): Likewise.
5537 (pp_clear_output_area): Likewise.
5538 (pp_append_text): Likewise.
5539 (pp_formatted_text): Likewise.
5540 (pp_remaining_character_count_for_line): Likewise.
5541 (pp_newline): Likewise.
5542 (pp_character): Likewise.
5543 (output_buffer::~output_buffer): Define.
5544 (pretty_printer::~pretty_printer): Destruct output buffer.
5545 * pretty-print.h (output_buffer::~output_buffer): Declare.
5546 (pretty_printer::~pretty_printer): Declare virtual.
5547
0cadbfaa
MG
55482013-08-24 Marc Glisse <marc.glisse@inria.fr>
5549
5550 PR other/57324
5551 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
5552 HOST_WIDE_INT_M1U): New macros.
5553 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
5554 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
5555 unsigned -1 for lshift.
5556 * cse.c (cse_insn): Likewise.
5557 * double-int.c (rshift_double, lshift_double): Likewise.
5558 * builtins.c (fold_builtin_bitop): Likewise.
5559 * combine.c (force_to_mode): Likewise.
5560 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
5561 * simplify-rtx.c (simplify_const_unary_operation,
5562 simplify_const_binary_operation): Likewise.
5563 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
5564 check_va_list_escapes): Likewise.
5565 * rtlanal.c (nonzero_bits1): Likewise.
5566 * expmed.c (expand_smod_pow2): Likewise.
5567 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
5568
009e5353
JH
55692013-08-23 Jan Hubicka <jh@suse.cz>
5570
5571 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
5572 as having address taken.
5573
c4be6568
JH
55742013-08-23 Jan Hubicka <jh@suse.cz>
5575
64cbf23d
JH
5576 * ipa-utils.h (method_class_type): Declare.
5577 * ipa-devirt.c (method_class_type): Export.
5578
c4be6568
JH
5579 * cgraphunit.c (analyze_functions): Do basic devirtualization;
5580 do not walk base classes of anonymous types.
5581
97aba8e9
KK
55822013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
5583
5584 PR rtl-optimization/58220
5585 PR regression/58221
5586 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
5587 handle SEQUENCE insns properly.
5588
0fc80001
GDR
55892013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5590
5591 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
5592 definition.
5593 (pp_newline_and_indent): Likewise.
5594 (pp_separate_with): Likewise.
5595 * pretty-print.c (pp_newline_and_flush): Define.
5596 (pp_newline_and_indent): Likewise.
5597 (pp_separate_with): Likewise.
5598
520a5868
JJ
55992013-08-23 Jakub Jelinek <jakub@redhat.com>
5600
5601 PR target/58218
5602 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
5603 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
5604
e500c62a
KY
56052013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
5606
f43245d1
UB
5607 * config/i386/predicates.md (ext_sse_reg_operand): New.
5608 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
5609 predicate to determine if EVEX is needed.
5610 (*movsi_internal): Ditto.
5611 (*movdf_internal): Ditto.
5612 (*movsf_internal): Ditto.
f43245d1 5613 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 5614
6b00d7dd
JJ
56152013-08-23 Jakub Jelinek <jakub@redhat.com>
5616
5617 PR tree-optimization/58209
5618 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
5619 (find_tail_calls): Give up for pointer result types if m is non-NULL.
5620 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
5621 emit POINTER_PLUS_EXPR.
5622 (create_tailcall_accumulator): For pointer result type accumulate in
5623 sizetype type.
5624
4f2a9f90
PC
56252013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
5626
5627 * configure.ac: Add backslashes missing from the last change.
5628 * configure: Regenerate.
5629
7bf4274e
JH
56302013-08-22 Jan Hubicka <jh@susue.cz>
5631
4f2a9f90
PC
5632 * ipa.c (function_and_variable_visibility): First remember function
5633 was global and then make it local.
7bf4274e 5634
1bea243d
JB
56352013-08-22 Julian Brown <julian@codesourcery.com>
5636
5637 * configure.ac: Add aarch64 to list of arches which use "nop" in
5638 debug_line test.
5639 * configure: Regenerate.
5640
bcba7ecc
AK
56412013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5642
5643 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
5644 gnu_libc_has_function.
5645 * config/s390/tpf.h: Likewise.
5646
4c495b0d
JH
56472013-08-22 Jan Hubicka <jh@susue.cz>
5648
5649 * timevar.c (validate_phases): Add cast.
5650
5e302bca
JH
56512013-08-22 Jan Hubicka <jh@susue.cz>
5652
5653 * timevar.c (validate_phases): Use size_t for memory.
5654 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
5655
da6ca2b5
GDR
56562013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
5657
5658 * pretty-print.h (output_buffer::output_buffer): Declare.
5659 (pretty_printer::pretty_printer): Likewise.
5660 (pp_construct): Remove.
5661 * pretty-print.c (output_buffer::output_buffer): Define.
5662 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
5663 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
5664 (print_gimple_expr): Likewise.
5665 (print_gimple_seq): Likewise.
5666 (gimple_dump_bb): Likewise.
5667 * sched-vis.c (dump_value_slim): Likewise.
5668 (dump_insn_slim): Likewise.
5669 (dump_rtl_slim): Likewise.
5670 (str_pattern_slim): Likewise.
5671 * tree-mudflap.c (mf_varname_tree): Likewise.
5672 * graph.c (print_graph_cfg): Likewise.
5673 (start_graph_dump): Likewise.
5674 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
5675 placement-new.
5676 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
5677 pretty printer initialization.
5678 * coretypes.h (diagnostic_context): Remove superflous type alias
5679 declaration.
5680 (pretty_printer): Likewise. Declare directly as a class.
5681 (pretty_print_info): Remove declaration as class.
5682 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
5683 and pp_clear_output_area.
5684 (asan_add_global): Likewise.
5685
0e1474e5
JH
56862013-08-22 Jan Hubicka <jh@suse.cz>
5687
5688 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
5689 * ipa-utils.h (update_type_inheritance_graph): Declare.
5690 (possible_polymorphic_call_target_p): Declare.
5691 (possible_polymorphic_call_target_p): New.
5692 * ipa-devirt.c: Update toplevel comments.
5693 (cached_polymorphic_call_targets): Move up.
5694 (odr_type_d): Move ID down.
5695 (polymorphic_type_binfo_p): Update comment.
5696 (odr_hasher::remove): Likewise;
5697 (get_odr_type): Set anonymous_namespace.
5698 (dump_odr_type): Dump it.
5699 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
5700 (maybe_record_node): Record node in cached_polymorphic_call_targets.
5701 (record_binfo): Add comment.
5339fc0c
UB
5702 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
5703 built.
0e1474e5
JH
5704 (devirt_node_removal_hook): Do not iCE when cache is freed.
5705 (possible_polymorphic_call_target_p): New predicate.
5706 (update_type_inheritance_graph): New function.
5707
3f97cb0b
AI
57082013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
5709 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5710 Sergey Lega <sergey.s.lega@intel.com>
5711 Anna Tikhonova <anna.tikhonova@intel.com>
5712 Ilya Tocar <ilya.tocar@intel.com>
5713 Andrey Turetskiy <andrey.turetskiy@intel.com>
5714 Ilya Verbin <ilya.verbin@intel.com>
5715 Kirill Yukhin <kirill.yukhin@intel.com>
5716 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5717
5718 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
5719 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
5720 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
5721 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
5722 (OPTION_MASK_ISA_AVX2_UNSET): Update.
5723 (OPTION_MASK_ISA_AVX512F_UNSET): New.
5724 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
5725 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
5726 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
5727 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
5728 OPT_mavx512pf, OPT_mavx512er cases.
5729 * config/i386/constraints.md (v): New constraint.
5730 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
5731 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
5732 (bit_AVX512CD): New.
5733 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5734 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
5735 * config/i386/i386-c.c (ix86_target_macros_internal):
5736 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
5737 __AVX512PF__.
5738 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
5739 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
5740 * config/i386/i386.c (regclass_map, dbx_register_map)
5741 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
5742 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
5743 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
5744 -mavx512pf options.
5745 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
5746 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
5747 -mavx512pf options. Fix formatting.
5748 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
5749 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
5750 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
5751 -mavx512cd, -mavx512pf options.
5752 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
5753 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
5754 (ix86_preferred_output_reload_class): Replace SSE_REGS with
5755 ALL_SSE_REGS.
5756 (ix86_hard_regno_mode_ok): Support 512-bit registers.
5757 (ix86_set_reg_reg_cost): Ditto.
5758 (x86_order_regs_for_local_alloc): Ditto.
5759 (MAX_VECT_LEN): Extend to 64-byte.
5760 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
5761 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
5762 (TARGET_AVX512ER, TARGET_AVX512CD): New.
5763 (BIGGEST_ALIGNMENT): Extend to 512-bits.
5764 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
5765 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
5766 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
5767 (SSE_REG_MODE_P): Support new modes.
5768 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
5769 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
5770 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
5771 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
5772 (REG_CLASS_CONTENTS): Add new registers.
5773 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
5774 (EXT_REX_SSE_REGNO_P): New.
5775 (HI_REGISTER_NAMES): Add new registers.
5776 * config/i386/i386.md: Define constants for new registers.
5777 (mode): Add new 512-bit modes.
5778 (prefix): Support evex prefix.
5779 (isa): Support avx512f, noavx512f, fma_avx512f.
5780 (ssemodesuffix): Add new 512-bit modes.
5781 (movxi): New.
5782 (*movxi_internal_avx512f): Ditto.
5783 (*movdi_internal): Replace constraint "x" with the new constraint "v".
5784 Support MODE_XI.
5785 (*movsi_internal): Likewise.
5786 (*movdf_internal): Likewise.
5787 (*movsf_internal): Likewise.
5788 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
5789 (<code><mode>3): Likewise.
5339fc0c
UB
5790 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
5791 New.
3f97cb0b
AI
5792 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
5793 with the new constraint "v".
5794 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
5795 modes.
5796 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
5797 with the new constraint "v".
5798 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
5799 (<sse2>_storedqu<avxsizesuffix>): Likewise.
5800 (*<plusminus_insn><mode>3): Likewise.
5801 (<sse>_vm<plusminus_insn><mode>3): Likewise.
5802 (*mul<mode>3): Likewise.
5803 (<sse>_vmmul<mode>3): Likewise.
5804 (<sse>_div<mode>3): Likewise.
5805 (<sse>_vmdiv<mode>3): Likewise.
5806 (<sse>_sqrt<mode>2): Likewise.
5807 (<sse>_vmsqrt<mode>2): Likewise.
5808 (*<code><mode>3_finite): Likewise.
5809 (*<code><mode>3) <smaxmin>: Likewise.
5810 (<sse>_vm<code><mode>3): Likewise.
5811 (*<code><mode>3) <any_logic>: Likewise.
5812 (*fma_fmadd_<mode>): Likewise.
5813 (*fma_fmsub_<mode>): Likewise.
5814 (*fma_fnmadd_<mode>): Likewise.
5815 (*fma_fnmsub_<mode>): Likewise.
5816 (*fma_fmaddsub_<mode>): Likewise.
5817 (*fma_fmsubadd_<mode>): Likewise.
5818 (*fmai_fmadd_<mode>): Likewise.
5819 (*fmai_fmsub_<mode>): Likewise.
5820 (*fmai_fnmadd_<mode>): Likewise.
5821 (*fmai_fnmsub_<mode>): Likewise.
5822 (sse_cvtsi2ss): Likewise.
5823 (sse_cvtsi2ssq): Likewise.
5824 (sse_cvtss2si): Likewise.
5825 (sse_cvtss2si_2): Likewise.
5826 (sse_cvtss2siq): Likewise.
5827 (sse_cvtss2siq_2): Likewise.
5828 (sse_cvttss2si): Likewise.
5829 (sse_cvtss2siq_2): Likewise.
5830 (float<sseintvecmodelower><mode>2): Likewise.
5831 (sse2_cvtsd2si_2): Likewise.
5832 (sse2_cvtsd2siq_2): Likewise.
5833 (*<plusminus_insn><mode>3): Likewise.
5834 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
5835 (*<sse4_1_avx2>_mul<mode>3): Likewise.
5836 (ashr<mode>3): Likewise.
5837 (<shift_insn><mode>3): Likewise.
5838 (avx2_<code><mode>3): Likewise.
5839 (*avx2_<code><mode>3): Likewise.
5840 (*andnot<mode>3): Likewise.
5841 (*<code><mode>3) <any_logic>: Likewise.
5842 (abs<mode>2): Likewise.
5843 (avx2_permvar<mode>): Likewise.
5844 (avx2_perm<mode>_1): Likewise.
5845 (*avx_vpermilp<mode>): Likewise.
5846 (avx_vpermilvar<mode>3): Likewise.
5847 (avx2_ashrv<mode>): Likewise.
5848 (avx2_<shift_insn>v<mode>): Likewise.
5849 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
5850 -mavx512cd.
5851 * doc/rtl.texi: Document XImode.
5852
dd5e8423
JL
58532013-08-21 Jeff Law <law@redhat.com>
5854
b9ebee5d
JL
5855 * tree-flow.h (register_jump_thread): Pass vector of edges
5856 instead of each important edge.
5857 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
5858 thread path into a vector and pass that to register_jump_thread.
5859 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
5860 passed in edge vector to the current 3-edge form.
5861
dd5e8423
JL
5862 Revert:
5863 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
5864
9bb6628e 5865 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
5866 delete_unmarked_insns removed anything.
5867
445dc8df
JR
58682013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
5869
5870 * reload.h (struct reg_equivs): Rename to ..
5871 (struct reg_equivs_s): .. this.
5872
e0df53dd
ML
58732013-08-20 Martin Liska <marxin.liska@gmail.com>
5874
5875 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
5876
e7d1d3eb
RO
58772013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5878
5339fc0c 5879 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 5880
5562e26e
JL
58812013-08-21 Jeff Law <law@redhat.com>
5882
5883 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
5884 simplify assignments too. If the RHS collapses to a singleton
5885 range, then return the value for the range.
5886
c7ecdec6
KY
58872013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
5888
7a5911d3
UB
5889 * config/i386/sse.md (V16): Rename to...
5890 (VMOVE): this.
5891 (mov<mode>): Update iterator name.
5892 (*mov<mode>_internal): Ditto.
5893 (push<mode>1): Ditto.
5894 (movmisalign<mode>): Ditto.
c7ecdec6 5895
bfa3b50a
JH
58962013-08-20 Jan Hubicka <jh@suse.cz>
5897
5898 PR bootstrap/58186
5899 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
5900 entry for direct edges.
5901 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
5902
6cd4d135
DM
59032013-08-20 David Malcolm <dmalcolm@redhat.com>
5904
5905 Revert my last two changes, r201865 and r201864:
5906
5907 Revert r201865:
5908 2013-08-20 David Malcolm <dmalcolm@redhat.com>
5909
5910 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
5911 instances can own GC refs.
5912
5913 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
5914 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
5915 (gcc::context::gt_pch_nx): Likewise.
5916 (gcc::context::gt_pch_nx): Likewise.
5917 * ggc.h (gt_ggc_mx <T>): New.
5918 (gt_pch_nx_with_op <T>): New.
5919 (gt_pch_nx <T>): New.
5920 * passes.c (opt_pass::gt_ggc_mx): New.
5921 (opt_pass::gt_pch_nx): New.
5922 (opt_pass::gt_pch_nx_with_op): New.
5923 (pass_manager::gt_ggc_mx): New.
5924 (pass_manager::gt_pch_nx): New.
5925 (pass_manager::gt_pch_nx_with_op): New.
5926 (pass_manager::operator new): Use
5927 ggc_internal_cleared_alloc_stat rather than xcalloc.
5928 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
5929 (pass_manager::gt_ggc_mx): New.
5930 (pass_manager::gt_pch_nx): New.
5931 (pass_manager::gt_pch_nx_with_op): New.
5932 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
5933 (opt_pass::operator new): New.
5934 (opt_pass::gt_ggc_mx): New.
5935 (opt_pass::gt_pch_nx): New.
5936 (opt_pass::gt_pch_nx_with_op): New.
5937
5938 Revert r201864:
5939 2013-08-20 David Malcolm <dmalcolm@redhat.com>
5940
5941 * Makefile.in (GTFILES): Add context.h.
5942 * context.c (gcc::context::operator new): New.
5943 (gcc::context::gt_ggc_mx): New.
5944 (gcc::context::gt_pch_nx): New.
5945 (gcc::context::gt_pch_nx): New.
5946 * context.h (gcc::context): Add GTY((user)) marking.
5947 (gcc::context::operator new): New.
5948 (gcc::context::gt_ggc_mx): New.
5949 (gcc::context::gt_pch_nx): New.
5950 (gcc::context::gt_pch_nx): New.
5951 (g): Add GTY marking.
5952 (gt_ggc_mx (gcc::context *)): New.
5953 (gt_pch_nx (gcc::context *)): New.
5954 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
5955 void *cookie)): New.
5956 * gengtype.c (open_base_files) <ifiles>: Add context.h.
5957
a046136a
AM
59582013-08-20 Alexey Makhalov <makhaloff@gmail.com>
5959
5960 * dce.c (fini_dce): Call df_analyze again just in case
5961 delete_unmarked_insns removed anything.
5962
67598720
TJ
59632013-08-20 Teresa Johnson <tejohnson@google.com>
5964
5965 PR rtl-optimizations/57451
5966 * final.c (reemit_insn_block_notes): Prevent lexical blocks
5967 from crossing split section boundaries.
5968
f8693faf
MGD
59692013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5970
5971 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
5972 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
5973 with MULTLIB_DEFAULTS.
5974
7d0b9a9c
NC
59752013-08-20 Nick Clifton <nickc@redhat.com>
5976
5977 * target.def (narrow_volatile_bitfield): Note that the default
5978 value is false, not !TARGET_STRICT_ALIGN.
5979 * doc/tm.texi: Regenerate.
5980
8edb8dc8
PC
59812013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
5982
5983 Fix LIB_SPEC for systems without libpthread.
5984
5985 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
5986 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
5987 for Android.
5988 * config/i386/linux-common.h: Likewise.
5989 * config/mips/linux-common.h: Likewise.
5990
12211b99 59912013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
5992
5993 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
5994 checks.
5995
e42c64cb
DM
59962013-08-20 David Malcolm <dmalcolm@redhat.com>
5997
5998 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
5999 instances can own GC refs.
6000
6001 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
6002 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
6003 (gcc::context::gt_pch_nx): Likewise.
6004 (gcc::context::gt_pch_nx): Likewise.
6005 * ggc.h (gt_ggc_mx <T>): New.
6006 (gt_pch_nx_with_op <T>): New.
6007 (gt_pch_nx <T>): New.
6008 * passes.c (opt_pass::gt_ggc_mx): New.
6009 (opt_pass::gt_pch_nx): New.
6010 (opt_pass::gt_pch_nx_with_op): New.
6011 (pass_manager::gt_ggc_mx): New.
6012 (pass_manager::gt_pch_nx): New.
6013 (pass_manager::gt_pch_nx_with_op): New.
6014 (pass_manager::operator new): Use
6015 ggc_internal_cleared_alloc_stat rather than xcalloc.
6016 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
6017 (pass_manager::gt_ggc_mx): New.
6018 (pass_manager::gt_pch_nx): New.
6019 (pass_manager::gt_pch_nx_with_op): New.
6020 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
6021 (opt_pass::operator new): New.
6022 (opt_pass::gt_ggc_mx): New.
6023 (opt_pass::gt_pch_nx): New.
6024 (opt_pass::gt_pch_nx_with_op): New.
6025
910c02a0
DM
60262013-08-20 David Malcolm <dmalcolm@redhat.com>
6027
6028 * Makefile.in (GTFILES): Add context.h.
6029 * context.c (gcc::context::operator new): New.
6030 (gcc::context::gt_ggc_mx): New.
6031 (gcc::context::gt_pch_nx): New.
6032 (gcc::context::gt_pch_nx): New.
6033 * context.h (gcc::context): Add GTY((user)) marking.
6034 (gcc::context::operator new): New.
6035 (gcc::context::gt_ggc_mx): New.
6036 (gcc::context::gt_pch_nx): New.
6037 (gcc::context::gt_pch_nx): New.
6038 (g): Add GTY marking.
6039 (gt_ggc_mx (gcc::context *)): New.
6040 (gt_pch_nx (gcc::context *)): New.
6041 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
6042 void *cookie)): New.
6043 * gengtype.c (open_base_files) <ifiles>: Add context.h.
6044
af4b4236
AM
60452013-08-20 Alan Modra <amodra@gmail.com>
6046
6047 PR target/57865
6048 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
6049 (rs6000_emit_epilogue): Likewise.
6050
12211b99 60512013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
6052
6053 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
6054
e2323f5b
PB
60552013-08-19 Peter Bergner <bergner@vnet.ibm.com>
6056 Jakub Jelinek <jakub@redhat.com>
6057
6058 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
6059 (BUILT_IN_FABSD64): Likewise.
6060 (BUILT_IN_FABSD128): Likewise.
6061 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
6062 (fold_builtin_1): Likewise.
5339fc0c
UB
6063 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
6064 destination and source operands.
e2323f5b
PB
6065 (*abstd2_fpr): Likewise.
6066 (*nabstd2_fpr): Likewise.
6067
cfbf3ee8
RS
60682013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
6069
6070 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
6071 JUMP_P and INSN_P.
6072
d3136aeb
AH
60732013-08-19 Aldy Hernandez <aldyh@redhat.com>
6074
6075 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
6076 incomplete.
6077
d33d9e47
AI
60782013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
6079
6080 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
6081 * builtins.c (default_libc_has_function): New.
6082 (gnu_libc_has_function): Ditto.
6083 (no_c99_libc_has_function): Ditto.
6084 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
6085 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
6086 (fold_builtin_sincos): Likewise.
6087 (fold_builtin_cexp): Likewise.
6088 * builtins.def (DEF_C94_BUILTIN): Likewise.
6089 (DEF_C99_BUILTIN): Likewise.
6090 (DEF_C99_C90RES_BUILTIN): Likewise.
6091 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
6092 definitions to using this define.
6093 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 6094 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
6095 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
6096 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
6097 * config/darwin.h: Ditto.
6098 * config/elfos.h: Ditto.
6099 * config/freebsd.h: Ditto.
6100 * config/i386/cygming.h: Ditto.
6101 * config/i386/djgpp.h: Ditto.
6102 * config/i386/i386-interix.h: Ditto.
6103 * config/microblaze/microblaze.h: Ditto.
6104 * config/mmix/mmix.h: Ditto.
6105 * config/gnu-user.h: Ditto.
6106 * config/ia64/hpux.h: Ditto.
6107 * config/pa/pa-hpux.h: Ditto.
6108 * config/pdp11/pdp11.h: Ditto.
6109 * config/picochip/picochip.h: Ditto.
6110 * config/linux.h: Ditto.
6111 * config/netbsd.h: Ditto.
6112 * config/openbsd.h: Ditto.
6113 * config/rs6000/aix43.h: Ditto.
6114 * config/rs6000/aix51.h: Ditto.
6115 * config/rs6000/aix52.h: Ditto.
6116 * config/rs6000/aix53.h: Ditto.
6117 * config/rs6000/aix61.h: Ditto.
6118 * config/rs6000/darwin.h: Ditto.
6119 * config/rs6000/linux.h: Ditto.
6120 * config/rs6000/linux64.h: Ditto.
6121 * config/s390/tpf.h: Ditto.
6122 * config/sol2-10.h: Ditto.
6123 * config/sol2.h: Ditto.
6124 * config/vms/vms.h: Ditto.
6125 * config/vxworks.h: Ditto.
6126 * config/linux-android.c (linux_android_libc_has_function):
6127 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
6128 * config/linux-protos.h (linux_android_libc_has_function):
6129 New declaration.
6130 * config/i386/i386.c (ix86_libc_has_function): New.
6131 * config/i386/i386-protos.h
6132 (ix86_libc_has_function): New declaration.
6133 * config/i386/i386.md
6134 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
6135 ("isinf<mode>2): Likewise.
6136 * convert.c (convert_to_integer): Using new target hook
6137 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
6138 TARGET_C99_FUNCTIONS.
6139 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
6140 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
6141 * coretypes.h (function_class): New enum for different
6142 classes of functions.
6143 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
6144 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
6145 (TARGET_HAS_SINCOS): Likewise.
6146 (TARGET_LIBC_HAS_FUNCTION): New.
6147 * doc/tm.texi: Regenerated.
6148 * targhooks.h (default_libc_has_function): New declaration.
6149 (no_c99_libc_has_function): Ditto.
6150 (gnu_libc_has_function): Ditto.
6151 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
6152 and TARGET_HAS_SINCOS.
6153
eefe9a99
JH
61542013-08-18 Jan Hubicka <jh@suse.cz>
6155
6156 * Makeifle-in (ipa-devirt.o): New.
6157 (GTFILES): Add ipa-utils.h and ipa-devirt.c
6158 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
6159 (analyze_functions): Look into possible targets of polymorphic call.
6160 * dumpfile.c (dump_files): Add type-inheritance dump.
6161 * dumpfile.h (TDI_inheritance): New.
6162 * ipa-devirt.c: New file.
6163 * ipa-utils.h (odr_type_d): Forward declare.
6164 (odr_type): New type.
6165 (build_type_inheritance_graph): Declare.
6166 (possible_polymorphic_call_targets): Declare and introduce inline
6167 variant when only edge is pased.
6168 (dump_possible_polymorphic_call_targets): Likewise.
6169 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
6170 * tree.c (type_in_anonymous_namespace_p): Break out from ...
6171 (types_same_for_odr): ... here.
6172 * tree.h (type_in_anonymous_namespace_p): Declare.
6173
29b89442
JJ
61742013-08-18 Jakub Jelinek <jakub@redhat.com>
6175
6176 PR tree-optimization/58006
6177 * tree-parloops.c (take_address_of): Don't ICE if get_name
6178 returns NULL.
6179 (eliminate_local_variables_stmt): Remove clobber stmts.
6180
4f219961
EB
61812013-08-18 Eric Botcazou <ebotcazou@adacore.com>
6182
6183 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
6184 error message is issued for an alias to undefined symbol.
6185
1d5755ef
JH
61862013-08-18 Jan Hubicka <jh@suse.cz>
6187
6188 * cgraph.c (cgraph_create_indirect_edge): Discover
6189 polymorphic calls and record basic info into indirect_info.
6190 * gimple-fold.c (gimple_fold_call): When doing BINFO based
6191 devirtualization, ignore objc function calls.
6192 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
6193 call with no parm index info.
6194 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
6195 * tree.c (virtual_method_call_p): New function.
6196 * tree.h (virtual_method_call_p): Declare.
6197
5945bebf
JH
61982013-08-16 Jan Hubicka <jh@suse.cz>
6199
6200 PR middle-end/58179
6201 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
6202
47fa5d23
DE
62032013-08-16 David Edelsohn <dje.gcc@gmail.com>
6204
6205 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
6206 attribute.
6207
c74f54a0
DM
62082013-08-16 David Malcolm <dmalcolm@redhat.com>
6209
6210 * gengtype.c (type_for_name): Add special-case support for
6211 locating types within the "gcc::" namespace.
6212 (open_base_files): Emit a "using namespace gcc" directive.
6213
f758f299
MM
62142013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
6215
6216 PR target/58160
6217 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
6218 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
6219
6220 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
6221 array instead of each individual operand as a separate argument.
6222 (emit_fusion_gpr_load): Likewise.
6223 (expand_fusion_gpr_load): Add new function declaration.
6224
6225 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
6226 signature to have the operands passed as an array, instead of as
6227 separate arguments. Allow ZERO_EXTEND to be in the memory
6228 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
6229 depend on the register live/dead flags when peepholes are run.
6230 (expand_fusion_gpr_load): New function to be called from the
6231 peephole2 pass, to change the register that addis sets to be the
6232 target register.
6233 (emit_fusion_gpr_load): Change the calling signature to have the
6234 operands passed as an array, instead of as separate arguments.
6235 Allow ZERO_EXTEND to be in the memory address, and also
6236 SIGN_EXTEND if -mpower8-fusion-sign.
6237
6238 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
6239 unspec enumeration.
6240 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
6241 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 6242 depend on the register live/dead state when the peephole pass is done.
f758f299 6243
158f4e4f
DM
62442013-08-16 David Malcolm <dmalcolm@redhat.com>
6245
6246 * gengtype.c (create_user_defined_type): Ensure that the kind
6247 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
6248 declaration is seen before the GTY((user)) marking.
6249
22f8cea5
BE
62502013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
6251
6252 PR target/58105
6253 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
6254
c49bdb2e
JH
62552013-08-16 Jan Hubicka <jh@suse.cz>
6256
6257 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
6258 arugment expected_type.
6259 (gimple_fold_call): Use it.
6260 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
6261 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 6262 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
6263 (try_make_edge_direct_virtual_call): Likewise.
6264 * tree.c (obj_type_ref_class): New.
6265 * tree.h (obj_type_ref_class): Use it.
6266
4042dca9
GDR
62672013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
6268
6269 * sched-vis.c (rtl_slim_pp_initialized): Remove.
6270 (rtl_slim_pp): Likewise.
6271 (init_rtl_slim_pretty_print): Likewise.
6272 (dump_value_slim): Don't call it. Use local pretty printer.
6273 (dump_insn_slim): Likewise.
6274 (dump_rtl_slim): Likewise.
6275 (str_pattern_slim): Likewise.
6276 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
6277 Simplify.
6278
7a460594
JJ
62792013-08-16 Jakub Jelinek <jakub@redhat.com>
6280
639dc669
JJ
6281 PR tree-optimization/58164
6282 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
6283 walk gimple_goto_dest of GIMPLE_GOTO.
6284
7a460594
JJ
6285 PR tree-optimization/58165
6286 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
6287 bi_call must be the last stmt in a bb, don't split_block, instead
6288 use fallthru edge from it and give up if there is none.
6289 Release conds vector when returning early.
6290
e3c02cc7
XDL
62912013-08-14 Xinliang David Li <davidxl@google.com>
6292
6293 * config/i386/i386.c (ix86_option_override_internal):
6294 Remove unused variable and field.
6295
6469da2c
BS
62962013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6297
6298 PR target/57949
22f8cea5 6299 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
6300 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
6301 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
6302 and Linux, correct BLKmode alignment when 128-bit alignment is
6303 required and compatibility flag is not set.
22f8cea5
BE
6304 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
6305 for zero-size arguments when compatibility flag is not set.
6469da2c 6306
4ca890e2
JJ
63072013-08-14 Jakub Jelinek <jakub@redhat.com>
6308
6309 PR tree-optimization/58145
6310 * tree-sra.c (build_ref_for_offset): If prev_base has
6311 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
6312
daec1759 63132013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 6314
daec1759 6315 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 6316 Fix uninitialized variable error.
daec1759 6317
3ad20bd4
XDL
63182013-08-14 Xinliang David Li <davidxl@google.com>
6319
6320 * config/i386/i386.opt: Define two new options.
6321 * config/i386/x86-tune.def: Add arch selector field in macros.
6322 * config/i386/i386.h: Adjust macro definition.
6323 * config/i386/i386.c (ix86_option_override_internal):
6324 Refactor the code.
6325 (parse_mtune_ctrl_str): New function.
6326 (set_ix86_tune_features): New function.
6327 (ix86_function_specific_restore): Call the new helper function.
6328
e839e2a9
AB
63292013-08-14 Andrey Belevantsev <abel@ispras.ru>
6330
6331 PR rtl-optimization/57662
6332 * sel-sched.c (code_motion_process_successors): When the current insn
6333 is removed after the recursive traversal, break from the loop.
6334 Add comments and debug printouts.
6335
27ed665f
JJ
63362013-08-14 Jakub Jelinek <jakub@redhat.com>
6337 Alexandre Oliva <aoliva@redhat.com>
6338
6339 PR target/58067
6340 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
6341 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
6342 there also UNSPEC_PLTOFF.
6343
61c1a609
MP
63442013-08-14 Marek Polacek <polacek@redhat.com>
6345
6346 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
6347 NUM_CONDITIONS bit positions.
6348
0e901c67
CC
63492013-08-13 Cary Coutant <ccoutant@google.com>
6350
6351 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
6352 (attr_checksum): Hash vector contents instead of pointer.
6353 (attr_checksum_ordered): Likewise.
6354
061eff6d
UB
63552013-08-13 Uros Bizjak <ubizjak@gmail.com>
6356
6357 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
6358 when Pmode != word_mode. Add length_address attribute.
6359 (sse3_monitor_<mode>): Merge from sse3_monitor and
6360 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
6361 Pmode != word_mode. Update insn length attribute.
6362 * config/i386/i386.c (ix86_option_override_internal): Update
6363 ix86_gen_monitor selection for merged sse3_monitor insn.
6364
8ec9249b
JB
63652013-08-13 Julian Brown <julian@codesourcery.com>
6366
6367 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
6368 perform invalid legitimization on greater-than-word-size modes for
6369 TARGET_E500_DOUBLE.
6370
761a8eb7
VM
63712013-08-13 Vladimir Makarov <vmakarov@redhat.com>
6372
6373 * ira.c (setup_class_translate_array): Use aclass instead of cl
6374 for classes not fully covered by allocno classes.
6375
99c2bd54
JJ
63762013-08-13 Jakub Jelinek <jakub@redhat.com>
6377
4029a5e0
JJ
6378 PR tree-optimization/57661
6379 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
6380 * tree-inline.c (tree_function_versioning): Initialize it.
6381 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
6382 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
6383 that is not being copied.
6384
99c2bd54
JJ
6385 PR sanitizer/56417
6386 * asan.c (instrument_strlen_call): Fix typo in comment.
6387 Use char * type even for the lhs of POINTER_PLUS_EXPR.
6388
b5f8f063
SE
63892013-08-13 Steve Ellcey <sellcey@mips.com>
6390
6391 * config/mips/mips.md (prefetch): Use lw instead of ld on
6392 loongson in 32bit mode.
6393
4de80584
NC
63942013-08-13 Nick Clifton <nickc@redhat.com>
6395
6396 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
6397
09ce3660
JH
63982013-08-13 Jan Hubicka <jh@suse.cz>
6399
6400 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
6401 introduced edge; fix typo in sanity check.
6402 (cgraph_resolve_speculation): Export; improve diagnostic.
6403 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
6404 speculation at type mismatch.
6405 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
6406 (cgraph_resolve_speculation): Declare.
6407 (symtab_can_be_discarded): New function.
6408 * value-prof.c (gimple_ic_transform): Remove actual transform code.
6409 * ipa-inline-transform.c (speculation_removed): New global var.
6410 (clone_inlined_nodes): See if speculation can be removed.
6411 (inline_call): If speculations was removed, we growths may not match.
6412 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
6413 (speculation_useful_p): New function.
6414 (resolve_noninline_speculation): New function.
6415 (inline_small_functions): Resolve useless speculations.
6416 * ipa-inline.h (speculation_useful_p): Declare
6417 * ipa.c (can_replace_by_local_alias): Simplify.
6418 (ipa_profile): Produce speculative calls in non-lto, too;
6419 add simple cost model; produce local aliases.
6420
f971dc24
DM
64212013-08-13 David Malcolm <dmalcolm@redhat.com>
6422
6423 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 6424 PASS_MANAGER_H.
f971dc24 6425
2e507b9a
PC
64262013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
6427
6428 * config/i386/i386.c (ix86_function_versions): Use error + inform.
6429
c97fd4b8
UB
64302013-08-12 Uros Bizjak <ubizjak@gmail.com>
6431
6432 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
6433 iterator instead of X87MODEF.
6434
64352013-08-12 Perez Read <netfirewall@gmail.com>
6436
6437 PR target/58132
6438 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
6439 operand 0 for intel asm alternative.
6440 (*movabs<mode>_2): Ditto for operand 1.
6441
f4f4204c
JG
64422013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
6443
6444 * config/aarch64/arm_none.h
6445 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
6446
133b1a8e
NC
64472013-08-12 Nick Clifton <nickc@redhat.com>
6448
6449 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
6450
15dd8b3a
YR
64512013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
6452
6453 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
6454 expand for QI/HImode operand to produce more effictive code for
6455 unsigned char(short) --> float(double) conversion.
6456
94109a6a
AM
64572013-08-12 Alexander Monakov <amonakov@ispras.ru>
6458
6459 * doc/invoke.texi: Mention that -ftls-model does not force the final
6460 model.
6461
4e115102
MP
64622013-08-12 Marek Polacek <polacek@redhat.com>
6463 Marc Glisse <marc.glisse@inria.fr>
6464
6465 PR tree-optimization/57980
6466 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
6467 when creating -1 constant.
6468
748d71f3
JH
64692013-08-10 Jan Hubicka <jh@suse.cz>
6470
1f97e193 6471 Workaround binutils PR14342.
748d71f3
JH
6472 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
6473 (gimple_init_edge_profiler): Likewise.
6474 (gimple_gen_ic_func_profiler): Likewise.
6475
5979aa54
JH
64762013-08-09 Jan Hubicka <jh@suse.cz>
6477
6478 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
6479
ad83025e
XDL
64802013-08-09 Xinliang David Li <davidxl@google.com>
6481
6482 * config/i386/stringop.def: New file.
6483 * config/i386/stringop.opt: New file.
6484 * config/i386/i386-opts.h: Include stringopt.def.
6485 * config/i386/i386.opt: Include stringopt.opt.
6486 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 6487 Override default size based stringop inline strategies with options.
ad83025e
XDL
6488 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
6489 New function.
6490
e59df5fd
JH
64912013-08-09 Jan Hubicka <jh@suse.cz>
6492
c97fd4b8 6493 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 6494
634ab819
JH
64952013-08-09 Jan Hubicka <jh@suse.cz>
6496
6497 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
6498 CGRAPH_FREQ_MAX.
6499 (dump_cgraph_node): Dump profile-id.
6500 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
6501 and common_target_probability.
6502 * lto-cgraph.c (lto_output_edge): Stream common targets.
6503 (lto_output_node): Stream profile ids.
6504 (input_node): Stream profile ids.
6505 (input_edge): Stream common targets.
6506 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
6507 * ipa.c: Include value-prof.h
6508 (ipa_profile_generate_summary): Turn indirect call statement histograms
6509 into common targets.
6510 (ipa_profile): Turn common targets into speculative edges.
6511
2fa3d31b
JH
65122013-08-09 Jan Hubicka <jh@suse.cz>
6513
6514 * cgraph.h (cgraph_node): Add profile_id.
6515 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 6516 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
6517 (del_node_map): Update.
6518 (find_func_by_funcdef_no): Replace by ...
6519 (find_func_by_profile_id): ... this one.
6520 (gimple_ic_transform): Do not remove useful histograms when
6521 speculation is not done; dump info when indirect call removal
6522 can happen at LTO.
6523 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
6524 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
6525 (__gcov_indirect_call_profiler_v2): .. this one.
6526 * profile.h (init_node_map): Update.
6527 * coverage.c (coverage_compute_profile_id): New function.
6528 * coverage.h (coverage_compute_profile_id): Declare.
6529 * tree-profile.c (init_ic_make_global_vars): Make
6530 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
6531 (gimple_init_edge_profiler): Update prototype of
6532 __gcov_indirect_call_profiler.
6533 (gimple_gen_ic_func_profiler): Simplify.
6534 (tree_profiling): Use init_node_map
6535
042ae7d2
JH
65362013-08-09 Jan Hubicka <jh@suse.cz>
6537
c97fd4b8
UB
6538 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
6539 non-speculative refs.
042ae7d2
JH
6540 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
6541 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
6542 (cgraph_set_call_stmt): Likewise.
6543 (cgraph_create_edge_1): Fix release checking compilatoin;
6544 clear lto_stmt_uid.
6545 (cgraph_free_edge): Free indirect info.
6546 (cgraph_turn_edge_to_speculative): New function.
6547 (cgraph_speculative_call_info): New function.
6548 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 6549 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
6550 (dump_cgraph_node): Dump speculation.
6551 (verify_edge_count_and_frequency): Accept speculative edges.
6552 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
6553 (verify_cgraph_node): Handle speculation.
6554 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
6555 (cgraph_set_call_stmt): Update prototype.
6556 (cgraph_make_edge_direct): Update prototype.
6557 (cgraph_speculative_call_info): Declare.
6558 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
6559 to change; update call of ipa_find_references.
6560 * ipa-ref.c (ipa_record_reference): Fix return value; clear
6561 lto_stmt_uid and speculative flags.
6562 (ipa_dump_references): Dump speculation.
6563 (ipa_clone_references): Clone speculative flag.
6564 (ipa_clone_referring): Likewise.
6565 (ipa_clone_ref): New function.
6566 (ipa_find_reference): Look into lto_stmt_uids
6567 (ipa_clear_stmts_in_references): Do not clear speculative calls.
6568 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
6569 (ipa_find_reference): Update declaration.
6570 (ipa_clone_ref): Declare.
6571 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
6572 stream speculative flag.
6573 (lto_output_ref): Stream statements uids and speculation.
6574 (input_ref): Likewise.
6575 (input_edge): Stream speuclation.
6576 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
6577 (cgraph_set_call_stmt_including_clones): Handle speculation.
6578 * ipa-inline.c (heap_edge_removal_hook): New function.
6579 (inline_small_functions): Register it.
6580 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
6581 also initialize refs.
6582 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
6583 edge to change.
6584 (try_make_edge_direct_simple_call): Likewise.
6585 (try_make_edge_direct_simple_call): Likewise.
6586 (update_indirect_edges_after_inlining): Likewise.
6587 (remove_described_reference): Look proper lto_stmt_uid.
6588 (propagate_controlled_uses): Likewise.
6589 (propagate_controlled_uses): Liekwise.
6590 * tree-inline.c (copy_bb): Copy speculative edges.
6591 (redirect_all_calls): New function.
c97fd4b8
UB
6592 (copy_cfg_body): Do redirection after loop info is updated.
6593 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 6594
aa1e10cc
JH
65952013-08-09 Jan Hubicka <jh@suse.cz>
6596
6597 * lto-streamer-out.c (output_function): Renumber PHIs.
6598 * lto-streamer-in.c (input_function): Likewise.
6599
66adb8eb
JG
66002013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
6601
6602 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
6603 (get_lane_unsigned): Likewise.
6604 (dup_lane_scalar): Likewise.
6605 (get_lane): enable for VALL.
6606 * config/aarch64/aarch64-simd.md
6607 (aarch64_dup_lane_scalar<mode>): Remove.
6608 (aarch64_get_lane_signed<mode>): Likewise.
6609 (aarch64_get_lane_unsigned<mode>): Likewise.
6610 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
6611 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
6612 (aarch64_get_lane<mode>): Enable for all vector modes.
6613 (aarch64_get_lanedi): Remove misleading constraints.
6614 * config/aarch64/arm_neon.h
6615 (__aarch64_vget_lane_any): Define.
6616 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
6617 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
6618 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
6619 * config/aarch64/iterators.md (VDQQH): New.
6620 (VDQQHS): Likewise.
6621 (vwcore): Likewise.
6622
1f65ae7a
EB
66232013-08-09 Eric Botcazou <ebotcazou@adacore.com>
6624
6625 * configure.ac: Add GAS check for LEON instructions on SPARC.
6626 * configure: Regenerate.
6627 * config.in: Likewise.
6628 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
6629 sparc*-*-* block.
6630 * config/sparc/sparc.opt (LEON, LEON3): New masks.
6631 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
6632 for LEON or LEON3.
6633 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
6634 (AS_LEON_FLAG): New macro.
6635 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
6636 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
6637 Deal with LEON and LEON3 for the memory model.
23a6cb78 6638 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
6639 (atomic_compare_and_swap<mode>_1): Likewise.
6640 (*atomic_compare_and_swap<mode>_1): Likewise.
6641
ff522f7f
ZC
66422013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6643
6644 * config/arm/neon.md (vcond): Fix floating-point vector
6645 comparisons against 0.
6646
cb1cca12
VM
66472013-08-08 Vladimir Makarov <vmakarov@redhat.com>
6648
6649 * lra-constraints.c (emit_spill_move): Remove assert.
6650 (process_alt_operands): Add more debugging
6651 output. Increase reject for spilling into memory. Decrease
6652 reject for reloading scratch.
6653 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
6654
a3719e31
SE
66552013-08-08 Steve Ellcey <sellcey@mips.com>
6656
6657 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
6658 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
6659 micromips incompatible. Add nan2008.
6660 (MULTILIB_DIRNAMES): Add nan2008.
6661 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
6662 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
6663 and micromips incompatible. Add nan2008.
6664 (MULTILIB_DIRNAMES): Add nan2008.
6665 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
6666
f40423e2
RS
66672013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
6668
6669 PR rtl-optimization/58079
6670 * combine.c (combine_simplify_rtx): Avoid using SUBST if
6671 simplify_comparison has widened a comparison with an integer.
6672
869b9125
KT
66732013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6674
6675 * config/arm/neon.md (movmisalign<mode>): Disable when we
6676 don't allow unaligned accesses.
6677 (*movmisalign<mode>_neon_store): Likewise.
6678 (*movmisalign<mode>_neon_load): Likewise.
6679 (*movmisalign<mode>_neon_store): Likewise.
6680 (*movmisalign<mode>_neon_load): Likewise.
6681
71cafea9
JH
66822013-08-08 Jan Hubicka <jh@suse.cz>
6683
6684 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
6685 (make_pass_rebuild_cgraph_edges): Also clear references.
6686 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
6687 * ipa-inline-transform.c (inline_transform): Remove all references
6688 after inlining.
c97fd4b8
UB
6689 * cgraphunit.c (expand_function): Remove all references after
6690 expansion.
71cafea9
JH
6691 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
6692 (ipa_find_reference): Rewrite to iterator.
6693 (remove_stmt_references): Likewise.
6694 (ipa_clear_stmts_in_references): New function.
6695 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
6696 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
6697 clear references.
71cafea9
JH
6698 * ipa-split.c (split_function): Remove references in split function.
6699
27d2e612
RE
67002013-08-08 Richard Earnshaw <rearnsha@arm.com>
6701
6702 PR target/57431
1f65ae7a 6703 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
6704 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
6705
5efc661c
RE
67062013-08-08 Richard Earnshaw <rearnsha@arm.com>
6707
6708 PR target/56979
1f65ae7a 6709 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
6710 suggested mode for the assignment isn't compatible with the
6711 registers required.
6712
f276d31d
BE
67132013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
6714
6715 PR target/58065
6716 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
6717
4b8bc035
XDL
67182013-08-07 Xinliang David Li <davidxl@google.com>
6719
6720 * config/i386/i386.opt: New option -mtune-ctrl=.
6721 * config/i386/x86-tune.def: New file.
6722 * config/i386/i386.h: include x86-tune.def.
6723 * config/i386/i386.c (ix86_option_override_internal):
6724 Parsing -mtune-ctrl= option and set tune features.
6725
12211b99 67262013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
6727
6728 PR other/12081
03b0ee0a 6729 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
6730 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
6731 to gen_2arg_fn_t.
6732
5cf6635b
EB
67332013-08-07 Eric Botcazou <ebotcazou@adacore.com>
6734
6735 * rtl.h (update_alignments): Declare.
6736 * final.c (grow_label_align): New function extracted from...
6737 (shorten_branches): ...here. Call it.
6738 (update_alignments): New function.
6739 * reorg.c (sibling_labels): New variable.
6740 (get_label_before): Add SIBLING parameter. If it is non-zero, push
6741 the new label along with it onto the sibling_labels vector.
6742 (fill_simple_delay_slots): Adjust call to get_label_before.
6743 (fill_slots_from_thread): Likewise.
6744 (relax_delay_slots): Likewise.
6745 (make_return_insns): Likewise.
6746 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
6747
3c8ca1ab
EB
67482013-08-07 Eric Botcazou <ebotcazou@adacore.com>
6749
6750 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
6751 document its semantics.
6752 (diagnostic_report_diagnostic): Adjust accordingly.
6753
5ee5b32c
DM
67542013-08-07 David Malcolm <dmalcolm@redhat.com>
6755
03b0ee0a 6756 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
6757 (sparc_option_override): ...and port to new C++ pass API.
6758 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
6759
abd566fa
PB
67602013-08-07 Peter Bergner <bergner@vnet.ibm.com>
6761
6762 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
6763
2077db1b
CT
67642013-08-06 Caroline Tice <cmtice@google.com>
6765
6766 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
6767 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
6768 * tree-pass.h: Add pass_vtable_verify.
6769 * varasm.c (assemble_variable): Add code to properly set the comdat
6770 section and name for the .vtable_map_vars section.
6771 (assemble_vtyv_preinit_initializer): New function.
6772 (default_sectin_type_flags): Make sure .vtable_map_vars section has
6773 LINK_ONCE flag.
6774 * output.h: Add function decl for assemble_vtv_preinit_initializer.
6775 * vtable-verify.c: New file.
6776 * vtable-verify.h: New file.
6777 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
6778 initialiation levels.
6779 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
6780 * passes.def: Insert pass_vtable_verify.
6781 * aclocal.m4: Reorder includes.
6782 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
6783 -fvtv-counts options.
6784 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
6785 as appropriate, if -fvtable-verify=... is used.
6786 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
6787 -fvtable-verify=... is used.
6788 * Makefile.in (OBJS): Add vtable-verify.o to list.
6789 (vtable-verify.o): Add new build rule.
6790 (GTFILES): Add vtable-verify.c to list.
6791 * common.opt (fvtable-verify=): New flag.
6792 (vtv_priority): Values for fvtable-verify= flag.
6793 (fvtv-counts): New flag.
6794 (fvtv-debug): New flag.
6795 * tree.h (save_vtable_map_decl): New extern function decl.
6796
03085d1c
DM
67972013-08-07 David Malcolm <dmalcolm@redhat.com>
6798
6799 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
6800 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
6801 (pass_data_rl78_devirt): ...new pass_data instance and...
6802 (make_pass_rl78_devirt): ...new function.
6803 (rl78_asm_file_start): Port pass registration to new C++ API.
6804
05555c4a
DM
68052013-08-07 David Malcolm <dmalcolm@redhat.com>
6806
6807 * coretypes.h (rtl_opt_pass): Add.
6808 (gcc::context): Add.
6809 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
6810 (epiphany_init): Port to new C++ pass API.
6811 (epiphany_optimize_mode_switching): Likewise.
6812 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
6813 (pass_manager::get_pass_mode_switching): New.
6814 (pass_manager::get_pass_peephole2): New.
6815 * mode-switching.c (pass_mode_switching): Add clone method.
6816 * recog.c (pass_peephole2): Add clone method.
6817 (pass_split_all_insns): Add clone method.
6818
c5a12e26
DM
68192013-08-06 David Malcolm <dmalcolm@redhat.com>
6820
03b0ee0a
UB
6821 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
6822 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 6823
a2e2a668
JH
68242013-08-06 Jan Hubicka <jh@suse.cz>
6825
6826 * cgraph.c (cgraph_get_body): New function based on lto.c
6827 implementation.
6828 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
6829 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
6830 LTO paths.
a2e2a668
JH
6831 * cgraphunit.c (expand_function): Get body prior expanding.
6832 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
6833 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
6834 really need.
a2e2a668
JH
6835 * passes.c (do_per_function_toporder): Get body.
6836 * tree-inline.c (expand_call_inline): Get body prior inlining it.
6837 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
6838
15682f24
MJ
68392013-08-06 Martin Jambor <mjambor@suse.cz>
6840
6841 PR fortran/57987
6842 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
6843 is not re-finalized. Rename second parameter to no_collect.
6844
78f6dd68
MJ
68452013-08-06 Martin Jambor <mjambor@suse.cz>
6846
6847 PR middle-end/58041
6848 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
6849 MEM_REF has proper alignment information.
6850
12211b99 68512013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
6852
6853 PR other/12081
6854 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
6855 class insn_gen_fn.
6856 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
6857 rtx (*) (rtx, ...) with insn_gen_fn.
6858 * genoutput.c (output_insn_data): Cast gen_? function pointers to
6859 insn_gen_fn::stored_funcptr. Add initializer braces.
6860
8ac69a6c
DM
68612013-08-05 David Malcolm <dmalcolm@redhat.com>
6862
6863 Rewrite how instances of passes are cloned to remove assumptions
6864 about their sizes (thus allowing pass subclasses to have
6865 additional data fields, albeit non-GC-managed ones at this point).
6866
6867 * passes.c (make_pass_instance): Now that passes have clone
6868 methods, rewrite this function to eliminate XNEW and memcpy
6869 calls that used hardcoded sizes. Since this function no longer
6870 creates pass instances, rename it to...
03b0ee0a
UB
6871 (add_pass_instance): ...this. Document the old way that passes were
6872 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
6873 (next_pass_1): Add an initial_pass argument for use by
6874 add_pass_instance.
6875 (position_pass): When adding multiple instances of a pass, use
6876 the pass's clone method, rather than relying on the XNEW/memcpy
6877 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
6878 (pass_manager::pass_manager): When invoking next_pass_1, also supply
6879 the initial instance of the current pass within the pass manager.
8ac69a6c 6880
27a4cd48
DM
68812013-08-05 David Malcolm <dmalcolm@redhat.com>
6882
6883 This is the automated part of the conversion of passes from C
6884 structs to C++ classes.
6885
6886 Patch autogenerated by refactor_passes.py from
6887 https://github.com/davidmalcolm/gcc-refactoring-scripts
6888 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
6889
6890 * asan.c (pass_asan): Convert from a global struct to a subclass of
6891 gimple_opt_pass along with...
6892 (pass_data_asan): ...new pass_data instance and...
6893 (make_pass_asan): ...new function.
6894 (pass_asan_O0): Convert from a global struct to a subclass of
6895 gimple_opt_pass along with...
6896 (pass_data_asan_O0): ...new pass_data instance and...
6897 (make_pass_asan_O0): ...new function.
6898 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
6899 subclass of rtl_opt_pass along with...
6900 (pass_data_inc_dec): ...new pass_data instance and...
6901 (make_pass_inc_dec): ...new function.
6902 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
6903 a subclass of rtl_opt_pass along with...
6904 (pass_data_reorder_blocks): ...new pass_data instance and...
6905 (make_pass_reorder_blocks): ...new function.
6906 (pass_duplicate_computed_gotos): Convert from a global struct to a
6907 subclass of rtl_opt_pass along with...
6908 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
6909 (make_pass_duplicate_computed_gotos): ...new function.
6910 (pass_partition_blocks): Convert from a global struct to a subclass of
6911 rtl_opt_pass along with...
6912 (pass_data_partition_blocks): ...new pass_data instance and...
6913 (make_pass_partition_blocks): ...new function.
6914 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
6915 struct to a subclass of rtl_opt_pass along with...
6916 (pass_data_branch_target_load_optimize1): ...new pass_data instance
6917 and...
6918 (make_pass_branch_target_load_optimize1): ...new function.
6919 (pass_branch_target_load_optimize2): Convert from a global struct to a
6920 subclass of rtl_opt_pass along with...
6921 (pass_data_branch_target_load_optimize2): ...new pass_data instance
6922 and...
6923 (make_pass_branch_target_load_optimize2): ...new function.
6924 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
6925 of rtl_opt_pass along with...
6926 (pass_data_jump): ...new pass_data instance and...
6927 (make_pass_jump): ...new function.
6928 (pass_jump2): Convert from a global struct to a subclass of
6929 rtl_opt_pass along with...
6930 (pass_data_jump2): ...new pass_data instance and...
6931 (make_pass_jump2): ...new function.
6932 * cfgexpand.c (pass_expand): Convert from a global struct to a
6933 subclass of rtl_opt_pass along with...
6934 (pass_data_expand): ...new pass_data instance and...
6935 (make_pass_expand): ...new function.
6936 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
6937 of rtl_opt_pass along with...
6938 (pass_data_free_cfg): ...new pass_data instance and...
6939 (make_pass_free_cfg): ...new function.
6940 (pass_into_cfg_layout_mode): Convert from a global struct to a
6941 subclass of rtl_opt_pass along with...
6942 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
6943 (make_pass_into_cfg_layout_mode): ...new function.
6944 (pass_outof_cfg_layout_mode): Convert from a global struct to a
6945 subclass of rtl_opt_pass along with...
6946 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
6947 (make_pass_outof_cfg_layout_mode): ...new function.
6948 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
6949 struct to a subclass of gimple_opt_pass along with...
6950 (pass_data_build_cgraph_edges): ...new pass_data instance and...
6951 (make_pass_build_cgraph_edges): ...new function.
6952 (pass_rebuild_cgraph_edges): Convert from a global struct to a
6953 subclass of gimple_opt_pass along with...
6954 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
6955 (make_pass_rebuild_cgraph_edges): ...new function.
6956 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
6957 subclass of gimple_opt_pass along with...
6958 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
6959 and...
6960 (make_pass_remove_cgraph_callee_edges): ...new function.
6961 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
6962 struct to a subclass of rtl_opt_pass along with...
6963 (pass_data_stack_adjustments): ...new pass_data instance and...
6964 (make_pass_stack_adjustments): ...new function.
6965 * combine.c (pass_combine): Convert from a global struct to a subclass
6966 of rtl_opt_pass along with...
6967 (pass_data_combine): ...new pass_data instance and...
6968 (make_pass_combine): ...new function.
6969 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
6970 global struct to a subclass of rtl_opt_pass along with...
6971 (pass_data_compare_elim_after_reload): ...new pass_data instance
6972 and...
6973 (make_pass_compare_elim_after_reload): ...new function.
6974 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
6975 of rtl_opt_pass along with...
6976 (pass_data_rtl_cprop): ...new pass_data instance and...
6977 (make_pass_rtl_cprop): ...new function.
6978 * cse.c (pass_cse): Convert from a global struct to a subclass of
6979 rtl_opt_pass along with...
6980 (pass_data_cse): ...new pass_data instance and...
6981 (make_pass_cse): ...new function.
6982 (pass_cse2): Convert from a global struct to a subclass of
6983 rtl_opt_pass along with...
6984 (pass_data_cse2): ...new pass_data instance and...
6985 (make_pass_cse2): ...new function.
6986 (pass_cse_after_global_opts): Convert from a global struct to a
6987 subclass of rtl_opt_pass along with...
6988 (pass_data_cse_after_global_opts): ...new pass_data instance and...
6989 (make_pass_cse_after_global_opts): ...new function.
6990 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
6991 of rtl_opt_pass along with...
6992 (pass_data_ud_rtl_dce): ...new pass_data instance and...
6993 (make_pass_ud_rtl_dce): ...new function.
6994 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
6995 rtl_opt_pass along with...
6996 (pass_data_fast_rtl_dce): ...new pass_data instance and...
6997 (make_pass_fast_rtl_dce): ...new function.
6998 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
6999 a subclass of rtl_opt_pass along with...
7000 (pass_data_df_initialize_opt): ...new pass_data instance and...
7001 (make_pass_df_initialize_opt): ...new function.
7002 (pass_df_initialize_no_opt): Convert from a global struct to a
7003 subclass of rtl_opt_pass along with...
7004 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
7005 (make_pass_df_initialize_no_opt): ...new function.
7006 (pass_df_finish): Convert from a global struct to a subclass of
7007 rtl_opt_pass along with...
7008 (pass_data_df_finish): ...new pass_data instance and...
7009 (make_pass_df_finish): ...new function.
7010 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
7011 rtl_opt_pass along with...
7012 (pass_data_rtl_dse1): ...new pass_data instance and...
7013 (make_pass_rtl_dse1): ...new function.
7014 (pass_rtl_dse2): Convert from a global struct to a subclass of
7015 rtl_opt_pass along with...
7016 (pass_data_rtl_dse2): ...new pass_data instance and...
7017 (make_pass_rtl_dse2): ...new function.
7018 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
7019 subclass of rtl_opt_pass along with...
7020 (pass_data_dwarf2_frame): ...new pass_data instance and...
7021 (make_pass_dwarf2_frame): ...new function.
7022 * except.c (pass_set_nothrow_function_flags): Convert from a global
7023 struct to a subclass of rtl_opt_pass along with...
7024 (pass_data_set_nothrow_function_flags): ...new pass_data instance
7025 and...
7026 (make_pass_set_nothrow_function_flags): ...new function.
7027 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
7028 subclass of rtl_opt_pass along with...
7029 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
7030 and...
7031 (make_pass_convert_to_eh_region_ranges): ...new function.
7032 * final.c (pass_compute_alignments): Convert from a global struct to a
7033 subclass of rtl_opt_pass along with...
7034 (pass_data_compute_alignments): ...new pass_data instance and...
7035 (make_pass_compute_alignments): ...new function.
7036 (pass_final): Convert from a global struct to a subclass of
7037 rtl_opt_pass along with...
7038 (pass_data_final): ...new pass_data instance and...
7039 (make_pass_final): ...new function.
7040 (pass_shorten_branches): Convert from a global struct to a subclass of
7041 rtl_opt_pass along with...
7042 (pass_data_shorten_branches): ...new pass_data instance and...
7043 (make_pass_shorten_branches): ...new function.
7044 (pass_clean_state): Convert from a global struct to a subclass of
7045 rtl_opt_pass along with...
7046 (pass_data_clean_state): ...new pass_data instance and...
7047 (make_pass_clean_state): ...new function.
7048 * function.c (pass_instantiate_virtual_regs): Convert from a global
7049 struct to a subclass of rtl_opt_pass along with...
7050 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
7051 (make_pass_instantiate_virtual_regs): ...new function.
7052 (pass_leaf_regs): Convert from a global struct to a subclass of
7053 rtl_opt_pass along with...
7054 (pass_data_leaf_regs): ...new pass_data instance and...
7055 (make_pass_leaf_regs): ...new function.
7056 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
7057 subclass of rtl_opt_pass along with...
7058 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
7059 and...
7060 (make_pass_thread_prologue_and_epilogue): ...new function.
7061 (pass_match_asm_constraints): Convert from a global struct to a
7062 subclass of rtl_opt_pass along with...
7063 (pass_data_match_asm_constraints): ...new pass_data instance and...
7064 (make_pass_match_asm_constraints): ...new function.
7065 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
7066 subclass of rtl_opt_pass along with...
7067 (pass_data_rtl_fwprop): ...new pass_data instance and...
7068 (make_pass_rtl_fwprop): ...new function.
7069 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
7070 rtl_opt_pass along with...
7071 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
7072 (make_pass_rtl_fwprop_addr): ...new function.
7073 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
7074 rtl_opt_pass along with...
7075 (pass_data_rtl_pre): ...new pass_data instance and...
7076 (make_pass_rtl_pre): ...new function.
7077 (pass_rtl_hoist): Convert from a global struct to a subclass of
7078 rtl_opt_pass along with...
7079 (pass_data_rtl_hoist): ...new pass_data instance and...
7080 (make_pass_rtl_hoist): ...new function.
7081 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
7082 subclass of gimple_opt_pass along with...
7083 (pass_data_lower_cf): ...new pass_data instance and...
7084 (make_pass_lower_cf): ...new function.
7085 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
7086 from a global struct to a subclass of gimple_opt_pass along with...
7087 (pass_data_strength_reduction): ...new pass_data instance and...
7088 (make_pass_strength_reduction): ...new function.
7089 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
7090 of rtl_opt_pass along with...
7091 (pass_data_rtl_ifcvt): ...new pass_data instance and...
7092 (make_pass_rtl_ifcvt): ...new function.
7093 (pass_if_after_combine): Convert from a global struct to a subclass of
7094 rtl_opt_pass along with...
7095 (pass_data_if_after_combine): ...new pass_data instance and...
7096 (make_pass_if_after_combine): ...new function.
7097 (pass_if_after_reload): Convert from a global struct to a subclass of
7098 rtl_opt_pass along with...
7099 (pass_data_if_after_reload): ...new pass_data instance and...
7100 (make_pass_if_after_reload): ...new function.
7101 * init-regs.c (pass_initialize_regs): Convert from a global struct to
7102 a subclass of rtl_opt_pass along with...
7103 (pass_data_initialize_regs): ...new pass_data instance and...
7104 (make_pass_initialize_regs): ...new function.
7105 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
7106 of ipa_opt_pass_d along with...
7107 (pass_data_ipa_cp): ...new pass_data instance and...
7108 (make_pass_ipa_cp): ...new function.
7109 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
7110 global struct to a subclass of gimple_opt_pass along with...
7111 (pass_data_inline_parameters): ...new pass_data instance and...
7112 (make_pass_inline_parameters): ...new function.
7113 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
7114 subclass of gimple_opt_pass along with...
7115 (pass_data_early_inline): ...new pass_data instance and...
7116 (make_pass_early_inline): ...new function.
7117 (pass_ipa_inline): Convert from a global struct to a subclass of
7118 ipa_opt_pass_d along with...
7119 (pass_data_ipa_inline): ...new pass_data instance and...
7120 (make_pass_ipa_inline): ...new function.
7121 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
7122 struct to a subclass of gimple_opt_pass along with...
7123 (pass_data_local_pure_const): ...new pass_data instance and...
7124 (make_pass_local_pure_const): ...new function.
7125 (pass_ipa_pure_const): Convert from a global struct to a subclass of
7126 ipa_opt_pass_d along with...
7127 (pass_data_ipa_pure_const): ...new pass_data instance and...
7128 (make_pass_ipa_pure_const): ...new function.
7129 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
7130 to a subclass of ipa_opt_pass_d along with...
7131 (pass_data_ipa_reference): ...new pass_data instance and...
7132 (make_pass_ipa_reference): ...new function.
7133 * ipa-split.c (pass_split_functions): Convert from a global struct to
7134 a subclass of gimple_opt_pass along with...
7135 (pass_data_split_functions): ...new pass_data instance and...
7136 (make_pass_split_functions): ...new function.
7137 (pass_feedback_split_functions): Convert from a global struct to a
7138 subclass of gimple_opt_pass along with...
7139 (pass_data_feedback_split_functions): ...new pass_data instance and...
7140 (make_pass_feedback_split_functions): ...new function.
7141 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
7142 global struct to a subclass of simple_ipa_opt_pass along with...
7143 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
7144 instance and...
7145 (make_pass_ipa_function_and_variable_visibility): ...new function.
7146 (pass_ipa_free_inline_summary): Convert from a global struct to a
7147 subclass of simple_ipa_opt_pass along with...
7148 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
7149 (make_pass_ipa_free_inline_summary): ...new function.
7150 (pass_ipa_whole_program_visibility): Convert from a global struct to a
7151 subclass of ipa_opt_pass_d along with...
7152 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
7153 and...
7154 (make_pass_ipa_whole_program_visibility): ...new function.
7155 (pass_ipa_profile): Convert from a global struct to a subclass of
7156 ipa_opt_pass_d along with...
7157 (pass_data_ipa_profile): ...new pass_data instance and...
7158 (make_pass_ipa_profile): ...new function.
7159 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
7160 ipa_opt_pass_d along with...
7161 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
7162 (make_pass_ipa_cdtor_merge): ...new function.
7163 * ira.c (pass_ira): Convert from a global struct to a subclass of
7164 rtl_opt_pass along with...
7165 (pass_data_ira): ...new pass_data instance and...
7166 (make_pass_ira): ...new function.
7167 (pass_reload): Convert from a global struct to a subclass of
7168 rtl_opt_pass along with...
7169 (pass_data_reload): ...new pass_data instance and...
7170 (make_pass_reload): ...new function.
7171 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
7172 subclass of rtl_opt_pass along with...
7173 (pass_data_cleanup_barriers): ...new pass_data instance and...
7174 (make_pass_cleanup_barriers): ...new function.
7175 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
7176 of rtl_opt_pass along with...
7177 (pass_data_loop2): ...new pass_data instance and...
7178 (make_pass_loop2): ...new function.
7179 (pass_rtl_loop_init): Convert from a global struct to a subclass of
7180 rtl_opt_pass along with...
7181 (pass_data_rtl_loop_init): ...new pass_data instance and...
7182 (make_pass_rtl_loop_init): ...new function.
7183 (pass_rtl_loop_done): Convert from a global struct to a subclass of
7184 rtl_opt_pass along with...
7185 (pass_data_rtl_loop_done): ...new pass_data instance and...
7186 (make_pass_rtl_loop_done): ...new function.
7187 (pass_rtl_move_loop_invariants): Convert from a global struct to a
7188 subclass of rtl_opt_pass along with...
7189 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
7190 (make_pass_rtl_move_loop_invariants): ...new function.
7191 (pass_rtl_unswitch): Convert from a global struct to a subclass of
7192 rtl_opt_pass along with...
7193 (pass_data_rtl_unswitch): ...new pass_data instance and...
7194 (make_pass_rtl_unswitch): ...new function.
7195 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
7196 subclass of rtl_opt_pass along with...
7197 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
7198 and...
7199 (make_pass_rtl_unroll_and_peel_loops): ...new function.
7200 (pass_rtl_doloop): Convert from a global struct to a subclass of
7201 rtl_opt_pass along with...
7202 (pass_data_rtl_doloop): ...new pass_data instance and...
7203 (make_pass_rtl_doloop): ...new function.
7204 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
7205 a subclass of rtl_opt_pass along with...
7206 (pass_data_lower_subreg): ...new pass_data instance and...
7207 (make_pass_lower_subreg): ...new function.
7208 (pass_lower_subreg2): Convert from a global struct to a subclass of
7209 rtl_opt_pass along with...
7210 (pass_data_lower_subreg2): ...new pass_data instance and...
7211 (make_pass_lower_subreg2): ...new function.
7212 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
7213 struct to a subclass of ipa_opt_pass_d along with...
7214 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
7215 (make_pass_ipa_lto_gimple_out): ...new function.
7216 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
7217 of ipa_opt_pass_d along with...
7218 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
7219 (make_pass_ipa_lto_finish_out): ...new function.
7220 * mode-switching.c (pass_mode_switching): Convert from a global struct
7221 to a subclass of rtl_opt_pass along with...
7222 (pass_data_mode_switching): ...new pass_data instance and...
7223 (make_pass_mode_switching): ...new function.
7224 * modulo-sched.c (pass_sms): Convert from a global struct to a
7225 subclass of rtl_opt_pass along with...
7226 (pass_data_sms): ...new pass_data instance and...
7227 (make_pass_sms): ...new function.
7228 * omp-low.c (pass_expand_omp): Convert from a global struct to a
7229 subclass of gimple_opt_pass along with...
7230 (pass_data_expand_omp): ...new pass_data instance and...
7231 (make_pass_expand_omp): ...new function.
7232 (pass_lower_omp): Convert from a global struct to a subclass of
7233 gimple_opt_pass along with...
7234 (pass_data_lower_omp): ...new pass_data instance and...
7235 (make_pass_lower_omp): ...new function.
7236 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
7237 of gimple_opt_pass along with...
7238 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
7239 (make_pass_diagnose_omp_blocks): ...new function.
7240 * passes.c (pass_early_local_passes): Convert from a global struct to
7241 a subclass of simple_ipa_opt_pass along with...
7242 (pass_data_early_local_passes): ...new pass_data instance and...
7243 (make_pass_early_local_passes): ...new function.
7244 (pass_all_early_optimizations): Convert from a global struct to a
7245 subclass of gimple_opt_pass along with...
7246 (pass_data_all_early_optimizations): ...new pass_data instance and...
7247 (make_pass_all_early_optimizations): ...new function.
7248 (pass_all_optimizations): Convert from a global struct to a subclass
7249 of gimple_opt_pass along with...
7250 (pass_data_all_optimizations): ...new pass_data instance and...
7251 (make_pass_all_optimizations): ...new function.
7252 (pass_all_optimizations_g): Convert from a global struct to a subclass
7253 of gimple_opt_pass along with...
7254 (pass_data_all_optimizations_g): ...new pass_data instance and...
7255 (make_pass_all_optimizations_g): ...new function.
7256 (pass_rest_of_compilation): Convert from a global struct to a subclass
7257 of rtl_opt_pass along with...
7258 (pass_data_rest_of_compilation): ...new pass_data instance and...
7259 (make_pass_rest_of_compilation): ...new function.
7260 (pass_postreload): Convert from a global struct to a subclass of
7261 rtl_opt_pass along with...
7262 (pass_data_postreload): ...new pass_data instance and...
7263 (make_pass_postreload): ...new function.
7264 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
7265 subclass of rtl_opt_pass along with...
7266 (pass_data_gcse2): ...new pass_data instance and...
7267 (make_pass_gcse2): ...new function.
7268 * postreload.c (pass_postreload_cse): Convert from a global struct to
7269 a subclass of rtl_opt_pass along with...
7270 (pass_data_postreload_cse): ...new pass_data instance and...
7271 (make_pass_postreload_cse): ...new function.
7272 * predict.c (pass_profile): Convert from a global struct to a subclass
7273 of gimple_opt_pass along with...
7274 (pass_data_profile): ...new pass_data instance and...
7275 (make_pass_profile): ...new function.
7276 (pass_strip_predict_hints): Convert from a global struct to a subclass
7277 of gimple_opt_pass along with...
7278 (pass_data_strip_predict_hints): ...new pass_data instance and...
7279 (make_pass_strip_predict_hints): ...new function.
7280 * recog.c (pass_peephole2): Convert from a global struct to a subclass
7281 of rtl_opt_pass along with...
7282 (pass_data_peephole2): ...new pass_data instance and...
7283 (make_pass_peephole2): ...new function.
7284 (pass_split_all_insns): Convert from a global struct to a subclass of
7285 rtl_opt_pass along with...
7286 (pass_data_split_all_insns): ...new pass_data instance and...
7287 (make_pass_split_all_insns): ...new function.
7288 (pass_split_after_reload): Convert from a global struct to a subclass
7289 of rtl_opt_pass along with...
7290 (pass_data_split_after_reload): ...new pass_data instance and...
7291 (make_pass_split_after_reload): ...new function.
7292 (pass_split_before_regstack): Convert from a global struct to a
7293 subclass of rtl_opt_pass along with...
7294 (pass_data_split_before_regstack): ...new pass_data instance and...
7295 (make_pass_split_before_regstack): ...new function.
7296 (pass_split_before_sched2): Convert from a global struct to a subclass
7297 of rtl_opt_pass along with...
7298 (pass_data_split_before_sched2): ...new pass_data instance and...
7299 (make_pass_split_before_sched2): ...new function.
7300 (pass_split_for_shorten_branches): Convert from a global struct to a
7301 subclass of rtl_opt_pass along with...
7302 (pass_data_split_for_shorten_branches): ...new pass_data instance
7303 and...
7304 (make_pass_split_for_shorten_branches): ...new function.
7305 * ree.c (pass_ree): Convert from a global struct to a subclass of
7306 rtl_opt_pass along with...
7307 (pass_data_ree): ...new pass_data instance and...
7308 (make_pass_ree): ...new function.
7309 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
7310 subclass of rtl_opt_pass along with...
7311 (pass_data_stack_regs): ...new pass_data instance and...
7312 (make_pass_stack_regs): ...new function.
7313 (pass_stack_regs_run): Convert from a global struct to a subclass of
7314 rtl_opt_pass along with...
7315 (pass_data_stack_regs_run): ...new pass_data instance and...
7316 (make_pass_stack_regs_run): ...new function.
7317 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
7318 subclass of rtl_opt_pass along with...
7319 (pass_data_cprop_hardreg): ...new pass_data instance and...
7320 (make_pass_cprop_hardreg): ...new function.
7321 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
7322 subclass of rtl_opt_pass along with...
7323 (pass_data_reginfo_init): ...new pass_data instance and...
7324 (make_pass_reginfo_init): ...new function.
7325 * regmove.c (pass_regmove): Convert from a global struct to a subclass
7326 of rtl_opt_pass along with...
7327 (pass_data_regmove): ...new pass_data instance and...
7328 (make_pass_regmove): ...new function.
7329 * regrename.c (pass_regrename): Convert from a global struct to a
7330 subclass of rtl_opt_pass along with...
7331 (pass_data_regrename): ...new pass_data instance and...
7332 (make_pass_regrename): ...new function.
7333 * reorg.c (pass_delay_slots): Convert from a global struct to a
7334 subclass of rtl_opt_pass along with...
7335 (pass_data_delay_slots): ...new pass_data instance and...
7336 (make_pass_delay_slots): ...new function.
7337 (pass_machine_reorg): Convert from a global struct to a subclass of
7338 rtl_opt_pass along with...
7339 (pass_data_machine_reorg): ...new pass_data instance and...
7340 (make_pass_machine_reorg): ...new function.
7341 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
7342 of rtl_opt_pass along with...
7343 (pass_data_sched): ...new pass_data instance and...
7344 (make_pass_sched): ...new function.
7345 (pass_sched2): Convert from a global struct to a subclass of
7346 rtl_opt_pass along with...
7347 (pass_data_sched2): ...new pass_data instance and...
7348 (make_pass_sched2): ...new function.
7349 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
7350 to a subclass of rtl_opt_pass along with...
7351 (pass_data_stack_ptr_mod): ...new pass_data instance and...
7352 (make_pass_stack_ptr_mod): ...new function.
7353 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
7354 to a subclass of rtl_opt_pass along with...
7355 (pass_data_rtl_store_motion): ...new pass_data instance and...
7356 (make_pass_rtl_store_motion): ...new function.
7357 * tracer.c (pass_tracer): Convert from a global struct to a subclass
7358 of gimple_opt_pass along with...
7359 (pass_data_tracer): ...new pass_data instance and...
7360 (make_pass_tracer): ...new function.
7361 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
7362 to a subclass of gimple_opt_pass along with...
7363 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
7364 (make_pass_diagnose_tm_blocks): ...new function.
7365 (pass_lower_tm): Convert from a global struct to a subclass of
7366 gimple_opt_pass along with...
7367 (pass_data_lower_tm): ...new pass_data instance and...
7368 (make_pass_lower_tm): ...new function.
7369 (pass_tm_init): Convert from a global struct to a subclass of
7370 gimple_opt_pass along with...
7371 (pass_data_tm_init): ...new pass_data instance and...
7372 (make_pass_tm_init): ...new function.
7373 (pass_tm_mark): Convert from a global struct to a subclass of
7374 gimple_opt_pass along with...
7375 (pass_data_tm_mark): ...new pass_data instance and...
7376 (make_pass_tm_mark): ...new function.
7377 (pass_tm_edges): Convert from a global struct to a subclass of
7378 gimple_opt_pass along with...
7379 (pass_data_tm_edges): ...new pass_data instance and...
7380 (make_pass_tm_edges): ...new function.
7381 (pass_tm_memopt): Convert from a global struct to a subclass of
7382 gimple_opt_pass along with...
7383 (pass_data_tm_memopt): ...new pass_data instance and...
7384 (make_pass_tm_memopt): ...new function.
7385 (pass_ipa_tm): Convert from a global struct to a subclass of
7386 simple_ipa_opt_pass along with...
7387 (pass_data_ipa_tm): ...new pass_data instance and...
7388 (make_pass_ipa_tm): ...new function.
7389 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
7390 subclass of gimple_opt_pass along with...
7391 (pass_data_call_cdce): ...new pass_data instance and...
7392 (make_pass_call_cdce): ...new function.
7393 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
7394 subclass of gimple_opt_pass along with...
7395 (pass_data_build_cfg): ...new pass_data instance and...
7396 (make_pass_build_cfg): ...new function.
7397 (pass_split_crit_edges): Convert from a global struct to a subclass of
7398 gimple_opt_pass along with...
7399 (pass_data_split_crit_edges): ...new pass_data instance and...
7400 (make_pass_split_crit_edges): ...new function.
7401 (pass_warn_function_return): Convert from a global struct to a
7402 subclass of gimple_opt_pass along with...
7403 (pass_data_warn_function_return): ...new pass_data instance and...
7404 (make_pass_warn_function_return): ...new function.
7405 (pass_warn_function_noreturn): Convert from a global struct to a
7406 subclass of gimple_opt_pass along with...
7407 (pass_data_warn_function_noreturn): ...new pass_data instance and...
7408 (make_pass_warn_function_noreturn): ...new function.
7409 (pass_warn_unused_result): Convert from a global struct to a subclass
7410 of gimple_opt_pass along with...
7411 (pass_data_warn_unused_result): ...new pass_data instance and...
7412 (make_pass_warn_unused_result): ...new function.
7413 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
7414 a subclass of gimple_opt_pass along with...
7415 (pass_data_merge_phi): ...new pass_data instance and...
7416 (make_pass_merge_phi): ...new function.
7417 * tree-complex.c (pass_lower_complex): Convert from a global struct to
7418 a subclass of gimple_opt_pass along with...
7419 (pass_data_lower_complex): ...new pass_data instance and...
7420 (make_pass_lower_complex): ...new function.
7421 (pass_lower_complex_O0): Convert from a global struct to a subclass of
7422 gimple_opt_pass along with...
7423 (pass_data_lower_complex_O0): ...new pass_data instance and...
7424 (make_pass_lower_complex_O0): ...new function.
7425 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
7426 subclass of gimple_opt_pass along with...
7427 (pass_data_lower_eh): ...new pass_data instance and...
7428 (make_pass_lower_eh): ...new function.
7429 (pass_refactor_eh): Convert from a global struct to a subclass of
7430 gimple_opt_pass along with...
7431 (pass_data_refactor_eh): ...new pass_data instance and...
7432 (make_pass_refactor_eh): ...new function.
7433 (pass_lower_resx): Convert from a global struct to a subclass of
7434 gimple_opt_pass along with...
7435 (pass_data_lower_resx): ...new pass_data instance and...
7436 (make_pass_lower_resx): ...new function.
7437 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
7438 of gimple_opt_pass along with...
7439 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
7440 (make_pass_lower_eh_dispatch): ...new function.
7441 (pass_cleanup_eh): Convert from a global struct to a subclass of
7442 gimple_opt_pass along with...
7443 (pass_data_cleanup_eh): ...new pass_data instance and...
7444 (make_pass_cleanup_eh): ...new function.
7445 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
7446 to a subclass of simple_ipa_opt_pass along with...
7447 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
7448 (make_pass_ipa_lower_emutls): ...new function.
7449 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
7450 a subclass of gimple_opt_pass along with...
7451 (pass_data_if_conversion): ...new pass_data instance and...
7452 (make_pass_if_conversion): ...new function.
7453 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
7454 subclass of gimple_opt_pass along with...
7455 (pass_data_build_ssa): ...new pass_data instance and...
7456 (make_pass_build_ssa): ...new function.
7457 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
7458 global struct to a subclass of gimple_opt_pass along with...
7459 (pass_data_loop_distribution): ...new pass_data instance and...
7460 (make_pass_loop_distribution): ...new function.
7461 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
7462 subclass of gimple_opt_pass along with...
7463 (pass_data_mudflap_1): ...new pass_data instance and...
7464 (make_pass_mudflap_1): ...new function.
7465 (pass_mudflap_2): Convert from a global struct to a subclass of
7466 gimple_opt_pass along with...
7467 (pass_data_mudflap_2): ...new pass_data instance and...
7468 (make_pass_mudflap_2): ...new function.
7469 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
7470 subclass of gimple_opt_pass along with...
7471 (pass_data_mudflap_1): ...new pass_data instance and...
7472 (make_pass_mudflap_1): ...new function.
7473 (pass_mudflap_2): Convert from a global struct to a subclass of
7474 gimple_opt_pass along with...
7475 (pass_data_mudflap_2): ...new pass_data instance and...
7476 (make_pass_mudflap_2): ...new function.
7477 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
7478 gimple_opt_pass along with...
7479 (pass_data_nrv): ...new pass_data instance and...
7480 (make_pass_nrv): ...new function.
7481 (pass_return_slot): Convert from a global struct to a subclass of
7482 gimple_opt_pass along with...
7483 (pass_data_return_slot): ...new pass_data instance and...
7484 (make_pass_return_slot): ...new function.
7485 * tree-object-size.c (pass_object_sizes): Convert from a global struct
7486 to a subclass of gimple_opt_pass along with...
7487 (pass_data_object_sizes): ...new pass_data instance and...
7488 (make_pass_object_sizes): ...new function.
7489 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
7490 global struct to a subclass of gimple_opt_pass along with...
7491 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
7492 and...
7493 (make_pass_cleanup_cfg_post_optimizing): ...new function.
7494 (pass_fixup_cfg): Convert from a global struct to a subclass of
7495 gimple_opt_pass along with...
7496 (pass_data_fixup_cfg): ...new pass_data instance and...
7497 (make_pass_fixup_cfg): ...new function.
7498 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
7499 (make_pass_mudflap_1): ...new function.
7500 (pass_mudflap_2): Replace declaration with that of...
7501 (make_pass_mudflap_2): ...new function.
7502 (pass_asan): Replace declaration with that of...
7503 (make_pass_asan): ...new function.
7504 (pass_asan_O0): Replace declaration with that of...
7505 (make_pass_asan_O0): ...new function.
7506 (pass_tsan): Replace declaration with that of...
7507 (make_pass_tsan): ...new function.
7508 (pass_tsan_O0): Replace declaration with that of...
7509 (make_pass_tsan_O0): ...new function.
7510 (pass_lower_cf): Replace declaration with that of...
7511 (make_pass_lower_cf): ...new function.
7512 (pass_refactor_eh): Replace declaration with that of...
7513 (make_pass_refactor_eh): ...new function.
7514 (pass_lower_eh): Replace declaration with that of...
7515 (make_pass_lower_eh): ...new function.
7516 (pass_lower_eh_dispatch): Replace declaration with that of...
7517 (make_pass_lower_eh_dispatch): ...new function.
7518 (pass_lower_resx): Replace declaration with that of...
7519 (make_pass_lower_resx): ...new function.
7520 (pass_build_cfg): Replace declaration with that of...
7521 (make_pass_build_cfg): ...new function.
7522 (pass_early_tree_profile): Replace declaration with that of...
7523 (make_pass_early_tree_profile): ...new function.
7524 (pass_cleanup_eh): Replace declaration with that of...
7525 (make_pass_cleanup_eh): ...new function.
7526 (pass_sra): Replace declaration with that of...
7527 (make_pass_sra): ...new function.
7528 (pass_sra_early): Replace declaration with that of...
7529 (make_pass_sra_early): ...new function.
7530 (pass_early_ipa_sra): Replace declaration with that of...
7531 (make_pass_early_ipa_sra): ...new function.
7532 (pass_tail_recursion): Replace declaration with that of...
7533 (make_pass_tail_recursion): ...new function.
7534 (pass_tail_calls): Replace declaration with that of...
7535 (make_pass_tail_calls): ...new function.
7536 (pass_tree_loop): Replace declaration with that of...
7537 (make_pass_tree_loop): ...new function.
7538 (pass_tree_loop_init): Replace declaration with that of...
7539 (make_pass_tree_loop_init): ...new function.
7540 (pass_lim): Replace declaration with that of...
7541 (make_pass_lim): ...new function.
7542 (pass_tree_unswitch): Replace declaration with that of...
7543 (make_pass_tree_unswitch): ...new function.
7544 (pass_predcom): Replace declaration with that of...
7545 (make_pass_predcom): ...new function.
7546 (pass_iv_canon): Replace declaration with that of...
7547 (make_pass_iv_canon): ...new function.
7548 (pass_scev_cprop): Replace declaration with that of...
7549 (make_pass_scev_cprop): ...new function.
7550 (pass_empty_loop): Replace declaration with that of...
7551 (make_pass_empty_loop): ...new function.
7552 (pass_record_bounds): Replace declaration with that of...
7553 (make_pass_record_bounds): ...new function.
7554 (pass_graphite): Replace declaration with that of...
7555 (make_pass_graphite): ...new function.
7556 (pass_graphite_transforms): Replace declaration with that of...
7557 (make_pass_graphite_transforms): ...new function.
7558 (pass_if_conversion): Replace declaration with that of...
7559 (make_pass_if_conversion): ...new function.
7560 (pass_loop_distribution): Replace declaration with that of...
7561 (make_pass_loop_distribution): ...new function.
7562 (pass_vectorize): Replace declaration with that of...
7563 (make_pass_vectorize): ...new function.
7564 (pass_slp_vectorize): Replace declaration with that of...
7565 (make_pass_slp_vectorize): ...new function.
7566 (pass_complete_unroll): Replace declaration with that of...
7567 (make_pass_complete_unroll): ...new function.
7568 (pass_complete_unrolli): Replace declaration with that of...
7569 (make_pass_complete_unrolli): ...new function.
7570 (pass_parallelize_loops): Replace declaration with that of...
7571 (make_pass_parallelize_loops): ...new function.
7572 (pass_loop_prefetch): Replace declaration with that of...
7573 (make_pass_loop_prefetch): ...new function.
7574 (pass_iv_optimize): Replace declaration with that of...
7575 (make_pass_iv_optimize): ...new function.
7576 (pass_tree_loop_done): Replace declaration with that of...
7577 (make_pass_tree_loop_done): ...new function.
7578 (pass_ch): Replace declaration with that of...
7579 (make_pass_ch): ...new function.
7580 (pass_ccp): Replace declaration with that of...
7581 (make_pass_ccp): ...new function.
7582 (pass_phi_only_cprop): Replace declaration with that of...
7583 (make_pass_phi_only_cprop): ...new function.
7584 (pass_build_ssa): Replace declaration with that of...
7585 (make_pass_build_ssa): ...new function.
7586 (pass_build_alias): Replace declaration with that of...
7587 (make_pass_build_alias): ...new function.
7588 (pass_build_ealias): Replace declaration with that of...
7589 (make_pass_build_ealias): ...new function.
7590 (pass_dominator): Replace declaration with that of...
7591 (make_pass_dominator): ...new function.
7592 (pass_dce): Replace declaration with that of...
7593 (make_pass_dce): ...new function.
7594 (pass_dce_loop): Replace declaration with that of...
7595 (make_pass_dce_loop): ...new function.
7596 (pass_cd_dce): Replace declaration with that of...
7597 (make_pass_cd_dce): ...new function.
7598 (pass_call_cdce): Replace declaration with that of...
7599 (make_pass_call_cdce): ...new function.
7600 (pass_merge_phi): Replace declaration with that of...
7601 (make_pass_merge_phi): ...new function.
7602 (pass_split_crit_edges): Replace declaration with that of...
7603 (make_pass_split_crit_edges): ...new function.
7604 (pass_pre): Replace declaration with that of...
7605 (make_pass_pre): ...new function.
7606 (pass_profile): Replace declaration with that of...
7607 (make_pass_profile): ...new function.
7608 (pass_strip_predict_hints): Replace declaration with that of...
7609 (make_pass_strip_predict_hints): ...new function.
7610 (pass_lower_complex_O0): Replace declaration with that of...
7611 (make_pass_lower_complex_O0): ...new function.
7612 (pass_lower_complex): Replace declaration with that of...
7613 (make_pass_lower_complex): ...new function.
7614 (pass_lower_vector): Replace declaration with that of...
7615 (make_pass_lower_vector): ...new function.
7616 (pass_lower_vector_ssa): Replace declaration with that of...
7617 (make_pass_lower_vector_ssa): ...new function.
7618 (pass_lower_omp): Replace declaration with that of...
7619 (make_pass_lower_omp): ...new function.
7620 (pass_diagnose_omp_blocks): Replace declaration with that of...
7621 (make_pass_diagnose_omp_blocks): ...new function.
7622 (pass_expand_omp): Replace declaration with that of...
7623 (make_pass_expand_omp): ...new function.
7624 (pass_expand_omp_ssa): Replace declaration with that of...
7625 (make_pass_expand_omp_ssa): ...new function.
7626 (pass_object_sizes): Replace declaration with that of...
7627 (make_pass_object_sizes): ...new function.
7628 (pass_strlen): Replace declaration with that of...
7629 (make_pass_strlen): ...new function.
7630 (pass_fold_builtins): Replace declaration with that of...
7631 (make_pass_fold_builtins): ...new function.
7632 (pass_stdarg): Replace declaration with that of...
7633 (make_pass_stdarg): ...new function.
7634 (pass_early_warn_uninitialized): Replace declaration with that of...
7635 (make_pass_early_warn_uninitialized): ...new function.
7636 (pass_late_warn_uninitialized): Replace declaration with that of...
7637 (make_pass_late_warn_uninitialized): ...new function.
7638 (pass_cse_reciprocals): Replace declaration with that of...
7639 (make_pass_cse_reciprocals): ...new function.
7640 (pass_cse_sincos): Replace declaration with that of...
7641 (make_pass_cse_sincos): ...new function.
7642 (pass_optimize_bswap): Replace declaration with that of...
7643 (make_pass_optimize_bswap): ...new function.
7644 (pass_optimize_widening_mul): Replace declaration with that of...
7645 (make_pass_optimize_widening_mul): ...new function.
7646 (pass_warn_function_return): Replace declaration with that of...
7647 (make_pass_warn_function_return): ...new function.
7648 (pass_warn_function_noreturn): Replace declaration with that of...
7649 (make_pass_warn_function_noreturn): ...new function.
7650 (pass_cselim): Replace declaration with that of...
7651 (make_pass_cselim): ...new function.
7652 (pass_phiopt): Replace declaration with that of...
7653 (make_pass_phiopt): ...new function.
7654 (pass_forwprop): Replace declaration with that of...
7655 (make_pass_forwprop): ...new function.
7656 (pass_phiprop): Replace declaration with that of...
7657 (make_pass_phiprop): ...new function.
7658 (pass_tree_ifcombine): Replace declaration with that of...
7659 (make_pass_tree_ifcombine): ...new function.
7660 (pass_dse): Replace declaration with that of...
7661 (make_pass_dse): ...new function.
7662 (pass_nrv): Replace declaration with that of...
7663 (make_pass_nrv): ...new function.
7664 (pass_rename_ssa_copies): Replace declaration with that of...
7665 (make_pass_rename_ssa_copies): ...new function.
7666 (pass_sink_code): Replace declaration with that of...
7667 (make_pass_sink_code): ...new function.
7668 (pass_fre): Replace declaration with that of...
7669 (make_pass_fre): ...new function.
7670 (pass_check_data_deps): Replace declaration with that of...
7671 (make_pass_check_data_deps): ...new function.
7672 (pass_copy_prop): Replace declaration with that of...
7673 (make_pass_copy_prop): ...new function.
7674 (pass_vrp): Replace declaration with that of...
7675 (make_pass_vrp): ...new function.
7676 (pass_uncprop): Replace declaration with that of...
7677 (make_pass_uncprop): ...new function.
7678 (pass_return_slot): Replace declaration with that of...
7679 (make_pass_return_slot): ...new function.
7680 (pass_reassoc): Replace declaration with that of...
7681 (make_pass_reassoc): ...new function.
7682 (pass_rebuild_cgraph_edges): Replace declaration with that of...
7683 (make_pass_rebuild_cgraph_edges): ...new function.
7684 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
7685 (make_pass_remove_cgraph_callee_edges): ...new function.
7686 (pass_build_cgraph_edges): Replace declaration with that of...
7687 (make_pass_build_cgraph_edges): ...new function.
7688 (pass_local_pure_const): Replace declaration with that of...
7689 (make_pass_local_pure_const): ...new function.
7690 (pass_tracer): Replace declaration with that of...
7691 (make_pass_tracer): ...new function.
7692 (pass_warn_unused_result): Replace declaration with that of...
7693 (make_pass_warn_unused_result): ...new function.
7694 (pass_diagnose_tm_blocks): Replace declaration with that of...
7695 (make_pass_diagnose_tm_blocks): ...new function.
7696 (pass_lower_tm): Replace declaration with that of...
7697 (make_pass_lower_tm): ...new function.
7698 (pass_tm_init): Replace declaration with that of...
7699 (make_pass_tm_init): ...new function.
7700 (pass_tm_mark): Replace declaration with that of...
7701 (make_pass_tm_mark): ...new function.
7702 (pass_tm_memopt): Replace declaration with that of...
7703 (make_pass_tm_memopt): ...new function.
7704 (pass_tm_edges): Replace declaration with that of...
7705 (make_pass_tm_edges): ...new function.
7706 (pass_split_functions): Replace declaration with that of...
7707 (make_pass_split_functions): ...new function.
7708 (pass_feedback_split_functions): Replace declaration with that of...
7709 (make_pass_feedback_split_functions): ...new function.
7710 (pass_strength_reduction): Replace declaration with that of...
7711 (make_pass_strength_reduction): ...new function.
7712 (pass_ipa_lower_emutls): Replace declaration with that of...
7713 (make_pass_ipa_lower_emutls): ...new function.
7714 (pass_ipa_function_and_variable_visibility): Replace declaration with
7715 that of...
7716 (make_pass_ipa_function_and_variable_visibility): ...new function.
7717 (pass_ipa_tree_profile): Replace declaration with that of...
7718 (make_pass_ipa_tree_profile): ...new function.
7719 (pass_early_local_passes): Replace declaration with that of...
7720 (make_pass_early_local_passes): ...new function.
7721 (pass_ipa_whole_program_visibility): Replace declaration with that
7722 of...
7723 (make_pass_ipa_whole_program_visibility): ...new function.
7724 (pass_ipa_lto_gimple_out): Replace declaration with that of...
7725 (make_pass_ipa_lto_gimple_out): ...new function.
7726 (pass_ipa_increase_alignment): Replace declaration with that of...
7727 (make_pass_ipa_increase_alignment): ...new function.
7728 (pass_ipa_inline): Replace declaration with that of...
7729 (make_pass_ipa_inline): ...new function.
7730 (pass_ipa_free_lang_data): Replace declaration with that of...
7731 (make_pass_ipa_free_lang_data): ...new function.
7732 (pass_ipa_free_inline_summary): Replace declaration with that of...
7733 (make_pass_ipa_free_inline_summary): ...new function.
7734 (pass_ipa_cp): Replace declaration with that of...
7735 (make_pass_ipa_cp): ...new function.
7736 (pass_ipa_reference): Replace declaration with that of...
7737 (make_pass_ipa_reference): ...new function.
7738 (pass_ipa_pure_const): Replace declaration with that of...
7739 (make_pass_ipa_pure_const): ...new function.
7740 (pass_ipa_pta): Replace declaration with that of...
7741 (make_pass_ipa_pta): ...new function.
7742 (pass_ipa_lto_finish_out): Replace declaration with that of...
7743 (make_pass_ipa_lto_finish_out): ...new function.
7744 (pass_ipa_tm): Replace declaration with that of...
7745 (make_pass_ipa_tm): ...new function.
7746 (pass_ipa_profile): Replace declaration with that of...
7747 (make_pass_ipa_profile): ...new function.
7748 (pass_ipa_cdtor_merge): Replace declaration with that of...
7749 (make_pass_ipa_cdtor_merge): ...new function.
7750 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
7751 of...
7752 (make_pass_cleanup_cfg_post_optimizing): ...new function.
7753 (pass_init_datastructures): Replace declaration with that of...
7754 (make_pass_init_datastructures): ...new function.
7755 (pass_fixup_cfg): Replace declaration with that of...
7756 (make_pass_fixup_cfg): ...new function.
7757 (pass_expand): Replace declaration with that of...
7758 (make_pass_expand): ...new function.
7759 (pass_instantiate_virtual_regs): Replace declaration with that of...
7760 (make_pass_instantiate_virtual_regs): ...new function.
7761 (pass_rtl_fwprop): Replace declaration with that of...
7762 (make_pass_rtl_fwprop): ...new function.
7763 (pass_rtl_fwprop_addr): Replace declaration with that of...
7764 (make_pass_rtl_fwprop_addr): ...new function.
7765 (pass_jump): Replace declaration with that of...
7766 (make_pass_jump): ...new function.
7767 (pass_jump2): Replace declaration with that of...
7768 (make_pass_jump2): ...new function.
7769 (pass_lower_subreg): Replace declaration with that of...
7770 (make_pass_lower_subreg): ...new function.
7771 (pass_cse): Replace declaration with that of...
7772 (make_pass_cse): ...new function.
7773 (pass_fast_rtl_dce): Replace declaration with that of...
7774 (make_pass_fast_rtl_dce): ...new function.
7775 (pass_ud_rtl_dce): Replace declaration with that of...
7776 (make_pass_ud_rtl_dce): ...new function.
7777 (pass_rtl_dce): Replace declaration with that of...
7778 (make_pass_rtl_dce): ...new function.
7779 (pass_rtl_dse1): Replace declaration with that of...
7780 (make_pass_rtl_dse1): ...new function.
7781 (pass_rtl_dse2): Replace declaration with that of...
7782 (make_pass_rtl_dse2): ...new function.
7783 (pass_rtl_dse3): Replace declaration with that of...
7784 (make_pass_rtl_dse3): ...new function.
7785 (pass_rtl_cprop): Replace declaration with that of...
7786 (make_pass_rtl_cprop): ...new function.
7787 (pass_rtl_pre): Replace declaration with that of...
7788 (make_pass_rtl_pre): ...new function.
7789 (pass_rtl_hoist): Replace declaration with that of...
7790 (make_pass_rtl_hoist): ...new function.
7791 (pass_rtl_store_motion): Replace declaration with that of...
7792 (make_pass_rtl_store_motion): ...new function.
7793 (pass_cse_after_global_opts): Replace declaration with that of...
7794 (make_pass_cse_after_global_opts): ...new function.
7795 (pass_rtl_ifcvt): Replace declaration with that of...
7796 (make_pass_rtl_ifcvt): ...new function.
7797 (pass_into_cfg_layout_mode): Replace declaration with that of...
7798 (make_pass_into_cfg_layout_mode): ...new function.
7799 (pass_outof_cfg_layout_mode): Replace declaration with that of...
7800 (make_pass_outof_cfg_layout_mode): ...new function.
7801 (pass_loop2): Replace declaration with that of...
7802 (make_pass_loop2): ...new function.
7803 (pass_rtl_loop_init): Replace declaration with that of...
7804 (make_pass_rtl_loop_init): ...new function.
7805 (pass_rtl_move_loop_invariants): Replace declaration with that of...
7806 (make_pass_rtl_move_loop_invariants): ...new function.
7807 (pass_rtl_unswitch): Replace declaration with that of...
7808 (make_pass_rtl_unswitch): ...new function.
7809 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
7810 (make_pass_rtl_unroll_and_peel_loops): ...new function.
7811 (pass_rtl_doloop): Replace declaration with that of...
7812 (make_pass_rtl_doloop): ...new function.
7813 (pass_rtl_loop_done): Replace declaration with that of...
7814 (make_pass_rtl_loop_done): ...new function.
7815 (pass_web): Replace declaration with that of...
7816 (make_pass_web): ...new function.
7817 (pass_cse2): Replace declaration with that of...
7818 (make_pass_cse2): ...new function.
7819 (pass_df_initialize_opt): Replace declaration with that of...
7820 (make_pass_df_initialize_opt): ...new function.
7821 (pass_df_initialize_no_opt): Replace declaration with that of...
7822 (make_pass_df_initialize_no_opt): ...new function.
7823 (pass_reginfo_init): Replace declaration with that of...
7824 (make_pass_reginfo_init): ...new function.
7825 (pass_inc_dec): Replace declaration with that of...
7826 (make_pass_inc_dec): ...new function.
7827 (pass_stack_ptr_mod): Replace declaration with that of...
7828 (make_pass_stack_ptr_mod): ...new function.
7829 (pass_initialize_regs): Replace declaration with that of...
7830 (make_pass_initialize_regs): ...new function.
7831 (pass_combine): Replace declaration with that of...
7832 (make_pass_combine): ...new function.
7833 (pass_if_after_combine): Replace declaration with that of...
7834 (make_pass_if_after_combine): ...new function.
7835 (pass_ree): Replace declaration with that of...
7836 (make_pass_ree): ...new function.
7837 (pass_partition_blocks): Replace declaration with that of...
7838 (make_pass_partition_blocks): ...new function.
7839 (pass_match_asm_constraints): Replace declaration with that of...
7840 (make_pass_match_asm_constraints): ...new function.
7841 (pass_regmove): Replace declaration with that of...
7842 (make_pass_regmove): ...new function.
7843 (pass_split_all_insns): Replace declaration with that of...
7844 (make_pass_split_all_insns): ...new function.
7845 (pass_fast_rtl_byte_dce): Replace declaration with that of...
7846 (make_pass_fast_rtl_byte_dce): ...new function.
7847 (pass_lower_subreg2): Replace declaration with that of...
7848 (make_pass_lower_subreg2): ...new function.
7849 (pass_mode_switching): Replace declaration with that of...
7850 (make_pass_mode_switching): ...new function.
7851 (pass_sms): Replace declaration with that of...
7852 (make_pass_sms): ...new function.
7853 (pass_sched): Replace declaration with that of...
7854 (make_pass_sched): ...new function.
7855 (pass_ira): Replace declaration with that of...
7856 (make_pass_ira): ...new function.
7857 (pass_reload): Replace declaration with that of...
7858 (make_pass_reload): ...new function.
7859 (pass_clean_state): Replace declaration with that of...
7860 (make_pass_clean_state): ...new function.
7861 (pass_branch_prob): Replace declaration with that of...
7862 (make_pass_branch_prob): ...new function.
7863 (pass_value_profile_transformations): Replace declaration with that
7864 of...
7865 (make_pass_value_profile_transformations): ...new function.
7866 (pass_postreload_cse): Replace declaration with that of...
7867 (make_pass_postreload_cse): ...new function.
7868 (pass_gcse2): Replace declaration with that of...
7869 (make_pass_gcse2): ...new function.
7870 (pass_split_after_reload): Replace declaration with that of...
7871 (make_pass_split_after_reload): ...new function.
7872 (pass_branch_target_load_optimize1): Replace declaration with that
7873 of...
7874 (make_pass_branch_target_load_optimize1): ...new function.
7875 (pass_thread_prologue_and_epilogue): Replace declaration with that
7876 of...
7877 (make_pass_thread_prologue_and_epilogue): ...new function.
7878 (pass_stack_adjustments): Replace declaration with that of...
7879 (make_pass_stack_adjustments): ...new function.
7880 (pass_peephole2): Replace declaration with that of...
7881 (make_pass_peephole2): ...new function.
7882 (pass_if_after_reload): Replace declaration with that of...
7883 (make_pass_if_after_reload): ...new function.
7884 (pass_regrename): Replace declaration with that of...
7885 (make_pass_regrename): ...new function.
7886 (pass_cprop_hardreg): Replace declaration with that of...
7887 (make_pass_cprop_hardreg): ...new function.
7888 (pass_reorder_blocks): Replace declaration with that of...
7889 (make_pass_reorder_blocks): ...new function.
7890 (pass_branch_target_load_optimize2): Replace declaration with that
7891 of...
7892 (make_pass_branch_target_load_optimize2): ...new function.
7893 (pass_leaf_regs): Replace declaration with that of...
7894 (make_pass_leaf_regs): ...new function.
7895 (pass_split_before_sched2): Replace declaration with that of...
7896 (make_pass_split_before_sched2): ...new function.
7897 (pass_compare_elim_after_reload): Replace declaration with that of...
7898 (make_pass_compare_elim_after_reload): ...new function.
7899 (pass_sched2): Replace declaration with that of...
7900 (make_pass_sched2): ...new function.
7901 (pass_stack_regs): Replace declaration with that of...
7902 (make_pass_stack_regs): ...new function.
7903 (pass_stack_regs_run): Replace declaration with that of...
7904 (make_pass_stack_regs_run): ...new function.
7905 (pass_df_finish): Replace declaration with that of...
7906 (make_pass_df_finish): ...new function.
7907 (pass_compute_alignments): Replace declaration with that of...
7908 (make_pass_compute_alignments): ...new function.
7909 (pass_duplicate_computed_gotos): Replace declaration with that of...
7910 (make_pass_duplicate_computed_gotos): ...new function.
7911 (pass_variable_tracking): Replace declaration with that of...
7912 (make_pass_variable_tracking): ...new function.
7913 (pass_free_cfg): Replace declaration with that of...
7914 (make_pass_free_cfg): ...new function.
7915 (pass_machine_reorg): Replace declaration with that of...
7916 (make_pass_machine_reorg): ...new function.
7917 (pass_cleanup_barriers): Replace declaration with that of...
7918 (make_pass_cleanup_barriers): ...new function.
7919 (pass_delay_slots): Replace declaration with that of...
7920 (make_pass_delay_slots): ...new function.
7921 (pass_split_for_shorten_branches): Replace declaration with that of...
7922 (make_pass_split_for_shorten_branches): ...new function.
7923 (pass_split_before_regstack): Replace declaration with that of...
7924 (make_pass_split_before_regstack): ...new function.
7925 (pass_convert_to_eh_region_ranges): Replace declaration with that
7926 of...
7927 (make_pass_convert_to_eh_region_ranges): ...new function.
7928 (pass_shorten_branches): Replace declaration with that of...
7929 (make_pass_shorten_branches): ...new function.
7930 (pass_set_nothrow_function_flags): Replace declaration with that of...
7931 (make_pass_set_nothrow_function_flags): ...new function.
7932 (pass_dwarf2_frame): Replace declaration with that of...
7933 (make_pass_dwarf2_frame): ...new function.
7934 (pass_final): Replace declaration with that of...
7935 (make_pass_final): ...new function.
7936 (pass_rtl_seqabstr): Replace declaration with that of...
7937 (make_pass_rtl_seqabstr): ...new function.
7938 (pass_release_ssa_names): Replace declaration with that of...
7939 (make_pass_release_ssa_names): ...new function.
7940 (pass_early_inline): Replace declaration with that of...
7941 (make_pass_early_inline): ...new function.
7942 (pass_inline_parameters): Replace declaration with that of...
7943 (make_pass_inline_parameters): ...new function.
7944 (pass_update_address_taken): Replace declaration with that of...
7945 (make_pass_update_address_taken): ...new function.
7946 (pass_convert_switch): Replace declaration with that of...
7947 (make_pass_convert_switch): ...new function.
7948 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
7949 to a subclass of simple_ipa_opt_pass along with...
7950 (pass_data_ipa_tree_profile): ...new pass_data instance and...
7951 (make_pass_ipa_tree_profile): ...new function.
7952 * tree-sra.c (pass_sra_early): Convert from a global struct to a
7953 subclass of gimple_opt_pass along with...
7954 (pass_data_sra_early): ...new pass_data instance and...
7955 (make_pass_sra_early): ...new function.
7956 (pass_sra): Convert from a global struct to a subclass of
7957 gimple_opt_pass along with...
7958 (pass_data_sra): ...new pass_data instance and...
7959 (make_pass_sra): ...new function.
7960 (pass_early_ipa_sra): Convert from a global struct to a subclass of
7961 gimple_opt_pass along with...
7962 (pass_data_early_ipa_sra): ...new pass_data instance and...
7963 (make_pass_early_ipa_sra): ...new function.
7964 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
7965 subclass of gimple_opt_pass along with...
7966 (pass_data_ccp): ...new pass_data instance and...
7967 (make_pass_ccp): ...new function.
7968 (pass_fold_builtins): Convert from a global struct to a subclass of
7969 gimple_opt_pass along with...
7970 (pass_data_fold_builtins): ...new pass_data instance and...
7971 (make_pass_fold_builtins): ...new function.
7972 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
7973 subclass of gimple_opt_pass along with...
7974 (pass_data_copy_prop): ...new pass_data instance and...
7975 (make_pass_copy_prop): ...new function.
7976 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
7977 global struct to a subclass of gimple_opt_pass along with...
7978 (pass_data_rename_ssa_copies): ...new pass_data instance and...
7979 (make_pass_rename_ssa_copies): ...new function.
7980 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
7981 subclass of gimple_opt_pass along with...
7982 (pass_data_dce): ...new pass_data instance and...
7983 (make_pass_dce): ...new function.
7984 (pass_dce_loop): Convert from a global struct to a subclass of
7985 gimple_opt_pass along with...
7986 (pass_data_dce_loop): ...new pass_data instance and...
7987 (make_pass_dce_loop): ...new function.
7988 (pass_cd_dce): Convert from a global struct to a subclass of
7989 gimple_opt_pass along with...
7990 (pass_data_cd_dce): ...new pass_data instance and...
7991 (make_pass_cd_dce): ...new function.
7992 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
7993 subclass of gimple_opt_pass along with...
7994 (pass_data_dominator): ...new pass_data instance and...
7995 (make_pass_dominator): ...new function.
7996 (pass_phi_only_cprop): Convert from a global struct to a subclass of
7997 gimple_opt_pass along with...
7998 (pass_data_phi_only_cprop): ...new pass_data instance and...
7999 (make_pass_phi_only_cprop): ...new function.
8000 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
8001 subclass of gimple_opt_pass along with...
8002 (pass_data_dse): ...new pass_data instance and...
8003 (make_pass_dse): ...new function.
8004 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
8005 a subclass of gimple_opt_pass along with...
8006 (pass_data_forwprop): ...new pass_data instance and...
8007 (make_pass_forwprop): ...new function.
8008 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
8009 struct to a subclass of gimple_opt_pass along with...
8010 (pass_data_tree_ifcombine): ...new pass_data instance and...
8011 (make_pass_tree_ifcombine): ...new function.
8012 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
8013 subclass of gimple_opt_pass along with...
8014 (pass_data_ch): ...new pass_data instance and...
8015 (make_pass_ch): ...new function.
8016 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
8017 subclass of gimple_opt_pass along with...
8018 (pass_data_tree_loop): ...new pass_data instance and...
8019 (make_pass_tree_loop): ...new function.
8020 (pass_tree_loop_init): Convert from a global struct to a subclass of
8021 gimple_opt_pass along with...
8022 (pass_data_tree_loop_init): ...new pass_data instance and...
8023 (make_pass_tree_loop_init): ...new function.
8024 (pass_lim): Convert from a global struct to a subclass of
8025 gimple_opt_pass along with...
8026 (pass_data_lim): ...new pass_data instance and...
8027 (make_pass_lim): ...new function.
8028 (pass_tree_unswitch): Convert from a global struct to a subclass of
8029 gimple_opt_pass along with...
8030 (pass_data_tree_unswitch): ...new pass_data instance and...
8031 (make_pass_tree_unswitch): ...new function.
8032 (pass_predcom): Convert from a global struct to a subclass of
8033 gimple_opt_pass along with...
8034 (pass_data_predcom): ...new pass_data instance and...
8035 (make_pass_predcom): ...new function.
8036 (pass_vectorize): Convert from a global struct to a subclass of
8037 gimple_opt_pass along with...
8038 (pass_data_vectorize): ...new pass_data instance and...
8039 (make_pass_vectorize): ...new function.
8040 (pass_graphite): Convert from a global struct to a subclass of
8041 gimple_opt_pass along with...
8042 (pass_data_graphite): ...new pass_data instance and...
8043 (make_pass_graphite): ...new function.
8044 (pass_graphite_transforms): Convert from a global struct to a subclass
8045 of gimple_opt_pass along with...
8046 (pass_data_graphite_transforms): ...new pass_data instance and...
8047 (make_pass_graphite_transforms): ...new function.
8048 (pass_check_data_deps): Convert from a global struct to a subclass of
8049 gimple_opt_pass along with...
8050 (pass_data_check_data_deps): ...new pass_data instance and...
8051 (make_pass_check_data_deps): ...new function.
8052 (pass_iv_canon): Convert from a global struct to a subclass of
8053 gimple_opt_pass along with...
8054 (pass_data_iv_canon): ...new pass_data instance and...
8055 (make_pass_iv_canon): ...new function.
8056 (pass_scev_cprop): Convert from a global struct to a subclass of
8057 gimple_opt_pass along with...
8058 (pass_data_scev_cprop): ...new pass_data instance and...
8059 (make_pass_scev_cprop): ...new function.
8060 (pass_record_bounds): Convert from a global struct to a subclass of
8061 gimple_opt_pass along with...
8062 (pass_data_record_bounds): ...new pass_data instance and...
8063 (make_pass_record_bounds): ...new function.
8064 (pass_complete_unroll): Convert from a global struct to a subclass of
8065 gimple_opt_pass along with...
8066 (pass_data_complete_unroll): ...new pass_data instance and...
8067 (make_pass_complete_unroll): ...new function.
8068 (pass_complete_unrolli): Convert from a global struct to a subclass of
8069 gimple_opt_pass along with...
8070 (pass_data_complete_unrolli): ...new pass_data instance and...
8071 (make_pass_complete_unrolli): ...new function.
8072 (pass_parallelize_loops): Convert from a global struct to a subclass
8073 of gimple_opt_pass along with...
8074 (pass_data_parallelize_loops): ...new pass_data instance and...
8075 (make_pass_parallelize_loops): ...new function.
8076 (pass_loop_prefetch): Convert from a global struct to a subclass of
8077 gimple_opt_pass along with...
8078 (pass_data_loop_prefetch): ...new pass_data instance and...
8079 (make_pass_loop_prefetch): ...new function.
8080 (pass_iv_optimize): Convert from a global struct to a subclass of
8081 gimple_opt_pass along with...
8082 (pass_data_iv_optimize): ...new pass_data instance and...
8083 (make_pass_iv_optimize): ...new function.
8084 (pass_tree_loop_done): Convert from a global struct to a subclass of
8085 gimple_opt_pass along with...
8086 (pass_data_tree_loop_done): ...new pass_data instance and...
8087 (make_pass_tree_loop_done): ...new function.
8088 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
8089 struct to a subclass of gimple_opt_pass along with...
8090 (pass_data_cse_reciprocals): ...new pass_data instance and...
8091 (make_pass_cse_reciprocals): ...new function.
8092 (pass_cse_sincos): Convert from a global struct to a subclass of
8093 gimple_opt_pass along with...
8094 (pass_data_cse_sincos): ...new pass_data instance and...
8095 (make_pass_cse_sincos): ...new function.
8096 (pass_optimize_bswap): Convert from a global struct to a subclass of
8097 gimple_opt_pass along with...
8098 (pass_data_optimize_bswap): ...new pass_data instance and...
8099 (make_pass_optimize_bswap): ...new function.
8100 (pass_optimize_widening_mul): Convert from a global struct to a
8101 subclass of gimple_opt_pass along with...
8102 (pass_data_optimize_widening_mul): ...new pass_data instance and...
8103 (make_pass_optimize_widening_mul): ...new function.
8104 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
8105 subclass of gimple_opt_pass along with...
8106 (pass_data_phiopt): ...new pass_data instance and...
8107 (make_pass_phiopt): ...new function.
8108 (pass_cselim): Convert from a global struct to a subclass of
8109 gimple_opt_pass along with...
8110 (pass_data_cselim): ...new pass_data instance and...
8111 (make_pass_cselim): ...new function.
8112 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
8113 subclass of gimple_opt_pass along with...
8114 (pass_data_phiprop): ...new pass_data instance and...
8115 (make_pass_phiprop): ...new function.
8116 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
8117 subclass of gimple_opt_pass along with...
8118 (pass_data_pre): ...new pass_data instance and...
8119 (make_pass_pre): ...new function.
8120 (pass_fre): Convert from a global struct to a subclass of
8121 gimple_opt_pass along with...
8122 (pass_data_fre): ...new pass_data instance and...
8123 (make_pass_fre): ...new function.
8124 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
8125 subclass of gimple_opt_pass along with...
8126 (pass_data_reassoc): ...new pass_data instance and...
8127 (make_pass_reassoc): ...new function.
8128 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
8129 subclass of gimple_opt_pass along with...
8130 (pass_data_sink_code): ...new pass_data instance and...
8131 (make_pass_sink_code): ...new function.
8132 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
8133 subclass of gimple_opt_pass along with...
8134 (pass_data_strlen): ...new pass_data instance and...
8135 (make_pass_strlen): ...new function.
8136 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
8137 struct to a subclass of gimple_opt_pass along with...
8138 (pass_data_build_alias): ...new pass_data instance and...
8139 (make_pass_build_alias): ...new function.
8140 (pass_build_ealias): Convert from a global struct to a subclass of
8141 gimple_opt_pass along with...
8142 (pass_data_build_ealias): ...new pass_data instance and...
8143 (make_pass_build_ealias): ...new function.
8144 (pass_ipa_pta): Convert from a global struct to a subclass of
8145 simple_ipa_opt_pass along with...
8146 (pass_data_ipa_pta): ...new pass_data instance and...
8147 (make_pass_ipa_pta): ...new function.
8148 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
8149 subclass of gimple_opt_pass along with...
8150 (pass_data_uncprop): ...new pass_data instance and...
8151 (make_pass_uncprop): ...new function.
8152 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
8153 global struct to a subclass of gimple_opt_pass along with...
8154 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
8155 (make_pass_late_warn_uninitialized): ...new function.
8156 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
8157 to a subclass of gimple_opt_pass along with...
8158 (pass_data_init_datastructures): ...new pass_data instance and...
8159 (make_pass_init_datastructures): ...new function.
8160 (pass_early_warn_uninitialized): Convert from a global struct to a
8161 subclass of gimple_opt_pass along with...
8162 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
8163 (make_pass_early_warn_uninitialized): ...new function.
8164 (pass_update_address_taken): Convert from a global struct to a
8165 subclass of gimple_opt_pass along with...
8166 (pass_data_update_address_taken): ...new pass_data instance and...
8167 (make_pass_update_address_taken): ...new function.
8168 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
8169 struct to a subclass of gimple_opt_pass along with...
8170 (pass_data_release_ssa_names): ...new pass_data instance and...
8171 (make_pass_release_ssa_names): ...new function.
8172 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
8173 subclass of gimple_opt_pass along with...
8174 (pass_data_stdarg): ...new pass_data instance and...
8175 (make_pass_stdarg): ...new function.
8176 * tree-switch-conversion.c (pass_convert_switch): Convert from a
8177 global struct to a subclass of gimple_opt_pass along with...
8178 (pass_data_convert_switch): ...new pass_data instance and...
8179 (make_pass_convert_switch): ...new function.
8180 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
8181 to a subclass of gimple_opt_pass along with...
8182 (pass_data_tail_recursion): ...new pass_data instance and...
8183 (make_pass_tail_recursion): ...new function.
8184 (pass_tail_calls): Convert from a global struct to a subclass of
8185 gimple_opt_pass along with...
8186 (pass_data_tail_calls): ...new pass_data instance and...
8187 (make_pass_tail_calls): ...new function.
8188 * tree-vect-generic.c (pass_lower_vector): Convert from a global
8189 struct to a subclass of gimple_opt_pass along with...
8190 (pass_data_lower_vector): ...new pass_data instance and...
8191 (make_pass_lower_vector): ...new function.
8192 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
8193 gimple_opt_pass along with...
8194 (pass_data_lower_vector_ssa): ...new pass_data instance and...
8195 (make_pass_lower_vector_ssa): ...new function.
8196 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
8197 to a subclass of gimple_opt_pass along with...
8198 (pass_data_slp_vectorize): ...new pass_data instance and...
8199 (make_pass_slp_vectorize): ...new function.
8200 (pass_ipa_increase_alignment): Convert from a global struct to a
8201 subclass of simple_ipa_opt_pass along with...
8202 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
8203 (make_pass_ipa_increase_alignment): ...new function.
8204 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
8205 gimple_opt_pass along with...
8206 (pass_data_vrp): ...new pass_data instance and...
8207 (make_pass_vrp): ...new function.
8208 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
8209 subclass of simple_ipa_opt_pass along with...
8210 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
8211 (make_pass_ipa_free_lang_data): ...new function.
8212 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
8213 gimple_opt_pass along with...
8214 (pass_data_tsan): ...new pass_data instance and...
8215 (make_pass_tsan): ...new function.
8216 (pass_tsan_O0): Convert from a global struct to a subclass of
8217 gimple_opt_pass along with...
8218 (pass_data_tsan_O0): ...new pass_data instance and...
8219 (make_pass_tsan_O0): ...new function.
8220 * var-tracking.c (pass_variable_tracking): Convert from a global
8221 struct to a subclass of rtl_opt_pass along with...
8222 (pass_data_variable_tracking): ...new pass_data instance and...
8223 (make_pass_variable_tracking): ...new function.
8224 * web.c (pass_web): Convert from a global struct to a subclass of
8225 rtl_opt_pass along with...
8226 (pass_data_web): ...new pass_data instance and...
8227 (make_pass_web): ...new function.
8228 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
8229 declaration with that of...
8230 (make_pass_mode_switch_use): ...new function.
8231 (pass_resolve_sw_modes): Replace declaration with that of...
8232 (make_pass_resolve_sw_modes): ...new function.
8233 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
8234 from a global struct to a subclass of rtl_opt_pass along with...
8235 (pass_data_mode_switch_use): ...new pass_data instance and...
8236 (make_pass_mode_switch_use): ...new function.
8237 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
8238 from a global struct to a subclass of rtl_opt_pass along with...
8239 (pass_data_resolve_sw_modes): ...new pass_data instance and...
8240 (make_pass_resolve_sw_modes): ...new function.
8241 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
8242 struct to a subclass of rtl_opt_pass along with...
8243 (pass_data_insert_vzeroupper): ...new pass_data instance and...
8244 (make_pass_insert_vzeroupper): ...new function.
8245 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
8246 global struct to a subclass of rtl_opt_pass along with...
8247 (pass_data_work_around_errata): ...new pass_data instance and...
8248 (make_pass_work_around_errata): ...new function.
8249 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
8250 struct to a subclass of rtl_opt_pass along with...
8251 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
8252 (make_pass_mips_machine_reorg2): ...new function.
8253
6a389ed5
DM
82542013-08-05 David Malcolm <dmalcolm@redhat.com>
8255
8256 * passes.c (pass_manager::operator new): New.
8257
f7695dbf
DM
82582013-08-05 David Malcolm <dmalcolm@redhat.com>
8259
8260 Handwritten part of conversion of passes to C++ classes.
8261
8262 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
8263 (toplev.o): Add dep on PASS_MANAGER_H.
8264 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
8265 of early local pases to reflect this moving from a global to a
8266 member of gcc::pass_manager.
8267 (cgraph_add_new_function): Likewise.
8268 * lto-cgraph.c (lto_output_node): Update for conversion of
8269 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
8270 * passes.c (opt_pass::clone): New.
8271 (opt_pass::gate): New.
8272 (opt_pass::execute): New.
8273 (opt_pass::opt_pass): New.
8274 (pass_manager::execute_early_local_passes): New.
8275 (pass_manager::execute_pass_mode_switching): new.
8276 (finish_optimization_passes): Convert to...
8277 (pass_manager::finish_optimization_passes): ...this.
8278 (finish_optimization_passes): Update for conversion of passes to
8279 C++ classes.
8280 (register_dump_files_1): Use has_gate since we cannot portably
8281 check a vtable entry against NULL.
8282 (dump_one_pass): Likewise.
8283 (ipa_write_summaries_2): Likewise.
8284 (ipa_write_optimization_summaries_1): Likewise.
8285 (ipa_read_summaries_1): Likewise.
8286 (ipa_read_optimization_summaries_1): Likewise.
8287 (execute_ipa_stmt_fixups): Likewise.
8288 (pass_manager::pass_manager): Rewrite pass-creation, invoking
8289 pass-creation functions rather than wiring up globals, and
8290 storing the results in fields of pass_manager generated using
8291 pass-instances.def.
8292 (pass_manager::dump_profile_report): Update for conversion of
8293 passes to C++ classes.
8294 (pass_manager::execute_ipa_summary_passes): Likewise.
8295 (execute_one_ipa_transform_pass): Likewise.
8296 (execute_one_pass): Use has_gate and has_execute since we cannot
8297 portably check a vtable entry against NULL.
8298 * pass_manager.h (pass_manager::finish_optimization_passes): New.
8299 (pass_manager): Use pass-instances.def to add fields for the
8300 various pass instances.
8301 * toplev.c (finalize): Update for move of
8302 finish_optimization_passes to a method of gcc::pass_manager.
8303 * toplev.h (finish_optimization_passes): Move to method of class
8304 pass_manager.
8305 * tree-pass.h (struct pass_data): New.
03b0ee0a 8306 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
8307 (opt_pass::gate): Convert to virtual function.
8308 (opt_pass::~opt_pass): New.
8309 (opt_pass::clone): New.
8310 (opt_pass::execute): Convert to virtual function.
8311 (opt_pass::opt_pass): New.
8312 (opt_pass::ctxt_): new.
8313 (gimple_opt_pass): Convert to subclass of opt_pass.
8314 (gimple_opt_pass::gimple_opt_pass): New.
8315 (rtl_opt_pass): Convert to subclass of opt_pass.
8316 (rtl_opt_pass::rtl_opt_pass): New.
8317 (ipa_opt_pass_d): Convert to subclass of opt_pass.
8318 (ipa_opt_pass_d::ipa_opt_pass_d): New.
8319 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
8320 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
8321 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
8322 invocation of pass_mode_switching to reflect this moving from a
8323 global to a member of gcc::pass_manager.
8324 (ix86_option_override): Rework how pass_insert_vzeroupper is
8325 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 8326 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 8327
d0b2f831
RE
83282013-08-05 Richard Earnshaw <rearnsha@arm.com>
8329
8330 PR rtl-optimization/57708
8331 * recog.c (peep2_find_free_register): Validate all regs in a
8332 multi-reg mode.
8333
51a5c0c2
JH
83342013-08-05 Jan Hubicka <jh@suse.cz>
8335
8336 PR lto/57602
03b0ee0a
UB
8337 * cgraph.c (verify_cgraph_node): Accept local flags from other
8338 partitions.
51a5c0c2
JH
8339 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
8340 (function_and_variable_visibility): Likewise.
8341 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
8342
65f0a120
GDR
83432013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8344
8345 * graph.c (init_graph_slim_pretty_print): Remove.
8346 (print_graph_cfg): Do not call it. Use local pretty printer.
8347 (start_graph_dump): Likewise.
8348
b3f80694
GDR
83492013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8350
8351 * gimple-pretty-print.c (buffer): Remove.
8352 (initialized): Likewise.
8353 (maybe_init_pretty_print): Likewise.
8354 (print_gimple_stmt): Do not call it. Use non-static local
8355 pretty_printer variable.
8356 (print_gimple_expr): Likewise.
8357 (print_gimple_seq): Likewise.
8358 (gimple_dump_bb): Likewise.
8359
11a877b3
GDR
83602013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
8361
8362 * asan.c (asan_pp): Remove.
8363 (asan_pp_initialized): Likewise.
8364 (asan_pp_initialize): Likewise.
8365 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
8366 (asan_emit_stack_protection): Tidy. Use local pretty printer.
8367 (asan_add_global): Likewise.
8368
b066401f
GDR
83692013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
8370
8371 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
8372 * diagnostic.h (diagnostic_flush_buffer): Adjust.
8373 * pretty-print.c (pp_formatted_text_data): Likewise.
8374 (pp_indent): Rename from pp_base_indent.
8375 (pp_format): Rename from pp_base_format.
8376 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
8377 (pp_format_verbatim): Rename from pp_base_format_verbatim.
8378 (pp_flush): Rename from pp_base_flush.
8379 (pp_set_line_maximum_length): Rename from
8380 pp_base_set_line_maximum_length.
8381 (pp_clear_output_area): Rename from pp_base_clear_output_area.
8382 (pp_set_prefix): Rename from pp_base_set_prefix.
8383 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
8384 (pp_emit_prefix): Rename from pp_base_emit_prefix.
8385 (pp_append_text): Rename from pp_base_append_text.
8386 (pp_formatted_text): Rename from pp_base_formatted_text.
8387 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
8388 (pp_remaining_character_count_for_line): Rename from
8389 pp_base_remaining_character_count_for_line.
8390 (pp_newline): Rename from pp_base_newline.
8391 (pp_character): Rename from pp_base_character.
8392 (pp_string): Rename from pp_base_string.
8393 (pp_maybe_space): Rename from pp_base_maybe_space.
8394 * asan.c (asan_pp_string): Adjust.
8395 (asan_emit_stack_protection): Likewise.
8396 (asan_add_global): Likewise.
8397 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
8398 * tree-mudflap.c (mf_varname_tree): Likewise.
8399 * tree-pretty-print.c (pp_tree_identifier): Rename from
8400 pp_base_tree_identifier.
8401 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
8402 Declare as function.
8403
137a1a27
GDR
84042013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
8405
8406 * pretty-print.h (pp_bar_bar): New.
8407 (pp_ampersand_ampersand): Likewise.
8408 (pp_less_equal): Likewise.
8409 (pp_greater_equal): Likewise.
8410 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
8411 printer functions instead of pp_string or operators and punctuators.
8412 (dump_gimple_call): Likewise.
8413 (dump_gimple_omp_for): Likewise.
8414 (dump_gimple_transaction): Likewise.
8415 (dump_gimple_phi): Likewise.
8416 (pp_gimple_stmt_1): Likewise.
8417 * sched-vis.c (print_insn): Likewise.
8418 * tree-mudflap.c (mf_varname_tree): Likewise.
8419 * tree-pretty-print.c (dump_block_node): Likewise.
8420 (dump_generic_node): Likewise.
8421
815effe1
JH
84222013-08-02 Jan Hubicka <jh@suse.cz>
8423
8424 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
8425 boundaries.
8426 * lto-streamer-out.c (tree_is_indexable): Results decls and
8427 parm decls are not indexable.
8428 (DFS_write_tree_body): Do not follow args and results.
8429 (hash_tree): Likewise.
8430 (output_functions): Rearrange so struct function is needed
8431 only when real body is output; be able to also ouptut abstract
8432 functions; output DECL_ARGUMENTS and DECL_RESULT.
8433 (lto_output): When not in WPA, ale store abstract functions.
8434 (write_symbol): Do not care about RESULT_DECL.
8435 (output_symbol_p): Handle correctly sbtract decls.
8436 * lto-streamer-in.c (input_function): Rearrange so struct
8437 function can be NULL at entry; allow streaming of
8438 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
8439 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
8440 sanity check during LTO.
8441 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
8442 RESULT_DECl and DECL_ARGUMENTS.
8443 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
8444 Likewise.
8445
07838b13
GDR
84462013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
8447
8448 * pretty-print.h (pp_underscore): New.
8449 (pp_comma): Tidy.
8450 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
8451 printer functions instead of pp_character.
8452 (dump_binary_rhs): Likewise.
8453 (dump_ternary_rhs): Likewise.
8454 (dump_gimple_call_args): Likewise.
8455 (pp_points_to_solution): Likewise.
8456 (dump_gimple_call): Likewise.
8457 (dump_gimple_switch): Likewise.
8458 (dump_gimple_cond): Likewise.
8459 (dump_gimple_bind): Likewise.
8460 (dump_gimple_try): Likewise.
8461 (dump_gimple_omp_for): Likewise.
8462 (dump_gimple_omp_continue): Likewise.
8463 (dump_gimple_omp_single): Likewise.
8464 (dump_gimple_omp_sections): Likewise.
8465 (dump_gimple_omp_block): Likewise.
8466 (dump_gimple_omp_critical): Likewise.
8467 (dump_gimple_transaction): Likewise.
8468 (dump_gimple_asm): Likewise.
8469 (dump_gimple_phi): Likewise.
8470 (dump_gimple_omp_parallel): Likewise.
8471 (dump_gimple_omp_task): Likewise.
8472 (dump_gimple_omp_atomic_load): Likewise.
8473 (dump_gimple_omp_atomic_store): Likewise.
8474 (dump_gimple_mem_ops): Likewise.
8475 (pp_gimple_stmt_1): Likewise.
8476 (pp_cfg_jump): Likewise.
8477 (dump_implicit_edges): Likewise.
8478 (gimple_dump_bb_for_graph): Likewise.
8479 * graph.c (draw_cfg_node): Likewise.
8480 * langhooks.c (lhd_print_error_function): Likewise.
8481 * sched-vis.c (print_exp): Likewise.
8482 (print_value): Likewise.
8483 (print_pattern): Likewise.
8484 (print_insn): Likewise.
8485 (rtl_dump_bb_for_graph): Likewise.
8486 * tree-pretty-print.c (dump_function_declaration): Likewise.
8487 (dump_array_domain): Likewise.
8488 (dump_omp_clause): Likewise.
8489 (dump_location): Likewise.
8490 (dump_generic_node): Likewise.
8491 (print_struct_decl): Likewise.
8492 * diagnostic.c (diagnostic_show_locus): Use pp_space.
8493
bb0d2039
BS
84942013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
8495
8496 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
8497 candidate table when replacing a candidate statement.
8498 (replace_rhs_if_not_dup): Likewise.
8499 (replace_one_candidate): Likewise.
8500
bc0ec027 85012013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 8502 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
8503
8504 * cgraphunit.c (add_new_function): Fix logic when adding from
8505 late IPA pass.
8506 (assemble_thunk): Rename to ...
03b0ee0a
UB
8507 (expand_thunk); .. this one; export; get it working with
8508 general functions; make produced gimple valid.
bc0ec027
JH
8509 * cgraph.h (expand_thunk): Declare.
8510
0e8853ee
JH
85112013-08-02 Jan Hubicka <jh@suse.cz>
8512
03b0ee0a
UB
8513 * ipa-cp.c (gather_context_independent_values): Use
8514 ipa_get_param_move_cost.
8515 (get_replacement_map): Remove PARAM; move parameter folding
8516 into tree-inline.c
0e8853ee
JH
8517 (create_specialized_node): Update.
8518 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
8519 assert that we have gimple body; update move_cost.
8520 (count_formal_params): Assert that we have gimple body.
8521 (ipa_dump_param): New function.
8522 (ipa_alloc_node_params): Break out from ...
8523 (ipa_initialize_node_params): ... here.
8524 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
8525 (ipa_write_node_info): Stream move costs.
8526 (ipa_read_node_info): Read move costs.
8527 (ipa_update_after_lto_read): Do not recompute node params.
8528 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
8529 (ipa_get_param): Check we are not in WPA.
8530 (ipa_get_param_move_cost): New.
8531 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
8532 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
8533 parm numbers to be present.
8534
ecee672b
VM
85352013-08-02 Vladimir Makarov <vmakarov@redhat.com>
8536
8537 PR rtl-optimization/58048
8538 * lra-constraints.c (process_alt_operands): Don't check asm
8539 operand on register.
8540
13ec0527
EB
85412013-08-02 Eric Botcazou <ebotcazou@adacore.com>
8542
8543 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
8544 the implied StoreLoad barrier for atomic operations if before.
8545
af15184a
JH
85462013-08-02 Jan Hubicka <jh@suse.cz>
8547 Martin Liska <marxin.liska@gmail.com>
8548
03b0ee0a
UB
8549 * cgraph.c (cgraph_function_body_availability): Do not check
8550 cgraph flags.
af15184a
JH
8551 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
8552 symtab_node_availability): Declare.
8553 * ipa.c (can_replace_by_local_alias): New.
8554 (function_and_variable_visibility): Use it.
03b0ee0a
UB
8555 * symtab.c (symtab_for_node_and_aliases,
8556 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 8557
01e54ef8
VM
85582013-08-02 Vladimir Makarov <vmakarov@redhat.com>
8559
8560 PR rtl-optimization/57963
03b0ee0a 8561 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
8562 (lra_constraints): Use them.
8563
e2fd7ca7
SN
85642013-08-02 Sofiane Naci <sofiane.naci@arm.com>
8565
03b0ee0a
UB
8566 * config/arm/types.md (define_attr "type"): Add "load_acq"
8567 and "store_rel".
e2fd7ca7
SN
8568 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
8569 changes.
8570 (cortex_a53_store1): Likewise.
8571
0dcc26c3
JH
85722013-08-01 Jan Hubicka <jh@suse.cz>
8573
03b0ee0a
UB
8574 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
8575 partitions are not needed.
0dcc26c3 8576
0bd72901
UB
85772013-08-01 Uros Bizjak <ubizjak@gmail.com>
8578
8579 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
8580 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
8581 MAYBE_NON_Q_CLASS_P where appropriate.
8582
12123452
JH
85832013-08-01 Jan Hubicka <jh@suse.cz>
8584
8585 * cgraph.h (release_function_body): Declare.
8586 * tree.c (free_lang_data_in_decl): Free, parameters and return values
8587 of unused delcarations.
8588
ce852f9c
KT
85892013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8590
03b0ee0a
UB
8591 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
8592 RTL form when subtracting a constant.
ce852f9c 8593
c743b246
KT
85942013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8595
8596 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
8597 Generate canonical plus rtx with negated immediate instead of minus
8598 where appropriate.
8599 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
8600
c0c123ef
JH
86012013-08-01 Jan Hubicka <jh@suse.cz>
8602
8603 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
8604 (cgraph_release_function_body): Likewise.
8605 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
8606 * cgraph.h (cgrpah_node): Rename abstract_and_needed
8607 to used_as_abstract_origin.
8608 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
8609 symbols used as abstract origins.
8610 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
8611 * ipa.c (symtab_remove_unreachable_nodes): Recompute
8612 used_as_abstract_origin.
c0c123ef 8613 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
8614 used_as_abstract_origin; be ready for DECL_RESULT and
8615 DECL_ARGUMENTS to be NULL.
c0c123ef 8616
0bd72901
UB
8617 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
8618 for abstract functions.
8619 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
8620 real symbols.
c0c123ef 8621
1f029433
JH
86222013-08-01 Jan Hubicka <jh@suse.cz>
8623
8624 * profile.c (compute_value_histograms): Fix thinko.
8625
c451f4d6
SN
86262013-08-01 Sofiane Naci <sofiane.naci@arm.com>
8627
8628 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
8629 aarch-common-protos.h to extra_headers.
8630 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
8631 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
8632 * config/aarch64/t-aarch64 (aarch-common.o): Define.
8633
34b512f5
SN
86342013-08-01 Sofiane Naci <sofiane.naci@arm.com>
8635
8636 * config/aarch64/aarch64.md (define_attr "type"): Delete.
8637 Include "../arm/types.md". Define "type" attribute for all patterns.
8638 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
8639 attribute changes.
8640
d86e633a
MM
86412013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8642
8643 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
8644 to support power8 load fusion.
8645 (fusion_gpr_mem_load): Likewise.
8646
8647 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
8648
8649 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
8650 declarations for power8 load fusion.
8651 (emit_fusion_gpr_load): Likewise.
8652
8653 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8654 tuning for power8, turn on fusion mode by default. Turn on sign
8655 extending fusion mode if normal fusion mode is on, and we are at
8656 -O2 or -O3.
8657 (fusion_gpr_load_p): New function, return true if we can fuse an
8658 addis instruction with a dependent load to a GPR.
8659 (emit_fusion_gpr_load): Emit the instructions for power8 load
8660 fusion to GPRs.
8661
0bd72901 8662 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
8663 (VSX load fusion peepholes): New peepholes to fuse together an
8664 addi instruction with a VSX load instruction.
8665
8666 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
8667 peepholes to fuse an addis instruction with a load to a GPR base
8668 register. If we are supporting sign extending fusions, convert
8669 sign extending loads to zero extending loads and add an explicit
8670 sign extension.
8671
c3f35647
SN
86722013-07-31 Sofiane Naci <sofiane.naci@arm.com>
8673
8674 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
8675 aarch-common-protos.h to extra_headers.
8676 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
8677 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
8678 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
8679 (arm_no_early_alu_shift_dep): Likewise.
8680 (arm_no_early_alu_shift_value_dep): Likewise.
8681 (arm_no_early_mul_dep): Likewise.
8682 (arm_no_early_store_addr_dep): Likewise.
8683 (arm_mac_accumulator_is_mul_result): Likewise.
8684 (arm_mac_accumulator_is_result): Likewise.
c3f35647 8685 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
8686 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
8687 here to ...
c3f35647 8688 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
8689 (arm_no_early_alu_shift_dep): Likewise.
8690 (arm_no_early_alu_shift_value_dep): Likewise.
8691 (arm_no_early_mul_dep): Likewise.
8692 (arm_no_early_store_addr_dep): Likewise.
8693 (arm_mac_accumulator_is_mul_result): Likewise.
8694 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
8695 * config/arm/aarch-common-protos.h: ... here. New file.
8696 * config/arm/t-arm (aarch-common.o): Define.
8697
86982013-07-31 Sofiane Naci <sofiane.naci@arm.com>
8699
8700 * config/arm/arm.md: Include new file "types.md".
8701 (define_attr "type"): Move from here to ...
8702 (define_attr "mul32"): Likewise.
8703 (define_attr "mul64"): Likewise.
8704 * config/arm/types.md: ... here. New file.
8705
228c1313
SH
87062013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
8707
8708 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
8709 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
8710
d6e9046d 87112013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
8712
8713 * gen-pass-instances.awk: Fix offset of substr().
8714
a167b052
DM
87152013-07-31 David Malcolm <dmalcolm@redhat.com>
8716
8717 * Makefile.in (pass-instances.def): New.
8718 (passes.o): Replace dependency on passes.def with one on
8719 pass-instances.def
8720
8721 * gen-pass-instances.awk: New.
8722
8723 * passes.c (pass_manager::pass_manager): Use pass-instances.def
8724 rather than passes.def, updating local definition of NEXT_PASS
8725 macro to add an extra NUM parameter (currently unused).
8726
315f8c0e
DM
87272013-07-30 David Malcolm <dmalcolm@redhat.com>
8728
8729 * Makefile.in (PASS_MANAGER_H): New.
8730 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
8731 (passes.o): Likewise.
8732 (statistics.o): Likewise.
8733 (cgraphunit.o): Likewise.
8734 (context.o): Depend on PASS_MANAGER_H.
8735
8736 * pass_manager.h: New.
8737
8738 * cgraphunit.c (cgraph_add_new_function): Update for moves
8739 of globals to fields of pass_manager.
8740 (analyze_function): Likewise.
8741 (expand_function): Likewise.
8742 (ipa_passes): Likewise.
8743 (compile): Likewise.
8744
8745 * context.c (context::context): New.
8746 * context.h (context::context): New.
8747 (context::get_passes): New.
8748 (context::passes_): New.
8749
8750 * lto-cgraph.c (input_node): Update for moves of globals to
8751 fields of pass_manager.
8752
8753 * passes.c (all_passes): Remove, in favor of a field of the
8754 same name within the new class pass_manager.
8755 (all_small_ipa_passes): Likewise.
8756 (all_lowering_passes): Likewise.
8757 (all_regular_ipa_passes): Likewise.
8758 (all_late_ipa_passes): Likewise.
8759 (all_lto_gen_passes): Likewise.
8760 (passes_by_id): Likewise.
8761 (passes_by_id_size): Likewise.
8762 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
8763 the new class pass_manager.
8764 (set_pass_for_id): Convert to...
8765 (pass_manager::set_pass_for_id): ...method.
8766 (get_pass_for_id): Convert to...
8767 (pass_manager::get_pass_for_id): ...method.
8768 (register_one_dump_file): Move body of implementation into...
8769 (pass_manager::register_one_dump_file): ...here.
8770 (register_dump_files_1): Convert to...
8771 (pass_manager::register_dump_files_1): ...method.
8772 (register_dump_files): Convert to...
8773 (pass_manager::register_dump_files): ...method.
8774 (create_pass_tab): Update for moves of globals to fields of
8775 pass_manager.
8776 (dump_passes): Move body of implementation into...
8777 (pass_manager::dump_passes): ...here.
8778 (register_pass): Move body of implementation into...
8779 (pass_manager::register_pass): ...here.
8780 (init_optimization_passes): Convert into...
8781 (pass_manager::pass_manager): ...constructor for new
8782 pass_manager class, and initialize the pass_lists array.
8783 (check_profile_consistency): Update for moves of globals to
8784 fields of pass_manager.
8785 (dump_profile_report): Move body of implementation into...
8786 (pass_manager::dump_profile_report): ...here.
8787 (ipa_write_summaries_1): Update for moves of pass lists from
8788 being globals to fields of pass_manager.
8789 (ipa_write_optimization_summaries): Likewise.
8790 (ipa_read_summaries): Likewise.
8791 (ipa_read_optimization_summaries): Likewise.
8792 (execute_all_ipa_stmt_fixups): Likewise.
8793
8794 * statistics.c (statistics_fini): Update for moves of globals to
8795 fields of pass_manager.
8796
8797 * toplev.c (general_init): Replace call to
8798 init_optimization_passes with construction of the pass_manager
8799 instance.
8800
8801 * tree-pass.h (all_passes): Remove, in favor of a field of the
8802 same name within the new class pass_manager.
8803 (all_small_ipa_passes): Likewise.
8804 (all_lowering_passes): Likewise.
8805 (all_regular_ipa_passes): Likewise.
8806 (all_lto_gen_passes): Likewise.
8807 (all_late_ipa_passes): Likewise.
8808 (passes_by_id): Likewise.
8809 (passes_by_id_size): Likewise.
8810 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
8811 the new class pass_manager.
8812 (get_pass_for_id): Remove.
8813
02cab1c1
RE
88142013-07-30 Richard Earnshaw <rearnsha@arm.com>
8815
8816 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
8817 configs.
8818
b2d3f886
RE
88192013-07-30 Richard Earnshaw <rearnsha@arm.com>
8820
8821 * arm.md (mulhi3): New expand pattern.
8822
605e86fa
JH
88232013-07-30 Jan Hubicka <jh@suse.cz>
8824 Martin Liska <marxin.liska@gmail.com>
8825
8826 * profile.c (compute_value_histograms): Do not ICE when
8827 there is mismatch only on some counters.
8828
14a87636
ZC
88292013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8830
8831 PR rtl-optimization/57637
8832 * function.c (move_insn_for_shrink_wrap): Also check the
8833 GEN set of the LIVE problem for the liveness analysis
8834 if it exists, otherwise give up.
8835
0100cd3f
BS
88362013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
8837
8838 PR tree-optimization/57993
8839 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
8840 replaced statement in the candidate table.
8841 (phi_add_costs): Return infinite cost when the hidden basis does
8842 not dominate all phis on which the candidate is dependent.
8843 (replace_one_candidate): Record replaced statement in the
8844 candidate table.
8845
f0d811f7
JR
88462013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
8847
8848 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
8849 (ashlv2si3): New expander.
8850 (*ashlv2si3_i): New define_insn_and_split.
8851 * predicates.md (float_operation): Allow patterns with three
8852 basic sub-patterns.
8853
bba33211
JR
8854 PR rtl-optimization/58021
8855 * mode-switching.c (create_pre_exit): Always split off preceding
8856 insns if we are not at the basic block head.
8857
ff3f3951
MR
88582013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
8859
8860 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
8861 (UCLIBC_DYNAMIC_LINKER): New macro.
8862 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
8863 `-mnan=2008'.
8864 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
8865 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
8866 `-mnan=2008'.
8867 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
8868 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
8869 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
8870 for SF and DF modes. Use ieee_quad_format for TF mode.
8871 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
8872 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
8873 (mips_option_override): Handle `-mnan=legacy'.
8874 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
8875 `-mabs=2008' and `-mnan=2008'.
8876 (OPTION_DEFAULT_SPECS): Add "nan" default.
8877 (ASM_SPEC): Handle `-mnan='.
8878 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
8879 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
8880 comment accordingly.
8881 (neg<mode>2): Likewise.
8882 * config/mips/mips.opt (mabs, mnan): New options.
8883 * doc/install.texi (Configuration): Document `--with-nan=' option.
8884 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
8885 `-mnan=' options.
8886 (MIPS Options): Document them.
8887 * config.gcc <mips*-*-*>: Handle `--with-nan='.
8888 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
8889 * configure: Regenerate.
8890 * config.in: Regenerate.
8891
576e2f37
UB
88922013-07-29 Uros Bizjak <ubizjak@gmail.com>
8893
8894 * config/i386/i386.md (float post-reload splitters): Do not check
8895 for subregs of SSE registers.
8896
88972013-07-29 Uros Bizjak <ubizjak@gmail.com>
8898 H.J. Lu <hongjiu.lu@intel.com>
8899
8900 PR target/57954
8901 PR target/57988
8902 * config/i386/i386.md (post-reload splitter
8903 to avoid partial SSE reg dependency stalls): New pattern.
8904
a71f0749
DV
89052013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
8906
8907 * config/s390/s390.md ("movcc"): Swap load and store instructions.
8908
4c97f1cc
JR
89092013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
8910
8911 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
8912 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
8913
b0c733d8
CC
89142013-07-26 Cary Coutant <ccoutant@google.com>
8915
8916 * dwarf2out.c (die_checksum_ordered): Don't include template
8917 instantiations in signature.
8918 (is_template_parameter): New function.
8919 (is_template_instantiation): New function.
8920 (generate_skeleton_bottom_up): Don't include template instantiations
8921 in type unit DIE.
8922 (generate_skeleton): Likewise.
8923 (break_out_comdat_types): Move recursive call to break out nested
8924 types earlier.
8925 (prune_unused_types_mark_generic_parms_dies): Call
8926 is_template_parameter.
8927
040d8a1c
IB
89282013-07-26 Ian Bolton <ian.bolton@arm.com>
8929
8930 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
8931 uses vector registers.
89fdc743 8932 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 8933
85bd4ac6 89342013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 8935 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
8936
8937 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 8938 where appropriate.
85bd4ac6
KT
8939 * config/arm/arm.md (movcond_addsi): New splitter.
8940
b6051207
SA
89412013-07-25 Sterling Augustine <saugustine@google.com>
8942
8943 * dwarf2out.c (size_of_pubnames): Move code to...
8944 (include_pubname_in_output): ...here. New.
8945 (want_pubnames): Rearrange.
8946 (output_pubnames): Call include_pubname_in_output. Move assertion.
8947
41a7c215
CM
89482013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
8949
8950 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
8951
89522013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
8953
8954 PR target/38836
8955 * doc/extend.texi: Remove obsolete builtins. Fix
8956 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
8957
49bde175
JH
89582013-07-25 Jan Hubicka <jh@suse.cz>
8959
8960 * cgraph.c (release_function_body): Break out from ...
8961 (cgraph_release_function_body): ... this one; also release DECL_RESULT
8962 and DECL_ARGUMENTS.
8963 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
8964 old_tree in the map.
8965 (create_specialized_node): Update.
8966 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
8967 into index.
41a7c215
CM
8968 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
8969 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
8970 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
8971 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
8972 DECL_RESULT.
8973
4870352d
KT
89742013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8975
8976 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
8977 addsi3_carryin_alt2_<optab>): Correct output template.
8978
1d6aee1c
KT
89792013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8980
8981 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
8982 Adjust for arm_restrict_it.
8983 Remove trailing whitespace.
8984
c7cafd75
MK
89852013-07-25  Mark Kettenis  <kettenis@openbsd.org>
8986
017d38f5
MK
8987 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
8988 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
8989
c7cafd75
MK
8990 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
8991
00b7527b
VM
89922013-07-25 Vladimir Makarov <vmakarov@redhat.com>
8993
8994 PR rtl-optimization/57960
8995 * lra-constraints.c (process_alt_operands): Use the right mode
8996 when checking strict_low.
8997
4f63dfc6
JH
89982013-07-25 Jan Hubicka <jh@suse.cz>
8999
9000 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
9001 * cgraph.c (cgraph_remove_node): Do not release function body
9002 when in cgraph streaming.
9003 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
9004 in other partitions are not considered reachable; fix handling of
9005 clones.
4f63dfc6 9006
e6dcfa18
RR
90072013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9008
9009 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
9010
0b93d3b6
RR
90112013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9012
9013 PR target/19599
9014 PR target/57731
bb80c2eb 9015 PR target/57837
e6dcfa18 9016 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 9017 Ss with US. Adjust output for v5 and v4t.
41a7c215 9018 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 9019
0b93d3b6
RR
9020 * config/arm/constraints.md ("Ss"): Rename to US.
9021
690688b3
TG
90222013-07-25 Terry Guo <terry.guo@arm.com>
9023
9024 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
9025 shift_add/shift_sub0/shift_sub1 RTXs.
9026
a4ad093b 90272013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 9028 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
9029
9030 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
9031 (altivec_vpks<VI_char>ss): Likewise.
9032 (altivec_vpks<VI_char>us): Likewise.
9033 (altivec_vpku<VI_char>us): Likewise.
9034 (altivec_vpku<VI_char>um): Likewise.
9035
8c5005ce
DM
90362013-07-24 David Malcolm <dmalcolm@redhat.com>
9037
9038 Introduce context class.
9039
9040 * Makefile.in (CONTEXT_H): New.
9041 (OBJS): Add context.o.
9042 (toplev.o): Add CONTEXT_H to dependencies.
9043 (context.o): New.
9044
41a7c215 9045 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
9046
9047 * context.c: New.
9048
9049 * context.h: New.
9050
ce4a9422
JR
90512013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
9052
9053 PR rtl-optimization/57968
9054 * mode-switching.c (create_pre_exit): Allow instructions that
9055 don't set a return register to need a non-exit mode.
9056
493f4c9e 90572013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 9058 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 9059
b5860fd3
WS
9060 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
9061 operands to vperm for little endian.
9062 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
9063 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 9064
73792b92 90652013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 9066 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
9067
9068 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
9069 two operands for little-endian.
9070
14c21302
SE
90712013-07-23 Steve Ellcey <sellcey@mips.com>
9072
9073 * config/mips/mips.c (mips_case_values_threshold): New.
9074 (TARGET_CASE_VALUES_THRESHOLD): Define.
9075
a6056198 90762013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 9077 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
9078
9079 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
9080 selection of field for vector splat in little endian mode.
9081
dd7a40e1
MM
90822013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9083
9084 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
9085 expanders to rs6000.md.
9086 (ior<mode>3): Likewise.
9087 (and<mode>3): Likewise.
9088 (one_cmpl<mode>2): Likewise.
9089 (nor<mode>3): Likewise.
9090 (andc<mode>3): Likewise.
9091 (eqv<mode>3): Likewise.
9092 (nand<mode>3): Likewise.
9093 (orc<mode>3): Likewise.
9094
9095 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
9096 declaration.
9097
9098 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
9099 to split multi-word logical operations.
9100 (rs6000_split_logical_di): Likewise.
9101 (rs6000_split_logical): Likewise.
9102
9103 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
9104 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
9105 and allow TImode operations in 32-bit.
9106 (vsx_and<mode>3_64bit): Likewise.
9107 (vsx_ior<mode>3_32bit): Likewise.
9108 (vsx_ior<mode>3_64bit): Likewise.
9109 (vsx_xor<mode>3_32bit): Likewise.
9110 (vsx_xor<mode>3_64bit): Likewise.
9111 (vsx_one_cmpl<mode>2_32bit): Likewise.
9112 (vsx_one_cmpl<mode>2_64bit): Likewise.
9113 (vsx_nor<mode>3_32bit): Likewise.
9114 (vsx_nor<mode>3_64bit): Likewise.
9115 (vsx_andc<mode>3_32bit): Likewise.
9116 (vsx_andc<mode>3_64bit): Likewise.
9117 (vsx_eqv<mode>3_32bit): Likewise.
9118 (vsx_eqv<mode>3_64bit): Likewise.
9119 (vsx_nand<mode>3_32bit): Likewise.
9120 (vsx_nand<mode>3_64bit): Likewise.
9121 (vsx_orc<mode>3_32bit): Likewise.
9122 (vsx_orc<mode>3_64bit): Likewise.
9123
9124 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
9125 logical types in GPRs.
9126
9127 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
9128 logical insns to rs6000.md, and allow TImode operations in
9129 32-bit.
9130 (altivec_ior<mode>3): Likewise.
9131 (altivec_xor<mode>3): Likewise.
9132 (altivec_one_cmpl<mode>2): Likewise.
9133 (altivec_nor<mode>3): Likewise.
9134 (altivec_andc<mode>3): Likewise.
9135
9136 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
9137 attributes for moving the 128-bit logical operations into
9138 rs6000.md.
9139 (BOOL_REGS_OUTPUT): Likewise.
9140 (BOOL_REGS_OP1): Likewise.
9141 (BOOL_REGS_OP2): Likewise.
9142 (BOOL_REGS_UNARY): Likewise.
9143 (BOOL_REGS_AND_CR0): Likewise.
9144 (one_cmpl<mode>2): Add support for DI logical operations on
9145 32-bit, splitting the operations to 32-bit.
9146 (anddi3): Likewise.
9147 (iordi3): Likewise.
9148 (xordi3): Likewise.
9149 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
9150 changes to combine the 32/64-bit code, allow logical operations on
9151 TI mode in 32-bit, and to use similar match_operator patterns like
9152 scalar mode uses. Combine the Altivec and VSX code for logical
9153 operations, and move it here.
9154 (ior<mode>3, 128-bit types): Likewise.
9155 (xor<mode>3, 128-bit types): Likewise.
9156 (one_cmpl<mode>3, 128-bit types): Likewise.
9157 (nor<mode>3, 128-bit types): Likewise.
9158 (andc<mode>3, 128-bit types): Likewise.
9159 (eqv<mode>3, 128-bit types): Likewise.
9160 (nand<mode>3, 128-bit types): Likewise.
9161 (orc<mode>3, 128-bit types): Likewise.
9162 (and<mode>3_internal): Likewise.
9163 (bool<mode>3_internal): Likewise.
9164 (boolc<mode>3_internal1): Likewise.
9165 (boolc<mode>3_internal2): Likewise.
9166 (boolcc<mode>3_internal1): Likewise.
9167 (boolcc<mode>3_internal2): Likewise.
9168 (eqv<mode>3_internal1): Likewise.
9169 (eqv<mode>3_internal2): Likewise.
9170 (one_cmpl1<mode>3_internal): Likewise.
9171
12211b99 91722013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
9173
9174 * config/microblaze/microblaze.c (microblaze_expand_prologue):
9175 Rename flag_stack_usage to flag_stack_usage_info.
9176
12211b99 91772013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 9178
a5f257fd
ME
9179 * config/microblaze/sync.md: New file.
9180 * config/microblaze/microblaze.md: Include sync.md
9181 * config/microblaze/microblaze.c: Add print_operand 'y'.
9182 * config/microblaze/constraints.md: Add memory_contraint
9183 'Q' which is a single register.
450b0ebb 9184
49fba14f
EB
91852013-07-23 Eric Botcazou <ebotcazou@adacore.com>
9186
9187 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
9188
c7b3b99f
PCC
91892013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
9190
9191 * reload.c (find_reloads): Exit loop once we find this operand
9192 cannot be reloaded somehow for this alternative.
9193
9194 * reload.c (find_reloads): Exit loop once we find a hard register.
9195
9196 * rtlanal.c (computed_jump_p): Exit loop once we find label
9197 reference is used.
9198
9199 * i386.c (ix86_pad_returns): Exit loop after setting replace.
9200
9201 * cfgloopmanip.c (remove_path): Exit loop after setting
9202 irred_invalidated.
9203
9204 * gensupport.c (subst_dup): Avoid loop if code is not
9205 MATCH_DUP nor MATCH_OP_DUP.
9206
c8fbf1fa
NBJ
92072013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
9208
9209 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
9210
9259db42
YZ
92112013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9212
9213 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
9214 true for SP_REGNUM if mode == ptr_mode.
9215 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
9216 with value R0_REGNUM + 31.
9217
00edcfbe
YZ
92182013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9219
9220 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
9221 pad pointer-typed argument downward.
9222
43be9a95
YZ
92232013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9224
9225 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
9226 and __ILP32__ when the ILP32 model is in use.
9227
28514dda
YZ
92282013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9229
9230 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
9231 (aarch64_load_symref_appropriately): In the case of
9232 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
9233 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
9234 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
9235 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
9236 if 'mode' doesn't equal to 'ptr_mode'.
9237 (aarch64_output_mi_thunk): Add an assertion on the alignment of
9238 'vcall_offset'; change to call aarch64_emit_move differently depending
9239 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
9240 to calculate the upper bound of 'vcall_offset'.
9241 (aarch64_cannot_force_const_mem): Change to also return true if
9242 mode != ptr_mode.
9243 (aarch64_legitimize_reload_address): In the case of large
9244 displacements, add new local variable 'xmode' and an assertion
9245 based on it; change to use 'xmode' to generate the new rtx and
9246 reload.
9247 (aarch64_asm_trampoline_template): Change to generate the template
9248 differently depending on TARGET_ILP32 or not; change to use
9249 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
9250 (aarch64_trampoline_size): Removed.
9251 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
9252 and replace immediate literals with it. Change to use 'ptr_mode'
9253 instead of 'DImode' and call convert_memory_address if the mode
9254 of 'fnaddr' doesn't equal to 'ptr_mode'.
9255 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
9256 to output symbol.
9257 (aarch64_elf_asm_destructor): Likewise.
9258 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
9259 on TARGET_ILP32 instead of aarch64_trampoline_size.
9260 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
9261 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
9262 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
9263 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
9264 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
9265 (storewb_pair<GPI:mode>_<P:mode>): ... this.
9266 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
9267 depending on the value of 'mode'.
9268 (add_losym_<mode>): New.
9269 (ldr_got_small_<mode>): New, based on ldr_got_small.
9270 (ldr_got_small): Remove.
9271 (ldr_got_small_sidi): New.
9272 * config/aarch64/iterators.md (P): New.
9273 (PTR): Change to 'ptr_mode' in the condition.
9274
17a819cb
YZ
92752013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
9276
9277 * config.gcc (aarch64*-*-*): Support --with-abi.
9278 (aarch64*-*-elf): Support --with-multilib-list.
9279 (aarch64*-*-linux*): Likewise.
9280 (supported_defaults): Add abi to aarch64*-*-*.
9281 * configure.ac: Mention AArch64 for --with-multilib-list.
9282 * configure: Re-generated.
9283 * config/aarch64/biarchilp32.h: New file.
9284 * config/aarch64/biarchlp64.h: New file.
9285 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
9286 (ABI_SPEC): Ditto.
9287 (MULTILIB_DEFAULTS): Ditto.
9288 (DRIVER_SELF_SPECS): Ditto.
9289 (ASM_SPEC): Update to also substitute -mabi.
9290 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
9291 file whose name depends on -mabi= and -mbig-endian.
9292 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
9293 TARGET_ILP32.
9294 (POINTER_SIZE): New define.
9295 (POINTERS_EXTEND_UNSIGNED): Ditto.
9296 (enum aarch64_abi_type): New enumeration tag.
9297 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
9298 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
9299 (TARGET_ILP32): New define.
9300 * config/aarch64/aarch64.opt (mabi): New.
9301 (aarch64_abi): New.
9302 (ilp32, lp64): New values for -mabi.
9303 * config/aarch64/t-aarch64 (comma): New define.
9304 (MULTILIB_OPTIONS): Ditto.
9305 (MULTILIB_DIRNAMES): Ditto.
9306 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
9307 * doc/invoke.texi: Document -mabi for AArch64.
9308
9f9cbdce
GJL
93092013-07-23 Georg-Johann Lay <avr@gjlay.de>
9310
9311 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
9312
7061977b 93132013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 9314 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
9315
9316 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
9317 endianness when selecting field to splat.
9318
75a41878
EC
93192013-07-22 Eric Christopher <echristo@gmail.com>
9320
9321 * dwarf2out.c (die_odr_checksum): New function to use
9322 CHECKSUM_ macros and ULEB128 for DIE tag.
9323 (generate_type_signature): Use.
41a7c215 9324
38ae58ca
EB
93252013-07-22 Eric Botcazou <ebotcazou@adacore.com>
9326
9327 * config.gcc (sparc*-*-*): Accept leon3 processor.
9328 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
9329 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
9330 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
9331 * config/sparc/sparc.opt (enum processor_type): Add leon3.
9332 (mfix-ut699): Adjust comment.
9333 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
9334 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
9335 (CPP_CPU_SPEC): Likewise.
9336 (ASM_CPU_SPEC): Likewise.
9337 * config/sparc/sparc.c (leon3_cost): New constant.
9338 (sparc_option_override): Add leon3 support.
9339 (mem_ref): New function.
9340 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
9341 (sparc_do_work_around_errata): Look into the instruction in the delay
9342 slot and adjust accordingly. Add fix for the data cache nullify issues
9343 of the UT699. Change insertion position for the NOP.
9344 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
9345 (leon3_load): New reservation.
9346 (leon_store): Bump latency to 2.
9347 (grfpu): New automaton.
9348 (grfpu_alu): New unit.
9349 (grfpu_ds): Likewise.
9350 (leon_fp_alu): Adjust.
9351 (leon_fp_mult): Delete.
9352 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
9353 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
9354 * config/sparc/sparc.md (cpu): Add leon3.
9355 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
9356 (swapsi): Likewise.
9357 (atomic_test_and_set): Likewise.
9358 (ldstub): Likewise.
9359
04dfc6df
JU
93602013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
9361
9362 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
9363 default for R5900 targets.
9364 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
9365 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
9366 * config/mips/mips.c (mips_option_override): Report an error for
9367 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
9368 for -march=r5900 -mhard-float.
9369
c7b3b99f 93702013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
9371
9372 * df-problems.c (can_move_insns_across): Exit loop once we
9373 find a non-fixed, non-global register.
9374
9375 * ipa-pure-const.c (propagate_nothrow): Exit loop after
9376 setting can_throw.
9377
9378 * omega.c (omega_eliminate_red): Break after setting red_found.
9379 (omega_problem_has_red_equations): Similarly after setting found.
9380 (omega_query_variable): Similarly after setting coupled.
9381
9b6e6981
MP
93822013-07-22 Marek Polacek <polacek@redhat.com>
9383
9384 * gimplify.c: Don't include gimple.h twice.
9385
5e5f7673
KT
93862013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9387
9388 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
9389 instead of TARGET_THUMB1.
9390 (Pz): New constraint.
9391 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
9392 encodings.
9393 (compare_negsi_si): Likewise.
9394 (compare_addsi2_op0): Likewise.
9395 (compare_addsi2_op1): Likewise.
9396 (addsi3_carryin_<optab>): Likewise.
9397 (addsi3_carryin_alt2_<optab>): Likewise.
9398 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
9399 for arm_restrict_it.
9400 (subsi3_carryin): Likewise.
9401 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
9402 (minmax_arithsi): Disable for arm_restrict_it.
9403 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
9404 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
9405 (satsi_<SAT:code>_shift): Likewise.
9406 (arm_shiftsi3): Add alternative for 16-bit encoding.
9407 (arm32_movhf): Disable for arm_restrict_it.
9408 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
9409 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
9410
859abddd
SN
94112013-07-22 Sofiane Naci <sofiane.naci@arm.com>
9412
9413 * config/arm/arm.md (attribute "insn"): Delete.
9414 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
9415 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
9416 (not_shiftsi): Update for attribute change.
9417 (not_shiftsi_compare0): Likewise.
9418 (not_shiftsi_compare0_scratch): Likewise.
9419 (arm_one_cmplsi2): Likewise.
9420 (thumb1_one_cmplsi2): Likewise.
9421 (notsi_compare0): Likewise.
9422 (notsi_compare0_scratch): Likewise.
9423 (thumb1_movdi_insn): Likewise.
9424 (arm_movsi_insn): Likewise.
9425 (movhi_insn_arch4): Likewise.
9426 (movhi_bytes): Likewise.
9427 (arm_movqi_insn): Likewise.
9428 (thumb1_movqi_insn): Likewise.
9429 (arm32_movhf): Likewise.
9430 (thumb1_movhf): Likewise.
9431 (arm_movsf_soft_insn): Likewise.
9432 (thumb1_movsf_insn): Likewise.
9433 (thumb_movdf_insn): Likewise.
9434 (movsicc_insn): Likewise.
9435 (movsfcc_soft_insn): Likewise.
9436 (and_scc): Likewise.
9437 (cond_move): Likewise.
9438 (if_move_not): Likewise.
9439 (if_not_move): Likewise.
9440 (if_shift_move): Likewise.
9441 (if_move_shift): Likewise.
9442 (if_shift_shift): Likewise.
9443 (if_not_arith): Likewise.
9444 (if_arith_not): Likewise.
9445 (cond_move_not): Likewise.
9446 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
9447 (neon_mov<mode>): Likewise.
9448 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
9449 (thumb2_movsi_vfp): Likewise.
9450 (movsf_vfp): Likewise.
9451 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
9452 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
9453 change.
859abddd
SN
9454 (cortexa7_older_only): Likewise.
9455 (cortexa7_younger): Likewise.
9456 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
9457 (1020alu_shift_op): Likewise.
9458 (1020alu_shift_reg_op): Likewise.
9459 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
9460 (alu_shift_op): Likewise.
9461 (alu_shift_reg_op): Likewise.
9462 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
9463 (11_alu_shift_op): Likewise.
9464 (11_alu_shift_reg_op): Likewise.
9465 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
9466 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
9467 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
9468 change.
859abddd
SN
9469 (cortex_a15_alu_shift): Likewise.
9470 (cortex_a15_alu_shift_reg): Likewise.
9471 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
9472 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
9473 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
9474 change.
859abddd 9475 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
9476 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
9477 change.
859abddd
SN
9478 (cortex_a7_alu_reg): Likewise.
9479 (cortex_a7_alu_shift): Likewise.
9480 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
9481 (cortex_a8_alu_shift): Likewise.
9482 (cortex_a8_alu_shift_reg): Likewise.
9483 (cortex_a8_mov): Likewise.
9484 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
9485 (cortex_a9_dp_shift): Likewise.
9486 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
9487 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
9488 (cortex_r4_mov): Likewise.
9489 (cortex_r4_alu_shift): Likewise.
9490 (cortex_r4_alu_shift_reg): Likewise.
9491 * config/arm/fa526.md (526_alu_op): Update for attribute change.
9492 (526_alu_shift_op): Likewise.
9493 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
9494 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
9495 (626te_alu_shift_op): Likewise.
9496 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
9497 (726te_alu_op): Likewise.
9498 (726te_alu_shift_op): Likewise.
9499 (726te_alu_shift_reg_op): Likewise.
9500 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
9501 (mp626_alu_shift_op): Likewise.
9502 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
9503 (pj4_alu_e1_conds): Likewise.
9504 (pj4_alu): Likewise.
9505 (pj4_alu_conds): Likewise.
9506 (pj4_shift): Likewise.
9507 (pj4_shift_conds): Likewise.
9508 (pj4_alu_shift): Likewise.
9509 (pj4_alu_shift_conds): Likewise.
9510
95b97fac
KT
95112013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9512
9513 * config/arm/predicates.md (shiftable_operator_strict_it):
9514 New predicate.
9515 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
9516 Disable cond_exec version for arm_restrict_it.
9517 (thumb2_smaxsi3): Convert to generate cond_exec.
9518 (thumb2_sminsi3): Likewise.
9519 (thumb32_umaxsi3): Likewise.
9520 (thumb2_uminsi3): Likewise.
9521 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
9522 (thumb2_neg_abssi2): Likewise.
9523 (thumb2_mov_scc): Add alternative for 16-bit encoding.
9524 (thumb2_movsicc_insn): Adjust alternatives.
9525 (thumb2_mov_negscc): Disable for arm_restrict_it.
9526 (thumb2_mov_negscc_strict_it): New pattern.
9527 (thumb2_mov_notscc_strict_it): New pattern.
9528 (thumb2_mov_notscc): Disable for arm_restrict_it.
9529 (thumb2_ior_scc): Likewise.
9530 (thumb2_ior_scc_strict_it): New pattern.
9531 (thumb2_cond_move): Adjust for arm_restrict_it.
9532 (thumb2_cond_arith): Disable for arm_restrict_it.
9533 (thumb2_cond_arith_strict_it): New pattern.
9534 (thumb2_cond_sub): Adjust for arm_restrict_it.
9535 (thumb2_movcond): Likewise.
9536 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
9537 (thumb2_zero_extendhisi2_v6): Likewise.
9538 (thumb2_zero_extendqisi2_v6): Likewise.
9539 (orsi_notsi_si): Likewise.
9540 (orsi_not_shiftsi_si): Likewise.
9541
d5a6ef82
GJL
95422013-07-22 Georg-Johann Lay <avr@gjlay.de>
9543
9544 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
9545 instruction sequence is 1 byte shorter.
9546
d9e71154
UB
95472013-07-22 Uros Bizjak <ubizjak@gmail.com>
9548
9549 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
9550 it is not needed after split.
9551
8c6381ec
IS
95522013-07-20 Iain Sandoe <iain@codesourcery.com>
9553
9554 PR target/51784
9555 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
9556 second label for nonlocal goto receivers. Don't output pic base labels
9557 unless we're producing PIC; mark that action unreachable().
9558 (ix86_save_reg): If the function contains a nonlocal label, save the
9559 PIC base reg.
9560 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 9561 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
9562 (update_pic_label_number_if_needed): New.
9563 (machopic_output_function_base_name): Adjust for nonlocal receiver
9564 case.
9565 (machopic_should_output_picbase_label): New.
9566 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
9567 (nonlocal_goto_receiver): New insn and split.
9568
d05d0709
JG
95692013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
9570
9571 * config/aarch64/aarch64-builtins.c
9572 (aarch64_fold_builtin): Fold abs in all modes.
9573 * config/aarch64/aarch64-simd-builtins.def
9574 (abs): Enable for all modes.
9575 * config/aarch64/arm_neon.h
9576 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
9577 (vabs_f64): Add missing intrinsic.
9578
ba590e63
IB
95792013-07-19 Ian Bolton <ian.bolton@arm.com>
9580
9581 * config/aarch64/arm_neon.h (vabs_s64): New function
9582
02371798
GJL
95832013-07-19 Georg-Johann Lay <avr@gjlay.de>
9584
9585 PR target/57516
9586 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
9587 * config/avr/avr.md (adjust_len): Add `round'.
9588 * config/avr/avr-protos.h (avr_out_round): New prototype.
9589 (avr_out_plus): Add `out_label' argument.
9590 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
9591 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
9592 Handle the case where `insn' is just a pattern.
9593 (avr_out_bitop): Handle the case where `insn' is just a pattern.
9594 (avr_out_round): New function.
9595 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
9596
12211b99 95972013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
9598
9599 * config/microblaze/microblaze.c (microblaze_expand_prologue):
9600 Add check for flag_stack_usage to handle -fstack-usage support
9601
12211b99 96022013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
9603
9604 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
9605 interaction for new Power8 flags and VSX.
9606
df9dda2d
ST
96072013-07-18 Sriraman Tallam <tmsriram@google.com>
9608
9609 PR middle-end/57698
9610 * tree-inline.c (expand_call_inline): Emit errors during
9611 early_inlining only if optimization is not turned on.
9612
0f9cdef4
DM
96132013-07-18 David Malcolm <dmalcolm@redhat.com>
9614
9615 * passes.def: New.
9616
9617 * passes.c (init_optimization_passes): Move the construction of
9618 the pass hierarchy into a new passes.def file.
9619
9620 * Makefile.in (passes.o): Add dependency on passes.def.
9621
2efa4087
DM
96222013-07-18 David Malcolm <dmalcolm@redhat.com>
9623
9624 * passes.c (init_optimization_passes): Introduce macros for
9625 constructing the tree of passes (INSERT_PASSES_AFTER,
9626 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
9627 TERMINATE_PASS_LIST).
9628
bc404e1b
VM
96292013-07-18 Vladimir Makarov <vmakarov@redhat.com>
9630 Wei Mi <wmi@google.com>
9631
9632 PR rtl-optimization/57878
9633 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
9634 top.
9635 (reload_pseudo_compare_func): Check nregs first for reload
9636 pseudos.
9637
d675843f
DM
96382013-07-18 David Malcolm <dmalcolm@redhat.com>
9639
9640 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
9641
c7b3b99f 96422013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
9643
9644 * read-rtl.c (validate_const_int): Once an invalid character is
9645 seen, quit the loop.
9646
9647 * gengtype.c (write_roots): Similarly once we find the "deletable"
9648 or "if_marked" option.
9649
52fceb44
SN
96502013-07-18 Sofiane Naci <sofiane.naci@arm.com>
9651
9652 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
9653 "xtab" and "sat". Move value "clz" from here to ...
9654 (attriubte "type"): ... here.
9655 (satsi_<SAT:code>): Delete "insn" attribute.
9656 (satsi_<SAT:code>_shift): Likewise.
9657 (arm_zero_extendqisi2addsi): Likewise.
9658 (arm_extendqisi2addsi): Likewise.
9659 (clzsi2): Update for attribute changes.
9660 (rbitsi2): Likewise.
371e77e3
UB
9661 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
9662 attribute.
52fceb44
SN
9663 (arm_usatsihi): Likewise.
9664 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
9665
006bd006
SN
96662013-07-18 Sofiane Naci <sofiane.naci@arm.com>
9667
9668 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
9669 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
9670 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
9671 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
9672 in alphabetical order.
9673 (attribute "core_cycles"): Update for attribute changes.
9674 (arm_addsi3): Likewise.
9675 (addsi3_compare0): Likewise.
9676 (addsi3_compare0_scratch): Likewise.
9677 (addsi3_compare_op1): Likewise.
9678 (addsi3_compare_op2): Likewise.
9679 (compare_addsi2_op0): Likewise.
9680 (compare_addsi2_op1): Likewise.
9681 (addsi3_carryin_shift_<optab>): Likewise.
9682 (subsi3_carryin_shift): Likewise.
9683 (rsbsi3_carryin_shift): Likewise.
9684 (arm_subsi3_insn): Likewise.
9685 (subsi3_compare0): Likewise.
9686 (subsi3_compare): Likewise.
9687 (arm_andsi3_insn): Likewise.
9688 (thumb1_andsi3_insn): Likewise.
9689 (andsi3_compare0): Likewise.
9690 (andsi3_compare0_scratch): Likewise.
9691 (zeroextractsi_compare0_scratch
9692 (andsi_not_shiftsi_si): Likewise.
9693 (iorsi3_insn): Likewise.
9694 (iorsi3_compare0): Likewise.
9695 (iorsi3_compare0_scratch): Likewise.
9696 (arm_xorsi3): Likewise.
9697 (thumb1_xorsi3_insn): Likewise.
9698 (xorsi3_compare0): Likewise.
9699 (xorsi3_compare0_scratch): Likewise.
9700 (satsi_<SAT:code>_shift): Likewise.
9701 (rrx): Likewise.
9702 (arm_shiftsi3): Likewise.
9703 (shiftsi3_compare0): Likewise.
9704 (not_shiftsi): Likewise.
9705 (not_shiftsi_compare0): Likewise.
9706 (not_shiftsi_compare0_scratch): Likewise.
9707 (arm_one_cmplsi2): Likewise.
9708 (thumb_one_complsi2): Likewise.
9709 (notsi_compare0): Likewise.
9710 (notsi_compare0_scratch): Likewise.
9711 (thumb1_zero_extendhisi2): Likewise.
9712 (arm_zero_extendhisi2): Likewise.
9713 (arm_zero_extendhisi2_v6): Likewise.
9714 (arm_zero_extendhisi2addsi): Likewise.
9715 (thumb1_zero_extendqisi2): Likewise.
9716 (thumb1_zero_extendqisi2_v6): Likewise.
9717 (arm_zero_extendqisi2): Likewise.
9718 (arm_zero_extendqisi2_v6): Likewise.
9719 (arm_zero_extendqisi2addsi): Likewise.
9720 (thumb1_extendhisi2): Likewise.
9721 (arm_extendhisi2): Likewise.
9722 (arm_extendhisi2_v6): Likewise.
9723 (arm_extendqisi): Likewise.
9724 (arm_extendqisi_v6): Likewise.
9725 (arm_extendqisi2addsi): Likewise.
9726 (thumb1_extendqisi2): Likewise.
9727 (thumb1_movdi_insn): Likewise.
9728 (arm_movsi_insn): Likewise.
9729 (movsi_compare0): Likewise.
9730 (movhi_insn_arch4): Likewise.
9731 (movhi_bytes): Likewise.
9732 (arm_movqi_insn): Likewise.
9733 (thumb1_movqi_insn): Likewise.
9734 (arm32_movhf): Likewise.
9735 (thumb1_movhf): Likewise.
9736 (arm_movsf_soft_insn): Likewise.
9737 (thumb1_movsf_insn): Likewise.
9738 (movdf_soft_insn): Likewise.
9739 (thumb_movdf_insn): Likewise.
9740 (arm_cmpsi_insn): Likewise.
9741 (cmpsi_shiftsi): Likewise.
9742 (cmpsi_shiftsi_swp): Likewise.
9743 (arm_cmpsi_negshiftsi_si): Likewise.
9744 (movsicc_insn): Likewise.
9745 (movsfcc_soft_insn): Likewise.
9746 (arith_shiftsi): Likewise.
9747 (arith_shiftsi_compare0
9748 (arith_shiftsi_compare0_scratch
9749 (sub_shiftsi): Likewise.
9750 (sub_shiftsi_compare0
9751 (sub_shiftsi_compare0_scratch
9752 (and_scc): Likewise.
9753 (cond_move): Likewise.
9754 (if_plus_move): Likewise.
9755 (if_move_plus): Likewise.
9756 (if_move_not): Likewise.
9757 (if_not_move): Likewise.
9758 (if_shift_move): Likewise.
9759 (if_move_shift): Likewise.
9760 (if_shift_shift): Likewise.
9761 (if_not_arith): Likewise.
9762 (if_arith_not): Likewise.
9763 (cond_move_not): Likewise.
9764 (thumb1_ashlsi3): Set type attribute.
9765 (thumb1_ashrsi3): Likewise.
9766 (thumb1_lshrsi3): Likewise.
9767 (thumb1_rotrsi3): Likewise.
9768 (shiftsi3_compare0_scratch): Likewise.
9769 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
9770 (neon_mov<mode>): Likewise.
371e77e3
UB
9771 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
9772 attribute changes.
006bd006
SN
9773 (thumb2_movsi_insn): Likewise.
9774 (thumb2_cmpsi_neg_shiftsi): Likewise.
9775 (thumb2_extendqisi_v6): Likewise.
9776 (thumb2_zero_extendhisi2_v6): Likewise.
9777 (thumb2_zero_extendqisi2_v6): Likewise.
9778 (thumb2_shiftsi3_short): Likewise.
9779 (thumb2_addsi3_compare0_scratch): Likewise.
9780 (orsi_not_shiftsi_si): Likewise.
9781 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
9782 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
9783 changes.
9784 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
9785 (1020alu_shift_op): Likewise.
9786 (1020alu_shift_reg_op): Likewise.
9787 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
9788 (alu_shift_op): Likewise.
9789 (alu_shift_reg_op): Likewise.
9790 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
9791 (11_alu_shift_op): Likewise.
9792 (11_alu_shift_reg_op): Likewise.
9793 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
9794 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
9795 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
9796 changes.
006bd006
SN
9797 (cortex_a15_alu_shift): Likewise.
9798 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
9799 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
9800 changes.
006bd006
SN
9801 (cortex_a5_alu_shift): Likewise.
9802 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
9803 changes.
9804 (cortex_a53_alu_shift): Likewise.
9805 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
9806 changes.
9807 (cortex_a7_alu_reg): Likewise.
9808 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
9809 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
9810 changes.
006bd006
SN
9811 (cortex_a8_alu_shift): Likewise.
9812 (cortex_a8_alu_shift_reg): Likewise.
9813 (cortex_a8_mov): Likewise.
9814 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
9815 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
9816 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
9817 changes.
9818 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
9819 changes.
006bd006
SN
9820 (cortex_r4_mov): Likewise.
9821 (cortex_r4_alu_shift): Likewise.
9822 (cortex_r4_alu_shift_reg): Likewise.
9823 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
9824 (526_alu_shift_op): Likewise.
9825 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
9826 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
9827 (626te_alu_shift_op): Likewise.
9828 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
9829 (726te_alu_op): Likewise.
9830 (726te_alu_shift_op): Likewise.
9831 (726te_alu_shift_reg_op): Likewise.
9832 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
9833 (mp626_alu_shift_op): Likewise.
9834 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
9835 (pj4_alu_e1_conds): Likewise.
9836 (pj4_alu): Likewise.
9837 (pj4_alu_conds): Likewise.
9838 (pj4_shift): Likewise.
9839 (pj4_shift_conds): Likewise.
9840 (pj4_alu_shift): Likewise.
9841 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
9842 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
9843 changes.
006bd006
SN
9844 (cortexa7_older_only): Likewise.
9845 (cortexa7_younger): Likewise.
9846
651df1b2
DM
98472013-07-18 David Malcolm <dmalcolm@redhat.com>
9848
9849 * ipa-pure-const.c (generate_summary): Rename to...
9850 (pure_const_generate_summary): ... this.
9851
ea717bd7
IS
98522013-07-17 Iain Sandoe <iain@codesourcery.com>
9853
9854 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
9855
a1259a13
YR
98562013-07-17 Yvan Roux <yvan.roux@linaro.org>
9857
9858 PR target/57909
9859 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
9860 usage in HI mode.
9861
167f68ed
AK
98622013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9863
9864 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
9865 enabled without -march=zEC12.
9866 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
9867 flags to be set.
9868
f900a982
MR
98692013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
9870
9871 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
9872 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
9873 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
9874 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
9875 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
9876 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
9877 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
9878 ISA_HAS_FP4.
9879 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
9880 and ISA_HAS_NMADD3_NMSUB3.
9881 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
9882 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
9883 (nmsub4<mode>, nmsub3<mode>): Likewise.
9884 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
9885
d4ed27eb
MR
98862013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
9887
9888 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
9889 TARGET_MIPS5400 checking.
9890
7a5add18
PB
98912013-07-16 Jakub Jelinek <jakub@redhat.com>
9892 Peter Bergner <bergner@vnet.ibm.com>
9893
9894 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
9895 registers in the comment.
9896 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
9897 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
9898 rather than FIRST_PSEUDO_REGISTERS.
9899
99002013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
9901
9902 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
9903 enable extra ISA flags with TARGET_HTM.
9904
d2ab0929
MR
99052013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
9906
9907 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
9908 Fix comment typos.
9909
839c74bc
CH
99102013-07-15 Cong Hou <congh@google.com>
9911
9912 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
9913 in compare function for sorting.
9914
7a5add18 99152013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
9916
9917 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
9918 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
9919 * config/rs6000/rs6000.opt: Add -mhtm option.
9920 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
9921 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
9922 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
9923 __HTM__ if the HTM instructions are available.
9924 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
9925 htm_spr_reg_operand): New define_predicates.
9926 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
9927 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
9928 Include htm.md.
9929 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
9930 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
9931 HTM builtin functions.
9932 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
9933 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
9934 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
9935 (rs6000_builtin_mask_calculate): Likewise.
9936 (rs6000_option_override_internal): Likewise.
9937 (bdesc_htm): Add new HTM builtin support.
9938 (htm_spr_num): New function.
9939 (htm_spr_regno): Likewise.
9940 (rs6000_htm_spr_icode): Likewise.
9941 (htm_expand_builtin): Likewise.
9942 (htm_init_builtins): Likewise.
9943 (rs6000_expand_builtin): Add support for HTM builtin functions.
9944 (rs6000_init_builtins): Likewise.
371e77e3
UB
9945 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
9946 option.
0258b6e4
PB
9947 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
9948 (TARGET_HTM, MASK_HTM): Define macros.
9949 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
9950 (FIXED_REGISTERS): Likewise.
9951 (CALL_USED_REGISTERS): Likewise.
9952 (CALL_REALLY_USED_REGISTERS): Likewise.
9953 (REG_ALLOC_ORDER): Likewise.
9954 (enum reg_class): Likewise.
9955 (REG_CLASS_NAMES): Likewise.
9956 (REG_CLASS_CONTENTS): Likewise.
9957 (REGISTER_NAMES): Likewise.
9958 (ADDITIONAL_REGISTER_NAMES): Likewise.
9959 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
9960 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
9961 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
9962 * config/rs6000/htm.md: New file.
9963 * config/rs6000/htmintrin.h: New file.
9964 * config/rs6000/htmxlintrin.h: New file.
9965
87dd8ab0
MS
99662013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
9967
9968 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
9969 Define SYMBOL_TINY_GOT, update comment.
9970 * config/aarch64/aarch64.c
9971 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
9972 (aarch64_expand_mov_immediate): Likewise.
9973 (aarch64_print_operand): Likewise.
9974 (aarch64_classify_symbol): Likewise.
9975 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
9976 (ldr_got_tiny): Define.
9977
52d676b6
TG
99782013-07-13 Tobias Grosser <tobias@grosser.es>
9979
9980 PR tree-optimization/54094
9981 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
9982 scheduling dimension for the parallelism check from the polyhedral
9983 information in the AST.
9984 * graphite-dependences.c (carries_deps): Do not assume the schedule is
9985 in 2D + 1 form.
9986
286e8fc1
JM
99872013-07-13 Jason Merrill <jason@redhat.com>
9988
9989 * print-tree.c (debug_vec_tree): Use debug_raw.
9990 (debug_raw (vec<tree, va_gc> &)): New.
9991 (debug_raw (vec<tree, va_gc> *)): New.
9992 * tree.h: Declare them.
9993
e43257e8
BC
99942013-07-13 Bin Cheng <bin.cheng@arm.com>
9995
9996 * ifcvt.c (ifcvt_after_combine): New static variable.
9997 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
9998 for size.
9999 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
10000 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
10001 rest_of_handle_if_after_reload): Pass new argument for if_convert.
10002
da582d46
MR
100032013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
10004
10005 * config/mips/mips.c (mips_expand_call): Remove empty statement.
10006
18b0ea8f
MM
100072013-07-12 Michael Matz <matz@suse.de>
10008
10009 PR middle-end/55771
10010 * convert.c (convert_to_real): Reject non-float inner types.
10011
e4f0f84d
TB
100122013-07-12 Tejas Belagod <tejas.belagod@arm.com>
10013
10014 * config/aarch64/aarch64-protos.h
10015 (aarch64_simd_immediate_valid_for_move): Remove.
10016 * config/aarch64/aarch64.c (simd_immediate_info): New member.
10017 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
10018 cases.
10019 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
10020
76500022
SE
100212013-07-11 Steve Ellcey <sellcey@mips.com>
10022
10023 * config/mips/mips.c (mips_conditional_register_usage): Do not
10024 use t[0-7] registers in MIPS16 mode when optimizing for size.
10025
78039734
ST
100262013-07-11 Sriraman Tallam <tmsriram@google.com>
10027
10028 * config/i386/i386.c (dispatch_function_versions): Fix array
10029 indexing of function_version_info to match actual_versions.
10030
7b24b675
TJ
100312013-07-11 Teresa Johnson <tejohnson@google.com>
10032
10033 * vec.h (struct va_gc): Move release out-of-line.
10034 (va_gc::release): Call ggc_free on released vec.
10035
85d4cbb8
UW
100362013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10037
10038 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
10039 Require GOT register as additional operand in UNSPEC.
10040 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
10041 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
10042 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
10043 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
10044 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
10045 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
10046 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
10047
52b3f9e2
GJL
100482013-07-11 Georg-Johann Lay <avr@gjlay.de>
10049
10050 PR target/57631
10051 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
10052 name seen by assembler/linker rather if available.
10053
3f3e266e
AS
100542013-07-11 Andreas Schwab <schwab@suse.de>
10055
10056 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
10057
21231ca6
VM
100582013-07-10 Vladimir Makarov <vmakarov@redhat.com>
10059
371e77e3 10060 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 10061
d331d374
JM
100622013-07-10 Joseph Myers <joseph@codesourcery.com>
10063
673c2f63
JM
10064 * doc/tm.texi.in: Move hook documentation to ....
10065 * target.def: ... here.
10066
d331d374
JM
10067 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
10068 text on @hook line.
10069 * doc/tm.texi: Regenerate.
10070
dfeadaa0
PC
100712013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
10072
10073 PR c++/57869
10074 * doc/invoke.texi: Document -Wconditionally-supported.
10075
bb6f2bac
GJL
100762013-07-10 Georg-Johann Lay <avr@gjlay.de>
10077
10078 PR target/57844
10079 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
10080 of my_fp.
10081
5219b232
GJL
100822013-07-10 Georg-Johann Lay <avr@gjlay.de>
10083
10084 PR target/57506
10085 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
10086 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
10087 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
10088 Remove duplicate devices.
10089 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
10090 * config/avr/t-multilib: Regenerate.
10091 * config/avr/avr-tables.opt: Regenerate.
10092 * doc/avr-mmcu.texi: Regenerate.
10093
283045c0
GJL
100942013-07-10 Georg-Johann Lay <avr@gjlay.de>
10095
10096 PR target/56987
10097 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
10098
ceb2d59f 100992013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 10100
ceb2d59f
GS
10101 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
10102 the cost of MULT when optimizing for size.
10103
055e0a99
JBG
101042013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10105
10106 * config/cr16/cr16-protos.h: Don't include target.h.
10107
ef43e868
JM
101082013-07-09 Joseph Myers <joseph@codesourcery.com>
10109
10110 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
10111 adjust register size for TDmode and TFmode for VSX registers.
10112
4a283fdf
KT
101132013-07-08 Kai Tietz <ktietz@redhat.com>
10114
10115 PR target/56892
10116 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
10117 hook_bool_const_tree_true.
10118
2cf4c39e
AK
101192013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10120
10121 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
10122 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
10123 * config/s390/s390.md: Define FPR*_REGNUM constants.
10124 Fix FPR2_REGNUM constant (18 -> 17).
10125 ("*trunc<BFP:mode><DFP_ALL:mode>2")
10126 ("*trunc<DFP_ALL:mode><BFP:mode>2")
10127 ("trunc<BFP:mode><DFP_ALL:mode>2")
10128 ("trunc<DFP_ALL:mode><BFP:mode>2")
10129 ("*extend<BFP:mode><DFP_ALL:mode>2")
10130 ("*extend<DFP_ALL:mode><BFP:mode>2")
10131 ("extend<BFP:mode><DFP_ALL:mode>2")
10132 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
10133 FPR4_REGNUM.
10134
e6ac0270 101352013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 10136
6a2fa4b2 10137 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 10138
b89b22fc
AK
101392013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10140
10141 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
10142 and cfun_fpr_bit_p to cfun_fpr_save_p.
10143 (s390_frame_area, s390_register_info, s390_frame_info)
10144 (s390_emit_prologue, s390_emit_epilogue)
10145 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
10146 register numbers.
10147 * config/s390/s390.h: Define *_REGNUM macros for floating point
10148 register numbers.
10149
07f398aa
EB
101502013-07-08 Eric Botcazou <ebotcazou@adacore.com>
10151
10152 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
10153
75fefa91
PCC
101542013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
10155
10156 PR rtl-optimization/57786
10157 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
10158 and break out of the loop when it is set to false.
10159
046f1eee
JJ
101602013-07-08 Jakub Jelinek <jakub@redhat.com>
10161
8140c065
JJ
10162 PR target/57819
10163 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
10164 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
10165 (const_int 63)) 0)).
10166 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
10167 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
10168 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
10169
046f1eee
JJ
10170 PR rtl-optimization/57829
10171 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
10172 mask bits outside of mode are just sign-extension from mode to HWI.
10173
930b700b
MZ
101742013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
10175
10176 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
10177 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
10178 adjust_address instead of change_address to keep info about alignment.
10179 (emit_strmov): Remove.
10180 (emit_memmov): New function.
10181 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
10182 (expand_movmem_epilogue): Likewise and return updated rtx for
10183 destination.
10184 (expand_constant_movmem_prologue): Likewise and return updated rtx for
10185 destination and source.
10186 (decide_alignment): Refactor, handle vector_loop.
10187 (ix86_expand_movmem): Likewise.
10188 (ix86_expand_setmem): Likewise.
10189 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
10190
7b9d1bd8
UB
101912013-07-07 Uros Bizjak <ubizjak@gmail.com>
10192
10193 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
10194 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
10195
eabb5f48
UB
101962013-07-06 Uros Bizjak <ubizjak@gmail.com>
10197
10198 * config/i386/sse.md (sse_movlhps): Change alternative 3
10199 of operand 2 to "m".
10200
102012013-07-06 Uros Bizjak <ubizjak@gmail.com>
10202
10203 PR target/57807
10204 * config/i386/sse.md (iptr): New mode attribute.
10205 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
10206 (<sse>_vm<plusminus_insn><mode>3): Ditto.
10207 (<sse>_vmmul<mode>3): Ditto.
10208 (<sse>_vmdiv<mode>3): Ditto.
10209 (sse_vmrcpv4sf2): Ditto.
10210 (<sse>_vmsqrt<mode>2): Ditto.
10211 (sse_vmrsqrtv4sf2): Ditto.
10212 (<sse>_vm<code><mode>3): Ditto.
10213 (avx_vmcmp<mode>3): Ditto.
10214 (<sse>_vmmaskcmp<mode>3): Ditto.
10215 (<sse>_comi): Ditto.
10216 (<sse>_ucomi): Ditto.
10217 (*xop_vmfrcz_<mode>): Ditto.
10218 (*fmai_fmadd_<mode>): Ditto.
10219 (*fmai_fmsub_<mode>): Ditto.
10220 (*fmai_fnmadd_<mode>): Ditto.
10221 (*fmai_fnmsub_<mode>): Ditto.
10222 (*fma4i_vmfmadd_<mode>): Ditto.
10223 (*fma4i_vmfmsub_<mode>): Ditto.
10224 (*fma4i_vmfnmadd_<mode>): Ditto.
10225 (*fma4i_vmfnmsub_<mode>): Ditto.
10226 (*xop_vmfrcz_<mode>): Ditto.
10227 (sse_cvtps2pi): Ditto.
10228 (sse_cvttps2pi): Ditto.
10229 (sse_cvtss2si): Ditto.
10230 (sse_cvtss2si_2): Ditto.
10231 (sse_cvtss2siq_2): Ditto.
10232 (sse_cvttss2si): Ditto.
10233 (sse_cvttss2siq): Ditto.
10234 (sse_cvtsd2si): Ditto.
10235 (sse_cvtsd2si_2): Ditto.
10236 (sse_cvtsd2siq_2): Ditto.
10237 (sse_cvttsd2si): Ditto.
10238 (sse_cvttsd2siq): Ditto.
10239 (sse_cvtsd2ss): Ditto.
10240 (sse_cvtss2sd): Ditto.
10241 (avx2_pbroadcast<mode>): Ditto.
10242 (avx2_pbroadcast<mode>_1): Ditto.
10243 (*avx_vperm_broadcast_v4sf): Ditto.
10244
10245 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
10246 (sse_movlhps): Ditto.
10247 (sse_storehps): Ditto.
10248 (sse_loadhps): Ditto.
10249 (sse_storelps): Ditto.
10250 (sse_loadlps): Ditto.
10251 (*vec_concatv4sf): Ditto.
10252 (*vec_interleave_highv2df): Ditto.
10253 (*vec_interleave_lowv2df): Ditto.
10254 (*vec_extractv2df_1_sse): Ditto.
10255 (*vec_extractv2df_0_sse): Ditto.
10256 (sse2_storelpd): Ditto.
10257 (sse2_loadlpd): Ditto.
10258 (sse2_movsd): Ditto.
10259 (*vec_concatv4si): Ditto.
10260 (vec_concatv2di): Ditto.
10261
10262 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
10263 for Intel asm dialect.
10264 (mmx_punpcklwd): Ditto.
10265 (mmx_punpckldq): Ditto.
10266
10267 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
10268 for intel assembler dialect.
10269
1f6eac90
JJ
102702013-07-06 Jakub Jelinek <jakub@redhat.com>
10271
10272 PR target/29776
10273 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
10274 for BUILT_IN_C{LZ,LRSB}*.
10275 * tree.h (CASE_INT_FN): Add FN##IMAX case.
10276 * tree-vrp.c (extract_range_basic): Handle
10277 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
10278 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
10279 fall thru to code calling set_value*.
10280 * builtins.c (expand_builtin): Remove *IMAX cases.
10281 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
10282 if width is bigger than 2*HWI.
10283
2b778c9d
VM
102842013-07-05 Vladimir Makarov <vmakarov@redhat.com>
10285
10286 PR rtl-optimization/55342
10287 * lra-int.h (lra_subreg_reload_pseudos): New.
10288 * lra.c: Add undoing optional reloads to the block diagram.
10289 (lra_subreg_reload_pseudos): New.
10290 (lra_optional_reload_pseudos): Change comments.
10291 (lra): Init and clear lra_subreg_reload_pseudos. Clear
10292 lra_optional_reload_pseudos after undo transformations.
10293 * lra-assigns.c (pseudo_prefix_title): New.
10294 (lra_setup_reg_renumber): Use it.
10295 (spill_for): Ditto. Check subreg reload pseudos too.
10296 (assign_by_spills): Consider subreg reload pseudos too.
10297 * lra-constraints.c (simplify_operand_subreg): Use
10298 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
10299 (curr_insn_transform): Recognize and do optional reloads.
10300 (undo_optional_reloads): New.
10301 (lra_undo_inheritance): Call undo_optional_reloads.
10302
207156e4
TQ
103032013-07-05 Thomas Quinot <quinot@adacore.com>
10304
10305 * tree-complex.c (expand_complex_operations_1): Fix typo.
10306
8990e73a
TB
103072013-07-04 Tejas Belagod <tejas.belagod@arm.com>
10308
10309 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
10310 (tune_params): New member 'const vec_costs'.
10311 * config/aarch64/aarch64.c (generic_vector_cost): New.
10312 (generic_tunings): New member 'generic_vector_cost'.
10313 (aarch64_builtin_vectorization_cost): New.
10314 (aarch64_add_stmt_cost): New.
10315 (TARGET_VECTORIZE_ADD_STMT_COST): New.
10316 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
10317
f7bc421d
JJ
103182013-07-03 Jakub Jelinek <jakub@redhat.com>
10319
10320 PR target/57777
10321 * config/i386/predicates.md (vsib_address_operand): Disallow
10322 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
10323
e90d1568
HPN
103242013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
10325
10326 PR middle-end/55030
10327 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
10328 expand_builtin_setjmp_receiver.
10329 (expand_label): Adjust, call expand_builtin_setjmp_receiver
10330 with NULL for the label parameter.
10331 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
10332 the frame-pointer. Adjust comments.
10333 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
10334 only if LABEL is non-NULL.
10335
cbd7413b
YZ
103362013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
10337
10338 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
10339 (ARM_ABI_AAPCS64): Ditto.
10340 (arm_abi): Ditto.
10341 (ARM_DEFAULT_ABI): Ditto.
10342
dec11868
JG
103432013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
10344
10345 * config/aarch64/aarch64-builtins.c
10346 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
10347 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
10348 (st1): Likewise.
10349 * config/aarch64/aarch64-simd.md
10350 (aarch64_ld1<VALL:mode>): New.
10351 (aarch64_st1<VALL:mode>): Likewise.
10352 * config/aarch64/arm_neon.h
10353 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
10354
786fb9b6
ST
103552013-07-02 Sriraman Tallam <tmsriram@google.com>
10356
0ba6aff3
UB
10357 * config/i386/i386.c (gate_insert_vzeroupper): Check if
10358 target ISA is AVX.
786fb9b6
ST
10359 (ix86_option_override_internal):Turn on all -mavx target flags by
10360 default as they are dependent on AVX anyway.
10361
4b043553
CC
103622013-07-02 Cary Coutant <ccoutant@google.com>
10363
10364 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
10365 deterministic hash.
10366 (loc_checksum_ordered): Likewise.
10367 (hash_loc_operands): Remove inline keyword.
10368
c4e87a13
JJ
103692013-07-02 Jakub Jelinek <jakub@redhat.com>
10370
10371 PR tree-optimization/57741
10372 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
10373 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
10374 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
10375 Allow REAL_CST step_exprs if flag_associative_math.
10376 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
10377
26366d28
IB
103782013-07-02 Ian Bolton <ian.bolton@arm.com>
10379
0ba6aff3 10380 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 10381
2879bb2b
IB
103822013-07-02 Ian Bolton <ian.bolton@arm.com>
10383
10384 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
10385
afc5e8a6
KT
103862013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10387
10388 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
10389 encoding.
10390 (iorsi3_insn): Likewise.
10391 (arm_xorsi3): Likewise.
10392
31f8442b
SN
103932013-07-01 Sofiane Naci <sofiane.naci@arm.com>
10394
10395 * arm.md (attribute "wtype"): Delete. Move attribute values from here
10396 to ...
10397 (attribute "type"): ... here, and prefix with "wmmx_".
10398 (attribute "core_cycles"): Update for attribute changes.
10399 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
10400 (tbcstv4hi): Likewise.
10401 (tbcstv2si): Likewise.
10402 (iwmmxt_iordi3): Likewise.
10403 (iwmmxt_xordi3): Likewise.
10404 (iwmmxt_anddi3): Likewise.
10405 (iwmmxt_nanddi3): Likewise.
10406 (iwmmxt_arm_movdi): Likewise.
10407 (iwmmxt_movsi_insn): Likewise.
10408 (mov<mode>_internal): Likewise.
10409 (and<mode>3_iwmmxt): Likewise.
10410 (ior<mode>3_iwmmxt): Likewise.
10411 (xor<mode>3_iwmmxt): Likewise.
10412 (add<mode>3_iwmmxt): Likewise.
10413 (ssaddv8qi3): Likewise.
10414 (ssaddv4hi3): Likewise.
10415 (ssaddv2si3): Likewise.
10416 (usaddv8qi3): Likewise.
10417 (usaddv4hi3): Likewise.
10418 (usaddv2si3): Likewise.
10419 (sub<mode>3_iwmmxt): Likewise.
10420 (sssubv8qi3): Likewise.
10421 (sssubv4hi3): Likewise.
10422 (sssubv2si3): Likewise.
10423 (ussubv8qi3): Likewise.
10424 (ussubv4hi3): Likewise.
10425 (ussubv2si3): Likewise.
10426 (mulv4hi3_iwmmxt): Likewise.
10427 (smulv4hi3_highpart): Likewise.
10428 (umulv4hi3_highpart): Likewise.
10429 (iwmmxt_wmacs): Likewise.
10430 (iwmmxt_wmacsz): Likewise.
10431 (iwmmxt_wmacu): Likewise.
10432 (iwmmxt_wmacuz): Likewise.
10433 (iwmmxt_clrdi): Likewise.
10434 (iwmmxt_clrv8qi): Likewise.
10435 (iwmmxt_clr4hi): Likewise.
10436 (iwmmxt_clr2si): Likewise.
10437 (iwmmxt_uavgrndv8qi3): Likewise.
10438 (iwmmxt_uavgrndv4hi3): Likewise.
10439 (iwmmxt_uavgv8qi3): Likewise.
10440 (iwmmxt_uavgv4hi3): Likewise.
10441 (iwmmxt_tinsrb): Likewise.
10442 (iwmmxt_tinsrh): Likewise.
10443 (iwmmxt_tinsrw): Likewise.
10444 (iwmmxt_textrmub): Likewise.
10445 (iwmmxt_textrmsb): Likewise.
10446 (iwmmxt_textrmuh): Likewise.
10447 (iwmmxt_textrmsh): Likewise.
10448 (iwmmxt_textrmw): Likewise.
10449 (iwmxxt_wshufh): Likewise.
10450 (eqv8qi3): Likewise.
10451 (eqv4hi3): Likewise.
10452 (eqv2si3): Likewise.
10453 (gtuv8qi3): Likewise.
10454 (gtuv4hi3): Likewise.
10455 (gtuv2si3): Likewise.
10456 (gtv8qi3): Likewise.
10457 (gtv4hi3): Likewise.
10458 (gtv2si3): Likewise.
10459 (smax<mode>3_iwmmxt): Likewise.
10460 (umax<mode>3_iwmmxt): Likewise.
10461 (smin<mode>3_iwmmxt): Likewise.
10462 (umin<mode>3_iwmmxt): Likewise.
10463 (iwmmxt_wpackhss): Likewise.
10464 (iwmmxt_wpackwss): Likewise.
10465 (iwmmxt_wpackdss): Likewise.
10466 (iwmmxt_wpackhus): Likewise.
10467 (iwmmxt_wpackwus): Likewise.
10468 (iwmmxt_wpackdus): Likewise.
10469 (iwmmxt_wunpckihb): Likewise.
10470 (iwmmxt_wunpckihh): Likewise.
10471 (iwmmxt_wunpckihw): Likewise.
10472 (iwmmxt_wunpckilb): Likewise.
10473 (iwmmxt_wunpckilh): Likewise.
10474 (iwmmxt_wunpckilw): Likewise.
10475 (iwmmxt_wunpckehub): Likewise.
10476 (iwmmxt_wunpckehuh): Likewise.
10477 (iwmmxt_wunpckehuw): Likewise.
10478 (iwmmxt_wunpckehsb): Likewise.
10479 (iwmmxt_wunpckehsh): Likewise.
10480 (iwmmxt_wunpckehsw): Likewise.
10481 (iwmmxt_wunpckelub): Likewise.
10482 (iwmmxt_wunpckeluh): Likewise.
10483 (iwmmxt_wunpckeluw): Likewise.
10484 (iwmmxt_wunpckelsb): Likewise.
10485 (iwmmxt_wunpckelsh): Likewise.
10486 (iwmmxt_wunpckelsw): Likewise.
10487 (ror<mode>3): Likewise.
10488 (ashr<mode>3_iwmmxt): Likewise.
10489 (lshr<mode>3_iwmmxt): Likewise.
10490 (ashl<mode>3_iwmmxt): Likewise.
10491 (ror<mode>3_di): Likewise.
10492 (ashr<mode>3_di): Likewise.
10493 (lshr<mode>3_di): Likewise.
10494 (ashl<mode>3_di): Likewise.
10495 (iwmmxt_wmadds): Likewise.
10496 (iwmmxt_wmaddu): Likewise.
10497 (iwmmxt_tmia): Likewise.
10498 (iwmmxt_tmiaph): Likewise.
10499 (iwmmxt_tmiabb): Likewise.
10500 (iwmmxt_tmiatb): Likewise.
10501 (iwmmxt_tmiabt): Likewise.
10502 (iwmmxt_tmiatt): Likewise.
10503 (iwmmxt_tmovmskb): Likewise.
10504 (iwmmxt_tmovmskh): Likewise.
10505 (iwmmxt_tmovmskw): Likewise.
10506 (iwmmxt_waccb): Likewise.
10507 (iwmmxt_wacch): Likewise.
10508 (iwmmxt_waccw): Likewise.
10509 (iwmmxt_waligni): Likewise.
10510 (iwmmxt_walignr): Likewise.
10511 (iwmmxt_walignr0): Likewise.
10512 (iwmmxt_walignr1): Likewise.
10513 (iwmmxt_walignr2): Likewise.
10514 (iwmmxt_walignr3): Likewise.
10515 (iwmmxt_wsadb): Likewise.
10516 (iwmmxt_wsadh): Likewise.
10517 (iwmmxt_wsadbz): Likewise.
10518 (iwmmxt_wsadhz): Likewise.
10519 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
10520 (iwmmxt_wabsdiffb): Likewise.
10521 (iwmmxt_wabsdiffh): Likewise.
10522 (iwmmxt_wabsdiffw): Likewise.
10523 (iwmmxt_waddsubhx): Likewise
10524 (iwmmxt_wsubaddhx): Likewise.
10525 (addc<mode>3): Likewise.
10526 (iwmmxt_avg4): Likewise.
10527 (iwmmxt_avg4r): Likewise.
10528 (iwmmxt_wmaddsx): Likewise.
10529 (iwmmxt_wmaddux): Likewise.
10530 (iwmmxt_wmaddsn): Likewise.
10531 (iwmmxt_wmaddun): Likewise.
10532 (iwmmxt_wmulwsm): Likewise.
10533 (iwmmxt_wmulwum): Likewise.
10534 (iwmmxt_wmulsmr): Likewise.
10535 (iwmmxt_wmulumr): Likewise.
10536 (iwmmxt_wmulwsmr): Likewise.
10537 (iwmmxt_wmulwumr): Likewise.
10538 (iwmmxt_wmulwl): Likewise.
10539 (iwmmxt_wqmulm): Likewise.
10540 (iwmmxt_wqmulwm): Likewise.
10541 (iwmmxt_wqmulmr): Likewise.
10542 (iwmmxt_wqmulwmr): Likewise.
10543 (iwmmxt_waddbhusm): Likewise.
10544 (iwmmxt_waddbhusl): Likewise.
10545 (iwmmxt_wqmiabb): Likewise.
10546 (iwmmxt_wqmiabt): Likewise.
10547 (iwmmxt_wqmiatb): Likewise.
10548 (iwmmxt_wqmiatt): Likewise.
10549 (iwmmxt_wqmiabbn): Likewise.
10550 (iwmmxt_wqmiabtn): Likewise.
10551 (iwmmxt_wqmiatbn): Likewise.
10552 (iwmmxt_wqmiattn): Likewise.
10553 (iwmmxt_wmiabb): Likewise.
10554 (iwmmxt_wmiabt): Likewise.
10555 (iwmmxt_wmiatb): Likewise.
10556 (iwmmxt_wmiatt): Likewise.
10557 (iwmmxt_wmiabbn): Likewise.
10558 (iwmmxt_wmiabtn): Likewise.
10559 (iwmmxt_wmiatbn): Likewise.
10560 (iwmmxt_wmiattn): Likewise.
10561 (iwmmxt_wmiawbb): Likewise.
10562 (iwmmxt_wmiawbt): Likewise.
10563 (iwmmxt_wmiawtb): Likewise.
10564 (iwmmxt_wmiawtt): Likewise.
10565 (iwmmxt_wmiawbbn): Likewise.
10566 (iwmmxt_wmiawbtn): Likewise.
10567 (iwmmxt_wmiawtbn): Likewise.
10568 (iwmmxt_wmiawttn): Likewise.
10569 (iwmmxt_wmerge): Likewise.
10570 (iwmmxt_tandc<mode>3): Likewise.
10571 (iwmmxt_torc<mode>3): Likewise.
10572 (iwmmxt_torvsc<mode>3): Likewise.
10573 (iwmmxt_textrc<mode>3): Likewise.
10574 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
10575 (wmmxt_pack): Likewise.
10576 (wmmxt_mult_c1): Likewise.
10577 (wmmxt_mult_c2): Likewise.
10578 (wmmxt_alu_c1): Likewise.
10579 (wmmxt_alu_c2): Likewise.
10580 (wmmxt_alu_c3): Likewise.
10581 (wmmxt_transfer_c1): Likewise.
10582 (wmmxt_transfer_c2): Likewise.
10583 (wmmxt_transfer_c3): Likewise.
10584 (marvell_f_iwmmxt_wstr): Likewise.
10585 (marvell_f_iwmmxt_wldr): Likewise.
10586
bdb7bf8a
YZ
105872013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
10588
0ba6aff3 10589 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 10590
e6631d38
VM
105912013-06-28 Vladimir Makarov <vmakarov@redhat.com>
10592
10593 Revert:
10594 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
10595 * lra-constraints.c (need_for_split_p): Check call used hard regs
10596 living through calls.
10597
10598 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
10599 call used regs for call insn.
10600
53c1275b
JJ
106012013-06-28 Jakub Jelinek <jakub@redhat.com>
10602
10603 PR target/57736
0ba6aff3
UB
10604 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
10605 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 10606
1141ed3f
BI
106072013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
10608
10609 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 10610
e32e4c4a
VM
106112013-06-28 Vladimir Makarov <vmakarov@redhat.com>
10612
10613 * lra-constraints.c (need_for_split_p): Check call used hard regs
10614 living through calls.
10615
f161bfd3
MM
106162013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
10617
10618 PR target/57744
10619 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
10620 to tie with any other modes. Eliminate Altivec vector mode tests,
10621 since these are a subset of ALTIVEC or VSX vector modes. Simplify
10622 code, to return 0 if testing MODE2 for a condition, if we've
10623 already tested MODE1 for the same condition.
10624
7eda14e1
MS
106252013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
10626
10627 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
10628 layout.
10629
c822f852
MS
106302013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
10631
10632 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
10633 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
10634
da4f13a4
MS
106352013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
10636
0ba6aff3
UB
10637 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
10638 Define.
da4f13a4
MS
10639 (aarch64_symbolic_constant_p): Remove.
10640 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
10641 static. Fix line length and white space.
10642 (aarch64_symbolic_constant_p): Remove.
10643 * config/aarch64/predicates.md (aarch64_valid_symref):
10644 Use aarch64_classify_symbol_expression.
10645
956a95a5
KT
106462013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10647
10648 * config/arm/constraints.md (Ts): New constraint.
10649 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
10650 16-bit encodings.
10651 (compare_scc): Use "Ts" constraint for operand 0.
10652 (ior_scc_scc): Likewise.
10653 (and_scc_scc): Likewise.
10654 (and_scc_scc_nodom): Likewise.
10655 (ior_scc_scc_cmp): Likewise for operand 7.
10656 (and_scc_scc_cmp): Likewise.
10657 * config/arm/thumb2.md (thumb2_movsi_insn):
10658 Add alternatives for 16-bit encodings.
10659 (thumb2_movhi_insn): Likewise.
10660 (thumb2_movsicc_insn): Likewise.
10661 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
10662 (thumb2_negscc): Use "Ts" constraint.
10663 Move mvn instruction outside cond_exec block.
10664 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
10665 for 16-bit encodings.
10666
31dfce10
KT
106672013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10668
10669 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
10670 encoding.
10671 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
10672 (mulsi3subsi): Likewise.
10673 (mulsidi3adddi): Likewise.
10674 (mulsidi3_v6): Likewise.
10675 (umulsidi3_v6): Likewise.
10676 (umulsidi3adddi_v6): Likewise.
10677 (smulsi3_highpart_v6): Likewise.
10678 (umulsi3_highpart_v6): Likewise.
10679 (mulhisi3tb): Likewise.
10680 (mulhisi3bt): Likewise.
10681 (mulhisi3tt): Likewise.
10682 (maddhisi4): Likewise.
10683 (maddhisi4tb): Likewise.
10684 (maddhisi4tt): Likewise.
10685 (maddhidi4): Likewise.
10686 (maddhidi4tb): Likewise.
10687 (maddhidi4tt): Likewise.
10688 (zeroextractsi_compare0_scratch): Likewise.
10689 (insv_zero): Likewise.
10690 (insv_t2): Likewise.
10691 (anddi_notzesidi_di): Likewise.
10692 (anddi_notsesidi_di): Likewise.
10693 (andsi_notsi_si): Likewise.
10694 (iordi_zesidi_di): Likewise.
10695 (xordi_zesidi_di): Likewise.
10696 (andsi_iorsi3_notsi): Likewise.
10697 (smax_0): Likewise.
10698 (smax_m1): Likewise.
10699 (smin_0): Likewise.
10700 (not_shiftsi): Likewise.
10701 (unaligned_loadsi): Likewise.
10702 (unaligned_loadhis): Likewise.
10703 (unaligned_loadhiu): Likewise.
10704 (unaligned_storesi): Likewise.
10705 (unaligned_storehi): Likewise.
10706 (extv_reg): Likewise.
10707 (extzv_t2): Likewise.
10708 (divsi3): Likewise.
10709 (udivsi3): Likewise.
10710 (arm_zero_extendhisi2addsi): Likewise.
10711 (arm_zero_extendqisi2addsi): Likewise.
10712 (compareqi_eq0): Likewise.
10713 (arm_extendhisi2_v6): Likewise.
10714 (arm_extendqisi2addsi): Likewise.
10715 (arm_movt): Likewise.
10716 (thumb2_ldrd): Likewise.
10717 (thumb2_ldrd_base): Likewise.
10718 (thumb2_ldrd_base_neg): Likewise.
10719 (thumb2_strd): Likewise.
10720 (thumb2_strd_base): Likewise.
10721 (thumb2_strd_base_neg): Likewise.
10722 (arm_negsi2): Add alternative for 16-bit encoding.
10723 (arm_one_cmplsi2): Likewise.
10724
1572e697
KT
107252013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10726
10727 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
10728 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
10729 (movdfcc): Likewise.
10730 * config/arm/vfp.md (*thumb2_movsf_vfp):
10731 Disable predication for arm_restrict_it.
10732 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
10733 (*thumb2_movdfcc_vfp): Likewise.
10734 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
10735 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
10736 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
10737 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
10738 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
10739 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
10740 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
10741 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
10742 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
10743 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
10744 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
10745 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
10746 Disable predication for arm_restrict_it.
10747
ebf8f0ea
KY
107482013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
10749
10750 * config/i386/bmiintrin.h (_bextr_u32): New.
10751 (_bextr_u64): Ditto.
10752
a290fcda
RS
107532013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
10754
10755 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
10756 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
10757 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
10758 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
10759 * config/mips/n32-elf.h: ...this new file.
10760
ea169996
MG
107612013-06-27 Marc Glisse <marc.glisse@inria.fr>
10762
10763 PR target/57224
10764 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
10765 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
10766
12211b99 107672013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
10768
10769 * config/mips/mips-tables.opt: Regenerate.
10770 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 10771 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 10772 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 10773
2444244e
JJ
107742013-06-27 Jakub Jelinek <jakub@redhat.com>
10775
cd06d2a2
JJ
10776 PR target/57623
10777 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
10778 constraints of operand 1 and 2.
10779
2444244e
JJ
10780 PR target/57623
10781 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
10782 to match RTL canonicalization. Swap predicates and
10783 constraints of operand 1 and 2.
10784
2f259720
VM
107852013-06-27 Vladimir Makarov <vmakarov@redhat.com>
10786
0ba6aff3
UB
10787 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
10788 Process OP_INOUT regs for splitting too.
2f259720 10789
fef4d2b3
JJ
107902013-06-27 Jakub Jelinek <jakub@redhat.com>
10791
10792 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
10793 decl before the loop, initialize to NULL.
10794 (vectorizable_load): Initialize ptr_incr to NULL.
10795
79ee9826
MJ
107962013-06-27 Martin Jambor <mjambor@suse.cz>
10797
10798 PR lto/57208
10799 * ipa-ref.h (ipa_maybe_record_reference): Declare.
10800 * ipa-ref.c (ipa_maybe_record_reference): New function.
10801 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
10802 * ipa-cp.c (create_specialized_node): Record potential references from
10803 aggvals.
10804 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
10805
e18b4a81
YZ
108062013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
10807
10808 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
10809 parameter 'mode' of type 'enum machine_mode mode'; change to pass
10810 'mode' to force_reg.
10811 (aarch64_add_offset): Update calls to aarch64_force_temporary.
10812 (aarch64_expand_mov_immediate): Likewise.
10813
9c023bf0
YZ
108142013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
10815
10816 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
10817 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
10818
5a3fe9b6
AK
108192013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10820
10821 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
10822 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
10823 (struct machine_function): Add tbegin_p.
10824 (s390_canonicalize_comparison): Fold CC mode compares to
10825 conditional jump if possible.
10826 (s390_emit_jump): Return the emitted jump.
10827 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
10828 Handle CCRAWmode compares.
10829 (s390_option_override): Default to -mhtm if available.
10830 (s390_reg_clobbered_rtx): Handle floating point regs as well.
10831 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
10832 FPRs instead of df_regs_ever_live_p.
10833 (s390_optimize_nonescaping_tx): New function.
10834 (s390_init_frame_layout): Extend clobbered_regs array to cover
10835 FPRs as well.
10836 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
10837 (s390_expand_tbegin): New function.
10838 (enum s390_builtin): New enum definition.
10839 (code_for_builtin): New array definition.
10840 (s390_init_builtins): New function.
10841 (s390_expand_builtin): New function.
10842 (TARGET_INIT_BUILTINS): Define.
10843 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 10844 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
10845 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
10846 (s390_alc_comparison): Likewise.
10847 * config/s390/s390-modes.def: Add CCRAWmode.
10848 * config/s390/s390.h (processor_flags): Add PF_TX.
10849 (TARGET_CPU_HTM): Define macro.
10850 (TARGET_HTM): Define macro.
10851 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
10852 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
10853 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
10854 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 10855 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
10856 (TBEGIN_MASK, TBEGINC_MASK): New constants.
10857 ("*cc_to_int"): Move up.
10858 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
10859 constants other than 0.
10860 ("*ccraw_to_int"): New insn and splitter definition.
10861 ("tbegin", "tbegin_nofloat", "tbegin_retry")
10862 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
10863 ("tx_assist"): New expander.
10864 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
10865 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
10866 * config/s390/s390.opt: Add -mhtm option.
10867 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
10868 * config/s390/htmxlintrin.h: New file.
10869 * config/s390/htmintrin.h: New file.
10870 * config/s390/s390intrin.h: New file.
10871 * doc/extend.texi: Document htm builtins.
10872 * config.gcc: Add the new header files to extra_headers.
10873
9e216629
TS
108742013-06-26 Thomas Schwinge <thomas@codesourcery.com>
10875
10876 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 10877 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 10878
fd8c65e7 108792013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10880 Pat Haugen <pthaugen@us.ibm.com>
10881 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
10882
10883 * config/rs6000/power8.md: New.
10884 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
10885 setting for power8 entry.
10886 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
10887 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
10888 test for Power4/Power5 only.
10889 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
10890 support.
10891 (force_new_group): Adjust comment.
10892 * config/rs6000/rs6000.md: Include power8.md.
10893
b24a2ce5
GY
108942013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
10895
10896 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
10897 * config/arm/arm-protos.h (arm_max_conditional_execute): New
10898 declaration.
10899 (tune_params): Update comment.
10900 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
10901 (arm_max_conditional_execute): New function.
10902 (thumb2_final_prescan_insn): Use max_insn_skipped and
10903 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
10904
f6fdeb62
JJ
109052013-06-25 Jakub Jelinek <jakub@redhat.com>
10906
10907 PR tree-optimization/57705
10908 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
10909 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 10910 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
10911 (get_initial_def_for_induction): Handle SSA_NAME IV step.
10912
c13bc3d9
MJ
109132013-06-25 Martin Jambor <mjambor@suse.cz>
10914
10915 PR middle-end/57670
10916 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
10917 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
10918 calls in the dump.
10919 (ipa_note_param_call): Initialize member_ptr flag.
10920 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
10921 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
10922 (ipa_write_indirect_edge_info): Stream member_ptr flag.
10923 (ipa_read_indirect_edge_info): Likewise.
10924
8a845901
RB
109252013-06-25 Richard Biener <rguenther@suse.de>
10926
10927 PR middle-end/56977
10928 * passes.c (init_optimization_passes): Move pass_fold_builtins
10929 and pass_dce earlier with -Og.
10930
33be0bec
EB
109312013-06-25 Eric Botcazou <ebotcazou@adacore.com>
10932
10933 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
10934 <BIT_FIELD_REF>: Remove trailing TAB.
10935 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
10936 remove blank line.
10937
5fe8e757
MJ
109382013-06-24 Martin Jambor <mjambor@suse.cz>
10939
10940 PR tree-optimization/57358
10941 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
10942 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
10943 (ipa_analyze_params_uses): Generate pessimistic info when true.
10944
44a60244
MJ
109452013-06-24 Martin Jambor <mjambor@suse.cz>
10946
10947 PR tree-optimization/57539
10948 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
10949 global.inlined_to of the new node to it. All callers changed.
10950 * ipa-inline-transform.c (clone_inlined_nodes): New variable
10951 inlining_into, pass it to cgraph_clone_node.
10952 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
10953 ipa_free_edge_args_substructures.
10954 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
10955 rdesc linked list. Do not assert rdesc edges have inlined caller.
10956 Assert we have found an rdesc in the rdesc list.
10957
7c5848b8
RB
109582013-06-24 Richard Biener <rguenther@suse.de>
10959
0ba6aff3 10960 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
10961 (pointer_set_lookup): Declare.
10962 (class pointer_map): New template class implementing a
10963 generic pointer to T map.
10964 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
10965 pointer_map<T>::contains, pointer_map<T>::insert,
10966 pointer_map<T>::traverse): New functions.
10967 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
10968 (pointer_set_lookup): New function.
10969 (pointer_set_contains): Use pointer_set_lookup.
10970 (pointer_set_insert): Likewise.
10971 (insert_aux): Remove.
10972 (struct pointer_map_t): Embed a pointer_set_t.
10973 (pointer_map_create): Adjust.
10974 (pointer_map_destroy): Likewise.
10975 (pointer_map_contains): Likewise.
10976 (pointer_map_insert): Likewise.
10977 (pointer_map_traverse): Likewise.
10978 * tree-streamer.h (struct streamer_tree_cache_d): Use a
10979 pointer_map<unsigned> instead of a pointer_map_t.
10980 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
10981 (streamer_tree_cache_lookup): Likewise.
10982 (streamer_tree_cache_create): Likewise.
10983 (streamer_tree_cache_delete): Likewise.
10984 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
10985 pointer_map<unsigned> instead of a pointer_map_t.
10986 (lto_init_tree_ref_encoder): Adjust.
10987 (lto_destroy_tree_ref_encoder): Likewise.
10988 * lto-section-out.c (lto_output_decl_index): Likewise.
10989 (lto_record_function_out_decl_state): Likewise.
10990 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
10991
3dbc97a9
RB
109922013-06-24 Richard Biener <rguenther@suse.de>
10993
10994 PR tree-optimization/57488
10995 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
10996
8345965a
AM
109972013-06-24 Alan Modra <amodra@gmail.com>
10998
10999 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
11000 (gen_easy_altivec_constant): Likewise.
11001 * config/rs6000/predicates.md (easy_vector_constant_add_self,
11002 easy_vector_constant_msb): Likewise.
11003
b7df379f
JJ
110042013-06-23 Jakub Jelinek <jakub@redhat.com>
11005
11006 PR target/57688
11007 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
11008 add missing return true.
11009
12211b99 110102013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
11011
11012 PR target/52483
11013 * config/sh/predicates.md (general_extend_operand): Invoke
11014 general_movsrc_operand for memory operands.
11015 (general_movsrc_operand): Allow reg+reg addressing, do not use
11016 general_operand for memory operands.
11017
97db2bf7
ST
110182013-06-23 Sriraman Tallam <tmsriram@google.com>
11019
11020 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
11021 when current target options does not apply.
11022 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
11023 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
11024 * config/i386/bmiintrin.h: Pass appropriate target
11025 attributes to header.
97db2bf7
ST
11026 * config/i386/mmintrin.h: Ditto.
11027 * config/i386/nmmintrin.h: Ditto.
11028 * config/i386/avx2intrin.h: Ditto.
11029 * config/i386/fxsrintrin.h: Ditto.
11030 * config/i386/tbmintrin.h: Ditto.
11031 * config/i386/xsaveintrin.h: Ditto.
11032 * config/i386/f16cintrin.h: Ditto.
11033 * config/i386/xtestintrin.h: Ditto.
11034 * config/i386/xsaveoptintrin.h: Ditto.
11035 * config/i386/bmi2intrin.h: Ditto.
11036 * config/i386/lzcntintrin.h: Ditto.
11037 * config/i386/smmintrin.h: Ditto.
11038 * config/i386/wmmintrin.h: Ditto.
11039 * config/i386/x86intrin.h: Remove all header include guards.
11040 * config/i386/prfchwintrin.h: Ditto.
11041 * config/i386/pmmintrin.h: Ditto.
11042 * config/i386/tmmintrin.h: Ditto.
11043 * config/i386/xmmintrin.h: Ditto.
11044 * config/i386/popcntintrin.h: Ditto.
11045 * config/i386/rdseedintrin.h: Ditto.
11046 * config/i386/ammintrin.h: Ditto.
11047 * config/i386/emmintrin.h: Ditto.
11048 * config/i386/immintrin.h: Remove all header include guards.
11049 * config/i386/fma4intrin.h: Ditto.
11050 * config/i386/lwpintrin.h: Ditto.
11051 * config/i386/xopintrin.h: Ditto.
11052 * config/i386/ia32intrin.h: Ditto.
11053 * config/i386/avxintrin.h: Ditto.
11054 * config/i386/rtmintrin.h: Ditto.
11055 * config/i386/fmaintrin.h: Ditto.
11056 * config/i386/mm3dnow.h: Ditto.
11057
495e6879
ST
110582013-06-22 Sriraman Tallam <tmsriram@google.com>
11059
11060 * common/config/i386/i386-common.c: Handle LZCNT.
11061
11e8f687
AK
110622013-06-22 Andi Kleen <ak@linux.intel.com>
11063
11064 * doc/extend.texi: Use __atomic_store_n instead of
11065 __atomic_store in HLE example.
11066
12211b99 110672013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
11068
11069 * config/sh/sh.c: Remove <cstdlib> workaround.
11070
927f908b
AK
110712013-06-21 Andi Kleen <ak@linux.intel.com>
11072
0ba6aff3 11073 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 11074
cca410b6
AK
110752013-06-21 Andi Kleen <ak@linux.intel.com>
11076
11077 * doc/extend.texi: Document that __atomic_clear and
11078 __atomic_test_and_set should only be used with bool.
11079
d84db1ed
JH
110802013-06-20 Jan Hubicka <jh@suse.cz>
11081
11082 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
11083 types_same_for_odr.
11084 * tree.c (decls_same_for_odr): New function.
11085 (same_for_edr): New function.
11086 (types_same_for_odr): New function.
11087 (get_binfo_at_offset): Use it.
11088 * tree.h (types_same_for_odr): Declare.
11089
12211b99 110902013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
11091 Jason Merrill <jason@redhat.com>
11092
11093 * system.h: Include <cstdlib> as well as <stdlib.h>.
11094
49b4ff63
UB
110952013-06-20 Uros Bizjak <ubizjak@gmail.com>
11096
11097 PR target/57655
11098 * config/i386/i386.c (construct_container): Report error if
11099 long double is used with disabled x87 float returns.
11100
7a89ad00
JH
111012013-06-20 Jan Hubicka <jh@suse.cz>
11102
11103 * lto-cgraph.c (input_symtab): Do not set cgraph state.
11104
12211b99 111052013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
11106
11107 PR rtl-optimization/57425
11108 PR rtl-optimization/57569
11109 * alias.c (write_dependence_p): Remove parameters mem_mode and
11110 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
11111 Changed all callers.
11112 (canon_anti_dependence): Get comments and semantics in sync.
11113 Add parameter mem_canonicalized. Changed all callers.
11114 * rtl.h (canon_anti_dependence): Update prototype.
11115
d16e9a99
RB
111162013-06-20 Richard Biener <rguenther@suse.de>
11117
11118 * data-streamer-in.c (streamer_read_uhwi): Optimize single
11119 byte case, inline streamer_read_uchar and defer section
11120 overrun check.
11121
c3a9b91b
RB
111222013-06-20 Richard Biener <rguenther@suse.de>
11123
11124 PR tree-optimization/57584
11125 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
11126 SSA names into the expanded expression that take part in
11127 abnormal coalescing.
11128
371e77e3 111292013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
11130
11131 * gcov.c (print_usage): Handle new option.
11132 (process_args): Ditto.
11133 (get_gcov_intermediate_filename): New function.
11134 (output_intermediate_file): New function.
11135 (output_gcov_file): New function
11136 (generate_results): Handle new option.
11137 (release_function): Relase demangled name.
11138 (read_graph_file): Handle demangled name.
11139 (output_lines): Ditto.
11140 * doc/gcov.texi: Document gcov intermediate format.
11141
11f5b71a
VM
111422013-06-19 Vladimir Makarov <vmakarov@redhat.com>
11143
11144 PR bootstrap/57604
11145 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
11146 (lra_emit_add): Use the functions. Add comment about Y as an
11147 address segment.
11148
e1f9340b
DE
111492013-06-19 David Edelsohn <dje.gcc@gmail.com>
11150
11151 PR driver/57652
11152 * collect2.c (collect_atexit): New.
11153 (collect_exit): Delete.
11154 (main): Register collect_atexit with atexit.
11155 (collect_wait): Change collect_exit to exit.
11156 (do_wait): Same.
11157 * collect2.h (collect_exit): Delete.
11158 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
11159
e3f9e0ac
WM
111602013-06-19 Wei Mi <wmi@google.com>
11161
11162 PR rtl-optimization/57518
11163 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
11164 if regno is used in paradoxical subreg.
11165 (update_equiv_regs): Check pdx_subregs[regno] before
11166 set a reg to be equivalent with a mem.
11167
a09f1a76
MK
111682013-06-19 Matthias Klose <doko@ubuntu.com>
11169
11170 PR driver/57651
11171 * file-find.h (find_a_file): Add a mode parameter.
11172 * file-find.c (find_a_file): Likewise.
11173 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
11174 with X_OK for the executables.
11175 * collect2.c (main): Call find_a_file with X_OK.
11176
7d18b0ad
SE
111772013-06-19 Steve Ellcey <sellcey@mips.com>
11178
11179 PR target/56942
11180 * config/mips/mips.md (casesi_internal_mips16_<mode>):
11181 Use NEXT_INSN instead of next_real_insn.
11182
6a6dac52
JH
111832013-06-19 Jan Hubicka <jh@suse.cz>
11184
11185 * cgraph.h (const_value_known_p): Replace by ...
11186 (ctor_for_folding): .. this one.
11187 * cgraphunit.c (process_function_and_variable_attributes): Use it.
11188 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
11189 * expr.c (expand_expr_real_1): Likewise.
11190 (string_constant): Likewise.
11191 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11192 * ipa.c (process_references): Likewise.
11193 (symtab_remove_unreachable_nodes): Likewise.
11194 * ipa-inline-analysis.c (param_change_prob): Likewise.
11195 * gimple-fold.c (canonicalize_constructor_val): Likewise.
11196 (get_base_constructor): Likwise.
11197 * varpool.c (varpool_remove_node): Likewise.
11198 (varpool_remove_initializer): LIkewise.
11199 (dump_varpool_node): LIkwise.
11200 (const_value_known_p): Rewrite to ...
11201 (ctor_for_folding): ... this one.
11202
216c12ab
JJ
112032013-06-19 Jakub Jelinek <jakub@redhat.com>
11204
11205 PR driver/57651
11206 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
11207 PERSONALITY in $PATH derived prefixes.
11208
d53e2f99
JL
112092013-06-19 Jeff Law <law@redhat.com>
11210
ecdbf306
JL
11211 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
11212 in comment.
11213
d53e2f99
JL
11214 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
11215 (simplify_bitwise_binary): Use it to simpify certain binary ops on
11216 booleans.
11217
89e7fc04
SN
112182013-06-19 Sofiane Naci <sofiane.naci@arm.com>
11219
11220 * config/arm/vfp.md: Move VFP instruction classification documentation
11221 to ...
11222 * config/arm/arm.md: ... here. Update instruction classification
11223 documentation.
11224
5e7f6aaa
RE
112252013-06-19 Richard Earnshaw <rearnsha@arm.com>
11226
11227 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
11228 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
11229 pattern. Use more efficient sequences on ARMv5 and Thumb2.
11230
5fdc1e5d
SB
112312013-06-19 Steven Bosscher <steven@gcc.gnu.org>
11232
11233 PR target/57609
11234 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11235 with NEXT_INSN. Use tablejump_p to check for jump table data
11236 insns.
11237
e952afba
PC
112382013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
11239
11240 PR c++/56544
11241 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
11242 that now in C++ the value is correct per the C++ standards.
11243
3fd0303a
RB
112442013-06-19 Richard Biener <rguenther@suse.de>
11245
11246 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
11247 for global context.
11248
b04e4b08
AK
112492013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11250
11251 Revert:
11252 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11253
11254 PR target/57609
11255 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11256 with next_active_insn.
11257
bef8491a
ST
112582013-06-18 Sriraman Tallam <tmsriram@google.com>
11259
11260 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
11261 functions are inlined during failures to flag an error.
11262 * tree-inline.c (expand_call_inline): Allow the error to be flagged
11263 in early inline pass.
22fc7d3d 11264
c21b257d
L
112652013-06-18 H.J. Lu <hongjiu.lu@intel.com>
11266
11267 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
11268 in comments.
11269
33255ae3
JB
112702013-06-18 Julian Brown <julian@codesourcery.com>
11271
11272 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
11273 Permit virtual register pre-reload if !strict.
11274 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
11275 change.
11276 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
11277 prototype.
11278 * config/arm/neon.md (movmisalign<mode>): Use
11279 neon_perm_struct_or_reg_operand instead of
11280 neon_struct_or_register_operand.
11281 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
11282 neon_permissive_struct_operand instead of neon_struct_operand.
11283 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
11284 neon_vector_mem_operand.
11285 * config/arm/predicates.md (neon_struct_operand): Adjust call to
11286 neon_vector_mem_operand.
11287 (neon_permissive_struct_operand): New.
11288 (neon_struct_or_register_operand): Rename to...
11289 (neon_perm_struct_or_reg_operand): This. Adjust call to
11290 neon_vector_mem_operand.
11291
d579fcda
RB
112922013-06-18 Richard Biener <rguenther@suse.de>
11293
11294 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
11295 * lto-streamer.h: Include pointer-set.h.
11296 (struct lto_decl_slot): Remove.
11297 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
11298 Remove next_index entry.
11299 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
11300 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
11301 (lto_init_tree_ref_encoder): Adjust.
11302 (lto_destroy_tree_ref_encoder): Likewise.
11303 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
11304 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
11305 (lto_output_decl_index): Adjust.
11306 (lto_new_out_decl_state): Likewise.
11307 (lto_record_function_out_decl_state): Likewise.
11308 * lto-streamer-out.c (copy_function): Likewise.
11309
31ee20ba
RB
113102013-06-18 Richard Biener <rguenther@suse.de>
11311
11312 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
11313 * cgraphunit.c: Include cfgloop.h.
11314 (init_lowered_empty_function): Initialize the loop tree.
11315 (assemble_thunk): Insert new BBs into loops.
11316
ac0511f2
RB
113172013-06-18 Richard Biener <rguenther@suse.de>
11318
11319 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
11320 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
11321 the map from cache entry to cache index optional.
11322 (streamer_tree_cache_replace_tree): Adjust accordingly.
11323 (streamer_tree_cache_append): Likewise.
11324 (streamer_tree_cache_delete): Likewise.
11325 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
11326 streamer cache map from cache entry to cache index.
11327 * lto-streamer-out.c (create_output_block): Adjust.
11328
09485a08
SN
113292013-06-18 Sofiane Naci <sofiane.naci@arm.com>
11330
22fc7d3d
UB
11331 * config/arm/arm.md (attribute "insn"): Move multiplication and
11332 division attributes to...
09485a08
SN
11333 (attribute "type"): ... here. Remove mult.
11334 (attribute "mul32"): New attribute.
11335 (attribute "mul64"): Add umaal.
11336 (*arm_mulsi3): Update attributes.
11337 (*arm_mulsi3_v6): Likewise.
11338 (*thumb_mulsi3): Likewise.
11339 (*thumb_mulsi3_v6): Likewise.
11340 (*mulsi3_compare0): Likewise.
11341 (*mulsi3_compare0_v6): Likewise.
11342 (*mulsi_compare0_scratch): Likewise.
11343 (*mulsi_compare0_scratch_v6): Likewise.
11344 (*mulsi3addsi): Likewise.
11345 (*mulsi3addsi_v6): Likewise.
11346 (*mulsi3addsi_compare0): Likewise.
11347 (*mulsi3addsi_compare0_v6): Likewise.
11348 (*mulsi3addsi_compare0_scratch): Likewise.
11349 (*mulsi3addsi_compare0_scratch_v6): Likewise.
11350 (*mulsi3subsi): Likewise.
11351 (*mulsidi3adddi): Likewise.
11352 (*mulsi3addsi_v6): Likewise.
11353 (*mulsidi3adddi_v6): Likewise.
11354 (*mulsidi3_nov6): Likewise.
11355 (*mulsidi3_v6): Likewise.
11356 (*umulsidi3_nov6): Likewise.
11357 (*umulsidi3_v6): Likewise.
11358 (*umulsidi3adddi): Likewise.
11359 (*umulsidi3adddi_v6): Likewise.
11360 (*smulsi3_highpart_nov6): Likewise.
11361 (*smulsi3_highpart_v6): Likewise.
11362 (*umulsi3_highpart_nov6): Likewise.
11363 (*umulsi3_highpart_v6): Likewise.
11364 (mulhisi3): Likewise.
11365 (*mulhisi3tb): Likewise.
11366 (*mulhisi3bt): Likewise.
11367 (*mulhisi3tt): Likewise.
11368 (maddhisi4): Likewise.
11369 (*maddhisi4tb): Likewise.
11370 (*maddhisi4tt): Likewise.
11371 (maddhidi4): Likewise.
11372 (*maddhidi4tb): Likewise.
11373 (*maddhidi4tt): Likewise.
11374 (divsi3): Likewise.
11375 (udivsi3): Likewise.
11376 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
11377 (thumb2_mulsi_short_compare0): Likewise.
11378 (thumb2_mulsi_short_compare0_scratch): Likewise.
11379 * config/arm/arm1020e.md (1020mult1): Update attribute change.
11380 (1020mult2): Likewise.
11381 (1020mult3): Likewise.
11382 (1020mult4): Likewise.
11383 (1020mult5): Likewise.
11384 (1020mult6): Likewise.
22fc7d3d
UB
11385 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
11386 change.
09485a08
SN
11387 (cortex_a15_mult64): Likewise.
11388 (cortex_a15_sdiv): Likewise.
11389 (cortex_a15_udiv): Likewise.
11390 * config/arm/arm1026ejs.md (mult1): Update attribute change.
11391 (mult2): Likewise.
11392 (mult3): Likewise.
11393 (mult4): Likewise.
11394 (mult5): Likewise.
11395 (mult6): Likewise.
11396 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
11397 (pj4_ir_div): Likewise.
11398 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
11399 (11_mult2): Likewise.
11400 (11_mult3): Likewise.
11401 (11_mult4): Likewise.
11402 (11_mult5): Likewise.
11403 (11_mult6): Likewise.
11404 (11_mult7): Likewise.
11405 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
11406 (cortex_a8_mla): Likewise.
11407 (cortex_a8_mull): Likewise.
11408 (cortex_a8_smulwy): Likewise.
11409 (cortex_a8_smlald): Likewise.
11410 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
11411 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
11412 (cortex_r4_mul_3): Likewise.
11413 (cortex_r4_mla_4): Likewise.
11414 (cortex_r4_mla_3): Likewise.
11415 (cortex_r4_smlald): Likewise.
11416 (cortex_r4_mull): Likewise.
11417 (cortex_r4_sdiv): Likewise.
11418 (cortex_r4_udiv): Likewise.
11419 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
11420 (cortex_a7_idiv): Likewise.
11421 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
11422 (9_mult2): Likewise.
11423 (9_mult3): Likewise.
11424 (9_mult4): Likewise.
11425 (9_mult5): Likewise.
11426 (9_mult6): Likewise.
11427 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
11428 (cortex_a53_sdiv): Likewise.
11429 (cortex_a53_udiv): Likewise.
11430 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
11431 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
11432 (mp626_mult2): Likewise.
11433 (mp626_mult3): Likewise.
11434 (mp626_mult4): Likewise.
11435 * config/arm/fa526.md (526_mult1): Update attribute change.
11436 (526_mult2): Likewise.
11437 * config/arm/arm-generic.md (mult): Update attribute change.
11438 (mult_ldsched_strongarm): Likewise.
11439 (mult_ldsched): Likewise.
11440 (multi_cycle): Likewise.
11441 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
11442 * config/arm/fa606te.md (606te_mult1): Update attribute change.
11443 (606te_mult2): Likewise.
11444 (606te_mult3): Likewise.
11445 (606te_mult4): Likewise.
11446 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
11447 (cortex_a9_mac16): Likewise.
11448 (cortex_a9_multiply): Likewise.
11449 (cortex_a9_mac): Likewise.
11450 (cortex_a9_multiply_long): Likewise.
11451 * config/arm/fa626te.md (626te_mult1): Update attribute change.
11452 (626te_mult2): Likewise.
11453 (626te_mult3): Likewise.
11454 (626te_mult4): Likewise.
11455
8951f345
RB
114562013-06-18 Richard Biener <rguenther@suse.de>
11457
11458 PR lto/57334
11459 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
11460
d8101d05
AK
114612013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11462
11463 PR target/57609
11464 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
11465 with next_active_insn.
11466
69eff9da
AM
114672013-06-18 Alan Modra <amodra@gmail.com>
11468
11469 * config/rs6000/rs6000.h (enum data_align): New.
11470 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
11471 (DATA_ABI_ALIGNMENT): Define.
11472 (CONSTANT_ALIGNMENT): Correct comment.
11473 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
11474 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
11475
8ed00d76
DM
114762013-06-17 David Malcolm <dmalcolm@redhat.com>
11477
11478 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
11479 ATTRIBUTE_UNUSED marking.
11480
3d33d06b
SN
114812013-06-17 Sofiane Naci <sofiane.naci@arm.com>
11482
11483 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
11484 alternative and update.
11485 (aarch64_dup_lanedi): Delete.
11486 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
11487 * config/aarch64/aarch64-simd-builtins.def: Update.
11488
ee03e71d
RB
114892013-06-17 Richard Biener <rguenther@suse.de>
11490
11491 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
11492 (lto_input_scc): Declare.
11493 (lto_input_tree_1): Likewise.
11494 (struct lto_stats_d): Add num_tree_bodies_output and
11495 num_pickle_refs_output.
11496 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
11497 (lto_read_tree_1): Split out from ...
11498 (lto_read_tree): ... this.
11499 (lto_input_scc): New function.
11500 (lto_input_tree_1): Split out from ...
11501 (lto_input_tree): ... this. Handle LTO_tree_scc.
11502 (lto_data_in_create): Create the streamer cache without hashes.
11503 * lto-streamer-out.c (create_output_block): Create the streamer
11504 cache with hashes when not doing WPA.
11505 (lto_write_tree_1): Split out from ...
11506 (lto_write_tree): ... this.
11507 (get_symbol_initial_value): New function.
11508 (lto_output_tree_1): Split out from ...
11509 (lto_output_tree): ... this. Write trees as series of SCCs
11510 using a DFS walk via DFS_write_tree.
11511 (struct sccs, struct scc_entry): New types.
11512 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
11513 (DFS_write_tree_body): New function.
11514 (DFS_write_tree): Likewise.
11515 (hash_tree): Likewise.
11516 (scc_entry_compare): Likewise.
11517 (hash_scc): Likewise.
11518 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
11519 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
11520 TREE_CHAIN as regular reference.
11521 (streamer_read_integer_cst): Remove.
11522 (streamer_get_pickled_tree): Adjust.
11523 * tree-streamer-out.c (streamer_write_chain): Disable streaming
11524 of DECL_EXTERNALs in BLOCK_VARS for now.
11525 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
11526 reference.
11527 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
11528 Add hash value argument and record that if hashes are recorded
11529 in the cache.
11530 (streamer_tree_cache_insert_1): Adjust.
11531 (streamer_tree_cache_insert): Likewise.
11532 (streamer_tree_cache_insert_at): Rename to ...
11533 (streamer_tree_cache_replace_tree): ... this and adjust.
11534 (streamer_tree_cache_append): Adjust.
11535 (record_common_node): Likewise.
11536 (streamer_tree_cache_create): Add argument whether to
11537 record hash values together with trees.
11538 (streamer_tree_cache_delete): Adjust.
11539 * tree-streamer.h (struct streamer_tree_cache_d): Add
11540 vector of hashes.
11541 (streamer_read_integer_cst): Remove.
11542 (streamer_tree_cache_insert): Adjust.
11543 (streamer_tree_cache_append): Likewise.
11544 (streamer_tree_cache_insert_at): Rename to ...
11545 (streamer_tree_cache_replace_tree): ... this and adjust.
11546 (streamer_tree_cache_create): Add argument whether to record hashes.
11547 (streamer_tree_cache_get): Rename to ...
11548 (streamer_tree_cache_get_tree): ... this.
11549 (streamer_tree_cache_get_hash): New function.
11550 * tree.c (cache_integer_cst): New function.
11551 * tree.h (cache_integer_cst): Declare.
11552 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
11553 * lto-symtab.c (lto_varpool_replace_node): Only release
11554 DECL_INITIAL of non-prevailing decls.
11555 * varpool.c (varpool_remove_initializer): Do not release
11556 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
11557
0de86a92
JU
115582013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
11559
11560 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
11561 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
11562 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
11563 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
11564 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
11565 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
11566 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
11567 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
11568 instead of TARGET_64BIT.
11569 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
11570 Require ISA_HAS_<D>DIV.
11571
74240413
RS
115722013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
11573
11574 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
11575 (mips*-*-linux*): Move default with_llsc setting to where other
11576 defaults are set.
11577 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
11578 with_arch block.
11579 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
11580 Likewise. Remove default with_tune setting. Move default float
11581 setting to its own block. Handle with_llsc in the same block as above.
11582
12211b99 115832013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
11584
11585 PR rtl-optimization/57425
11586 PR rtl-optimization/57569
299a5f6a 11587 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
11588 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
11589 Changed all callers.
11590 (canon_anti_dependence): New function.
11591 * cse.c (check_dependence): Use canon_anti_dependence.
11592 * cselib.c (cselib_invalidate_mem): Likewise.
11593 * rtl.h (canon_anti_dependence): Declare.
11594
b259d352
JU
115952013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
11596
11597 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
11598 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
11599 ".set mips3" for 64-bit targets.
11600
4de09b85
DC
116012013-06-15 Dehao Chen <dehao@google.com>
11602
11603 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
11604 * gimple-low.c (gimple_check_call_matching_types): Likewise.
11605 (gimple_check_call_args): Likewise.
11606 * value-prof.c (check_ic_target): Likewise.
11607 * ipa-inline.c (early_inliner): Likewise.
11608 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
11609 * cgraph.c (cgraph_create_edge_1): Likewise.
11610 (cgraph_make_edge_direct): Likewise.
11611
d1aa4a76
MM
116122013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11613
11614 PR target/57615
11615 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
11616 rs6000_output_move_128bit to handle emitting quad memory
11617 operations. Set attribute length to 8 bytes.
11618
12211b99 116192013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
11620
11621 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
11622 New pattern.
11623 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
11624 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
11625 (aarch64_<su>mlsl<mode>): Likewise.
11626
f5273574
MS
116272013-06-14 Mike Stump <mikestump@comcast.net>
11628
11629 * Makefile.in (TARGET_H): Add insn-codes.h.
11630
ef7e7ab2
AM
116312013-06-14 Alan Modra <amodra@gmail.com>
11632
11633 PR middle-end/57134
11634 PR middle-end/57586
11635 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
11636 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
11637 bitfield expansion when EXPAND_MEMORY.
11638 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
11639
135faab6
MM
116402013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
11641
11642 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11643 test for clearing quad memory on 32-bit later.
11644
948a1fd9
MG
116452013-06-13 Marc Glisse <marc.glisse@inria.fr>
11646
11647 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
11648 (fold_negate_expr): Likewise.
11649 (fold_real_zero_addition_p): Handle vectors.
11650 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
11651
0597fb9c
AM
116522013-06-14 Alan Modra <amodra@gmail.com>
11653
11654 * varasm.c (force_const_mem): Revert 2013-06-07 change.
11655
e5b962d0
JH
116562013-06-13 Jan Hubicka <jh@suse.cz>
11657
11658 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
11659 Local comdats are not externally visible.
11660 * symtab.c (dump_symtab_base): Dump externally visible.
11661 (verify_symtab_base): Verify back links in the symtab hash.
11662
a8355e51
BC
116632013-06-13 Bin Cheng <bin.cheng@arm.com>
11664
11665 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
11666 CONVERT_EXPR as equal nodes.
11667
8f7e6e33
BC
116682013-06-13 Bin Cheng <bin.cheng@arm.com>
11669
22fc7d3d 11670 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 11671
5d418483
MG
116722013-06-13 Marc Glisse <marc.glisse@inria.fr>
11673
11674 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
11675 Generalize to complex and vector.
11676 * tree.c (build_all_ones_cst): New function.
11677 * tree.h (build_all_ones_cst): Declare it.
11678
50751417
AM
116792013-06-13 Alan Modra <amodra@gmail.com>
11680
11681 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
11682 * config/rs6000/rs6000.md (signbittf2): New insn.
11683 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
11684 (abstf2_internal, cmptf_internal2): Likewise.
11685 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
11686
4b02c962 116872013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11688 Pat Haugen <pthaugen@us.ibm.com>
11689 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
11690
11691 * config/rs6000/rs6000.c (emit_load_locked): Add support for
11692 power8 byte, half-word, and quad-word atomic instructions.
11693 (emit_store_conditional): Likewise.
11694 (rs6000_expand_atomic_compare_and_swap): Likewise.
11695 (rs6000_expand_atomic_op): Likewise.
11696
11697 * config/rs6000/sync.md (larx): Add new modes for power8.
11698 (stcx): Likewise.
11699 (AINT): New mode iterator to include TImode as well as normal
11700 integer modes on power8.
11701 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
11702 that VSX registers are not considered. Use AINT mode iterator
11703 instead of INT1 to allow inclusion of quad word atomic operations
11704 on power8.
11705 (load_locked<mode>): Likewise.
11706 (store_conditional<mode>): Likewise.
11707 (atomic_compare_and_swap<mode>): Likewise.
11708 (atomic_exchange<mode>): Likewise.
11709 (atomic_nand<mode>): Likewise.
11710 (atomic_fetch_<fetchop_name><mode>): Likewise.
11711 (atomic_nand_fetch<mode>): Likewise.
11712 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
11713 each type.
11714 (ATOMIC): On power8, add QImode, HImode modes.
11715 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
11716 modes that promote to SImode.
11717 (load_lockedti): Convert TImode arguments to PTImode, so that we
11718 get a guaranteed even/odd register pair.
11719 (load_lockedpti): Likewise.
11720 (store_conditionalti): Likewise.
11721 (store_conditionalpti): Likewise.
11722
11723 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
11724 atomic load/store instructions.
11725 (HSI): Likewise.
11726
710b6cc1
RS
117272013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
11728
11729 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
11730 loads.
11731 (insn_count): New attribute, with most cases extracted from...
11732 (length): ...here. Redefine most cases in terms of insn_count.
11733 (single_insn): Delete.
11734 (can_delay): Use insn_count to check for single instructions.
11735 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
11736 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
11737 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
11738 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
11739 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
11740 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
11741 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
11742 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
11743 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
11744 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
11745 rather than "length".
11746 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
11747 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
11748 Use "insn_count" rather than "length".
11749 * config/mips/mips-dsp.md
11750 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
11751 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
11752 length attributes.
11753
1951f101
MG
117542013-06-12 Marc Glisse <marc.glisse@inria.fr>
11755
11756 PR tree-optimization/57361
11757 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
11758
8b033a8a
SN
117592013-06-12 Sofiane Naci <sofiane.naci@arm.com>
11760
22fc7d3d
UB
11761 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
11762 to split.
8b033a8a
SN
11763 (aarch64_simd_combine<mode>): New instruction expansion.
11764 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
11765 function prototype.
11766 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
11767 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
11768
ca0f62a8
JH
117692013-06-12 Jan Hubicka <jh@suse.cz>
11770
11771 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
11772 decl has when in streaming stage.
11773 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
11774 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
11775
12211b99 117762013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
11777
11778 PR target/57578
11779 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
11780
bfdeda2c
JJ
117812013-06-12 Jakub Jelinek <jakub@redhat.com>
11782
11783 PR tree-optimization/57537
11784 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
11785 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
11786
a4fa02d1
RB
117872013-06-12 Richard Biener <rguenther@suse.de>
11788
11789 * data-streamer.h (streamer_write_char_stream): CSE
11790 obs->current_pointer.
11791 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
11792 streamer_write_char_stream manually and optimize the resulting loop.
11793 (streamer_write_hwi_stream): Likewise.
11794
bbf9ad07
JH
117952013-06-12 Jan Hubicka <jh@suse.cz>
11796
11797 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
11798 * cgraph.h (varpool_create_empty_node): Declare.
11799 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
11800 duplicated nodes.
11801 * symtab.c (symtab_unregister_node): Be lax about missin entries
11802 in node hash.
11803 (symtab_get_node): Update comment.
11804 * varpool.c (varpool_create_empty_node): Break out from ...
11805 (varpool_node_for_decl): ... here.
11806 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
11807
a53f90ad
EB
118082013-06-12 Eric Botcazou <ebotcazou@adacore.com>
11809
11810 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
11811 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
11812 part. Use straight-line flow at the end.
11813 <COMPONENT_REF>: Remove superfluous else.
11814 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
11815
946f9306
JJ
118162013-06-12 Jakub Jelinek <jakub@redhat.com>
11817
11818 PR target/56564
11819 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
11820 target hook even for !TREE_PUBLIC decls. If no resolution info
11821 is available, return false for common and external decls.
11822
a7fca6f0
KP
118232013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
11824
11825 * config/rl78/constraints.md (U): New constraint.
11826 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
11827 valloc attribute.
11828
c7d8f446
MM
118292013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11830
11831 PR target/57589
11832 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
11833 to allow returning address to AT_PLATFORM name.
11834
08346abd
JH
118352013-06-11 Jan Hubicka <jh@suse.cz>
11836
11837 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
11838 * cgraph.h (symtab_node_base): Add weakref flag.
11839 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
11840 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
11841 (output_weakrefs): Use weakref flag.
11842 * fold-const.c (simple_operand_p): Handle WEAK.
11843 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
11844 * ipa.c (varpool_externally_visible_p): Drop weakref.
11845 (function_and_variable_visibility): Update comment; fix weakref
11846 sanity checks; do not clear DECL_WEAK on them.
11847 * lto-cgraph.c (lto_output_node): update.
11848 (lto_output_varpool_node): Update.
11849 (input_overwrite_node): Update.
11850 (input_node): Update.
11851 (input_varpool_node): Update.
11852 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
11853 (lto_symtab_merge_symbols): Add sanity check.
11854 (lto_symtab_prevailing_decl): Do not special case weakrefs.
11855 * passes.c (rest_of_decl_compilation): Set static flag, too.
11856 * symtab.c (dump_symtab_base): Dump weakref.
11857 (verify_symtab_base): Sanity check weakrefs.
11858 (symtab_make_decl_local): Remove duplicated code.
11859 (symtab_alias_ultimate_target): Simplify.
11860 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 11861
2e6a2f88
TV
118622013-06-11 Tom de Vries <tom@codesourcery.com>
11863
11864 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
11865 sequence_vect == NULL.
11866
d9af3652
DD
118672013-06-11 DJ Delorie <dj@redhat.com>
11868
11869 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
11870 (rl78_unwind_word_mode): New.
11871
ffa66012
DM
118722013-06-11 David Malcolm <dmalcolm@redhat.com>
11873
11874 * final.c (debug_prefix_maps): Make static.
11875
783f2d35
DM
118762013-06-11 David Malcolm <dmalcolm@redhat.com>
11877
11878 * function.c (initial_trampoline): Remove stray copy.
11879
7af26def
SN
118802013-06-11 Sofiane Naci <sofiane.naci@arm.com>
11881
11882 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
11883
97756c0e
MJ
118842013-06-11 Martin Jambor <mjambor@suse.cz>
11885
11886 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
11887 within bounds at the beginning of the function.
11888
2c7b8bf6
AM
118892013-06-11 Alan Modra <amodra@gmail.com>
11890
11891 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
11892 reporting.
11893 (get_named_section): Don't NULL !DECL_P decl.
11894
77cea46e
IZ
118952013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
11896
11897 * doc/invoke.texi (core-avx2): Document.
11898 (slm): Likewise.
11899 (atom): Updated with MOVBE.
11900
888f0920
RB
119012013-06-11 Richard Biener <rguenther@suse.de>
11902
22fc7d3d 11903 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 11904
6b438d58
AB
119052013-06-11 Anton Blanchard <anton@samba.org>
11906
11907 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
11908 correct shift value in little-endian mode.
11909
3bc66938
JJ
119102013-06-11 Jakub Jelinek <jakub@redhat.com>
11911
11912 PR target/56564
11913 * varasm.c (get_variable_align): Move #endif to the right place.
11914
a5dc7f88
CC
119152013-06-10 Cary Coutant <ccoutant@google.com>
11916
11917 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
11918 for hash so that hash table traversal order is deterministic.
11919
19be72ab 119202013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11921 Pat Haugen <pthaugen@us.ibm.com>
11922 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
11923
11924 * config/rs6000/vector.md (GPR move splitter): Do not split moves
11925 of vectors in GPRS if they are direct moves or quad word load or
11926 store moves.
11927
11928 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
11929 declaration.
11930 (direct_move_p): Likewise.
11931 (quad_load_store_p): Likewise.
11932
11933 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
11934 classes into bins based on the physical register type.
11935 (reg_class_to_reg_type): Likewise.
11936 (IS_STD_REG_TYPE): Likewise.
11937 (IS_FP_VECT_REG_TYPE): Likewise.
11938 (reload_fpr_gpr): Arrays to determine what insn to use if we can
11939 use direct move instructions.
11940 (reload_gpr_vsx): Likewise.
11941 (reload_vsx_gpr): Likewise.
11942 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
11943 information that is a simplification of register classes. Also
11944 precalculate direct move reload helpers.
11945 (direct_move_p): New function to return true if the operation can
11946 be done as a direct move instruciton.
11947 (quad_load_store_p): New function to return true if the operation
11948 is a quad memory operation.
11949 (rs6000_legitimize_address): If quad memory, only allow register
11950 indirect for TImode addresses.
11951 (rs6000_legitimate_address_p): Likewise.
11952 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
11953 (rs6000_reload_register_type): Likewise.
11954 (register_to_reg_type): Return register type.
11955 (rs6000_secondary_reload_simple_move): New helper function for
11956 secondary reload and secondary memory needed to identify anything
11957 that is a simple move, and does not need reloading.
11958 (rs6000_secondary_reload_direct_move): New helper function for
11959 secondary reload to identify cases that can be done with several
11960 instructions via the direct move instructions.
11961 (rs6000_secondary_reload_move): New helper function for secondary
11962 reload to identify moves between register types that can be done.
11963 (rs6000_secondary_reload): Add support for quad memory operations
11964 and for direct move.
11965 (rs6000_secondary_memory_needed): Likewise.
11966 (rs6000_debug_secondary_memory_needed): Change argument names.
11967 (rs6000_output_move_128bit): New function to return the move to
11968 use for 128-bit moves, including knowing about the various
11969 limitations of quad memory operations.
11970
11971 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
11972 memory operations. call rs6000_output_move_128bit for the actual
11973 instruciton(s) to generate.
11974 (vsx_movti_64bit): Likewise.
11975
11976 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
11977 (UNSPEC_P8V_MTVSRWZ): Likewise.
11978 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
11979 (UNSPEC_P8V_MTVSRD): Likewise.
11980 (UNSPEC_P8V_XXPERMDI): Likewise.
11981 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
11982 (UNSPEC_FUSION_GPR): Likewise.
11983 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 11984 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
11985 (f32_sv): Likewise.
11986 (f32_dm): Likewise.
11987 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
11988 loads and direct move instructions.
11989 (zero_extendsidi2_lfiwzx): Likewise.
11990 (extendsidi2_lfiwax): Likewise.
11991 (extendsidi2_nocell): Likewise.
11992 (floatsi<mode>2_lfiwax): Likewise.
11993 (lfiwax): Likewise.
11994 (floatunssi<mode>2_lfiwzx): Likewise.
11995 (lfiwzx): Likewise.
11996 (fix_trunc<mode>_stfiwx): Likewise.
11997 (fixuns_trunc<mode>_stfiwx): Likewise.
11998 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
11999 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
12000 (parity<mode>2_cmpb): Set length/type attr.
12001 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
12002 for 'mr.' to fast_compare.
12003 (bpermd_<mode>): Change type attr to popcnt.
12004 (p8_fmrgow_<mode>): New insns for power8 direct move support.
12005 (p8_mtvsrwz_1): Likewise.
12006 (p8_mtvsrwz_2): Likewise.
12007 (reload_fpr_from_gpr<mode>): Likewise.
12008 (p8_mtvsrd_1): Likewise.
12009 (p8_mtvsrd_2): Likewise.
12010 (p8_xxpermdi_<mode>): Likewise.
12011 (reload_vsx_from_gpr<mode>): Likewise.
12012 (reload_vsx_from_gprsf): Likewise.
12013 (p8_mfvsrd_3_<mode>): LIkewise.
12014 (reload_gpr_from_vsx<mode>): Likewise.
12015 (reload_gpr_from_vsxsf): Likewise.
12016 (p8_mfvsrd_4_disf): Likewise.
12017 (multi-word GPR splits): Do not split direct moves or quad memory
12018 operations.
12019
16876bdc
DM
120202013-06-10 David Malcolm <dmalcolm@redhat.com>
12021
12022 * tree-into-ssa.c (interesting_blocks): Make static.
12023
df8a1d28
JJ
120242013-06-10 Jakub Jelinek <jakub@redhat.com>
12025
12026 PR target/56564
12027 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
12028 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
12029 Use DATA_ABI_ALIGNMENT for that case instead if defined.
12030 (get_variable_align): New function.
12031 (get_variable_section, emit_bss, emit_common,
12032 assemble_variable_contents, place_block_symbol): Use
12033 get_variable_align instead of DECL_ALIGN.
12034 (assemble_noswitch_variable): Add align argument, use it
12035 instead of DECL_ALIGN.
12036 (assemble_variable): Adjust caller. Use get_variable_align
12037 instead of DECL_ALIGN.
12038 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
12039 caller.
12040 (DATA_ABI_ALIGNMENT): Define.
12041 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
12042 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
12043 opt is false, only return the psABI mandated alignment increase.
12044 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
12045 (DATA_ABI_ALIGNMENT): ... this.
12046 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
12047 (DATA_ABI_ALIGNMENT): ... this.
12048 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
12049 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
12050 (DATA_ABI_ALIGNMENT): ... this.
12051 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
12052 * doc/tm.texi: Regenerated.
12053
57b29ca6
UB
120542013-06-10 Uros Bizjak <ubizjak@gmail.com>
12055
12056 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
12057 cmp_code to construct REG_EQUAL note.
12058
3e56ed50
JJ
120592013-06-09 Jakub Jelinek <jakub@redhat.com>
12060
12061 PR target/57568
12062 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
12063 that operands[2] doesn't overlap with operands[0].
12064
74fe2a1d
DE
120652013-06-09 David Edelsohn <dje.gcc@gmail.com>
12066 Jan Hubicka <jh@suse.cz>
12067
12068 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
12069 hack to mark symbols as used.
12070
ed52a84e
VM
120712013-06-08 Vladimir Makarov <vmakarov@redhat.com>
12072
12073 PR rtl-optimization/57559
12074 * lra-constraints.c (process_alt_operands): Don't discourage
12075 memory with known offset for offsetable memory constraint.
12076 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
12077
299316ed
EB
120782013-06-08 Eric Botcazou <ebotcazou@adacore.com>
12079
12080 * varasm.c (struct oc_local_state): Reorder fields.
12081 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
12082 and adjust accordingly.
12083 (output_constructor): Reorder initialization code and adjust call to
12084 output_constructor_bitfield.
12085
88ac60d3
JH
120862013-06-07 Jan Hubicka <jh@suse.cz>
12087
12088 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
12089
4cdce1a8
DM
120902013-06-07 David Malcolm <dmalcolm@redhat.com>
12091
12092 * tree-object-size.c (unknown): Make const.
12093
b5e0425c
AK
120942013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12095
12096 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
12097 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
12098 for last alternative in the cpu_facility attribute.
12099
79678d04
KT
121002013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12101
12102 PR target/56315
12103 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
12104 (xordi3): Change operand 2 constraint to arm_xordi_operand.
12105 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
12106 * config/arm/constraints.md (Dg): New constraint.
12107 * config/arm/neon.md (xordi3_neon): Remove.
12108 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
12109 * config/arm/predicates.md (arm_xordi_operand): New predicate.
12110
b31ddbdb
KT
121112013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12112
12113 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
12114 Clean up alternatives.
12115
8f90b7d4
AM
121162013-06-07 Alan Modra <amodra@gmail.com>
12117
12118 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
12119 va_list_gpr_size.
12120
961ce119
AM
121212013-06-07 Alan Modra <amodra@gmail.com>
12122
12123 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
12124
33e49835
KT
121252013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12126
12127 * config/arm/constraints.md (Df): New constraint.
12128 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
12129 Correct length attribute for last two alternatives.
12130
acd17ae6
AM
121312013-06-07 Alan Modra <amodra@gmail.com>
12132
12133 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12134 override user -mfp-in-toc.
12135 (offsettable_ok_by_alignment): Consider just the current access
12136 rather than the whole object, unless BLKmode. Handle
12137 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
12138 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
12139 for -mcmodel=medium.
12140 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
12141 override user -mfp-in-toc or -msum-in-toc. Default to
12142 -mno-fp-in-toc for -mcmodel=medium.
12143
73310b0e
DD
121442013-06-06 DJ Delorie <dj@redhat.com>
12145
12146 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
12147 TARGET_VALID_POINTER_MODE.
12148
0bd62dca 121492013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12150 Pat Haugen <pthaugen@us.ibm.com>
12151 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
12152
12153 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12154 Document new power8 builtins.
12155
12156 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
12157 condition code register, to allow 128-bit logical operations to be
12158 done in the VSX or GPR registers.
12159 (nor<mode>3): Use the canonical form for nor.
12160 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
12161 vclz*, and vpopcnt* vector instructions.
12162 (nand<mode>3): Likewise.
12163 (orc<mode>3): Likewise.
12164 (clz<mode>2): LIkewise.
12165 (popcount<mode>2): Likewise.
12166
12167 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
12168 that only the GPRs are recognized.
12169
12170 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12171 support for new power8 builtins.
12172
12173 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
12174 builtin functions.
12175 (xscvdpspn): Likewise.
12176 (vclz): Likewise.
12177 (vclzb): Likewise.
12178 (vclzh): Likewise.
12179 (vclzw): Likewise.
12180 (vclzd): Likewise.
12181 (vpopcnt): Likewise.
12182 (vpopcntb): Likewise.
12183 (vpopcnth): Likewise.
12184 (vpopcntw): Likewise.
12185 (vpopcntd): Likewise.
12186 (vgbbd): Likewise.
12187 (vmrgew): Likewise.
12188 (vmrgow): Likewise.
12189 (eqv): Likewise.
12190 (eqv_v16qi3): Likewise.
12191 (eqv_v8hi3): Likewise.
12192 (eqv_v4si3): Likewise.
12193 (eqv_v2di3): Likewise.
12194 (eqv_v4sf3): Likewise.
12195 (eqv_v2df3): Likewise.
12196 (nand): Likewise.
12197 (nand_v16qi3): Likewise.
12198 (nand_v8hi3): Likewise.
12199 (nand_v4si3): Likewise.
12200 (nand_v2di3): Likewise.
12201 (nand_v4sf3): Likewise.
12202 (nand_v2df3): Likewise.
12203 (orc): Likewise.
12204 (orc_v16qi3): Likewise.
12205 (orc_v8hi3): Likewise.
12206 (orc_v4si3): Likewise.
12207 (orc_v2di3): Likewise.
12208 (orc_v4sf3): Likewise.
12209 (orc_v2df3): Likewise.
12210
12211 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
12212 allow power8 quad mode in 64-bit.
12213 (rs6000_builtin_vectorized_function): Add support to vectorize
12214 ISA 2.07 count leading zeros, population count builtins.
12215 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
12216 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
12217 (builtin_function_type): Add vgbbd builtin function which takes an
12218 unsigned argument.
12219 (altivec_expand_vec_perm_const): Add support for new power8 merge
12220 instructions.
12221
12222 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
12223 that does not include TImdoe for use with 32-bit.
12224 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
12225 instructions.
12226 (UNSPEC_VSX_CVDPSPN): Likewise.
12227 (vsx_xscvdpspn): Likewise.
12228 (vsx_xscvspdpn): Likewise.
12229 (vsx_xscvdpspn_scalar): Likewise.
12230 (vsx_xscvspdpn_directmove): Likewise.
12231 (vsx_and<mode>3): Split logical operations into 32-bit and
12232 64-bit. Add support to do logical operations on TImode as well as
12233 VSX vector types. Allow logical operations to be done in either
12234 VSX registers or in general purpose registers in 64-bit mode. Add
12235 splitters if GPRs were used. For AND, add clobber of CCmode to
12236 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
12237 encoding.
12238 (vsx_and<mode>3_32bit): Likewise.
12239 (vsx_and<mode>3_64bit): Likewise.
12240 (vsx_ior<mode>3): Likewise.
12241 (vsx_ior<mode>3_32bit): Likewise.
12242 (vsx_ior<mode>3_64bit): Likewise.
12243 (vsx_xor<mode>3): Likewise.
12244 (vsx_xor<mode>3_32bit): Likewise.
12245 (vsx_xor<mode>3_64bit): Likewise.
12246 (vsx_one_cmpl<mode>2): Likewise.
12247 (vsx_one_cmpl<mode>2_32bit): Likewise.
12248 (vsx_one_cmpl<mode>2_64bit): Likewise.
12249 (vsx_nor<mode>3): Likewise.
12250 (vsx_nor<mode>3_32bit): Likewise.
12251 (vsx_nor<mode>3_64bit): Likewise.
12252 (vsx_andc<mode>3): Likewise.
12253 (vsx_andc<mode>3_32bit): Likewise.
12254 (vsx_andc<mode>3_64bit): Likewise.
12255 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
12256 and xxlorc instructions.
12257 (vsx_eqv<mode>3_64bit): Likewise.
12258 (vsx_nand<mode>3_32bit): Likewise.
12259 (vsx_nand<mode>3_64bit): Likewise.
12260 (vsx_orc<mode>3_32bit): Likewise.
12261 (vsx_orc<mode>3_64bit): Likewise.
12262
12263 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
12264
12265 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
12266 instruction.
12267 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
12268 (p8_vmrgow): Likewise.
12269 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
12270 GPRs to be split under VSX.
12271 (p8v_clz<mode>2): Add power8 count leading zero support.
12272 (p8v_popcount<mode>2): Add power8 population count support.
12273 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
12274 support.
12275
12276 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
12277 instruction.
12278
12279 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
12280 builtin functions.
12281 (vec_nand): Likewise.
12282 (vec_vclz): Likewise.
12283 (vec_vclzb): Likewise.
12284 (vec_vclzd): Likewise.
12285 (vec_vclzh): Likewise.
12286 (vec_vclzw): Likewise.
12287 (vec_vgbbd): Likewise.
12288 (vec_vmrgew): Likewise.
12289 (vec_vmrgow): Likewise.
12290 (vec_vpopcnt): Likewise.
12291 (vec_vpopcntb): Likewise.
12292 (vec_vpopcntd): Likewise.
12293 (vec_vpopcnth): Likewise.
12294 (vec_vpopcntw): Likewise.
12295
37684c46
VM
122962013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12297
12298 PR rtl-optimization/57468
12299 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
12300 spilled pseudos.
12301
d89ae27c
VM
123022013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12303
12304 PR rtl-optimization/57459
12305 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
12306 type when setting live regs.
12307
3597e113
VM
123082013-06-06 Vladimir Makarov <vmakarov@redhat.com>
12309
12310 * config/s390/s390.opt (mlra): New option.
12311 * config/s390/s390.c (s390_decompose_address): Check displacement
12312 for all registers for LRA.
12313 (s390_secondary_reload): Don't used secondary reloads for LRA.
12314 (s390_lra_p): New function.
12315 (TARGET_LRA_P): Define.
12316 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
12317 of attribute cpu_facility to zarch for the last alternative.
12318 (*cmpmem_short): Ditto.
12319
01037aeb
EB
123202013-06-06 Eric Botcazou <ebotcazou@adacore.com>
12321
12322 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
12323 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
12324 (arm_expand_prologue): Likewise.
12325
3371a64f
TJ
123262013-06-06 Teresa Johnson <tejohnson@google.com>
12327
12328 PR c++/53743
12329 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
12330 as this is now done by redirect_edge_and_branch_force.
12331 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
12332 barriers, and fix interaction with splitting.
12333 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
12334 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
12335 reflect changes made in the routine.
12336 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
12337 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
12338 since this is called in cfglayout mode, and replace partition fixup
12339 with assert as that is now done by force_nonfallthru_and_redirect.
12340 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
12341 already be marked with region crossing note.
12342 (insert_section_boundary_note): Make non-static, gate on flag
12343 has_bb_partition, rewrite to also check for multiple partitions.
12344 (rest_of_handle_reorder_blocks): Remove call to
12345 insert_section_boundary_note, now done later during free_cfg.
12346 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
12347 * bb-reorder.h (insert_section_boundary_note): Declare.
12348 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
12349 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
12350 invoke insert_section_boundary_note.
12351 (try_redirect_by_replacing_jump): Remove unnecessary
12352 check for region crossing note.
12353 (fixup_partition_crossing): New function.
12354 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
12355 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
12356 in non-cfglayout mode.
12357 (force_nonfallthru_and_redirect): Fixup partition boundaries,
12358 remove old code that tried to do this. Emit barrier correctly
12359 when we are in cfglayout mode.
12360 (last_bb_in_partition): New function.
12361 (rtl_split_edge): Correctly fixup partition boundaries.
12362 (commit_one_edge_insertion): Remove old code that tried to
12363 fixup region crossing edge since this is now handled in
12364 split_block, and set up insertion point correctly since
12365 block may now end in a jump.
12366 (verify_hot_cold_block_grouping): Guard against checking when not in
12367 linearized RTL mode.
12368 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
12369 notes.
12370 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
12371 rtl_verify_flow_info, so not called in cfglayout mode.
12372 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
12373 (fixup_reorder_chain): Remove old code that attempted to fixup region
12374 crossing note as this is now handled in force_nonfallthru_and_redirect.
12375 (duplicate_insn_chain): Don't duplicate switch section notes.
12376 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
12377 note.
12378 * basic-block.h (emit_barrier_after_bb): Declare.
12379
66071e10
KT
123802013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12381
12382 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
12383 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
12384 arm_usatsihi): Adjust alternatives for arm_restrict_it.
12385
0e26bf3d
KT
123862013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12387
12388 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
12389 where appropriate.
12390 * config/arm/ldmstm.md: Regenerate.
12391
12b4e7ef
KT
123922013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12393
12394 * config/arm/sync.md (atomic_loaddi_1):
12395 Disable predication for arm_restrict_it.
12396 (arm_load_exclusive<mode>): Likewise.
12397 (arm_load_exclusivesi): Likewise.
12398 (arm_load_exclusivedi): Likewise.
12399 (arm_load_acquire_exclusive<mode>): Likewise.
12400 (arm_load_acquire_exclusivesi): Likewise.
12401 (arm_load_acquire_exclusivedi): Likewise.
12402 (arm_store_exclusive<mode>): Likewise.
12403 (arm_store_exclusive<mode>): Likewise.
12404 (arm_store_release_exclusivedi): Likewise.
12405 (arm_store_release_exclusive<mode>): Likewise.
12406
15d16c8a
RB
124072013-06-06 Richard Biener <rguenther@suse.de>
12408
12409 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
12410 after LTO_null.
12411 (lto_tag_is_tree_code_p): Adjust.
12412 (lto_tag_is_gimple_code_p): Likewise.
12413 (lto_gimple_code_to_tag): Likewise.
12414 (lto_tag_to_gimple_code): Likewise.
12415 (lto_tree_code_to_tag): Likewise.
12416 (lto_tag_to_tree_code): Likewise.
12417 * data-streamer.h (streamer_write_hwi_in_range): Use
12418 uhwi streaming to stream the normalized range.
12419 (streamer_read_hwi_in_range): Likewise.
12420
17a7fc37
KT
124212013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12422
12423 * config/arm/arm.md (enabled_for_depr_it): New attribute.
12424 (predicable_short_it): Likewise.
12425 (predicated): Likewise.
12426 (enabled): Handle above.
12427 (define_cond_exec): Set predicated attribute to yes.
12428
b57ca59b
MS
124292013-06-05 Mike Stump <mikestump@comcast.net>
12430
12431 * gdbinit.in (__FUNCTION__): Add.
12432
c1e183a9
UB
124332013-06-05 Uros Bizjak <ubizjak@gmail.com>
12434
12435 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
12436 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
12437
0378bddb
JH
124382013-06-05 Jan Hubicka <jh@suse.cz>
12439
12440 * varasm.c (mark_decl_referenced): Revert the removal until targets
12441 are fixed.
12442
8f8a2057
DE
124432013-06-05 David Edelsohn <dje.gcc@gmail.com>
12444
12445 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
12446 instead of mark_decl_referenced.
12447
edb983b2
JH
124482013-06-05 Jan Hubicka <jh@suse.cz>
12449
12450 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
12451 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
12452 and symtab_used_from_object_file_p.
12453 (cgraph_make_node_local_1): Clear forced_by_abi.
12454 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
12455 * cgraph.h (symtab_node_base): Add forced_by_abi.
12456 (decide_is_variable_needed): Remove.
12457 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
12458 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
12459 (decide_is_symbol_needed): ... this one; handle symbols in general;
12460 always analyze virtuals; honnor forced_by_abi.
12461 (cgraph_finalize_function): Update.
12462 (varpool_finalize_decl): Update.
12463 (symbol_defined_and_needed): Remove.
12464 (analyze_functions): Update.
12465 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12466 output_refs, input_overwrite_node): Handle forced_by_abi.
12467 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
12468 (address_taken_from_non_vtable_p): ... this one.
12469 (comdat_can_be_unshared_p_1): New function.
12470 (cgraph_comdat_can_be_unshared_p): Rename to ...
12471 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
12472 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
12473 (function_and_variable_visibility): Clear forced_by_abi as needed.
12474 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
12475 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
12476 * symtab.c (dump_symtab_base): Dump forced_by_abi.
12477 * varpool.c (decide_is_variable_needed): Remove.
12478
9912dbe5
KT
124792013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12480
12481 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
12482 (arm_option_override): Override arm_restrict_it where appropriate.
12483 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
12484 * config/arm/arm.opt (mrestrict-it): New command-line option.
12485 * doc/invoke.texi: Document -mrestrict-it.
12486
34c136b6
DM
124872013-06-05 David Malcolm <dmalcolm@redhat.com>
12488
12489 * tsan.c (tsan_atomic_table): Make const.
12490
a367df53
RB
124912013-06-05 Richard Biener <rguenther@suse.de>
12492
12493 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
12494 index associated with the tree we are supposed to replace.
12495 * tree-streamer-out.c (pack_ts_base_value_fields): Output
12496 TREE_ASM_WRITTEN as zero for everything but SSA names.
12497
70d51a19
DM
124982013-06-05 David Malcolm <dmalcolm@redhat.com>
12499
12500 * tree-ssa-structalias.c (call_stmt_vars): Make static.
12501
b9bd2075
JH
125022013-06-04 Jan Hubicka <jh@suse.cz>
12503
12504 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
12505 (input_node, input_varpool_node): Handle correctly external same
12506 body aliases.
12507 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
12508 nodes at ltrans stage.
12509
aaae719d
JH
125102013-06-04 Jan Hubicka <jh@suse.cz>
12511
12512 * ipa-inline.c (update_caller_keys): Fix availability test.
12513 (update_callee_keys): Likewise.
12514 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
12515 to follow ELF standard.
12516
107eea2c
JU
125172013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
12518
12519 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
12520 (mips64r5900el-*-elf*): New configurations.
12521 * config/mips/mips-cpus.def (r5900): New processor.
12522 * config/mips/mips-tables.opt: Regenerate.
12523 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
12524 (mips_issue_rate): Handle PROCESSOR_R5900.
12525 (mips_reorg_process_insns): Force reorder mode for the R5900.
12526 * config/mips/mips.h (TARGET_MIPS5900): Define.
12527 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
12528 TARGET_MIPS5900.
12529 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
12530 TARGET_MIPS5900.
12531 * config/mips/mips.md (processor): Add r5900.
12532 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
12533
b7342d25
IB
125342013-06-04 Ian Bolton <ian.bolton@arm.com>
12535
12536 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
12537 into function to generate MOVI instruction.
c1e183a9 12538 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
12539 (aarch64_preferred_simd_mode): Turn into wrapper.
12540 (aarch64_output_scalar_simd_mov_immediate): New function.
12541 * config/aarch64/aarch64-protos.h: Add prototype for above.
12542
81c2dfb9
IB
125432013-06-04 Ian Bolton <ian.bolton@arm.com>
12544
12545 * config/aarch64/aarch64.c (simd_immediate_info): Remove
12546 element_char member.
12547 (sizetochar): Return signed char.
12548 (aarch64_simd_valid_immediate): Remove elchar and other
12549 unnecessary variables.
12550 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
12551 Calculate element_char as required.
12552 * config/aarch64/aarch64-protos.h: Update and move prototype
12553 for aarch64_output_simd_mov_immediate.
12554 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
12555 Update arguments.
12556
48063b9d
IB
125572013-06-04 Ian Bolton <ian.bolton@arm.com>
12558
12559 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
12560 information completed by aarch64_simd_valid_immediate.
12561 (aarch64_legitimate_constant_p): Update arguments.
12562 (aarch64_simd_valid_immediate): Work with struct rather than many
12563 pointers.
12564 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
12565 (aarch64_simd_make_constant): Update arguments.
12566 (aarch64_output_simd_mov_immediate): Work with struct rather than
12567 many pointers. Output immediate directly rather than as operand.
12568 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
12569 Update prototype.
12570 * config/aarch64/constraints.md (Dn): Update arguments.
12571
3ea63f60
IB
125722013-06-04 Ian Bolton <ian.bolton@arm.com>
12573
12574 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
12575 longer static.
12576 (aarch64_simd_immediate_valid_for_move): Remove.
12577 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
12578 (aarch64_simd_make_constant): Update call.
12579 (aarch64_output_simd_mov_immediate): Update call.
12580 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
12581 Add prototype.
12582 * config/aarch64/constraints.md (Dn): Update call.
12583
d8edd899
IB
125842013-06-04 Ian Bolton <ian.bolton@arm.com>
12585
12586 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
12587 return type to bool for prototype.
12588 (aarch64_legitimate_constant_p): Check for true instead of not -1.
12589 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
12590 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
12591
44b20bb8
CM
125922013-06-04 Catherine Moore <clm@codesourcery.com>
12593
12594 * config/mips/mips.opt (meva): New.
c1e183a9 12595 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
12596 (ASM_SPEC): Handle -meva.
12597 * doc/invoke.texi (meva): Document.
12598
52befbd8
AM
125992013-06-04 Alan Modra <amodra@gmail.com>
12600
12601 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
12602 constant output.
12603
aadaf24e
KT
126042013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12605
12606 * rtl.def: Add extra fourth optional field to define_cond_exec.
12607 * gensupport.c (process_one_cond_exec): Process attributes from
12608 define_cond_exec.
12609 * doc/md.texi: Document fourth field in define_cond_exec.
12610
0cd9e9ee
EB
126112013-06-04 Eric Botcazou <ebotcazou@adacore.com>
12612
12613 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
12614 out the processing order as in store_bit_field_1.
12615
cb0f665d
JH
126162013-06-04 Jan Hubicka <jh@suse.cz>
12617
12618 PR middle-end/57500
12619 * cgraphunit.c (cgraph_process_same_body_aliases): Create
12620 non-VAR_DECL node if it does not exist yet.
12621
53984b9b
RS
126222013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
12623
12624 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
12625 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
12626 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
12627 target_cpu_default setting.
12628
5d318fd4
TJ
126292013-06-03 Teresa Johnson <tejohnson@google.com>
12630
12631 * dumpfile.c (opt_info_switch_p): Change -fopt-info
12632 default to -fopt-info=optimized instead of all.
12633 * doc/invoke.texi: Ditto.
12634 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
12635 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
12636 (execute_vect_slp): Emit BB vectorization success under
12637 MSG_OPTIMIZED_LOCATIONS.
12638 * tree-vect-slp.c (vect_slp_transform_bb): Change
12639 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
12640 * tree-vect-loop.c (vect_transform_loop): Ditto.
12641
ec3af349
JM
126422013-06-03 Jason Merrill <jason@redhat.com>
12643
12644 PR c++/57415
12645 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12646 Use TARGET_EXPR for C++.
12647
1baf9159
JJ
126482013-06-03 Jakub Jelinek <jakub@redhat.com>
12649
12650 PR rtl-optimization/57268
0cd9e9ee 12651 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
12652 if DEBUG_INSN_P (insn).
12653
12654 Reapply
12655 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
12656
12657 PR rtl-optimization/57268
12658 * sched-deps.c (sched_analyze_2): Flush dependence lists if
12659 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
12660
0f1d3965
YR
126612013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
12662
12663 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
12664 (ix86_avoid_lea_for_addr): Likewise.
12665 (exact_dependency_1): Likewise.
12666 (ix86_adjust_cost): Likewise.
12667 (swap_top_of_ready_list): Fix formatting and !reload_completed check
12668 removed.
12669 (do_reorder_for_imul): Fix typo, formatting and
12670 !reload_completed check removed.
12671 (ix86_sched_reorder): Fix typo and formatting.
12672 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
12673 list.
12674
3bc30db4
SN
126752013-06-03 Sofiane Naci <sofiane.naci@arm.com>
12676
12677 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
12678
19cc6fac
EB
126792013-06-03 Eric Botcazou <ebotcazou@adacore.com>
12680
12681 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
12682 <STRING_CST>: Likewise.
12683 <VECTOR_CST>: Likewise.
12684
c68a6e08
JW
126852013-06-01 Janus Weil <janus@gcc.gnu.org>
12686 Mikael Morin <mikael@gcc.gnu.org>
12687
12688 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
12689 * config.in: Regenerated.
12690 * configure: Regenerated.
12691
38e55e5c
JH
126922013-06-01 Jan Hubicka <jh@suse.cz>
12693
12694 PR middle-end/57366
12695 * cgraphunit.c (compile): When weakref is not supported,
12696 set up transparent aliases before final output pass.
12697 * varasm.c (assemble_alias): Do not try to do it here.
12698
eb51d2ff
JH
126992013-06-01 Jan Hubicka <jh@suse.cz>
12700
12701 PR middle-end/57467
12702 * passes.c (for_per_function): Skip unanalyzed functions.
12703
40a7fe1e
JH
127042013-06-01 Jan Hubicka <jh@suse.cz>
12705
12706 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
12707 (lto_symtab_merge_symbols_1): ... this one.
12708 (lto_symtab_merge_cgraph_nodes): Rename to ...
12709 (lto_symtab_merge_symbols): ... this one; simplify.
12710 * cgraph.c (same_body_aliases_done): Rename to ...
12711 (cpp_implicit_aliases_done): ... this one.
12712 (cgraph_create_function_alias): Update.
12713 (cgraph_same_body_alias): Update.
c1e183a9 12714 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 12715 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 12716 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
12717 (cgraph_node): Remove same_body_alias.
12718 (varpool_node): Remove alias_of and extra_name_alias.
12719 (same_body_aliases_done): Rename to ..
12720 (cpp_implicit_aliases_done): ... this one.
12721 (symtab_alias_ultimate_target): Add default parameter.
12722 (symtab_resolve_alias): New function.
12723 (fixup_same_cpp_alias_visibility): Declare.
12724 (cgraph_function_node): Add default parameter.
12725 (cgraph_node_asm_name): Likewise.
12726 (cgraph_function_or_thunk_node): Add default parameter; do
12727 not ICE when it is NULL.
12728 (varpool_variable_node): Likewise.
12729 * tree-emutls.c (create_emultls_var): Update.
12730 (ipa_lower_emutls): Update.
12731 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
12732 (cgraph_reset_node): Reset alias info.
12733 (cgraph_finalize_function): Update.
12734 (fixup_same_cpp_alias_visibility): Move to symtab.c.
12735 (analyze_function): Simplify.
12736 (cgraph_process_same_body_aliases): Simplify.
12737 (analyze_functions): Fixup same body aliases.
12738 (handle_alias_pairs): Simplify.
12739 (assemble_thunk): Update.
12740 (assemble_thunks_and_aliases): Update.
12741 (output_weakrefs): Rewrite.
12742 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
12743 (lto_output_varpool_node): Likewise.
12744 (compute_ltrans_boundary): Remve assert.
12745 (get_alias_symbol): New functoin.
12746 (input_node): Rewrite alias handling.
12747 (input_varpool_node): Likewise.
12748 * ipa-pure-const.c (propagate_pure_const): Fix formating.
12749 * ipa.c (process_references): Handle weakrefs correctly.
12750 (symtab_remove_unreachable_nodes): Likewise.
12751 * trans-mem.c (get_cg_data): Update.
12752 (ipa_tm_create_version_alias): Update.
12753 (ipa_tm_execute): Update.
12754 * symtab.c (dump_symtab_base): Dump aliases.
12755 (verify_symtab_base): Verify aliases.
12756 (symtab_node_availability): New function.
12757 (symtab_alias_ultimate_target): Simplify.
12758 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
12759 handle all the fixup cases.
12760 (symtab_resolve_alias): New function.
12761 * passes.c (ipa_write_summaries): Handle weakrefs.
12762 * varpool.c (varpool_analyze_node): Simplify.
12763 (assemble_aliases): Update.
12764 (varpool_create_variable_alias): Simplify.
12765 (varpool_extra_name_alias): Simplify.
12766 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
12767 (lto_symtab_merge_symbols): ... this one.
12768
21759881
DT
127692013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
12770
12771 Revert
12772 PR rtl-optimization/57268
12773 * sched-deps.c (sched_analyze_2): Flush dependence lists if
12774 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
12775
daf4e940
TB
127762013-06-01 Tobias Burnus <burnus@net-b.de>
12777
12778 Partially reverted:
12779 2013-05-31 Tobias Burnus <burnus@net-b.de>
12780
12781 PR middle-end/57073
12782 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
12783 further up.
12784
c359d8d0
DT
127852013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
12786
12787 PR rtl-optimization/57268
12788 * sched-deps.c (sched_analyze_2): Flush dependence lists if
12789 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
12790
4172215d
EB
127912013-05-31 Eric Botcazou <ebotcazou@adacore.com>
12792
12793 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
12794 unordered comparison operators when -fno-trapping-math is in effect
12795 on the e500.
12796 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
12797 and implement unordered comparison operators properly on the e500.
12798
a8c50132
EB
127992013-05-31 Eric Botcazou <ebotcazou@adacore.com>
12800
12801 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
12802 for constant scalar integers.
12803 (simplify_relational_operation_1): Likewise.
12804
44626634
SB
128052013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
12806
12807 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
12808 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
12809 Fix comment.
12810
55805e54
YR
128112013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
12812 Igor Zamyatin <igor.zamyatin@intel.com>
12813
12814 Silvermont (SLM) architecture performance tuning.
12815 * config/i386/i386.h (enum ix86_tune_indices): Add
12816 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
12817 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
12818
12819 * config/i386/i386.c (initial_ix86_tune_features)
12820 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
12821 (ix86_lea_outperforms): Handle Silvermont tuning.
12822 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
12823 call.
12824 (ix86_use_lea_for_mov): Likewise.
12825 (ix86_avoid_lea_for_addr): Likewise.
12826 (ix86_lea_for_add_ok): Likewise.
12827 (exact_dependency_1): New function.
12828 (exact_store_load_dependency): Likewise.
12829 (ix86_adjust_cost): Handle Silvermont tuning.
12830 (do_reoder_for_imul): Likewise.
12831 (swap_top_of_ready_list): New function.
12832 (ix86_sched_reorder): Changed to handle Silvermont tuning.
12833
12834 * config/i386/i386.md (peepholes that split memory operand in fp
12835 converts): New.
12836
e19c9de2
MS
128372013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
12838
12839 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12840 Remove un-necessary braces.
12841
38e6c9a6
MS
128422013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
12843
12844 * config/aarch64/aarch64.c (aarch64_classify_symbol):
12845 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
12846
e3530904
TB
128472013-05-31 Tobias Burnus <burnus@net-b.de>
12848
12849 PR middle-end/57073
c1e183a9 12850 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 12851
b6af05a9
KT
128522013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12853
12854 PR target/56315
12855 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
12856 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
12857 * config/arm/neon.md (iordi3_neon): Remove.
12858 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
12859 * config/arm/predicates.md (imm_for_neon_logic_operand):
12860 Move to earlier in the file.
12861 (neon_logic_op2): Likewise.
12862 (arm_iordi_operand_neon): New predicate.
12863
f800c166
RB
128642013-05-31 Richard Biener <rguenther@suse.de>
12865
12866 PR tree-optimization/57478
12867 PR tree-optimization/57453
12868 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
12869 are life as well.
12870
e571fa59
KP
128712013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12872
12873 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
12874 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
12875
0fa6e0ef
TB
128762013-05-30 Tobias Burnus <burnus@net-b.de>
12877 Thomas Koenig <tkoenig@gcc.gnu.org>
12878
12879 PR middle-end/57073
12880 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
12881 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
12882
4688ddf5
SB
128832013-05-30 Steven Bosscher <steven@gcc.gnu.org>
12884
0fa6e0ef 12885 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 12886
3b9ceb4b
VM
128872013-05-30 Vladimir Makarov <vmakarov@redhat.com>
12888
12889 * target.def (register_usage_leveling_p): New hook.
12890 * targhooks.c (default_register_usage_leveling_p): New.
12891 * targhooks.h (default_register_usage_leveling_p): New prototype.
12892 * lra-assigns.c (register_usage_leveling_p): Use the hook.
12893 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
12894 * doc/tm.texi: Update.
12895 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
12896
65f9e789
IB
128972013-05-30 Ian Bolton <ian.bolton@arm.com>
12898
12899 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
12900 (*insv_reg<mode>): New define_insn.
12901
12211b99 129022013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
12903
12904 PR rtl-optimization/57439
12905 * postreload.c (move2add_valid_value_p): Check that we have
12906 a zero subreg_regno_offset when accessing the register in
12907 the requested mode.
12908
0b871ccf
YR
129092013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
12910 Igor Zamyatin <igor.zamyatin@intel.com>
12911
12912 Silvermont (SLM) architecture pipeline model, tuning and
12913 insn selection.
12914 * config.gcc: Add slm config options and target.
12915
12916 * config/i386/slm.md: New.
12917
12918 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
12919
f43245d1 12920 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
12921 PROCESSOR_SLM.
12922 (ix86_target_macros_internal): Likewise.
12923
f43245d1 12924 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
12925 (m_SLM): New macro flag.
12926 (initial_ix86_tune_features): Set m_SLM.
12927 (x86_accumulate_outgoing_args): Likewise.
12928 (x86_arch_always_fancy_math_387): Likewise.
12929 (processor_target_table): Add slm cost.
12930 (cpu_names): Add slm cpu name.
12931 (x86_option_override_internal): Set SLM ISA.
12932 (ix86_issue_rate): New case PROCESSOR_SLM.
12933 (ia32_multipass_dfa_lookahead): Likewise.
12934 (fold_builtin_cpu): Add slm.
12935
12936 * config/i386/i386.h (TARGET_SLM): New target macro.
12937 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
12938 (processor_type): Add PROCESSOR_SLM.
12939
12940 * config/i386/i386.md (cpu): Add new value "slm".
12941 (slm.md): Include slm.md.
12942
24d5b097
XG
129432013-05-30 Bernd Schmidt <bernds@codesourcery.com>
12944 Zhenqiang Chen <zhenqiang.chen@linaro.org>
12945
12946 * config/arm/arm-protos.h: Add and update function protos.
12947 * config/arm/arm.c (use_simple_return_p): New added.
12948 (thumb2_expand_return): Check simple_return flag.
12949 * config/arm/arm.md: Add simple_return and conditional simple_return.
12950 * config/arm/iterators.md: Add iterator for return and simple_return.
12951
c1cccc15
ZC
129522013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
12953
12954 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
12955 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
12956 (arm_emit_vfp_multi_reg_pop): Likewise.
12957 (thumb2_emit_ldrd_pop): Likewise.
12958 (arm_expand_epilogue): Add misc REG_CFA notes.
12959 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
12960
3a4f280b
LC
129612013-05-29 Lawrence Crowl <crowl@google.com>
12962
12963 * config/arm/t-arm: Update for below.
12964
12965 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
12966 Change type to hash_table. Update dependent calls and types.
12967
12968 * config/i386/t-cygming: Update for below.
12969
12970 * config/i386/t-interix: Update for below.
12971
12972 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
12973 Change type to hash_table. Update dependent calls and types.
12974 (i386_find_on_wrapper_list::wrappers): Likewise.
12975
12976 * config/ia64/t-ia64: Update for below.
12977
12978 * config/ia64/ia64.c (bundle_state_table):
12979 Change type to hash_table. Update dependent calls and types.
12980
12981 * config/mips/mips.c (mips_reorg_process_insns::htab):
12982 Change type to hash_table. Update dependent calls and types.
12983
12984 * config/sol2.c (solaris_comdat_htab):
12985 Change type to hash_table. Update dependent calls and types.
12986
12987 * config/t-sol2: Update for above.
12988
1388a0e3
TJ
129892013-05-29 Teresa Johnson <tejohnson@google.com>
12990
12991 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
12992 functions are not yet marked as defined.
12993
a5965b52 129942013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12995 Pat Haugen <pthaugen@us.ibm.com>
12996 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
12997
12998 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
12999 instructions.
13000 (VEC_A): Likewise.
13001 (VEC_C): Likewise.
13002 (vrotl<mode>3): Likewise.
13003 (vashl<mode>3): Likewise.
13004 (vlshr<mode>3): Likewise.
13005 (vashr<mode>3): Likewise.
13006
13007 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13008 support for power8 V2DI builtins.
13009
13010 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
13011 power8 V2DI builtins.
13012 (vupkhsw): Likewise.
13013 (vupklsw): Likewise.
13014 (vaddudm): Likewise.
13015 (vminsd): Likewise.
13016 (vmaxsd): Likewise.
13017 (vminud): Likewise.
13018 (vmaxud): Likewise.
13019 (vpkudum): Likewise.
13020 (vpksdss): Likewise.
13021 (vpkudus): Likewise.
13022 (vpksdus): Likewise.
13023 (vrld): Likewise.
13024 (vsld): Likewise.
13025 (vsrd): Likewise.
13026 (vsrad): Likewise.
13027 (vsubudm): Likewise.
13028 (vcmpequd): Likewise.
13029 (vcmpgtsd): Likewise.
13030 (vcmpgtud): Likewise.
13031 (vcmpequd_p): Likewise.
13032 (vcmpgtsd_p): Likewise.
13033 (vcmpgtud_p): Likewise.
13034 (vupkhsw): Likewise.
13035 (vupklsw): Likewise.
13036 (vaddudm): Likewise.
13037 (vmaxsd): Likewise.
13038 (vmaxud): Likewise.
13039 (vminsd): Likewise.
13040 (vminud): Likewise.
13041 (vpksdss): Likewise.
13042 (vpksdus): Likewise.
13043 (vpkudum): Likewise.
13044 (vpkudus): Likewise.
13045 (vrld): Likewise.
13046 (vsld): Likewise.
13047 (vsrad): Likewise.
13048 (vsrd): Likewise.
13049 (vsubudm): Likewise.
13050
13051 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
13052 support for power8 V2DI instructions.
13053
13054 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
13055 power8 V2DI instructions. Combine pack and unpack insns to use an
13056 iterator for each mode. Check whether a particular mode supports
13057 Altivec instructions instead of just checking TARGET_ALTIVEC.
13058 (UNSPEC_VPKUWUM): Likewise.
13059 (UNSPEC_VPKSHSS): Likewise.
13060 (UNSPEC_VPKSWSS): Likewise.
13061 (UNSPEC_VPKUHUS): Likewise.
13062 (UNSPEC_VPKSHUS): Likewise.
13063 (UNSPEC_VPKUWUS): Likewise.
13064 (UNSPEC_VPKSWUS): Likewise.
13065 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
13066 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
13067 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
13068 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
13069 (UNSPEC_VUPKHSB): Likewise.
13070 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
13071 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
13072 (UNSPEC_VUPKHSH): Likewise.
13073 (UNSPEC_VUPKLSB): Likewise.
13074 (UNSPEC_VUPKLSH): Likewise.
13075 (VI2): Likewise.
13076 (VI_char): Likewise.
13077 (VI_scalar): Likewise.
13078 (VI_unit): Likewise.
13079 (VP): Likewise.
13080 (VP_small): Likewise.
13081 (VP_small_lc): Likewise.
13082 (VU_char): Likewise.
13083 (add<mode>3): Likewise.
13084 (altivec_vaddcuw): Likewise.
13085 (altivec_vaddu<VI_char>s): Likewise.
13086 (altivec_vadds<VI_char>s): Likewise.
13087 (sub<mode>3): Likewise.
13088 (altivec_vsubcuw): Likewise.
13089 (altivec_vsubu<VI_char>s): Likewise.
13090 (altivec_vsubs<VI_char>s): Likewise.
13091 (altivec_vavgs<VI_char>): Likewise.
13092 (altivec_vcmpbfp): Likewise.
13093 (altivec_eq<mode>): Likewise.
13094 (altivec_gt<mode>): Likewise.
13095 (altivec_gtu<mode>): Likewise.
13096 (umax<mode>3): Likewise.
13097 (smax<mode>3): Likewise.
13098 (umin<mode>3): Likewise.
13099 (smin<mode>3): Likewise.
13100 (altivec_vpkuhum): Likewise.
13101 (altivec_vpkuwum): Likewise.
13102 (altivec_vpkshss): Likewise.
13103 (altivec_vpkswss): Likewise.
13104 (altivec_vpkuhus): Likewise.
13105 (altivec_vpkshus): Likewise.
13106 (altivec_vpkuwus): Likewise.
13107 (altivec_vpkswus): Likewise.
13108 (altivec_vpks<VI_char>ss): Likewise.
13109 (altivec_vpks<VI_char>us): Likewise.
13110 (altivec_vpku<VI_char>us): Likewise.
13111 (altivec_vpku<VI_char>um): Likewise.
13112 (altivec_vrl<VI_char>): Likewise.
13113 (altivec_vsl<VI_char>): Likewise.
13114 (altivec_vsr<VI_char>): Likewise.
13115 (altivec_vsra<VI_char>): Likewise.
13116 (altivec_vsldoi_<mode>): Likewise.
13117 (altivec_vupkhsb): Likewise.
13118 (altivec_vupkhs<VU_char>): Likewise.
13119 (altivec_vupkls<VU_char>): Likewise.
13120 (altivec_vupkhsh): Likewise.
13121 (altivec_vupklsb): Likewise.
13122 (altivec_vupklsh): Likewise.
13123 (altivec_vcmpequ<VI_char>_p): Likewise.
13124 (altivec_vcmpgts<VI_char>_p): Likewise.
13125 (altivec_vcmpgtu<VI_char>_p): Likewise.
13126 (abs<mode>2): Likewise.
13127 (vec_unpacks_hi_v16qi): Likewise.
13128 (vec_unpacks_hi_v8hi): Likewise.
13129 (vec_unpacks_lo_v16qi): Likewise.
13130 (vec_unpacks_hi_<VP_small_lc>): Likewise.
13131 (vec_unpacks_lo_v8hi): Likewise.
13132 (vec_unpacks_lo_<VP_small_lc>): Likewise.
13133 (vec_pack_trunc_v8h): Likewise.
13134 (vec_pack_trunc_v4si): Likewise.
13135 (vec_pack_trunc_<mode>): Likewise.
13136
13137 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
13138 V2DI builtins.
13139 (vec_vmaxsd): Likewise.
13140 (vec_vmaxud): Likewise.
13141 (vec_vminsd): Likewise.
13142 (vec_vminud): Likewise.
13143 (vec_vpksdss): Likewise.
13144 (vec_vpksdus): Likewise.
13145 (vec_vpkudum): Likewise.
13146 (vec_vpkudus): Likewise.
13147 (vec_vrld): Likewise.
13148 (vec_vsld): Likewise.
13149 (vec_vsrad): Likewise.
13150 (vec_vsrd): Likewise.
13151 (vec_vsubudm): Likewise.
13152 (vec_vupkhsw): Likewise.
13153 (vec_vupklsw): Likewise.
13154
e70670cf
JH
131552013-05-29 Jan Hubicka <jh@suse.cz>
13156
13157 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
13158 flags; reorder rest of fields in more consistent way.
13159 (varpool_node): Remove analyzed, finalized and alias.
13160 (cgraph_ndoe): Likewise.
13161 (symtab_alias_ultimate_target): New function.
13162 (cgraph_function_node): Move offline.
13163 (cgraph_reset_node): Declare.
13164 (cgraph_comdat_can_be_unshared_p): Remove.
13165 (varpool_remove_initializer): Declare.
13166 (varpool_first_defined_variable, varpool_next_defined_variable
13167 cgraph_first_defined_function, cgraph_next_defined_function): Update.
13168 (cgraph_function_with_gimple_body_p): Update.
13169 (varpool_all_refs_explicit_p): Update.
13170 (symtab_alias_target): New function.
13171 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
13172 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
13173 (cgraph_function_or_thunk_node): Simplify using
13174 symtab_alias_ultimate_target.
e70670cf
JH
13175 (varpool_variable_node): Likewise.
13176 * cgraph.c (cgraph_create_function_alias): Update.
13177 (cgraph_add_thunk): Update.
13178 (cgraph_remove_node): Update.
13179 (dump_cgraph_node): Do not dump removed flags.
13180 (cgraph_function_body_availability): Update.
13181 (cgraph_propagate_frequency): Update.
13182 (verify_cgraph_node): Check sanity of local flag.
13183 (cgraph_function_node): Move here from cgraph.h; revamp for
13184 cgraph_function_or_thunk_node.
13185 * lto-symtab.c (lto_varpool_replace_node): Update.
13186 (lto_symtab_resolve_can_prevail_p): Update.
13187 (lto_symtab_merge_cgraph_nodes): Update.
13188 * ipa-cp.c (determine_versionability, initialize_node_lattices,
13189 propagate_constants_accross_call, devirtualization_time_bonus,
13190 ipcp_propagate_stage): Update.
13191 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
13192 * ipa-inline-transform.c (clone_inlined_nodes,
13193 preserve_function_body_p): Update.
e70670cf
JH
13194 * ipa-reference.c (propagate): Update.
13195 (write_node_summary_p): Update.
13196 * toplev.c (wrapup_global_declaration_2): Update.
13197 * cgraphunit.c (cgraph_analyze_function): Rename to ...
13198 (analyze_function) ... this one.
13199 (cgraph_process_new_functions): Update.
13200 (cgraph_reset_node): Export.
13201 (cgraph_finalize_function): Update.
13202 (cgraph_add_new_function): Update.
13203 (process_function_and_variable_attributes): Update.
13204 (varpool_finalize_decl): Update.
13205 (symbol_finalized): Remove.
13206 (symbol_finalized_and_needed): Rename to ...
13207 (symbol_defined_and_needed): ... update.
13208 (cgraph_analyze_functions): Update.
13209 (handle_alias_pairs): Update.
13210 (mark_functions_to_output): Update.
13211 (assemble_thunk): Update.
13212 (output_in_order): Update.
13213 (output_weakrefs): Update.
13214 (finalize_compilation_unit): Update.
13215 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
13216 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
13217 input_node, input_varpool_node): Update.
13218 * dbxout.c (dbxout_expand_expr): Update.
13219 * cgraphclones.c (cgraph_clone_node): Update.
13220 (cgraph_copy_node_for_versioning): Update.
13221 (cgraph_materialize_clone): Update.
13222 (cgraph_materialize_all_clones): Update.
13223 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
13224 propagate_pure_const, propagate_nothrow): Update.
13225 * lto-streamer-out.c (lto_output, write_symbol): Update.
13226 * ipa-utils.c (ipa_reverse_postorder): Update.
13227 * ipa-inline.c (can_inline_edge_p): Update.
13228 (update_caller_keys, ipa_inline): Update.
13229 * dwarf2out.c (reference_to_unused,
13230 premark_types_used_by_global_vars_helper): Update.
13231 * tree-eh.c (tree_could_trap_p): Update.
13232 * ipa-split.c (consider_split, execute_split_functions): Update.
13233 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
13234 has_addr_references_p): Update; move ahead in file for better
13235 readability.
e70670cf
JH
13236 (process_references): Simplify.
13237 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
13238 bodies are removed.
13239 (cgraph_comdat_can_be_unshared_p): Make static.
13240 (cgraph_externally_visible_p): Update.
13241 (varpool_externally_visible_p): Update.
13242 (function_and_variable_visibility): Update.
13243 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
13244 ipa_tm_mark_force_output_node): Update.
13245 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
13246 estimate_edge_devirt_benefit, inline_generate_summary,
13247 inline_write_summary): Update.
13248 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
13249 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
13250 (ipa_print_node_params, ipa_prop_read_section,
13251 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
13252 * varasm.c (mark_decl_referenced): Update.
13253 (assemble_alias, dump_tm_clone_pairs): Update.
13254 * tree-inline.c (copy_bb): Update.
13255 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
13256 Update.
13257 * symtab.c (dump_symtab_base): Print new flags.
13258 (verify_symtab_base): Verify new flags.
13259 (symtab_alias_ultimate_target): New function.
13260 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
13261 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
13262 Update.
c1e183a9
UB
13263 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
13264 Update.
e70670cf
JH
13265 * i386.c (ix86_get_function_versions_dispatcher,
13266 ix86_generate_version_dispatcher_body): Update.
13267 (fold_builtin_cpu): Use varpool_add_new_variable.
13268 * varpool.c (varpool_remove_initializer): Break out from ...
13269 (varpool_remove_node): ... this one.
13270 (dump_varpool_node, varpool_node_for_asm,
13271 cgraph_variable_initializer_availability, varpool_analyze_node,
13272 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
13273 varpool_finalize_named_section_flags, varpool_create_variable_alias):
13274 Update.
e70670cf 13275
182802ad
JH
132762013-05-29 Jan Hubicka <jh@suse.cz>
13277
13278 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
13279
8190b609
ER
132802013-05-29 Easwaran Raman <eraman@google.com>
13281
13282 PR tree-optimization/57442
13283 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
13284 when control exits the main loop.
13285
69f5aa9b
SKS
132862013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
13287
13288 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
13289 and RX600.
c1e183a9 13290 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
13291 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
13292 * rx/t-rx: Add rx100 under multi library matches option for nofpu
13293 option.
13294
4b847da9
BS
132952013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13296
13297 PR tree-optimization/57441
13298 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
13299 Don't limit size of incr_vec to number of candidates.
13300
4fc43c39
SE
133012013-05-29 Steve Ellcey <sellcey@imgtec.com>
13302
13303 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
13304 and mips16 directories.
c1e183a9 13305 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
13306 (MULTILIB_DIRNAMES): Ditto.
13307 (MULTILIB_EXCEPTIONS): Add new exceptions.
13308 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
13309 (MULTILIB_DIRNAMES): Ditto.
13310 (MULTILIB_EXCEPTIONS): Add new exceptions.
13311
12211b99 133122012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
13313 Marcus Shawcroft <marcus.shawcroft@arm.com>
13314
13315 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
13316 SYMBOL_TINY_ABSOLUTE.
13317 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
13318 SYMBOL_TINY_ABSOLUTE.
13319 (aarch64_expand_mov_immediate): Likewise.
13320 (aarch64_classify_symbol): Likewise.
13321 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
13322 Permit SYMBOL_TINY_ABSOLUTE.
13323 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
13324
12211b99 133252013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
13326 Marcus Shawcroft <marcus.shawcroft@arm.com>
13327
13328 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
13329 Refactor if/switch. Replace gcc_assert with if.
13330
c0186656
GG
133312013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13332
13333 * config/i386/i386.c (initial_ix86_tune_features): Enable
13334 FP Reassociation for AMD bdver1 and bdver2.
13335
d20188f3
MJ
133362013-05-29 Martin Jambor <mjambor@suse.cz>
13337
13338 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
13339 and IMAGPART_EXPR do not occur within other handled_components.
13340
292cba13
RB
133412013-05-29 Richard Biener <rguenther@suse.de>
13342
13343 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
13344 access on whether the use is in the BB we currently try to
13345 vectorize.
13346 (vect_bb_vectorization_profitable_p): Pass the BB we currently
13347 vectorize to vect_bb_slp_scalar_cost.
13348
6eddf228
RB
133492013-05-29 Richard Biener <rguenther@suse.de>
13350
13351 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
13352 computing scalar cost offsetted by stmts that are kept live
13353 by scalar uses.
13354 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
13355 for computation of scalar cost.
13356
7df36117
SE
133572013-05-28 Steve Ellcey <sellcey@mips.com>
13358
13359 * config/mips/mips-cpus.def (mips32r2): Change processor type.
13360
36536d79
BI
133612013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13362
13363 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
13364 array notation built-in reduction functions.
13365 * doc/passes.texi (Passes): Added documentation about changes done
13366 for Cilk Plus.
13367 * doc/invoke.texi (C Dialect Options): Added documentation about
13368 the -fcilkplus flag.
13369 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
13370 (BUILTINS_DEF): Depend on cilkplus.def.
13371 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
13372 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
13373 * cilkplus.def: New file.
13374
12211b99 133752013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
13376
13377 PR rtl-optimization/57439
13378 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
13379
9daf6dbb
ER
133802013-05-28 Easwaran Raman <eraman@google.com>
13381
13382 PR tree-optimization/57337
13383 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
13384 (find_insert_point): Correctly identify the insertion point
13385 when two statements with the same UID is compared.
13386
fbd7e877
RB
133872013-05-28 Richard Biener <rguenther@suse.de>
13388
13389 PR tree-optimization/56787
13390 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
13391 from the list of data references.
13392 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
13393 clobbers.
13394 (vect_analyze_loop_operations): Likewise.
13395 (vect_transform_loop): Remove clobbers.
13396
bbba1117
MJ
133972013-05-28 Martin Jambor <mjambor@suse.cz>
13398
13399 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
13400 and REALPART_EXPRs have scalar type.
13401
bd388c2a
RB
134022013-05-28 Richard Biener <rguenther@suse.de>
13403
13404 PR tree-optimization/57411
13405 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
13406 virtual operands.
13407 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
13408 virtual operand propagation.
13409
2f56a311
EB
134102013-05-28 Eric Botcazou <ebotcazou@adacore.com>
13411
13412 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
13413 destination register for bmasksi_vis.
13414 (vector_init_bshuffle): Likewise.
13415 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
13416
5c3eacbb
EB
134172013-05-28 Eric Botcazou <ebotcazou@adacore.com>
13418
13419 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
13420 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
13421 mode if the instruction isn't available in the original mode.
13422 * config/sparc/sparc.opt (mfix-ut699): New option.
13423 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
13424 (divdf3): Turn into expander.
13425 (divdf3_nofix): New insn.
13426 (divdf3_fix): Likewise.
13427 (divsf3): Disable if -mfix-ut699.
13428 (sqrtdf2): Turn into expander.
13429 (sqrtdf2_nofix): New insn.
13430 (sqrtdf2_fix): Likewise.
13431 (sqrtsf2): Disable if -mfix-ut699.
13432
a1756c0a
RB
134332013-05-27 Richard Biener <rguenther@suse.de>
13434
13435 PR middle-end/57412
13436 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
13437 block for the new loop.
13438
5a892248
RB
134392013-05-27 Richard Biener <rguenther@suse.de>
13440
13441 PR tree-optimization/57343
13442 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
13443 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
13444 (number_of_iterations_cond): Do not build the folded tree.
13445
d1de852b
RB
134462013-05-27 Richard Biener <rguenther@suse.de>
13447
13448 Revert
13449 PR middle-end/57381
13450 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
13451 OEP_CONSTANT_ADDRESS_OF retained.
13452
13453 PR tree-optimization/57417
13454 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
13455 for unchanged base.
13456 (set_ssa_val_to): Compare addresses using
13457 get_addr_base_and_unit_offset.
13458
12211b99 134592013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
13460
13461 PR rtl-optimization/56833
13462 * postreload.c (move2add_record_mode): New function.
13463 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
13464 (move2add_use_add2_insn): Use move2add_record_sym_value.
13465 (move2add_use_add3_insn): Likewise.
13466 (reload_cse_move2add): Use move2add_valid_value_p and
13467 move2add_record_mode. Invalidate call-clobbered and REG_INC
13468 affected regs by setting reg_mode to VOIDmode.
13469 (move2add_note_store): Don't pretend the inside of a SUBREG is
13470 the actual destination. Invalidate single/leading registers by
13471 setting reg_mode to VOIDmode.
13472 Use move2add_record_sym_value, move2add_valid_value_p and
13473 move2add_record_mode.
13474
b03be25f
RB
134752013-05-27 Richard Biener <rguenther@suse.de>
13476
13477 PR tree-optimization/57396
13478 * tree-affine.c (double_int_constant_multiple_p): Properly
13479 return false for val == 0 and div != 0.
13480
44e88db2
RS
134812013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13482
13483 * config/mips/mips.h: Use #elif in preprocessor conditions.
13484
3b859704
RS
134852013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13486
13487 PR target/53916
13488 * config/mips/constraints.md (kl): New constraint.
13489 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
13490 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
13491 constraint for operand 0. Split after CSE for MIPS16. Emit a move
13492 from LO for MIPS16.
13493 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
13494
c979d5f5
RS
134952013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
13496
13497 PR target/55777
13498 * config/mips/mips.c (mips_can_inline_p): New function.
13499 (TARGET_CAN_INLINE_P): Define.
13500
8e90de43
SB
135012013-05-25 Steven Bosscher <steven@gcc.gnu.org>
13502
13503 * sched-int.h (ds_t, dw_t): Make unsigned int.
13504 Fix documentation that describes how all the ds_t bits are used.
13505 Reserve the last bit for delayed-branch scheduling.
13506 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
13507 (BITS_PER_DEP_WEAK): Fix definition and documentation.
13508 (gen_dep_weak_1): Remove prototype.
13509 * sched-deps.c (get_dep_weak_1): Make static.
13510 * target.def (speculate_insn, needs_block_p, gen_spec_check,
13511 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
13512 * doc/tm.texi: Regenerate.
13513 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
13514
cb5cb194
SB
135152013-05-24 Steven Bosscher <steven@gcc.gnu.org>
13516
13517 PR debug/56950
13518 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
13519
5bd93ff6
NS
135202013-05-24 Nathan Sidwell <nathan@codesourcery.com>
13521 Sandra Loosemore <sandra@codesourcery.com>
13522
13523 * config.gcc (powerpc-*): Allow native for with-cpu.
13524
2343af65
JL
135252013-05-24 Jeff Law <law@redhat.com>
13526
13527 PR tree-optimization/57124
13528 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
13529 conversion feeding a condition if the range has an overflow
13530 if -fstrict-overflow. Add warnings for when we do make the
13531 transformation.
13532
3ad695b9
DC
135332013-05-24 Dehao Chen <dehao@google.com>
13534
04960246 13535 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
13536 (locus_discrim_hasher): Likewise.
13537 (locus_discrim_hasher::hash): Likewise.
13538 (locus_discrim_hasher::equal): Likewise.
13539
82338059
MJ
135402013-05-24 Martin Jambor <mjambor@suse.cz>
13541
13542 PR tree-optimization/57294
13543 * cgraph.h (ipa_record_stmt_references): Declare.
13544 * cgraphbuild.c (ipa_record_stmt_references): New function.
13545 (build_cgraph_edges): Use ipa_record_stmt_references.
13546 (rebuild_cgraph_edges): Likewise.
13547 (cgraph_rebuild_references): Likewise.
13548 * ipa-prop.c (ipa_modify_call_arguments): Discard references
13549 associated with the old statement and build references from the
13550 newly built statements.
13551 * ipa-ref.c (ipa_remove_stmt_references): New function.
13552 * ipa-ref.h (ipa_remove_stmt_references): Declare.
13553
1ccd4874
VM
135542013-05-24 Vladimir Makarov <vmakarov@redhat.com>
13555
55805e54 13556 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 13557 mem-mem moves.
55805e54 13558 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 13559 too.
55805e54 13560 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
13561 secondary memory moves.
13562 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
13563 reg set up in the current insn.
13564
25e25c73
DC
135652013-05-24 Dehao Chen <dehao@google.com>
13566
04960246 13567 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
13568 hash function.
13569 (locus_descrim_hasher::equal): Likewise.
04960246 13570 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
13571 (make_edges): Likewise.
13572 (next_discriminator_for_locus): Likewise.
13573 (same_line_p): Likewise.
13574 (assign_discriminators): Likewise.
13575 (make_cond_expr_edges): Likewise.
13576 (make_gimple_switch_edges): Likewise.
13577 (make_goto_expr_edges): Likewise.
13578 (make_gimple_asm_edges): Likewise.
13579
50d38551
IB
135802013-05-24 Ian Bolton <ian.bolton@arm.com>
13581
13582 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
13583 X format specifier to only display bottom 16 bits.
13584 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
13585 immediate to match for operand 2, since it will be masked.
13586
aea0101d
RB
135872013-05-24 Richard Biener <rguenther@suse.de>
13588
13589 PR tree-optimization/57287
13590 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
13591 all SSA names that occur in abnormal PHIs.
13592
634e03d3
AI
135932013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
13594
13595 PR tree-ssa/57385
13596 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
13597 that index is not negative.
13598
b17c024f
EB
135992013-05-24 Eric Botcazou <ebotcazou@adacore.com>
13600
13601 PR rtl-optimization/55177
13602 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
13603 (simplify_byte_swapping_operation): New.
13604 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
13605 (simplify_relational_operation_1): Deal with BSWAP.
13606
46aeac1b
RH
136072013-05-23 Richard Henderson <rth@redhat.com>
13608
13609 PR target/56742
13610 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
13611 (ix86_reorg): Call it.
13612
70cc1536
UB
136132013-05-23 Uros Bizjak <ubizjak@gmail.com>
13614
13615 PR target/57379
13616 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
13617 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
13618 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
13619
b3851501
CB
136202013-05-23 Christian Bruel <christian.bruel@st.com>
13621
13622 PR debug/57351
13623 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
13624
12211b99 136252013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
13626 Marcus Shawcroft <marcus.shawcroft@arm.com>
13627
13628 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
13629 * config/aarch64/constraints.md (Usa): Remove.
13630 * doc/md.texi (AArch64 Usa): Remove.
13631
12211b99 136322013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
13633 Marcus Shawcroft <marcus.shawcroft@arm.com>
13634
13635 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
13636 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
13637 * config/aarch64/predicates.md (aarch64_const_address): Remove.
13638 (aarch64_mov_operand): Use aarch64_mov_operand_p.
13639
12211b99 136402013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
13641
13642 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
13643 instruction (AdvSIMD).
13644 * config/aarch64/aarch64-builtins.c
13645 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
13646 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
13647
76c36cb1 136482013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
13649
13650 PR middle-end/57347
13651 * tree.h (contains_bitfld_component_ref_p): Declare.
13652 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
13653 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
13654 caller.
7d2fb524
MJ
13655 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
13656 not access a bit-field. Assert all final offsets are byte-aligned.
13657
ce521ae6
RB
136582013-05-23 Richard Biener <rguenther@suse.de>
13659
13660 PR tree-optimization/57380
13661 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
13662 least one invariant or re-used load.
13663 * passes.c (init_optimization_passes): Move pass_phiprop before
13664 pass_forwprop.
13665
75c7257f
JG
136662013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
13667
13668 * config/aarch64/aarch64-simd.md
13669 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
13670
af6d44b5
RB
136712013-05-23 Richard Biener <rguenther@suse.de>
13672
13673 PR middle-end/57381
13674 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
13675 OEP_CONSTANT_ADDRESS_OF retained.
13676
bd3647bf
JJ
136772013-05-23 Jakub Jelinek <jakub@redhat.com>
13678
13679 PR middle-end/57344
70cc1536
UB
13680 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
13681 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 13682
a55757ea
RB
136832013-05-23 Richard Biener <rguenther@suse.de>
13684
13685 PR rtl-optimization/57341
13686 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
13687 instead of true_dependence.
13688
cfb00b41
DM
136892013-05-22 David Malcolm <dmalcolm@redhat.com>
13690
dd1c676f
DM
13691 * bb-reorder.c (branch_threshold): Make const.
13692 (exec_threshold): Ditto.
cfb00b41 13693
f62511da 136942013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13695 Pat Haugen <pthaugen@us.ibm.com>
13696 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
13697
13698 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
13699 documentation for the power8 crypto builtins.
13700
13701 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
13702
13703 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
13704 macros for defining power8 builtin functions.
13705 (BU_P8V_AV_2): Likewise.
13706 (BU_P8V_AV_P): Likewise.
13707 (BU_P8V_VSX_1): Likewise.
13708 (BU_P8V_OVERLOAD_1): Likewise.
13709 (BU_P8V_OVERLOAD_2): Likewise.
13710 (BU_CRYPTO_1): Likewise.
13711 (BU_CRYPTO_2): Likewise.
13712 (BU_CRYPTO_3): Likewise.
13713 (BU_CRYPTO_OVERLOAD_1): Likewise.
13714 (BU_CRYPTO_OVERLOAD_2): Likewise.
13715 (XSCVSPDP): Fix typo, point to the correct instruction.
13716 (VCIPHER): Add power8 crypto builtins.
13717 (VCIPHERLAST): Likewise.
13718 (VNCIPHER): Likewise.
13719 (VNCIPHERLAST): Likewise.
13720 (VPMSUMB): Likewise.
13721 (VPMSUMH): Likewise.
13722 (VPMSUMW): Likewise.
13723 (VPERMXOR_V2DI): Likewise.
13724 (VPERMXOR_V4SI: Likewise.
13725 (VPERMXOR_V8HI: Likewise.
13726 (VPERMXOR_V16QI: Likewise.
13727 (VSHASIGMAW): Likewise.
13728 (VSHASIGMAD): Likewise.
13729 (VPMSUM): Likewise.
13730 (VPERMXOR): Likewise.
13731 (VSHASIGMA): Likewise.
13732
13733 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
13734 __CRYPTO__ if the crypto instructions are available.
13735 (altivec_overloaded_builtins): Add support for overloaded power8
13736 builtins.
13737
13738 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
13739 support for power8 crypto builtins.
13740 (builtin_function_type): Likewise.
13741 (altivec_init_builtins): Add support for builtins that take vector
13742 long long (V2DI) arguments.
13743
13744 * config/rs6000/crypto.md: New file, define power8 crypto
13745 instructions.
13746
137472013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13748 Pat Haugen <pthaugen@us.ibm.com>
13749 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
13750
13751 * doc/invoke.texi (Option Summary): Add power8 options.
13752 (RS/6000 and PowerPC Options): Likewise.
13753
13754 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
13755 constraints.md instead of rs6000.h. Reorder w* constraints. Add
13756 wm, wn, wr documentation.
13757
f43245d1 13758 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
13759 registers if direct move instructions are enabled.
13760 (wn): New constraint for no registers.
13761 (wq): New constraint for quad word even GPR registers.
13762 (wr): New constraint if 64-bit instructions are enabled.
13763 (wv): New constraint if power8 vector instructions are enabled.
13764 (wQ): New constraint for quad word memory locations.
13765
f43245d1 13766 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
13767 constraint for 0..15 for crypto instructions.
13768 (gpc_reg_operand): If VSX allow registers in VSX registers as well
13769 as GPR and floating point registers.
13770 (int_reg_operand): New predicate to match only GPR registers.
13771 (base_reg_operand): New predicate to match base registers.
13772 (quad_int_reg_operand): New predicate to match even GPR registers
13773 for quad memory operations.
13774 (vsx_reg_or_cint_operand): New predicate to allow vector logical
13775 operations in both GPR and VSX registers.
13776 (quad_memory_operand): New predicate for quad memory operations.
13777 (reg_or_indexed_operand): New predicate for direct move support.
13778
f43245d1 13779 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
13780 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
13781 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
13782 (POWERPC_MASKS): Add power8 options.
13783 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
13784 various options.
13785
f43245d1 13786 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
13787 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
13788
f43245d1 13789 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
13790 (-mpower8-fusion): New power8 options.
13791 (-mpower8-fusion-sign): Likewise.
13792 (-mpower8-vector): Likewise.
13793 (-mcrypto): Likewise.
13794 (-mdirect-move): Likewise.
13795 (-mquad-memory): Likewise.
13796
f43245d1 13797 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
13798 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
13799 registers.
70cc1536 13800 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
13801 (rs6000_debug_vector_unit): Add p8_vector.
13802 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
13803 definitions. Also print fusion state.
13804 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
13805 (rs6000_builtin_mask_calculate): Add power8 builtin support.
13806 (rs6000_option_override_internal): Add support for power8.
13807 (rs6000_common_init_builtins): Add debugging for skipped builtins
13808 if -mdebug=builtin.
13809 (rs6000_adjust_cost): Add power8 support.
13810 (rs6000_issue_rate): Likewise.
13811 (insn_must_be_first_in_group): Likewise.
13812 (insn_must_be_last_in_group): Likewise.
13813 (force_new_group): Likewise.
13814 (rs6000_register_move_cost): Likewise.
13815 (rs6000_opt_masks): Likewise.
13816
13817 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
13818 power8 capable assembler, default to power7 options.
13819 (TARGET_DIRECT_MOVE): Likewise.
13820 (TARGET_CRYPTO): Likewise.
13821 (TARGET_P8_VECTOR): Likewise.
13822 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
13823 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
13824 (VECTOR_MEM_P8_VECTOR_P): Likewise.
13825 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
13826 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
13827 (TARGET_XSCVDPSPN): Likewise.
13828 (TARGET_XSCVSPDPN): Likewsie.
13829 (TARGET_SYNC_HI_QI): Likewise.
13830 (TARGET_SYNC_TI): Likewise.
13831 (MASK_CRYPTO): Likewise.
13832 (MASK_DIRECT_MOVE): Likewise.
13833 (MASK_P8_FUSION): Likewise.
13834 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
13835 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
13836 temporary used by some of the direct move instructions to get two FP
13837 temporary registers does not force creation of a stack frame.
f62511da
MM
13838 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
13839 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
13840 that any VSX registers are tieable, even if they are also an
13841 Altivec vector mode.
13842 (r6000_reg_class_enum): Add wm, wr, wv constraints.
13843 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
13844 (RS6000_BTM_CRYPTO): Likewise.
13845 (RS6000_BTM_COMMON): Likewise.
13846
13847 * config/rs6000/rs6000.md (cpu attribute): Add power8.
13848 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
13849 (enum rs6000_vector): Add power8 vector support.
13850
73a1a707
RR
138512013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13852
13853 PR target/19599
13854 PR target/57340
13855 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
13856 (any_sibcall_could_use_r3): this and handle indirect calls.
13857 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
13858
d28073d4
BS
138592013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13860
13861 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
13862
bee0b10c
RB
138632013-05-22 Richard Biener <rguenther@suse.de>
13864
13865 PR middle-end/57349
13866 * profile.c (branch_prob): Do not split blocks that are
13867 abnormally receiving from ECF_RETURNS_TWICE functions.
13868
98409b51
RS
138692013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13870
13871 * recog.c (offsettable_address_addr_space_p): Fix calculation of
13872 address mode. Move pointer mode initialization to the same place.
13873
c0602ab8
MZ
138742013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13875
13876 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
13877 while it has any effect.
13878
4f7a634e
ER
138792013-05-21 Easwaran Raman <eraman@google.com>
13880
13881 PR tree-optimization/57322
9daf6dbb
ER
13882 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
13883 UID of the statement added to the BB to be 1.
4f7a634e 13884
a4ce1258
JJ
138852013-05-21 Jakub Jelinek <jakub@redhat.com>
13886
13887 PR tree-optimization/57331
70cc1536
UB
13888 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
13889 of conversion from pointer type to integral type with integer.
a4ce1258 13890
1b14621a
MJ
138912013-05-21 Martin Jambor <mjambor@suse.cz>
13892
13893 PR lto/57289
13894 * ipa-prop.c (ipa_read_node_info): Process param_used and
13895 controlled_uses in the same order as when writing.
13896
e60661f0
MG
138972013-05-21 Magnus Granberg <baldrick@free.fr>
13898
13899 PR plugins/56754
ee49aa34 13900 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 13901
4a61be9a
RB
139022013-05-21 Richard Biener <rguenther@suse.de>
13903
13904 PR tree-optimization/57318
13905 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
13906 estimate stmts with side-effects as likely eliminated.
13907
c52da5f7
RB
139082013-05-21 Richard Biener <rguenther@suse.de>
13909
13910 PR tree-optimization/57330
13911 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
13912 preserve the call stmts fntype.
13913
7ec67e2a
RB
139142013-05-21 Richard Biener <rguenther@suse.de>
13915
13916 PR tree-optimization/57303
13917 * tree-ssa-sink.c (statement_sink_location): Improve killing
13918 stmt detection and properly handle self-assignments.
13919
b112d513
CB
139202013-05-21 Christian Bruel <christian.bruel@st.com>
13921
55805e54
YR
13922 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
13923 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
13924 registers. Set register size out of the PARALLEL loop.
13925
14c2ec26
OE
139262013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
13927
13928 PR target/56547
13929 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
13930 (*fmasf4, *fmasf4_media): New insns.
13931
da734fa1
RS
139322013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
13933
13934 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
13935 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
13936 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
13937 (mips_idiv_insns): Update the comments to say that the returned
13938 instruction counts are in units of BASE_INSN_LENGTH.
13939 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
13940 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
13941 using 2 rather than 4 as the length of indirect MIPS16 and
13942 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
13943 length of a NOP. Don't divide MIPS16 lengths by 2.
13944 (mips16_split_long_branches): Assume a branch is long if the
13945 length is greater than 4 rather than 8.
13946 * config/mips/mips.md (length): Give MIPS16 lengths directly,
13947 rather than multiplying them by 2. Multiply instruction counts
13948 by BASE_INSN_LENGTH rather than 4.
13949 (*jump_mips16, tls_get_tp_mips16_<mode>)
13950 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
13951
13719e8b
RS
139522013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
13953
13954 * config/mips/mips.md (extended_mips16): Remove branch case.
13955 (length): Remove duplicated extended_mips16 test.
13956
c3850d14
RS
139572013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
13958
13959 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
13960
8da2e059
RS
139612013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
13962
13963 * recog.h (Recog_data): Rename to...
13964 (recog_data_d): ...this.
13965 (recog_data): Update accordingly.
13966 * recog.c (recog_data): Likewise.
13967 * reload.c (save_recog_data): Likewise.
13968 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
13969 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
13970
2df013f3
JB
139712013-05-17 Julian Brown <julian@codesourcery.com>
13972
13973 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
13974 found in a REG_EQUAL note, invalidate it.
13975
371e77e3 139762013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
13977
13978 * tree-ssa-reassoc.c (find_insert_point): New function.
13979 (insert_stmt_after): Likewise.
13980 (get_def_stmt): Likewise.
13981 (ensure_ops_are_available): Likewise.
13982 (not_dominated_by): Likewise.
13983 (rewrite_expr_tree): Do not move statements beyond what is
13984 necessary. Remove call to swap_ops_for_binary_stmt...
13985 (reassociate_bb): ... and move it here.
13986 (build_and_add_sum): Assign UIDs for new statements.
13987 (linearize_expr): Likewise.
13988 (do_reassoc): Renumber gimple statement UIDs.
13989
e01c7cca
JH
139902013-05-17 Jan Hubicka <jh@suse.cz>
13991
13992 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
13993 weakrefs.
13994 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
13995 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
13996 weakrefs.
e01c7cca
JH
13997 (output_weakrefs): Update.
13998
c3272a92
PCC
139992013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
14000 Martin Jambor <mjambor@suse.cz>
14001
14002 PR middle-end/57276
14003 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
14004 value that corresponds to the given aggval is found in values vector.
14005
11c2aa39
UB
140062013-05-17 Uros Bizjak <ubizjak@gmail.com>
14007
14008 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
14009 sse, sse2, sse3, ssse3 and sse4a flags to options.
14010
abecc8c6
DM
140112013-05-17 David Malcolm <dmalcolm@redhat.com>
14012
14013 * gengtype-state.c: (s_expr_writer): New class, to handle
14014 prettifying of output layout of s-expressions.
14015 (state_writer): New class, to write out gtype.state.
14016 (state_written_type_count): Move this variable into member data of
14017 state_writer.
14018 (s_expr_writer::s_expr_writer): New code: constructor for new class
14019 (state_writer::state_writer(): ditto
14020 (s_expr_writer::write_new_line): New function
14021 (s_expr_writer::write_any_indent): ditto
14022 (s_expr_writer::begin_s_expr): ditto
14023 (s_expr_writer::end_s_expr): ditto
14024 (write_state_fileloc): convert to method of state_writer...
14025 (state_writer:: write_state_fileloc): ...and use methods of
14026 s_expr_writer to write indentation into the gtype.state output file
14027 to visually represent the hierarchical structure of the list
14028 structures
14029 (write_state_fields): ditto, renaming to...
14030 (state_writer::write_state_fields)
14031 (write_state_a_string): ditto, renaming to...
14032 (state_writer::write_state_a_string)
14033 (write_state_string_option): ditto, renaming to...
14034 (state_writer::write_state_string_option)
14035 (write_state_type_option): ditto, renaming to...
14036 (state_writer::write_state_type_option)
14037 (write_state_nested_option): ditto, renaming to...
14038 (state_writer::write_state_nested_option)
14039 (write_state_option): ditto, renaming to...
14040 (state_writer::write_state_option)
14041 (write_state_options): ditto, renaming to...
14042 (state_writer::write_state_options)
14043 (write_state_lang_bitmap): ditto, renaming to...
14044 (state_writer::write_state_lang_bitmap)
14045 (write_state_version): ditto, renaming to...
14046 (state_writer::write_state_version)
14047 (write_state_scalar_type): ditto, renaming to...
14048 (state_writer::write_state_scalar_type)
14049 (write_state_string_type): ditto, renaming to...
14050 (state_writer::write_state_string_type)
14051 (write_state_undefined_type): ditto, renaming to...
14052 (state_writer::write_state_undefined_type)
14053 (write_state_struct_union_type): ditto, renaming to...
14054 (state_writer::write_state_struct_union_type)
14055 (write_state_struct_type): ditto, renaming to...
14056 (state_writer::write_state_struct_type)
14057 (write_state_user_struct_type): ditto, renaming to...
14058 (state_writer::write_state_user_struct_type)
14059 (write_state_lang_struct_type): ditto, renaming to...
14060 (state_writer::write_state_lang_struct_type)
14061 (write_state_param_struct_type): ditto, renaming to...
14062 (state_writer::write_state_param_struct_type)
14063 (write_state_pointer_type): ditto, renaming to...
14064 (state_writer::write_state_pointer_type)
14065 (write_state_array_type): ditto, renaming to...
14066 (state_writer::write_state_array_type)
14067 (write_state_gc_used): ditto, renaming to...
14068 (state_writer::write_state_gc_used)
14069 (write_state_common_type_content): ditto, renaming to...
14070 (state_writer::write_state_common_type_content)
14071 (write_state_type): ditto, renaming to...
14072 (state_writer::write_state_type)
14073 (write_state_pair_list): ditto, renaming to...
14074 (state_writer::write_state_pair_list)
14075 (write_state_pair): ditto, renaming to...
14076 (state_writer::write_state_pair)
14077 (write_state_typedefs): ditto, renaming to...
14078 (state_writer::write_state_typedefs)
14079 (write_state_structures): ditto, renaming to...
14080 (state_writer::write_state_structures)
14081 (write_state_param_structs): ditto, renaming to...
14082 (state_writer::write_state_param_structs)
14083 (write_state_variables): ditto, renaming to...
14084 (state_writer::write_state_variables)
14085 (write_state_srcdir): ditto, renaming to...
14086 (state_writer::write_state_srcdir)
14087 (write_state_files_list): ditto, renaming to...
14088 (state_writer::write_state_files_list)
14089 (write_state_languages): ditto, renaming to...
14090 (state_writer::write_state_languages)
14091 (write_state): create a state_writer instance and use it when
14092 writing out the state file
14093
d6545f29
MS
140942013-05-17 Mike Stump <mikestump@comcast.net>
14095
816a3f73 14096 PR rtl-optimization/57304
d6545f29
MS
14097 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
14098 accessing DF_REF_REAL_LOC.
14099
38c821cf
JJ
141002013-05-17 Jakub Jelinek <jakub@redhat.com>
14101
14102 PR rtl-optimization/57281
14103 PR rtl-optimization/57300
14104 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
14105 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
14106 what the other splitter did if the registers are dead.
14107
2a293391
RB
141082013-05-17 Richard Biener <rguenther@suse.de>
14109
14110 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
14111 MEM_REF offsets.
14112
17042d2b
JJ
141132013-05-17 Jakub Jelinek <jakub@redhat.com>
14114
14115 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
14116 linking.
14117
5b115c1f
MP
141182013-05-17 Marek Polacek <polacek@redhat.com>
14119
11c2aa39
UB
14120 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
14121 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 14122
52d84413
JJ
141232013-05-17 Jakub Jelinek <jakub@redhat.com>
14124
68119618
JJ
14125 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
14126 vect_external_def oprnd1 with loop_vinfo, try to emit
14127 optional cast, negation and and stmts on the loop preheader
14128 edge instead of into the pattern def seq.
14129
52d84413
JJ
14130 PR tree-optimization/57051
14131 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
14132 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
14133
17b962bd
NC
141342013-05-16 Nick Clifton <nickc@redhat.com>
14135
14136 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
14137 (rl78_is_naked_func): New function.
56aefbf7
UB
14138 (rl78_expand_prologue): Skip prologue generation for naked functions.
14139 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
14140 * doc/extend.texi (naked): Add RL78 to the list of processors
14141 that supports this attribute.
14142
b1a0f84e
JL
141432013-05-16 Jeff Law <law@redhat.com>
14144
14145 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
14146
af0e415b
UB
141472013-05-16 Uros Bizjak <ubizjak@gmail.com>
14148
14149 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
14150 cache parameters using detect_caches_amd also for CYRIX,
14151 NSC and TM2 signatures.
14152
19db293a
UB
141532013-05-16 Uros Bizjak <ubizjak@gmail.com>
14154 Dzianis Kahanovich <mahatma@eu.by>
14155
14156 PR target/45359
14157 PR target/46396
14158 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
14159 VIA/Centaur processors and determine their cache parameters
14160 using detect_caches_amd.
14161
251a41b9
TJ
141622013-05-16 Teresa Johnson <tejohnson@google.com>
14163
14164 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
14165 (rtl_verify_edges): New function.
14166 (rtl_verify_bb_insns): Ditto.
14167 (rtl_verify_bb_pointers): Ditto.
14168 (rtl_verify_bb_insn_chain): Ditto.
14169 (rtl_verify_fallthru): Ditto.
14170 (rtl_verify_bb_layout): Ditto.
14171 (rtl_verify_flow_info_1): Outline checks into new functions.
14172 (rtl_verify_flow_info): Ditto.
14173
f14540b6
SE
141742013-05-16 Steve Ellcey <sellcey@imgtec.com>
14175
14176 * cfghooks.c (copy_bbs): Add update_dominance argument.
14177 * cfghooks.h (copy_bbs): Update prototype.
14178 * tree-cfg.c (gimple_duplicate_sese_region):
14179 Add update_dominance argument.
14180 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
14181 * tree-ssa-loop-ch.c (copy_loop_headers): Update
14182 gimple_duplicate_sese_region call.
14183 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
14184 Update copy_bbs call.
14185 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
14186 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
14187
7e9a3abb
JJ
141882013-05-16 Jakub Jelinek <jakub@redhat.com>
14189
14190 * tree-vectorizer.h (NUM_PATTERNS): Increment.
14191 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
14192 vect_recog_rotate_pattern.
14193 (vect_recog_rotate_pattern): New function.
14194
427b248d
JM
141952013-05-16 Jason Merrill <jason@redhat.com>
14196
14197 * Makefile.in (LLINKER): New variable.
14198 (mostlyclean): Remove link mutex.
14199 * configure.ac: Handle --enable-link-mutex.
14200 * lock-and-run.sh: New script.
14201
b871e3d2
RR
142022013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14203
14204 PR target/19599
14205 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
14206 for NULL decl.
14207
ce858126
RO
142082013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14209
14210 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
14211
798d3d04
GY
142122013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
14213
14214 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
14215 * config/arm/arm.c (next_consecutive_mem): New function.
14216 (gen_movmem_ldrd_strd): Likewise.
14217 * config/arm/arm.md (movmemqi): Update condition and code.
14218 (unaligned_loaddi, unaligned_storedi): New patterns.
14219
0baddc45
RO
142202013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14221
14222 * config.gcc: Obsolete *-*-solaris2.9*.
14223 * doc/install.texi (Specific, *-*-solaris2*): Document it.
14224
aa9d5bcf
RB
142252013-05-16 Richard Biener <rguenther@suse.de>
14226
14227 * passes.c (init_optimization_passes): Move pass_parallelize_loops
14228 earlier, after GRAPHITE transforms and IV canonicalization.
14229
5a0f4dd3
JJ
142302013-05-16 Jakub Jelinek <jakub@redhat.com>
14231
14232 * omp-low.c (extract_omp_for_data): For collapsed loops,
14233 if at least one of the loops is known at compile time to
14234 iterate zero times, set count to 0.
14235 (expand_omp_regimplify_p): New function.
14236 (expand_omp_for_generic): For collapsed loops, if at least
14237 one of the loops isn't known to iterate at least once,
14238 add runtime check with setting count to 0.
14239 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
14240 For unsigned types if it isn't known at compile time that
14241 the loop will iterate at least once, add runtime check to bypass
14242 the whole loop if initial condition isn't true.
14243
e3753785
NS
142442013-05-16 Nathan Sidwell <nathan@codesourcery.com>
14245
14246 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
14247
43bb4dd1
MG
142482013-05-16 Marc Glisse <marc.glisse@inria.fr>
14249
14250 PR middle-end/57286
14251 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
14252 transformations to avoid an infinite loop.
14253
3571dde6
MP
142542013-05-16 Marek Polacek <polacek@redhat.com>
14255
14256 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
14257
b8b3f0ca
LE
142582013-05-15 Leif Ekblad <leif@rdos.net>
14259
14260 * config/i386/i386.c (ix86_decompose_address): Use
14261 DEFAULT_TLS_SEG_REG to access TLS segment register.
14262 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
14263 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
14264 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
14265
e299a383
RS
142662013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
14267
14268 PR target/57260
14269 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
14270 sibling calls to functions that would normally be lazily bound,
14271 unless $gp is call-clobbered.
14272
e7208ea3
UB
142732013-05-15 Uros Bizjak <ubizjak@gmail.com>
14274
19db293a 14275 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 14276 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
14277 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
14278 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
14279 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
14280 of TARGET_3DNOW.
14281 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
14282
e7413f3d
AS
142832013-05-15 Andreas Schwab <schwab@suse.de>
14284
14285 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
14286 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
14287 third operand.
14288
ad4db775
TJ
142892013-05-15 Teresa Johnson <tejohnson@google.com>
14290
14291 * loop-unroll.c (report_unroll_peel): Check decision before
14292 emitting unroll/peel message.
14293
af205f67
TJ
142942013-05-15 Teresa Johnson <tejohnson@google.com>
14295
14296 * function.h (has_bb_partition): New rtl_data flag.
14297 (bb_reorder_complete): Ditto.
14298 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
14299 instead of flag_reorder_blocks_and_partition.
14300 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
14301 with some enhancements.
14302 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
14303 * bb-reorder.c (connect_traces): Check for has_bb_partition
14304 instead of flag_reorder_blocks_and_partition.
14305 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
14306 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
14307 verify_hot_cold_block_grouping.
14308 (partition_hot_cold_basic_blocks): Set has_bb_partition.
14309
9adcfa3c
RR
143102013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14311
14312 PR target/19599
14313 * config/arm/predicates.md (call_insn_operand): New predicate.
14314 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
14315 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
14316 if insn is not a tail call.
14317 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
14318 registers.
14319 * config/arm/arm.h (enum reg_class): New caller save register class.
14320 (REG_CLASS_NAMES): Likewise.
14321 (REG_CLASS_CONTENTS): Likewise.
14322 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
14323 without decls.
14324
ccb3ad87
RB
143252013-05-15 Richard Biener <rguenther@suse.de>
14326
14327 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
14328 of MSG_OPTIMIZED_LOCATIONS.
14329 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
14330 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
14331 message.
14332 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
14333 of MSG_OPTIMIZED_LOCATIONS.
14334 (execute_vect_slp): Likewise.
14335 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
14336 (vect_create_cond_for_alias_checks): Likewise.
14337 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
14338 (vect_recog_widen_mult_pattern): Likewise.
14339 (vect_recog_widen_sum_pattern): Likewise.
14340 (vect_recog_over_widening_pattern): Likewise.
14341 (vect_recog_widen_shift_pattern): Likewise.
14342 (vect_recog_vector_vector_shift_pattern): Likewise.
14343 (vect_recog_divmod_pattern): Likewise.
14344 (vect_recog_mixed_size_cond_pattern): Likewise.
14345 (vect_recog_bool_pattern): Likewise.
14346 (vect_pattern_recog_1): Likewise.
14347
48b1474e
MJ
143482013-05-15 Martin Jambor <mjambor@suse.cz>
14349
14350 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
14351 non-functions to builtin_unreachable.
14352 * ipa-inline-transform.c (inline_call): Do not assert estimates were
14353 correct when new direct edges were discovered.
14354
9de04252
MJ
143552013-05-15 Martin Jambor <mjambor@suse.cz>
14356
14357 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
14358 header, print symbol order instead of node uid, print more information
14359 about indirect edge targets.
14360 (ipa_make_edge_direct_to_target): Print symbol order instead of node
14361 uids.
14362 (ipa_make_edge_direct_to_target): Likewise.
14363 (remove_described_reference): Likewise.
14364 (propagate_controlled_uses): Likewise.
14365 (ipa_print_node_params): Also print symbol order.
14366 (ipcp_transform_function): Print symbol order instead of node uids.
14367 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
14368 (cgraph_get_create_real_symbol_node): Likewise.
14369 * ipa-cp.c (print_lattice): Likewise.
14370 (print_all_lattices): Likewise.
14371 (determine_versionability): Likewise.
14372 (initialize_node_lattices): Likewise.
14373 (estimate_local_effects): Likewise.
14374 (update_profiling_info): Likewise.
14375 (create_specialized_node): Likewise.
14376 (perhaps_add_new_callers): Likewise.
14377 (decide_about_value): Likewise.
14378 (decide_whether_version_node): Likewise.
14379 (identify_dead_nodes): Likewise.
14380 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
14381 (dump_inline_summary): Likewise.
14382 (estimate_node_size_and_time): Likewise.
14383 (inline_analyze_function): Likewise.
14384 * ipa-inline.c (report_inline_failed_reason): Likewise.
14385 (want_early_inline_function_p): Likewise.
14386 (edge_badness): Likewise.
14387 (update_edge_key): Likewise.
14388 (inline_small_functions): Likewise. Add dumping of order to two other
14389 dumps.
14390 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
14391 instead of node uids.
14392 (propagate_pure_const): Likewise.
14393 (propagate_pure_const): Likewise.
14394 * ipa-utils.c (dump_cgraph_node_set): Likewise.
14395 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
14396 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
14397 of node uids.
14398 * tree-pretty-print.c (dump_function_header): Likewise.
14399 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
14400 Print symbol order instead of node uids.
14401
1dd03b91
AK
144022013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14403
14404 * config/s390/s390.c (s390_register_move_cost): Don't impose the
14405 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
14406
fdf6a7b9
RB
144072013-05-15 Richard Biener <rguenther@suse.de>
14408
14409 PR tree-optimization/57275
14410 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
14411 return value for fail to do runtime alias checks for gather loads.
14412
2d6e4603
JH
144132013-05-15 Jan Hubicka <jh@suse.cz>
14414
14415 PR lto/57038
14416 PR lto/47375
e7208ea3
UB
14417 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
14418 weakrefs are not external.
14419 (lto_symtab_merge_decls): Fix thinko when dealing with
14420 non-lto_symtab decls.
2d6e4603
JH
14421 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
14422 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
14423 * varpool.c (dump_varpool_node): Dump more flags.
14424
83f44b39
GG
144252013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14426
14427 * config/i386/i386.c (processor_alias_table): Add instruction
14428 FSGSBASE for AMD bdver3 architecture.
14429
2e55d062
JJ
144302013-05-14 Jakub Jelinek <jakub@redhat.com>
14431
14432 * tree.c (warn_deprecated_use): Print file:line using locus color.
14433 * diagnostic.c (diagnostic_report_current_module): Print file:line
14434 and file:line:column using locus color.
14435
0bfdb81e
MS
144362013-05-14 Mike Stump <mikestump@comcast.net>
14437
14438 * gdbinit.in: Add __null.
14439
a508ef22
MS
144402013-05-14 Mike Stump <mikestump@comcast.net>
14441
14442 * recog.h: Rename struct recog_data to Recog_data.
14443 * recog.c: Likewise.
14444 * reload.c (can_reload_into): Likewise.
14445 * config/picochip/picochip.c: Likewise.
14446
e7180acb
MS
144472013-05-14 Mike Stump <mikestump@comcast.net>
14448
14449 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
14450
61216c26
SB
144512013-05-14 Steven Bosscher <steven@gcc.gnu.org>
14452
fd6beed4
SB
14453 * resource.h (struct resources): Remove unch_memory member.
14454 (CLEAR_RESOURCE): Don't clear unch_memory.
14455 * resource.c (mark_referenced_resources): Don't set it.
14456 (mark_set_resources): Likewise.
14457 (mark_target_live_regs): Don't clear it.
14458 (init_resource_info): Likewise.
14459 * reorg.c (resource_conflicts_p): Don't compare it.
14460 (redundant_insn): Don't set it.
14461
61216c26
SB
14462 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
14463 Remove prototypes.
14464 * emit-rtl.c (next_label): Remove unused function.
14465 (skip_consecutive_labels, link_cc0_insns): Move to ...
14466 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
14467 only place where these functions are used, and make them static.
14468
418d1b87
MG
144692013-05-14 Marc Glisse <marc.glisse@inria.fr>
14470
14471 * fold-const.c (fold_negate_expr): Handle vectors.
14472 (fold_truth_not_expr): Make it static.
14473 (fold_invert_truthvalue): New static function.
14474 (invert_truthvalue_loc): Handle vectors. Do not call
14475 fold_truth_not_expr directly.
14476 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
14477 <TRUTH_NOT_EXPR>: Do not cast to boolean.
14478 (fold_comparison): Handle vector constants.
14479 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
14480 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
14481 * tree.h (fold_truth_not_expr): Remove declaration.
14482
fc21784d
JG
144832013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
14484
14485 * config/aarch64/aarch64-simd.md
14486 (aarch64_vcond_internal<mode>): Rename to...
14487 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
14488 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
14489 float modes. Clarify all iterator modes.
14490 (vcond<mode><mode>): Use new name for vcond expanders.
14491 (vcond<v_cmp_result><mode>): Likewise.
14492 (vcondu<mode><mode>: Likewise.
14493 * config/aarch64/iterators.md (VDQF_COND): New.
14494
d4c52634
MG
144952013-05-14 Marc Glisse <marc.glisse@inria.fr>
14496
14497 PR bootstrap/57266
14498 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
14499 variable for the shift amount. Check that we shift by non-negative
14500 amounts.
14501
2b261262
CLT
145022013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
14503
14504 PR target/42017
14505 * config/arm/arm.h (EPILOGUE_USES): Only return true
14506 for LR_REGNUM after epilogue_completed.
14507
12211b99 145082013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
14509
14510 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 14511 is error_mark_node.
6e022d7b 14512
56cf7859
RO
145132013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14514
14515 PR target/57261
14516 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
14517 and Solaris 11+/x86 with gld.
14518 * configure: Regenerate.
14519
75776c6d
JJ
145202013-05-14 Jakub Jelinek <jakub@redhat.com>
14521
14522 * expmed.c (expand_shift_1): Canonicalize rotates by
14523 constant bitsize / 2 to bitsize - 1.
7f998021 14524 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
14525 case ROTATERT>: Likewise.
14526
14527 Revert:
14528 2013-05-10 Jakub Jelinek <jakub@redhat.com>
14529
14530 * config/i386/i386.md (rotateinv): New code attr.
14531 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
14532 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
14533 roll $31, %eax, etc.
14534
df35498a
RB
145352013-05-14 Richard Biener <rguenther@suse.de>
14536
14537 PR middle-end/57235
14538 * tree-eh.c (sink_clobbers): Give up for successors with
14539 multiple predecessors and no virtual uses.
14540
cc6e7ece
EB
145412013-05-14 Eric Botcazou <ebotcazou@adacore.com>
14542
14543 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
14544 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
14545
f778dd4d
JJ
145462013-05-14 Jakub Jelinek <jakub@redhat.com>
14547
14548 PR middle-end/57251
14549 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
14550 the case when both op0 and op1 have VOIDmode.
14551
bad4df9b
KP
145522013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14553
14554 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
14555 in multiply-accumulate mode.
14556
56f3e9ac
GW
145572013-05-13 Guozhi Wei <carrot@google.com>
14558
14559 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
14560
a3d7ab92
KT
145612013-05-13 Kai Tietz <ktietz@redhat.com>
14562
14563 PR target/56975
14564 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 14565 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 14566 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 14567 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
14568 (ix86_expand_prologue): Likewise.
14569 (ix86_expand_split_stack_prologue): Likewise.
14570 (legitimate_pic_address_disp_p): Likewise.
14571 (legitimize_pic_address): Likewise.
14572 (legitimize_tls_address): Likewise.
14573 (legitimize_pe_coff_symbol): Likewise.
14574 (output_pic_addr_const): Likewise.
14575 (construct_plt_address): Likewise.
14576 (ix86_expand_call): Likewise.
14577 (x86_output_mi_thunk): Likewise.
14578 (x86_function_profiler): Likewise.
14579
c59b7e28
SN
145802013-05-13 Sofiane Naci <sofiane.naci@arm.com>
14581
14582 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
14583 similar switch cases.
14584 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
14585 (aarch64_simd_mov_to_<mode>low): Delete.
14586 (aarch64_simd_mov_to_<mode>high): Delete.
14587 (move_lo_quad_<mode>): Add w<-r alternative.
14588 (aarch64_simd_move_hi_quad_<mode>): Likewise.
14589 (aarch64_simd_mov_from_*): Update type attribute.
14590 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
14591 statement.
14592
5f28524a
JH
145932013-05-13 Jan Hubicka <jh@suse.cz>
14594
14595 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
14596 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
14597 ix86_expand_epilogue, emit_i387_cw_initialization,
14598 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
14599 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 14600
ae6fa899
JJ
146012013-05-13 Jakub Jelinek <jakub@redhat.com>
14602
14603 PR tree-optimization/45216
14604 PR tree-optimization/57157
14605 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
14606 the (-Y) & (B - 1) variant if OP is |.
14607 * expmed.c (expand_shift_1): For rotations by const0_rtx just
14608 return shifted. Use (-op1) & (prec - 1) as other_amount
14609 instead of prec - op1.
14610
4502fe8d
MJ
146112013-05-13 Martin Jambor <mjambor@suse.cz>
14612
14613 PR middle-end/42371
14614 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
14615 (ipa_constant_data): New type.
14616 (ipa_jump_func): Use ipa_constant_data to hold information about
14617 constant jump functions.
14618 (ipa_get_jf_constant): Adjust to jump function type changes.
14619 (ipa_get_jf_constant_rdesc): New function.
14620 (ipa_param_descriptor): New field controlled_uses.
14621 (ipa_get_controlled_uses): New function.
14622 (ipa_set_controlled_uses): Likewise.
14623 * ipa-ref.h (ipa_find_reference): Declare.
14624 * ipa-prop.c (ipa_cst_ref_desc): New type.
14625 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
14626 changes.
14627 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
14628 New parameter cs. Adjust all callers.
14629 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
14630 (remove_described_reference): New function.
14631 (jfunc_rdesc_usable): Likewise.
14632 (try_make_edge_direct_simple_call): Decrement controlled use count,
14633 attempt to remove reference if it hits zero.
14634 (combine_controlled_uses_counters): New function.
14635 (propagate_controlled_uses): Likewise.
14636 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
14637 (ipa_edge_duplication_hook): Duplicate reference descriptions.
14638 (ipa_print_node_params): Print described use counter.
14639 (ipa_write_jump_function): Adjust to jump function type changes.
14640 (ipa_read_jump_function): New parameter CS, pass it to
14641 ipa_set_jf_constant. Adjust caller.
14642 (ipa_write_node_info): Stream controlled use count
14643 (ipa_read_node_info): Likewise.
14644 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
14645 asserting.
14646 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
14647 count. Remove cloning-added reference if it reaches zero.
14648 * ipa-ref.c (ipa_find_reference): New function.
14649
0864bfc2
GG
146502013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14651
e7208ea3 14652 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
14653 alignment values for AMD BD and BT architectures.
14654
640bfeb2
MG
146552013-05-13 Marc Glisse <marc.glisse@inria.fr>
14656
14657 * tree-vect-generic.c (uniform_vector_p): Move ...
14658 * tree.c (uniform_vector_p): ... here.
14659 * tree.h (uniform_vector_p): Declare it.
14660 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
14661 into a scalar.
14662
3a60f32b
JJ
146632013-05-13 Jakub Jelinek <jakub@redhat.com>
14664
198fe1bf
JJ
14665 PR tree-optimization/57230
14666 * tree-ssa-strlen.c (handle_char_store): Record length for
14667 array store from STRING_CST.
14668
3a60f32b
JJ
14669 PR tree-optimization/57230
14670 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
14671 check.
14672
566be57c
JR
146732013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
14674
14675 * config/epiphany/epiphany.c (epiphany_init): Check size of
14676 NUM_MODES_FOR_MODE_SWITCHING.
14677 (epiphany_expand_prologue):
14678 Remove CONFIG_REGNUM initial value handling code.
14679 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
14680 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 14681 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
14682 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
14683 Don't return 1 for FP_MODE_NONE.
14684 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
14685 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
14686 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
14687 * config/epiphany/epiphany.md (save_config): New pattern.
14688
0f2c2331
UB
146892013-05-12 Uros Bizjak <ubizjak@gmail.com>
14690
14691 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
14692
5b3f93c7
UB
146932013-05-10 Uros Bizjak <ubizjak@gmail.com>
14694
14695 * config/i386/i386.md (memory): Handle sseishft1.
14696 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
14697 (*vec_extractv2di_1): Ditto.
14698
1f873f0e
VM
146992013-05-10 Vladimir Makarov <vmakarov@redhat.com>
14700
14701 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
14702 saved registers.
14703
341427fa 147042013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
14705
14706 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
14707 Add mthumb/march=armv7-a multilib.
14708 Add mthumb/march=armv7-r multilib.
14709 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
14710
9e69bdde
RC
147112013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
14712
14713 * config/v850/t-rtems: Add more multilibs.
14714
9ff09a22
RB
147152013-05-10 Richard Biener <rguenther@suse.de>
14716
14717 PR tree-optimization/57214
14718 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
14719 not propagate from SSA names that occur in abnormal PHI nodes.
14720
a5e0cd1d
MG
147212013-05-10 Marc Glisse <marc.glisse@inria.fr>
14722
14723 * stor-layout.c (element_precision): New function.
14724 * machmode.h (element_precision): Declare it.
14725 * tree.c (build_minus_one_cst): New function.
14726 (element_precision): Likewise.
14727 * tree.h (build_minus_one_cst): Declare new function.
14728 (element_precision): Likewise.
14729 * fold-const.c (operand_equal_p): Use element_precision.
14730 (fold_binary_loc): Handle vector types.
14731 * convert.c (convert_to_integer): Use element_precision.
14732 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
14733 separately.
14734
cb2558bc
RS
147352013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
14736
14737 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
14738 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
14739 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
14740 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
14741 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
14742 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
14743 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
14744 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
14745 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
14746 (Uuw8): New constraints.
14747 (Usb4): Move into alphabetical order.
14748 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
14749 (sd8_operand, ub8_operand, uw8_operand): New predicates.
14750 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
14751 previously unnamed patterns.
14752 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
14753 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
14754 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
14755 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
14756 of set_attr_alternative/if_then_else. Use extended_mips16 instead
14757 of specific lengths.
14758
cb3b8d33
JJ
147592013-05-10 Jakub Jelinek <jakub@redhat.com>
14760
6f93c008
JJ
14761 * config/i386/i386.md (rotateinv): New code attr.
14762 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
14763 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
14764 roll $31, %eax, etc.
14765
cb3b8d33
JJ
14766 PR tree-optimization/45216
14767 PR tree-optimization/57157
14768 * tree-ssa-forwprop.c (simplify_rotate): New function.
14769 (ssa_forward_propagate_and_combine): Call it.
14770
afb119be
RB
147712013-05-10 Richard Biener <rguenther@suse.de>
14772
14773 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
14774 disable peeling when we version for aliasing.
14775 (vector_alignment_reachable_p): Honor explicit user alignment.
14776 (vect_supportable_dr_alignment): Likewise.
14777 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
14778 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
14779 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
14780 then peeling to arrange for the cost-model check to come first.
14781
01ae4861
AM
147822013-05-10 Alan Modra <amodra@gmail.com>
14783
14784 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
14785 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
14786 * configure: Regenerate.
14787
ebc9a431
AM
147882013-05-10 Alan Modra <amodra@gmail.com>
14789
14790 PR target/55033
14791 * varasm.c (default_elf_select_section): Move !DECL_P check..
14792 (get_named_section): ..to here before calling get_section_name.
14793 Adjust assertion.
14794 (default_section_type_flags): Add DECL_P check.
14795 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
14796 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
14797
d4bca93c
JR
147982013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
14799
14800 * config/epiphany/epiphany.c (epiphany_expand_prologue):
14801 When using gen_stack_adjust_str with a register offset, add a
14802 REG_FRAME_RELATED_EXPR note.
14803
60ca9a65
UB
148042013-05-09 Uros Bizjak <ubizjak@gmail.com>
14805
14806 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
14807 (*vec_extractv4si_zext_mem): Ditto.
14808 (*vec_extractv2di): Add 0->x and x->x alternatives.
14809 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
14810 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
14811
a3409c02
JM
148122013-05-09 Jason Merrill <jason@redhat.com>
14813
0138d6b2
JM
14814 N3639 C++1y VLA support
14815 * gimplify.c (gimplify_vla_decl): Don't touch an existing
14816 DECL_VALUE_EXPR.
14817
a3409c02
JM
14818 * tree.c (build_constructor_va): New.
14819 * tree.h: Declare it.
14820
66e6b990
MJ
148212013-05-09 Martin Jambor <mjambor@suse.cz>
14822
14823 PR lto/57084
14824 * gimple-fold.c (canonicalize_constructor_val): Call
14825 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
14826
64cfa6c0
JH
148272013-05-09 Jan Hubicka <jh@suse.cz>
14828 Richard Biener <rguenther@suse.de>
14829
14830 PR lto/54095
14831 * symtab.c (symtab_make_decl_local): Do not add private names.
14832
c3167b00
JH
148332013-05-09 Jan Hubicka <jh@suse.cz>
14834
14835 PR lto/54095
14836 * symtab.c (insert_to_assembler_name_hash): Handle clones.
14837 (unlink_from_assembler_name_hash): Likewise.
14838 (symtab_prevail_in_asm_name_hash, symtab_register_node,
14839 symtab_unregister_node, symtab_initialize_asm_name_hash,
14840 change_decl_assembler_name): Update.
14841
12dc6974
SN
148422013-05-09 Sofiane Naci <sofiane.naci@arm.com>
14843
14844 * config/aarch64/aarch64.md: New movtf split.
14845 (*movtf_aarch64): Update.
14846 (aarch64_movdi_tilow): Handle TF modes and rename to
14847 aarch64_movdi_<mode>low.
14848 (aarch64_movdi_tihigh): Handle TF modes and rename to
14849 aarch64_movdi_<mode>high
14850 (aarch64_movtihigh_di): Handle TF modes and rename to
14851 aarch64_mov<mode>high_di
14852 (aarch64_movtilow_di): Handle TF modes and rename to
14853 aarch64_mov<mode>low_di
14854 (aarch64_movtilow_tilow): Remove spurious whitespace.
14855 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
14856 splits.
14857 (aarch64_print_operand): Update.
14858
227eb343
AM
148592013-05-09 Alan Modra <amodra@gmail.com>
14860
14861 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
14862 powerpc64le.
14863 * configure: Regenerate.
14864
0b013847
UB
148652013-05-08 Uros Bizjak <ubizjak@gmail.com>
14866
14867 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
14868 splitter preparation statements.
14869 * config/i386/sse.md (*vec_extract* splitters): Ditto.
14870 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
14871 adjust_address_nv.
14872
1dc3d6e9
BS
148732013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14874
14875 * gimple-ssa-strength-reduction.c (count_candidates): Change
14876 return value to int.
14877 (analyze_candidates_and_replace): Change type of length to int.
14878
e61e7d28
UB
148792013-05-08 Uros Bizjak <ubizjak@gmail.com>
14880
14881 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
14882 (*vec_extract<mode>): Use VI12_128 mode iterator.
14883 (*vec_extract<mode>_mem): Ditto.
14884 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
14885 attribute.
14886
4fbfcf44
DN
148872013-05-08 Diego Novillo <dnovillo@google.com>
14888
14889 PR bootstrap/54659
14890
14891 Revert:
4fbfcf44
DN
14892 2012-08-17 Diego Novillo <dnovillo@google.com>
14893
e61e7d28
UB
14894 PR bootstrap/54281
14895 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
14896 * config.in: Regenerate.
14897 * configure: Regenerate.
14898 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 14899
702d8703
JH
149002013-05-08 Jan Hubicka <jh@suse.cz>
14901
14902 PR lto/54095
14903 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
14904 * cgraph.h (symtab_node_base): Add unique_name.
14905 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14906 input_overwrite_node, input_varpool_node): Stream unique_name.
14907 * cgraphclones.c (cgraph_create_virtual_clone,
14908 cgraph_function_versioning): Set unique_name.
14909 * ipa.c (function_and_variable_visibility): Set unique_name.
14910
8b28cf47
BS
149112013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14912
14913 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
14914 (alloc_cand_and_find_basis): Restrict conditional candidate
14915 processing to CAND_MULTs.
14916
e86074fd
JH
149172013-05-08 Jan Hubicka <jh@suse.cz>
14918
14919 PR lto/54095
14920 lto-symtab.c (lto_symtab_symbol_p): New function.
14921 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
14922 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
14923 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
14924 Skip static symbols.
14925
44398cbe
PC
149262013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
14927
14928 PR tree-optimization/57200
14929 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
14930 Only call inform if the preceding warning_at returns true.
14931
f6bc1c4a
HS
149322013-05-07 Han Shen <shenhan@google.com>
14933
14934 * cfgexpand.c (record_or_union_type_has_array_p): New function.
14935 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
14936 * common.opt (fstack-protector-strong): New option.
14937 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
14938 * doc/invoke.texi (Optimization Options): Document
14939 "-fstack-protector-strong".
14940 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
14941
4ffecb1f
SB
149422013-05-06 Steven Bosscher <steven@gcc.gnu.org>
14943
14944 * config/mips/mips.c (mips_machine_reorg2): Return 0.
14945
5a107a0f
VM
149462013-05-07 Vladimir Makarov <vmakarov@redhat.com>
14947
14948 * ira.c (update_equiv_regs): Add insn having equiv memory even if
14949 it is not lhs of the insn.
14950 (setup_reg_equiv): Remove insn having equiv memory which it is not
14951 lhs of the insn.
14952 * lra-constraints.c (process_address): Try to improve generation
14953 code for address base + disp.
14954 (lra_constraints): Make correct the code for checking insn setting
14955 up backward equivalence. Remove insn only if it is in the init
14956 insn list.
14957 * lra-eliminations.c (update_reg_eliminate): Change return value.
14958 (lra_eliminate): Use the result.
14959
3f5783ea
UB
149602013-05-07 Uros Bizjak <ubizjak@gmail.com>
14961
14962 * config/i386/sse.md (ssescalarnummask): New mode attribute.
14963 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
14964 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
14965 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
14966 register target operands.
14967 (*vec_extractv8hi_sse2): New pattern.
14968 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
14969 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
14970 (*vec_extract<mode>_mem): New insn and split pattern.
14971
8a5800b8
CL
149722013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
14973
14974 * config/arm/arm.c (arm_asan_shadow_offset): New function.
14975 (TARGET_ASAN_SHADOW_OFFSET): Define.
14976 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
14977 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
14978
7bf55a70
BS
149792013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14980
14981 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
14982 (incr_vec_index): Return -1 if increment not found.
14983 (create_add_on_incoming_edge): Assert if increment not found.
14984 (record_increment): Limit number of increments recorded.
14985 (all_phi_incrs_profitable): Return false if an increment not found.
14986 (replace_profitable_candidates): Don't process increments that were
14987 not recorded.
14988 (analyze_candidates_and_replace): Limit size of incr_vec.
14989
3f8825c0
RB
149902013-05-07 Richard Biener <rguenther@suse.de>
14991
14992 * calls.c (special_function_p): setjmp-like functions are leaf.
14993 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
14994 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
14995
fd4842cd
SN
149962013-05-07 Sofiane Naci <sofiane.naci@arm.com>
14997
14998 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
14999 (aarch64_simd_mov<mode>): New expander.
15000 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
15001 (aarch64_simd_mov_to_<mode>high): Likewise.
15002 (aarch64_simd_mov_from_<mode>low): Likewise.
15003 (aarch64_simd_mov_from_<mode>high): Likewise.
15004 (aarch64_dup_lane<mode>): Update.
15005 (aarch64_dup_lanedi): New instruction pattern.
15006 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
15007 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
15008
a7a7d10e
BS
150092013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15010
15011 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
15012 (replace_mult_candidate): Remove unnecessary argument; remove
15013 unnecessary parameter from call to introduce_cast_before_cand.
15014 (replace_unconditional_candidate): Remove unnecessary parameter
15015 from call to replace_mult_candidate.
15016 (replace_conditional_candidate): Likewise.
15017 (insert_initializers): Use make_temp_ssa_name.
15018 (introduce_cast_before_cand): Remove unnecessary argument; use
15019 make_temp_ssa_name.
15020 (replace_one_candidate): Remove unnecessary argument; remove
15021 unnecessary parameter from calls to introduce_cast_before_cand.
15022 (replace_profitable_candidates): Remove unnecessary parameters
15023 from calls to replace_one_candidate.
15024
29105868
BS
150252013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15026
15027 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
15028 phi def as possibly hiding a basis for a CAND_ADD whose operands
15029 have been commuted in the analysis.
15030 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
15031
4095f9fa
N
150322013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
15033
15034 * config/aarch64/aarch64.md
15035 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
15036 shift value between 0-4.
15037
39e843e8
RB
150382013-05-07 Richard Biener <rguenther@suse.de>
15039
15040 * double-int.h (rshift): New overload.
15041 * double-int.c (rshift): New function.
15042 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
15043 (create_reference_ops_from_ref): Remove.
15044 (vn_reference_insert): Use shared ops for constructing the
15045 reference and copy it.
15046
0a1a83cb
RB
150472013-05-07 Richard Biener <rguenther@suse.de>
15048
15049 PR middle-end/57190
15050 * tree-eh.c (sink_clobbers): Properly propagate
15051 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15052
43303d6f
JJ
150532013-05-07 Jakub Jelinek <jakub@redhat.com>
15054
ba7e83f8
JJ
15055 PR tree-optimization/57149
15056 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
15057 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
15058 collect_phi_def_edges, execute_late_warn_uninitialized): Use
15059 uninit_undefined_value_p instead of ssa_undefined_value_p.
15060
43303d6f
JJ
15061 PR debug/57184
15062 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
15063 for modifier == EXPAND_INITIALIZER.
15064
14523c25
AB
150652013-05-07 Anton Blanchard <anton@samba.org>
15066
15067 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
15068 for powerpc64 little endian.
15069 * configure: Regenerate.
15070
cb7c8be9
GS
150712013-05-06 Graham Stott <grahams@btinternet.com>
15072
15073 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
15074 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
15075 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
15076 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
15077
150782013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
15079
15080 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
15081 codes which allow non-lvalues.
15082
9a0ee7b0
MG
150832013-05-06 Marc Glisse <marc.glisse@inria.fr>
15084
15085 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
15086 components are all 1s.
15087 (integer_minus_onep): New function.
15088 * tree.h (integer_minus_onep): Declare it.
15089 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
15090 integer_minus_onep instead of integer_all_onesp.
15091
f2c17ea9
OE
150922013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15093
15094 PR target/52933
15095 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
15096 variations of these patterns.
15097
f75e6a51
UB
150982013-05-06 Uros Bizjak <ubizjak@gmail.com>
15099
15100 * config/i386/i386.md (isa): Add x64_sse4 member.
15101 (enabled): Handle x64_sse4.
15102 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
15103 instruction for 64bit SSE4_1 targets. Update insn attributes.
15104 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
15105 instruction for SSE4_1 targets. Update insn attributes.
15106 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
15107 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
15108 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
15109 const_1 selector.
15110 (*vec_extractv4si): Rename from *sse4_1_pextrd.
15111 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
15112 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
15113
a986d468
OE
151142013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15115
15116 PR target/57108
15117 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
15118
382522cb
MK
151192013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
15120
15121 * final.c (do_assembler_dialects): Don't handle curly braces and
15122 vertical bar escaped by % as dialect delimiters.
15123 (output_asm_insn): Print curly braces and vertical bar if escaped
15124 by % and ASSEMBLER_DIALECT defined.
15125 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
15126 * doc/tm.texi: Regenerated.
15127
fb0d5c60
SB
151282013-05-06 Steven Bosscher <steven@gcc.gnu.org>
15129
fb0d5c60
SB
15130 * config/mips/mips.c: Include tree-pass.h.
15131 (mips_reorg): Split in pre- and post-dbr_schedule parts.
15132 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
15133 (pass_mips_machine_reorg2): New machine specific pass.
15134 (insert_pass_mips_machine_reorg2): New pass plugin definition.
15135 (mips_option_override): Register the new pass.
15136 * rtl.h (cleanup_barriers): Remove prototype.
15137 (dbr_schedule): Likewise.
15138 * jump.c (cleanup_barriers): Make static.
15139 * reorg.c (dbr_schedule): Likewise.
15140
aa06a978
RB
151412013-05-06 Richard Biener <rguenther@suse.de>
15142
15143 PR tree-optimization/57185
15144 * tree-parloops.c (add_field_for_reduction): Handle anonymous
15145 SSA names properly.
15146
0b953bec
UB
151472013-05-06 Uros Bizjak <ubizjak@gmail.com>
15148
15149 PR target/57106
15150 * config/i386/i386.c (add_parameter_dependencies): Add dependence
15151 between "first_arg" and "insn", not "last" and "insn".
15152
28708525
WS
151532013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15154
15155 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
15156 (find_candidates_in_block): Re-enable slsr_process_phi.
15157 (create_phi_basis): Fix double counting of candidate adjustment.
15158
0107dca2
RB
151592013-05-06 Richard Biener <rguenther@suse.de>
15160
15161 PR middle-end/57147
15162 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
15163 the edge is also fallthru, preserve it and just clear the
15164 abnormal flag.
15165 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
15166 also complex, preserve that and just clear the fallthru flag.
15167 * tree-inline.c (update_ssa_across_abnormal_edges): Also
15168 update virtual operands.
15169
470d4d13
AM
151702013-05-06 Alan Modra <amodra@gmail.com>
15171
15172 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
15173 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
15174 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
15175 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
15176 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
15177 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
15178
8f1dbf8d
AM
151792013-05-06 Alan Modra <amodra@gmail.com>
15180
15181 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
15182 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
15183 (DEFAULT_ASM_ENDIAN): Define.
15184 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
15185 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
15186 Update -K PIC clause from sysv4.h.
15187 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
15188 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
15189
54890767
AM
151902013-05-06 Alan Modra <amodra@gmail.com>
15191
15192 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
15193 twice for little-endian.
15194 (ashrdi3_no_power, ashrdi3): Support little-endian.
15195
2353515d
OE
151962013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15197
15198 PR target/55303
15199 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
15200 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
15201 related expanders.
15202 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
15203 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
15204 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
15205 New predicates.
15206
33e67557
SB
152072013-05-05 Steven Bosscher <steven@gcc.gnu.org>
15208 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15209
15210 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
15211 * config/pa/pa.opt: Make mbig-switch a no-op.
15212 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
15213 (CASE_VECTOR_MODE): Always return SImode.
15214 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
15215 for the !TARGET_BIG_SWITCH case.
15216 * config/pa/pa-linux.h: Likewise.
15217 * config/pa/pa-openbsd.h: Likewise.
15218 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
15219 * config/pa/pa.md (short_jump): Remove define_insn.
15220 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
15221 (casesi0): Remove define_insn.
15222 (type): Remove btable_branch.
15223 (pa_combine_type): Likewise.
15224 (in_nullified_branch_delay): Likewise.
15225 (in_call_delay): Likewise.
15226 (define_delay): Likewise.
15227 (define_insn_reservation "Z3"): Likewise.
15228 (define_insn_reservation "Z4"): Likewise.
15229 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
15230 (pa_adjust_insn_length): Remove adjustment for btable branches.
15231 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
15232 and mno-big-switch
15233
3095685e
UB
152342013-05-05 Uros Bizjak <ubizjak@gmail.com>
15235
15236 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
15237 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
15238 Add m->r,x alternatives.
15239 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
15240 splitters using SWI48x mode iterator.
15241 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
15242 TARGET_64BIT. Add m->x alternative.
15243 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
15244 Add o->x alternative. Enable for TARGET_SSE.
15245 (sse_storeq): Remove expander.
15246 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
15247 with memory input operand.
15248 (*vec_extractv2di_1 splitter): New.
15249 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
15250 * config/i386/i386.md (ssevecmodelower): New mode attribute.
15251
4b36ae28
SB
152522013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15253
15254 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
15255 (INT_LOWPART): Delete.
15256 (extract_MB): Adjust.
15257 (extract_ME): Adjust.
15258 (print_operand): Adjust.
15259
da226db2
SB
152602013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15261
15262 * config/rs6000/predicates.md (reg_or_add_cint_operand,
15263 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
15264 (reg_or_logical_cint_operand, easy_fp_constant,
15265 logical_const_operand): Delete "CONST_DOUBLE" case.
15266 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
15267 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 15268 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
15269 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
15270 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
15271 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
15272 test.
15273 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
15274 CONST_DOUBLE DImode/VOIDmode case.
15275 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
15276 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
15277 CONST_DOUBLE VOIDmode case.
15278 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
15279 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
15280 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
15281 Delete CONST_DOUBLE case.
15282 (splitters for mov FMOVE64 const_double): Delete
15283 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
15284 "HOST_BITS_PER_WIDE_INT >= 64" test.
15285 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
15286 case.
15287 (mov DI const_double): Delete.
15288
40de22d6
JJ
152892013-05-04 Jakub Jelinek <jakub@redhat.com>
15290
15291 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
15292 on op shows all bits zero in mode of a lowpart subreg, return zero.
15293
5ec6aff2
MM
152942013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15295
15296 PR target/57150
15297 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
15298 to save TFmode registers and DImode to save TImode registers for
15299 caller save operations.
15300 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
15301 mark being partially clobbered since they only use the first
15302 double word.
15303
15304 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
15305 and TDmode only use the upper 64-bits of each VSX register.
15306
2cefad90
BS
153072013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15308
15309 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
15310 (find_candidates_in_block): Disable slsr_process_phi.
15311
d6d7eee1
GW
153122013-05-03 Guozhi Wei <carrot@google.com>
15313
15314 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
15315 constructor to ...
15316 (build_init_ctor): ... here.
d6d7eee1 15317
9b92d12b
BS
153182013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15319
15320 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
15321 (slsr_cand_d): Redefine def_phi.
15322 (stride_status, phi_adjust_status, count_phis_status): New enums.
15323 (find_phi_def): New.
15324 (find_basis_for_base_expr): New.
15325 (find_basis_for_candidate): Handle hidden bases.
15326 (alloc_cand_and_find_basis): Handle phi candidates.
15327 (slsr_process_phi): New.
15328 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
15329 (create_mul_imm_cand): Likewise.
15330 (create_add_ssa_cand): Exclude phi base candidates.
15331 (create_add_imm_cand): Likewise.
15332 (slsr_process_cast): Likewise.
15333 (slsr_process_copy): Likewise.
15334 (find_candidates_in_block): Handle phi candidates.
15335 (dump_candidate): Likewise.
15336 (unconditional_cands): Delete.
15337 (unconditional_cands_with_known_stride_p): Delete.
15338 (phi_dependent_cand_p): New.
15339 (cand_increment): Handle phi-dependent candidates.
15340 (replace_dependent): Delete.
15341 (replace_mult_candidate): New.
15342 (replace_unconditional_candidate): New.
15343 (incr_vec_index): Move to avoid forward reference.
15344 (create_add_on_incoming_edge): New.
15345 (create_phi_basis): New.
15346 (replace_dependents): Delete.
15347 (replace_conditional_candidate): New.
15348 (phi_add_costs): New.
15349 (replace_uncond_cands_and_profitable_phis): New.
15350 (record_increment): Handle phi adjustments.
15351 (record_phi_increments): New.
15352 (record_increments): Handle phi adjustments.
15353 (phi_incr_cost): New.
15354 (lowest_cost_path): Handle phis.
15355 (total_savings): Likewise.
15356 (analyze_increments): Likewise.
15357 (ncd_with_phi): New.
15358 (ncd_of_cand_and_phis): New.
15359 (nearest_common_dominator_for_cands): Handle phi increments.
15360 (all_phi_incrs_profitable): New.
15361 (replace_profitable_candidates): Handle phi-dependent candidates.
15362 (analyze_candidates_and_replace): Likewise.
15363
68f073d4
TJ
153642013-05-03 Teresa Johnson <tejohnson@google.com>
15365
15366 PR bootstrap/57154
15367 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
15368 do not exceed REG_BR_PROB_BASE.
15369
a4ee7cb9
JL
153702013-05-03 Jeff Law <law@redhat.com>
15371
ade67f70 15372 PR tree-optimization/57144
a4ee7cb9
JL
15373 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
15374 operand of the condition will bit into the new type when eliminating
15375 a cast feeding a condition.
15376
47954c4e
JJ
153772013-05-03 Jakub Jelinek <jakub@redhat.com>
15378
15379 PR rtl-optimization/57130
3095685e
UB
15380 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
15381 of COMPARE as in_code to the recursive call if needed.
47954c4e 15382
3c21604f
UB
153832013-05-03 Uros Bizjak <ubizjak@gmail.com>
15384
15385 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
15386 (enabled): Handle new members.
15387 * config/i386/sse.md (*vec_concatv2si): Merge from
15388 *vec_concatv2si_sse2 and vec_concatv2si_sse.
15389 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
15390
12211b99 153912013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
15392
15393 PR tree-optimization/57027
15394 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
15395 for fnms opportunity, check we got the prerequisite kind
15396 of tree / gimple before using accessor functions.
15397
07bfc9ec
RB
153982013-05-03 Richard Biener <rguenther@suse.de>
15399
15400 * double-int.h (lshift): New overload without precision
15401 and arith argument.
15402 (operator *=, operator +=, operator -=): Move ...
15403 * double-int.c (operator *=, operator +=, operator -=): ... here
15404 and implement more efficiently.
15405 (mul_double_with_sign): Remove.
15406 (lshift_double): Adjust to take unsinged shift argument, push
15407 dispatching code to callers.
15408 (mul_double_wide_with_sign): Add early out for callers that
15409 are not interested in high parts or overflow.
15410 (lshift): New function.
15411 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
15412 dispatch code here.
15413 (lrotate, rrotate): Use logical shifts.
15414 * expr.c (get_inner_reference): Use lshift.
15415 * fixed-value.c (do_fixed_divide): Likewise.
15416 * tree-dfa.c (get_ref_base_and_extent): Likewise.
15417 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15418 (indirect_refs_may_alias_p): Likewise.
15419 (stmt_kills_ref_p_1): Likewise.
15420
7769bb64
VP
154212013-05-03 Vidya Praveen <vidyapraveen@arm.com>
15422
15423 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
15424
1d0c8e5c
VP
154252013-05-03 Vidya Praveen <vidyapraveen@arm.com>
15426
15427 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
15428 scalar form of FABD instruction.
15429
f15feaf9
VM
154302013-05-02 Vladimir Makarov <vmakarov@redhat.com>
15431
15432 * lra-constraints.c (process_alt_operands): Add checking alt
15433 number to choose the best alternative.
15434
d90e76d4
RB
154352013-05-02 Richard Biener <rguenther@suse.de>
15436
15437 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
15438 bitmap and its handling.
15439 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
15440
9f8e7a96
RB
154412013-05-02 Richard Biener <rguenther@suse.de>
15442
15443 PR middle-end/57140
15444 * tree-inline.c (copy_loops): Properly handle removed loops.
15445 (copy_cfg_body): Mark destination loops for fixup if source
15446 loops needed fixup.
15447
f3a81b39
GY
154482013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
15449
15450 PR target/56732
15451 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
15452 generating simple_return for naked functions.
15453
7b920a9a
MJ
154542013-05-02 Martin Jambor <mjambor@suse.cz>
15455
15456 PR middle-end/56988
15457 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
15458 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
15459 flags match.
15460 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
15461 ipa_agg_replacement_value structures.
15462 (known_aggs_to_agg_replacement_list): Likewise.
15463 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
15464 (read_agg_replacement_chain): Likewise.
15465 (ipcp_transform_function): Also check that by_ref flags match.
15466
2c41c19d
RB
154672013-05-02 Richard Biener <rguenther@suse.de>
15468
15469 * graphds.h (struct graph): Add obstack member.
15470 * graphds.c (new_graph): Initialize obstack and allocate
15471 vertices from it.
15472 (add_edge): Allocate edge from the obstack.
3c21604f 15473 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 15474
8b47039c
TJ
154752013-05-02 Teresa Johnson <tejohnson@google.com>
15476
15477 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
15478 divides.
15479 * cfg.c (update_bb_profile_for_threading): Ditto.
15480 * tree-inline.c (copy_bb): Ditto.
15481 (copy_edges_for_bb): Ditto.
15482 (initialize_cfun): Ditto.
15483 (copy_cfg_body): Ditto.
15484 (expand_call_inline): Ditto.
15485 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
15486 (estimate_node_size_and_time): Ditto.
15487 (inline_merge_summary): Ditto.
15488 * cgraphclones.c (cgraph_clone_edge): Ditto.
15489 (cgraph_clone_node): Ditto.
15490 * sched-rgn.c (compute_dom_prob_ps): Ditto.
15491 (compute_trg_info): Ditto.
15492
da65928c
IB
154932013-05-02 Ian Bolton <ian.bolton@arm.com>
15494
15495 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
15496 S reg when fp attribute set.
15497 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
15498
add3c965
IB
154992013-05-02 Ian Bolton <ian.bolton@arm.com>
15500
15501 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
15502 New pattern.
15503 (*and_one_cmplsi3_compare0_uxtw): Likewise.
15504 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
15505 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
15506
fdd43ac4
RB
155072013-05-02 Richard Biener <rguenther@suse.de>
15508
15509 * tree-scalar-evolution.c (scev_info_hasher): Remove.
15510 (struct instantiate_cache_entry): New type.
15511 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
15512 (struct instantiate_cache_type): New type.
15513 (set_instantiated_value, get_instantiated_value): Remove.
15514 (get_instantiated_value_entry): New function.
15515 (instantiate_scev_name): Use the new cache and adjust.
15516 (instantiate_scev_poly): Adjust.
15517 (instantiate_scev_binary): Likewise.
15518 (instantiate_array_ref): Likewise.
15519 (instantiate_scev_convert): Likewise.
15520 (instantiate_scev_not): Likewise.
15521 (instantiate_scev_3): Likewise.
15522 (instantiate_scev_2): Likewise.
15523 (instantiate_scev_r): Likewise.
15524 (instantiate_scev): Likewise.
15525 (resolve_mixers): Likewise.
15526
36ff9dfb
VM
155272013-05-01 Vladimir Makarov <vmakarov@redhat.com>
15528
15529 PR target/57091
15530 * lra-constraints.c (best_small_class_operands_num): Remove.
15531 (process_alt_operands): Remove small_class_operands_num. Take
15532 small classes operands into losers and only if the operand is not
15533 matched. Modify debugging output.
15534 (curr_insn_transform): Remove best_small_class_operands_num.
15535 Print insn name.
15536
36054fab
JG
155372013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15538
15539 * config/aarch64/aarch64-builtins.c
15540 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
15541 * config/aarch64/aarch64-simd-builtins.def
15542 (reduc_splus_): Add new modes.
15543 (reduc_uplus_): New.
15544 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
15545 (reduc_uplus_v4sf): Likewise.
15546 (reduc_splus_v4sf): Likewise.
15547 (aarch64_addv<mode>): Likewise.
15548 (reduc_uplus_<mode>): Likewise.
15549 (reduc_splus_<mode>): Likewise.
15550 (aarch64_addvv2di): Likewise.
15551 (reduc_uplus_v2di): Likewise.
15552 (reduc_splus_v2di): Likewise.
15553 (aarch64_addvv2si): Likewise.
15554 (reduc_uplus_v2si): Likewise.
15555 (reduc_splus_v2si): Likewise.
15556 (reduc_<sur>plus_<mode>): New.
15557 (reduc_<sur>plus_v2di): Likewise.
15558 (reduc_<sur>plus_v2si): Likewise.
15559 (reduc_<sur>plus_v4sf): Likewise.
15560 (aarch64_addpv4sf): Likewise.
15561 * config/aarch64/arm_neon.h
15562 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
15563 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
15564 add UNSPEC_SADDV, UNSPEC_UADDV.
15565 (SUADDV): New.
15566 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
15567
6dce23a8
JG
155682013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15569
15570 * config/aarch64/arm_neon.h
15571 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
15572
1598945b
JG
155732013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15574
15575 * config/aarch64/aarch64-builtins
15576 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
15577
998eaf97
JG
155782013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15579
15580 * config/aarch64/aarch64-simd-builtins.def
15581 (reduc_smax_): New.
15582 (reduc_smin_): Likewise.
15583 (reduc_umax_): Likewise.
15584 (reduc_umin_): Likewise.
15585 (reduc_smax_nan_): Likewise.
15586 (reduc_smin_nan_): Likewise.
15587 (fmax): Remove.
15588 (fmin): Likewise.
15589 (smax): Update for V2SF, V4SF and V2DF modes.
15590 (smin): Likewise.
15591 (smax_nan): New.
15592 (smin_nan): Likewise.
15593 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
15594 (<su><maxmin><mode>3): ...This, refactor.
15595 (s<maxmin><mode>3): New.
15596 (<maxmin_uns><mode>3): Likewise.
15597 (reduc_<maxmin_uns>_<mode>): Refactor.
15598 (reduc_<maxmin_uns>_v4sf): Likewise.
15599 (reduc_<maxmin_uns>_v2si): Likewise.
15600 (aarch64_<fmaxmin><mode>: Remove.
15601 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
15602 new builtin names.
15603 (vmin<q>_f<32,64>): Likewise.
15604 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
15605 (FMAXMIN): New.
15606 (su): Add mappings for smax, smin, umax, umin.
15607 (maxmin): New.
15608 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
15609 (FMAXMIN): Rename as...
15610 (FMAXMIN_UNS): ...This.
15611 (maxminv): Remove.
15612 (fmaxminv): Likewise.
15613 (fmaxmin): Likewise.
15614 (maxmin_uns): New.
15615 (maxmin_uns_op): Likewise.
15616
bd11644e
JG
156172013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15618
15619 * config/aarch64/arm_neon.h
15620 (vac<ge, gt><sd>_f<32, 64>): Rename to...
15621 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
15622 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
15623
75dd5ace
JG
156242013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15625
15626 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
15627 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
15628
7c19979f
JG
156292013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15630
15631 * config/aarch64/aarch64-simd.md
15632 (vcond<mode>_internal): Handle special cases for constant masks.
15633 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
15634 (vcondu<mode><mode>): Likewise.
15635 (vcond<v_cmp_result><mode>): New.
15636
bb60efd9
JG
156372013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15638
15639 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
15640 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
15641 * config/aarch64/aarch64-simd-builtins.def
15642 (cmeq): Update to BUILTIN_VALLDI.
15643 (cmgt): Likewise.
15644 (cmge): Likewise.
15645 (cmle): Likewise.
15646 (cmlt): Likewise.
15647 * config/aarch64/arm_neon.h
15648 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
15649 to builtins or C as appropriate.
15650
889b9412
JG
156512013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
15652
15653 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
15654 (cmgeu): ...This.
15655 (cmhi): Rename to...
15656 (cmgtu): ...This.
15657 * config/aarch64/aarch64-simd.md
15658 (simd_mode): Add SF.
15659 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
15660 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
15661 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
15662 (cstore<mode>_neg): ...This.
15663 * config/aarch64/iterators.md
15664 (VALLF): new.
15665 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
15666 (COMPARISONS): New.
15667 (UCOMPARISONS): Likewise.
15668 (optab): Add missing comparisons.
15669 (n_optab): New.
15670 (cmp_1): Likewise.
15671 (cmp_2): Likewise.
15672 (CMP): Likewise.
15673 (cmp): Remove.
15674 (VCMP_S): Likewise.
15675 (VCMP_U): Likewise.
15676 (V_cmp_result): Add DF, SF modes.
15677 (v_cmp_result): Likewise.
15678 (v): Likewise.
15679 (vmtype): Likewise.
15680 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
15681
0a7dbb76
GY
156822013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
15683
15684 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
15685 define_insn to define_insn_and_split.
15686 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
15687 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
15688 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
15689 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
15690 (thumb2_negscc): Likewise.
15691
fb614ca6
GY
156922013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
15693
15694 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
15695
9e64a0bf
GY
156962013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
15697
15698 * config/arm/thumb2.md: Remove trailing whitespaces.
15699
d6b28156
RS
157002013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
15701
15702 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
15703 Use gen_int_mode rather than GEN_INT.
15704
f91674c3
L
157052013-04-30 H.J. Lu <hongjiu.lu@intel.com>
15706
b0dec607 15707 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
15708 debug_gimple_stmt.
15709
3551257c
RB
157102013-04-30 Richard Biener <rguenther@suse.de>
15711
15712 PR middle-end/57122
3c21604f 15713 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 15714
4c1aff1c
RB
157152013-04-30 Richard Biener <rguenther@suse.de>
15716
15717 PR middle-end/57107
15718 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
15719
54b8379a
AB
157202013-04-30 Andrey Belevantsev <abel@ispras.ru>
15721
15722 PR rtl-optimization/56957
15723 PR rtl-optimization/57105
54b8379a
AB
15724 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
15725 variable. Use just INSN_UID for determining whether an insn
15726 should be only disconnected from the insn stream.
15727 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
15728
abc27962
JJ
157292013-04-30 Jakub Jelinek <jakub@redhat.com>
15730
15731 PR tree-optimization/57104
15732 * tsan.c (instrument_expr): Don't instrument accesses to
15733 DECL_HARD_REGISTER VAR_DECLs.
15734
0fc822d0
RB
157352013-04-30 Richard Biener <rguenther@suse.de>
15736
15737 * function.h (loops_for_fn): New inline function.
15738 (set_loops_for_fn): Likewise.
15739 * cfgloop.h (place_new_loop): Add struct function parameter.
15740 (get_loop): Likewise.
15741 (get_loops): Likewise.
15742 (number_of_loops): Likewise.
15743 (fel_next): Adjust.
15744 (fel_init): Likewise.
15745 * cfg.c (get_loop_copy): Adjust.
15746 * cfgloop.c (flow_loops_dump): Likewise.
15747 (record_loop_exits): Likewise.
15748 (verify_loop_structure): Likewise.
15749 * cfgloopanal.c (mark_irreducible_loops): Likewise.
15750 (estimate_reg_pressure_cost): Likewise.
15751 (mark_loop_exit_edges): Likewise.
15752 * cfgloopmanip.c (place_new_loop): Likewise.
15753 (add_loop): Likewise.
15754 (duplicate_loop): Likewise.
15755 * graph.c (draw_cfg_nodes): Likewise.
15756 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
15757 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
15758 (extract_affine_chrec): Likewise.
15759 (build_scop_iteration_domain): Likewise.
15760 * graphite.c (graphite_initialize): Likewise.
15761 * ira-build.c (create_loop_tree_nodes): Likewise.
15762 (more_one_region_p): Likewise.
15763 (rebuild_regno_allocno_maps): Likewise.
15764 (mark_loops_for_removal): Likewise.
15765 (mark_all_loops_for_removal): Likewise.
15766 (remove_unnecessary_regions): Likewise.
15767 (ira_build): Likewise.
15768 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
15769 * loop-init.c (fix_loop_structure): Likewise.
15770 (gate_rtl_move_loop_invariants): Likewise.
15771 (gate_rtl_unswitch): Likewise.
15772 (gate_rtl_unroll_and_peel_loops): Likewise.
15773 (rtl_doloop): Likewise.
15774 * lto-streamer-in.c (input_cfg): Likewise.
15775 * lto-streamer-out.c (output_cfg): Likewise.
15776 * modulo-sched.c (sms_schedule): Likewise.
15777 * predict.c (tree_estimate_probability): Likewise.
15778 (tree_estimate_probability_driver): Likewise.
15779 (estimate_loops): Likewise.
15780 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
15781 (move_sese_region_to_fn): Likewise.
15782 (debug_loop_num): Likewise.
15783 * tree-chrec.c (chrec_evaluate): Likewise.
15784 (hide_evolution_in_other_loops_than_loop): Likewise.
15785 (chrec_component_in_loop_num): Likewise.
15786 (reset_evolution_in_loop): Likewise.
15787 (evolution_function_is_invariant_rec_p): Likewise.
15788 * tree-if-conv.c (main_tree_if_conversion): Likewise.
15789 * tree-inline.c (copy_loops): Likewise.
15790 (copy_cfg_body): Likewise.
15791 (tree_function_versioning): Likewise.
15792 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
15793 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15794 Likewise.
15795 (add_to_evolution_1): Likewise.
15796 (scev_const_prop): Likewise.
15797 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
15798 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
15799 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
15800 (tree_ssa_lim_initialize): Likewise.
15801 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
15802 (verify_loop_closed_ssa): Likewise.
15803 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
15804 (tree_ssa_loop_im): Likewise.
15805 (tree_ssa_loop_unswitch): Likewise.
15806 (tree_vectorize): Likewise.
15807 (check_data_deps): Likewise.
15808 (tree_ssa_loop_ivcanon): Likewise.
15809 (tree_ssa_loop_bounds): Likewise.
15810 (tree_complete_unroll): Likewise.
15811 (tree_complete_unroll_inner): Likewise.
15812 (tree_parallelize_loops): Likewise.
15813 (tree_ssa_loop_prefetch): Likewise.
15814 (tree_ssa_loop_ivopts): Likewise.
15815 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
15816 * tree-vectorizer.c (vectorize_loops): Likewise.
15817
37953bd3
MF
158182013-04-29 Mike Frysinger <vapier@gentoo.org>
15819
15820 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
15821 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
15822 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
15823 with EABI_LINK_SPEC.
15824
f9ed28db
UB
158252013-04-29 Uros Bizjak <ubizjak@gmail.com>
15826
15827 PR target/44578
15828 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
15829 alternative.
15830
deca73f5
VM
158312013-04-29 Vladimir Makarov <vmakarov@redhat.com>
15832
15833 PR target/57097
37953bd3 15834 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
15835 using memory for pseudos. Print cost dump for alternatives.
15836 Modify cost values for conflicts with early clobbers.
15837 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
15838
fdca7d03
UB
158392013-04-29 Uros Bizjak <ubizjak@gmail.com>
15840
15841 PR target/57098
15842 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
15843
0b064172
IB
158442013-04-29 Ian Bolton <ian.bolton@arm.com>
15845
15846 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
15847 from/to S register.
15848 (movdi_aarch64): Support LDR/STR from/to D register.
15849
473cec55
IB
158502013-04-29 Ian Bolton <ian.bolton@arm.com>
15851
15852 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
15853 or higher by default.
15854
a6f30e66
RB
158552013-04-29 Richard Biener <rguenther@suse.de>
15856
15857 PR middle-end/57075
15858 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
15859 even if not adding abnormal edges for calls that can make
15860 abnormal gotos.
15861
0c2b2040
RB
158622013-04-29 Richard Biener <rguenther@suse.de>
15863
15864 PR middle-end/57103
15865 * tree-cfg.c (move_stmt_op): Fix condition under which to update
15866 TREE_BLOCK.
15867 (move_stmt_r): Remove redundant checking.
15868
f41f80f9
TJ
158692013-04-29 Teresa Johnson <tejohnson@google.com>
15870
15871 PR bootstrap/57077
15872 * basic-block.h (apply_scale): New function.
15873 (apply_probability): Use apply_scale.
15874 * gimple-streamer-in.c (input_bb): Ditto.
15875 * lto-streamer-in.c (input_cfg): Ditto.
15876 * lto-cgraph.c (merge_profile_summaries): Ditto.
15877 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 15878 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
15879 (copy_edges_for_bb): Ditto.
15880 (copy_cfg_body): Ditto.
15881
315bbd2e
TV
158822013-04-29 Tom de Vries <tom@codesourcery.com>
15883
15884 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
15885 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
15886 (tail_merge_optimize): Handle current_loops == NULL.
15887
ebbd90d8
JL
158882013-04-26 Jeff Law <law@redhat.com>
15889
15890 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
15891 (simplify_cond_using_ranges): Generalize code to simplify
15892 COND_EXPRs where one argument is a constant and the other
15893 is an SSA_NAME created by an integral type conversion.
15894
8b9b57eb
KT
158952013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15896
15897 * config/arm/arm.md (store_minmaxsi): Use only when
15898 optimize_insn_for_size_p.
15899
9498e5dc
CB
159002013-04-29 Christian Bruel <christian.bruel@st.com>
15901
15902 PR target/57108
15903 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
15904
6093bc06
RB
159052013-04-29 Richard Biener <rguenther@suse.de>
15906
15907 PR middle-end/57089
fdca7d03
UB
15908 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
15909 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
15910 (expand_omp_for_generic): Properly add loops.
15911 (expand_omp_for_static_nochunk): Likewise.
15912 (expand_omp_for_static_chunk): Likewise.
15913 (expand_omp_for): For the degenerate case fixup loops.
15914 (expand_omp_sections): Fix default bb placement in loops.
15915 (expand_omp_atomic_pipeline): Properly add loops.
15916
84aacbfd
KT
159172013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15918
15919 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
15920
8dee4479
TV
159212013-04-29 Tom de Vries <tom@codesourcery.com>
15922
15923 * tree-ssa-tail-merge.c: Update header comment.
15924
47934dc4
JG
159252013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
15926
15927 * config/aarch64/arm_neon.h
15928 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
15929 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
15930 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
15931 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
15932 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
15933 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
15934 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
15935 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
15936
384be29f
JG
159372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
15938
15939 * config/aarch64/aarch64-simd.md
15940 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
15941 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
15942 fix_trunc, fixuns_trunc.
15943 (ftrunc<VDQF:mode>2): New.
15944 * config/aarch64/iterators.md (optab): Add fix, fixuns.
15945 (fix_trunc_optab): New.
15946
0386b123
JG
159472013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
15948
15949 * config/aarch64/aarch64-builtins.c
15950 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
15951 iceilf, lround, iroundf.
15952
00fcb892
UB
159532013-04-29 Uros Bizjak <ubizjak@gmail.com>
15954
15955 PR target/54349
15956 * config/i386/i386.h (enum ix86_tune_indices)
15957 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
15958 New, split from X86_TUNE_INTER_UNIT_MOVES.
15959 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
15960 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
15961 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
15962 (TARGET_INTER_UNIT_MOVES): Remove.
15963 * config/i386/i386.c (initial_ix86_tune_features): Update.
15964 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
15965 (ix86_expand_convert_uns_didf_sse): Use
15966 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
15967 (ix86_expand_vector_init_one_nonzero): Ditto.
15968 (ix86_expand_vector_init_interleave): Ditto.
15969 (inline_secondary_memory_needed): Return true for moves from SSE class
15970 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
15971 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
15972 * config/i386/constraints.md (Yi, Ym): Depend on
15973 TARGET_INTER_UNIT_MOVES_TO_VEC.
15974 (Yj, Yn): New constraints.
15975 * config/i386/i386.md (*movdi_internal): Change constraints of
15976 operand 1 from Yi to Yj and from Ym to Yn.
15977 (*movsi_internal): Ditto.
15978 (*movdf_internal): Ditto.
15979 (*movsf_internal): Ditto.
15980 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
15981 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
15982 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
15983 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
15984 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
15985 * config/i386/sse.md (movdi_to_sse): Ditto.
15986 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
15987 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
15988 TARGET_INTER_UNIT_MOVES.
15989 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
15990 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
15991 instead of TARGET_INTER_UNIT_MOVES.
15992 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
15993 operand 1 from Yi to Yj and from Ym to Yn.
15994
4c871069
JG
159952013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
15996
15997 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
15998 (float_truncate_hi_): Likewise.
15999 (float_extend_lo_): Likewise.
16000 (float_truncate_lo_): Likewise.
16001 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
16002 (aarch64_float_extend_lo_v2df): Likewise.
16003 (vec_unpacks_hi_v4sf): Likewise.
16004 (aarch64_float_truncate_lo_v2sf): Likewise.
16005 (aarch64_float_truncate_hi_v4sf): Likewise.
16006 (vec_pack_trunc_v2df): Likewise.
16007 (vec_pack_trunc_df): Likewise.
16008
1709ff9b
JG
160092013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16010
16011 * config/aarch64/aarch64-builtins.c
16012 (aarch64_fold_builtin): Fold float conversions.
16013 * config/aarch64/aarch64-simd-builtins.def
16014 (floatv2si, floatv4si, floatv2di): New.
16015 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
16016 * config/aarch64/aarch64-simd.md
16017 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
16018 * config/aarch64/iterators.md (FLOATUORS): New.
16019 (optab): Add float, floatuns.
16020 (su_optab): Likewise.
16021
ce966824
JG
160222013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16023
16024 * config/aarch64/aarch64-builtins.c
16025 (aarch64_builtin_vectorized_function): Use new names for
16026 fcvt builtins.
16027 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
16028 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
16029 (fcvtzu): Split as...
16030 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
16031 (fcvtas): Split as...
16032 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
16033 (fcvtau): Split as...
16034 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
16035 (fcvtps): Split as...
16036 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
16037 (fcvtpu): Split as...
16038 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
16039 (fcvtms): Split as...
16040 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
16041 (fcvtmu): Split as...
16042 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
16043 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
16044 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
16045 (lfrintnusf, lfrintnudf): Likewise.
16046 * config/aarch64/aarch64-simd.md
16047 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
16048 define_insn.
16049 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
16050 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
16051 (fcvt_pattern): Likewise.
16052
b9de24fe
JG
160532013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16054
16055 * config/aarch64/aarch64-simd.md
16056 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
16057 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
16058
77a205be
JG
160592013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16060
16061 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
16062 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
16063 (vrnd<a,m,n,p>_f32): Implement using builtins.
16064 (vrnd<i,x><q>_f<32, 64>): New.
16065
0659ce6f
JG
160662013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
16067
16068 * config/aarch64/aarch64-builtins.c
16069 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
16070 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
16071 (frintz): Rename to...
16072 (btrunc): ...this.
16073 (frintp): Rename to...
16074 (ceil): ...this.
16075 (frintm): Rename to...
16076 (floor): ...this.
16077 (frinti): Rename to...
16078 (nearbyint): ...this.
16079 (frintx): Rename to...
16080 (rint): ...this.
16081 (frinta): Rename to...
16082 (round): ...this.
16083 * config/aarch64/aarch64-simd.md
16084 (aarch64_frint<frint_suffix><mode>): Delete.
16085 (<frint_pattern><mode>2): Convert to insn.
16086 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
16087 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
16088 (frint_pattern): Likewise.
16089 (frint_suffix): Likewise.
16090
ea78906a
RB
160912013-04-29 Richard Biener <rguenther@suse.de>
16092
16093 PR tree-optimization/57081
16094 * loop-init.c: Include tree-flow.h.
16095 (loop_optimizer_finalize): Free number of iteration estimates.
16096 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
16097
baee1763
JJ
160982013-04-29 Jakub Jelinek <jakub@redhat.com>
16099
94dc5332
JJ
16100 PR tree-optimization/57083
16101 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
16102 non-singleton shift count range, zero extend low_bound for uns case.
16103
baee1763
JJ
16104 * config/i386/predicates.md (general_vector_operand): New predicate.
16105 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
16106 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
16107 if they aren't nonimmediate operands. If their original values
16108 satisfy const_vector_equal_evenodd_p, don't shift them.
16109 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
16110 predicates. For the SSE4.1 case force operands[{1,2}] into registers
16111 if not nonimmediate_operand.
16112 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
16113 instead of register_operand.
16114 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
16115
a9073727 161162013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
16117
16118 * stor-layout.c (finalize_size_functions): Allocate a structure and
16119 reset cfun before dumping the functions.
16120
ba8011e6
JJ
161212013-04-27 Jakub Jelinek <jakub@redhat.com>
16122
d6fde69e
JJ
16123 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
16124
ba8011e6
JJ
16125 PR target/56866
16126 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
16127 use xop_pmacsdqh if uns_p.
16128 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
16129 the immediate rotate count.
16130
2c62cbaa
VM
161312013-04-26 Vladimir Makarov <vmakarov@redhat.com>
16132
16133 * rtl.h (struct rtx_def): Add comment for field jump.
16134 (LRA_SUBREG_P): New macro.
16135 * recog.c (register_operand): Check LRA_SUBREG_P.
16136 * lra.c (lra): Add note at the end of RTL code. Align non-empty
16137 stack frame.
16138 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
16139 (lra_final_code_change): Skip subreg change for operators.
16140 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
16141 if there are no operand changes.
16142 * lra-constraints.c (curr_insn_set): New.
16143 (match_reload): Set LRA_SUBREG_P.
16144 (emit_spill_move): Ditto.
16145 (check_and_process_move): Use curr_insn_set. Process only single
16146 set insns. Don't initialize sec_mem_p and change_p.
16147 (simplify_operand_subreg): Use LRA_SUBREG_P.
16148 (reg_in_class_p): New function.
16149 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
16150 of #ifdef. Add code to remove cycling.
16151 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
16152 non-null disp. Reload inner instead of disp when base and index
16153 are null. Try to put lo_sum into register.
16154 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
16155 (check_and_process_move): Move code for move cost check to
16156 simple_move_p. Remove equiv_substitution.
16157 (simple_move_p): New function.
16158 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
16159 curr_insn_set. Call check_and_process_move only for single set
16160 insns. Use the new function. Move call of check_and_process_move
16161 after operand equiv substitution and address process.
16162
e7d764f3
JJ
161632013-04-26 Jakub Jelinek <jakub@redhat.com>
16164
16165 PR go/57045
16166 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
16167 with nonlocal goto receivers or returns twice calls, ignore
16168 unininitialized values from abnormal edges to nl goto receiver
16169 or returns twice call.
16170
41e10689
JJ
161712013-04-26 Jakub Jelinek <jakub@redhat.com>
16172
16173 PR tree-optimization/57051
16174 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
16175 and VEC_RSHIFT_EXPR if shift count is a multiple of element
16176 bitsize.
16177
d7ed20db
RB
161782013-04-26 Richard Biener <rguenther@suse.de>
16179
16180 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
16181 (expand_omp_taskreg): Likewise. Mark loops for fixup.
16182 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
16183 (fixup_loop_arrays_after_move): New function.
16184 (move_sese_region_to_fn): Properly outline the loop tree parts
16185 of the SESE region.
16186
df93505e
UB
161872013-04-26 Uros Bizjak <ubizjak@gmail.com>
16188
16189 * config/i386/i386.md (type, unit): Fix long lines.
16190
dd366ec3
RB
161912013-04-26 Richard Biener <rguenther@suse.de>
16192
16193 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
16194 (lto-streamer-out.o): Likewise.
16195 * cfgloop.c (init_loops_structure): Export, add struct function
16196 argument and adjust.
16197 (flow_loops_find): Adjust.
16198 * cfgloop.h (enum loop_estimation): Add EST_LAST.
16199 (init_loops_structure): Declare.
16200 * lto-streamer-in.c: Include cfgloop.h.
16201 (input_cfg): Input the loop tree.
16202 * lto-streamer-out.c: Include cfgloop.h.
16203 (output_cfg): Output the loop tree.
16204 (output_struct_function_base): Do not drop PROP_loops.
16205
a9e0d843
RB
162062013-03-26 Richard Biener <rguenther@suse.de>
16207
16208 * tree-cfg.c (execute_build_cfg): Build the loop tree.
16209 (pass_build_cfg): Provide PROP_loops.
16210 (move_sese_region_to_fn): Remove loops that are outlined into fn
16211 for now.
16212 * tree-inline.c: Include cfgloop.h.
16213 (initialize_cfun): Do not drop PROP_loops.
16214 (copy_loops): New function.
16215 (copy_cfg_body): Copy loop structure.
16216 (tree_function_versioning): Initialize destination loop tree.
16217 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
16218 (pass_parallelize_loops): Do IL verification.
16219 * loop-init.c (loop_optimizer_init): Fixup loops if required.
16220 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
16221 the CFG make sure we fixup loops as well.
16222 * tree-ssa-tail-merge.c: Include cfgloop.h.
16223 (replace_block_by): When merging loop latches mark loops for fixup.
16224 * lto-streamer-out.c (output_struct_function_base): Drop
16225 PROP_loops for now.
16226 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
16227 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
16228 * ipa-split.c: Include cfgloop.h.
16229 (split_function): Add the new return block to the loop tree root.
16230 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
16231 whether we have removed the forwarder block.
16232 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
16233 * cfgloop.h (place_new_loop): Declare.
16234 * cfgloopmanip.c (place_new_loop): Export.
16235 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
16236 (tree-switch-conversion.o): Likewise.
16237 (tree-complex.o): Likewise.
16238 (tree-inline.o): Likewise.
16239 (tree-ssa-tailmerge.o): Likewise.
16240 (ipa-split.o): Likewise.
16241 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
16242 (tree-ssa-copy.o): Likewise.
16243 * tree-switch-conversion.c: Include cfgloop.h
16244 (process_switch): If we emit a bit-test cascade, schedule loops
16245 for fixup.
16246 * tree-complex.c: Include cfgloop.h.
16247 (expand_complex_div_wide): Properly add new basic-blocks to loops.
16248 * asan.c: Include cfgloop.h.
16249 (create_cond_insert_point): Properly add new basic-blocks to
16250 loops, schedule loop fixup.
16251 * cfgloop.c (verify_loop_structure): Check that looks are not
16252 marked for fixup.
16253 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
16254 to loops.
16255 (expand_omp_for_generic): Likewise.
16256 (expand_omp_sections): Likewise.
16257 (expand_omp_atomic_pipeline): Schedule loops for fixup.
16258 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
16259 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
16260 is initialized, not when loops are present.
16261 * tree-parloops.c (parallelize_loops): Remove checking here.
16262 * passes.c (init_optimization_passes): Schedule a copy-propagation
16263 pass before complete unrolling of inner loops.
16264
e78e8a0b
JJ
162652013-04-26 Jakub Jelinek <jakub@redhat.com>
16266
a2e836b2
JJ
16267 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
16268 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
16269 (colorize_init): Add argument to _WIN32 version.
16270 * toplev.c: Include diagnostic-color.h.
16271 (process_options): Default to -fdiagnostics-color=auto if
16272 GCC_COLORS env var is in the environment.
16273 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
16274 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
16275 env var is in the environment, the default is auto rather than never.
a2e836b2 16276
e78e8a0b
JJ
16277 * diagnostic.h (file_name_as_prefix): Add context argument.
16278 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
16279 the string as locus.
16280 * langhooks.c (lhd_print_error_function): Adjust caller.
16281
013e5ef9
LC
162822013-04-25 Lawrence Crowl <crowl@google.com>
16283
16284 * var-tracking.c (shared_hash_def::htab):
16285 Change type to hash_table. Update dependent calls and types.
16286
4a8fb1a1
LC
162872013-04-25 Lawrence Crowl <crowl@google.com>
16288
16289 * Makefile.in: Update as needed below.
16290
16291 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
16292 Move declaration to after the type's method definitons.
16293
16294 * attribs.c (htab_t scoped_attributes::attribute_hash):
16295 Change type to hash_table. Update dependent calls and types.
16296
16297 * bitmap.c (htab_t bitmap_desc_hash):
16298 Change type to hash_table. Update dependent calls and types.
16299
16300 * cselib.c (htab_t cselib_hash_table):
16301 Change type to hash_table. Update dependent calls and types.
16302
16303 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
16304 (hash_string_slot_node): Move implementation into lto-streamer.h
16305 struct string_slot_hasher.
16306 (eq_string_slot_node): Likewise.
16307
16308 * data-streamer-out.c: Update output_block::string_hash_table
16309 dependent calls and types.
16310
16311 * dwarf2cfi.c (htab_t trace_index):
16312 Change type to hash_table. Update dependent calls and types.
16313
16314 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
16315 Change type to hash_table. Update dependent calls and types.
16316 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
16317 (htab_t optimize_external_refs::map): Likewise.
16318 (htab_t output_comp_unit::extern_map): Likewise.
16319 (htab_t output_comdat_type_unit::extern_map): Likewise.
16320 (htab_t output_macinfo::macinfo_htab): Likewise.
16321 (htab_t optimize_location_lists::htab): Likewise.
16322 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
16323
16324 * except.c (htab_t ehspec_hash_type):
16325 Change type to hash_table. Update dependent calls and types.
16326 (assign_filter_values::ttypes): Likewise.
16327 (assign_filter_values::ehspec): Likewise.
16328 (sjlj_assign_call_site_values::ar_hash): Likewise.
16329 (convert_to_eh_region_ranges::ar_hash): Likewise.
16330
16331 * gcse.c (htab_t pre_ldst_table):
16332 Change type to hash_table. Update dependent calls and types.
16333
16334 * ggc-common.c (htab_t saving_htab):
16335 Change type to hash_table. Update dependent calls and types.
16336 (htab_t loc_hash): Likewise.
16337 (htab_t ptr_hash): Likewise.
16338 (call_count): Rename ggc_call_count.
16339 (call_alloc): Rename ggc_call_alloc.
16340 (loc_descriptor): Rename make_loc_descriptor.
16341 (add_statistics): Rename ggc_add_statistics.
16342
16343 * ggc-common.c (saving_htab):
16344 Change type to hash_table. Update dependent calls and types.
16345
16346 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
16347 (push_gimplify_context): Likewise.
16348 (pop_gimplify_context): Likewise.
16349 (struct gimple_temp_hash_elt): Added.
16350 (struct gimplify_hasher): Likewise.
16351 (struct gimplify_ctx.temp_htab):
16352 Change type to hash_table. Update dependent calls and types.
16353
16354 * gimple-fold.c: Include gimplify-ctx.h.
16355
16356 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
16357 Change type to hash_table. Update dependent calls and types.
16358 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
16359 avoid potential global name collision.
16360
16361 * gimplify.c: Include gimplify-ctx.h.
16362 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
16363 (htab_t gimplify_ctx::temp_htab):
16364 Update dependent calls and types for new type hash_table.
16365 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
16366 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
16367
16368 * gimplify-ctx.h: New.
16369 (struct gimple_temp_hash_elt): Move from gimplify.c.
16370 (class gimplify_hasher): New.
16371 (struct gimplify_ctx): Move from gimple.h.
16372 (htab_t gimplify_ctx::temp_htab):
16373 Change type to hash_table. Update dependent calls and types.
16374
16375 * graphite-clast-to-gimple.c: Include graphite-htab.h.
16376 (htab_t ivs_params::newivs_index):
16377 Change type to hash_table. Update dependent calls and types.
16378 (htab_t ivs_params::params_index): Likewise.
16379 (htab_t print_generated_program::params_index): Likewise.
16380 (htab_t gloog::newivs_index): Likewise.
16381 (htab_t gloog::params_index): Likewise.
16382
16383 * graphite.c: Include graphite-htab.h.
16384 4htab_t graphite_transform_loops::bb_pbb_mapping):
16385 Change type to hash_table. Update dependent calls and types.
16386
16387 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
16388 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
16389 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
16390
16391 * graphite-dependences.c: Include graphite-htab.h.
16392 (loop_is_parallel_p): Change hash table type of parameter.
16393
16394 * graphite-htab.h: New.
16395 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
16396 (extern find_pbb_via_hash): Move from graphite-poly.h.
16397 (extern loop_is_parallel_p): Move from graphite-poly.h.
16398 (extern get_loop_body_pbbs): Move from graphite-poly.h.
16399
16400 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
16401 (extern loop_is_parallel_p): Move to graphite-htab.h.
16402 (extern get_loop_body_pbbs): Move to graphite-htab.h.
16403
16404 * haifa-sched.c (htab_t delay_htab):
16405 Change type to hash_table. Update dependent calls and types.
16406 (htab_t delay_htab_i2): Likewise.
16407
16408 * ira-color.c (htab_t allocno_hard_regs_htab):
16409 Change type to hash_table. Update dependent calls and types.
16410
16411 * ira-costs.c (htab_t cost_classes_htab):
16412 Change type to hash_table. Update dependent calls and types.
16413
16414 * loop-invariant.c (htab_t merge_identical_invariants::eq):
16415 Change type to hash_table. Update dependent calls and types.
16416
16417 * loop-iv.c (htab_t bivs):
16418 Change type to hash_table. Update dependent calls and types.
16419
16420 * loop-unroll.c (htab_t opt_info::insns_to_split):
16421 Change type to hash_table. Update dependent calls and types.
16422 (htab_t opt_info::insns_with_var_to_expand): Likewise.
16423
16424 * lto-streamer.h (struct string_slot): Move from data-streamer.h
16425 (struct string_slot_hasher): New.
16426 (htab_t output_block::string_hash_table):
16427 Change type to hash_table. Update dependent calls and types.
16428
16429 * lto-streamer-in.c (freeing_string_slot_hasher): New.
16430 (htab_t file_name_hash_table):
16431 Change type to hash_table. Update dependent calls and types.
16432
16433 * lto-streamer-out.c: Update output_block::string_hash_table dependent
16434 calls and types.
16435
16436 * lto-streamer.c (htab_t tree_htab):
16437 Change type to hash_table. Update dependent calls and types.
16438
16439 * omp-low.c: Include gimplify-ctx.h.
16440
16441 * passes.c (htab_t name_to_pass_map):
16442 Change type to hash_table. Update dependent calls and types.
16443 (pass_traverse): Rename to passes_pass_traverse.
16444
16445 * plugin.c (htab_t event_tab):
16446 Change type to hash_table. Update dependent calls and types.
16447
16448 * postreload-gcse.c (htab_t expr_table):
16449 Change type to hash_table. Update dependent calls and types.
16450 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
16451
16452 * sese.c (debug_rename_map_1): Make extern.
16453 (htab_t copy_bb_and_scalar_dependences::rename_map):
16454 Change type to hash_table. Update dependent calls and types.
16455
16456 * sese.h (extern debug_rename_map): Move to .c file.
16457
16458 * store-motion.c (htab_t store_motion_mems_table):
16459 Change type to hash_table. Update dependent calls and types.
16460
16461 * trans-mem.c (htab_t tm_new_mem_hash):
16462 Change type to hash_table. Update dependent calls and types.
16463
16464 * tree-browser.c (htab_t TB_up_ht):
16465 Change type to hash_table. Update dependent calls and types.
16466
16467 * tree-cfg.c (htab_t discriminator_per_locus):
16468 Change type to hash_table. Update dependent calls and types.
16469
16470 * tree-complex.c: Include tree-hasher.h
16471 (htab_t complex_variable_components):
16472 Change type to hash_table. Update dependent calls and types.
16473
16474 * tree-eh.c (htab_t finally_tree):
16475 Change type to hash_table. Update dependent calls and types.
16476
16477 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
16478 struct int_tree_hasher.
16479 (extern int_tree_map_eq): Likewise.
16480 (uid_decl_map_hash): Removed.
16481 (extern decl_tree_map_eq): Likewise.
16482
16483 * tree-hasher.h: New.
16484 (struct int_tree_hasher): New.
16485 (typedef int_tree_htab_type): New.
16486
16487 * tree-inline.c: Include gimplify-ctx.h.
16488
16489 * tree-mudflap.c: Include gimplify-ctx.h.
16490
16491 * tree-parloops.c: Include tree-hasher.h.
16492 (htab_t eliminate_local_variables_stmt::decl_address):
16493 Change type to hash_table. Update dependent calls and types.
16494 (htab_t separate_decls_in_region::decl_copies): Likewise.
16495
16496 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
16497 Change type to hash_table. Update dependent calls and types.
16498
16499 * tree-sra.c (candidates):
16500 Change type to hash_table. Update dependent calls and types.
16501
16502 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
16503 in tree-flow.h.
16504 (int_tree_map_hash): Likewise.
16505
16506 * tree-ssa-dom.c (htab_t avail_exprs):
16507 Change type to hash_table. Update dependent calls and types.
16508
16509 * tree-ssa-live.c (var_map_base_init::tree_to_index):
16510 Change type to hash_table. Update dependent calls and types.
16511
16512 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
16513 Change type to hash_table. Update dependent calls and types.
16514
16515 * tree-ssa-phiopt.c (seen_ssa_names):
16516 Change type to hash_table. Update dependent calls and types.
16517
16518 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
16519 Change type to hash_table. Update dependent calls and types.
16520
16521 * tree-ssa-uncprop.c (equiv):
16522 Change type to hash_table. Update dependent calls and types.
16523
c5a44004
JJ
165242013-04-25 Jakub Jelinek <jakub@redhat.com>
16525
16526 PR rtl-optimization/57003
16527 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
16528 call note_stores with kill_clobbered_value callback again after
16529 killing regs_invalidated_by_call.
16530
09962a4a
JG
165312013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16532
16533 * config/aarch64/aarch64-simd.md
16534 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
16535 (aarch64_simd_bsl<mode>): Likewise.
16536 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
16537
ea28bb0b
MP
165382013-04-25 Marek Polacek <polacek@redhat.com>
16539
16540 PR tree-optimization/57066
3c21604f 16541 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 16542
96659611
JG
165432013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
16544
16545 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
16546
9697e620
JG
165472013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16548
16549 * config/aarch64/aarch64-builtins.c
16550 (aarch64_fold_builtin): New.
16551 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
16552 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
16553 * config/aarch64/aarch64-simd-builtins.def (abs): New.
16554 * config/aarch64/arm_neon.h
16555 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
16556
0ac198d3
JG
165572013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16558 Tejas Belagod <tejas.belagod@arm.com>
16559
16560 * config/aarch64/aarch64-builtins.c
16561 (aarch64_gimple_fold_builtin): New.
16562 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
16563 * config/aarch64/aarch64-simd-builtins.def (addv): New.
16564 * config/aarch64/aarch64-simd.md (addpv4sf): New.
16565 (addvv4sf): Update.
16566 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
16567
58cff58c
N
165682013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16569
df93505e 16570 * config/aarch64/aarch64.md
58cff58c
N
16571 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
16572
7e0228bf
N
165732013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16574
16575 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
16576 (*ngcsi_uxtw): New pattern.
16577
5819f96f 165782013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 16579 Julian Brown <julian@codesourcery.com>
5819f96f
KT
16580
16581 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
16582 (TB_DREG): Add T_V4HF.
16583 (v4hf_UP): New macro.
16584 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 16585 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
16586 Handle initialisation of V4HF. Adjust initialisation of reinterpret
16587 built-ins.
df93505e 16588 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
16589 (arm_vector_mode_supported_p): Handle V4HF.
16590 (arm_mangle_map): Handle V4HFmode.
16591 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
16592 * config/arm/arm_neon_builtins.def: Add entries for
16593 vcvtv4hfv4sf, vcvtv4sfv4hf.
16594 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
16595 (neon_vcvtv4hfv4sf): Likewise.
16596 * config/arm/neon-gen.ml: Handle half-precision floating point
16597 features.
16598 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
16599 * config/arm/arm_neon.h: Regenerate.
16600 * config/arm/neon.ml (type elts): Add F16.
16601 (type vectype): Add T_float16x4, T_floatHF.
16602 (type vecmode): Add V4HF.
16603 (type features): Add Requires_FP_bit feature.
16604 (elt_width): Handle F16.
16605 (elt_class): Likewise.
16606 (elt_of_class_width): Likewise.
16607 (mode_of_elt): Refactor.
16608 (type_for_elt): Handle F16, fix error messages.
16609 (vectype_size): Handle T_float16x4.
16610 (vcvt_sh): New function.
16611 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
16612 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
16613 (string_of_mode): Handle V4HF.
16614 * doc/arm-neon-intrinsics.texi: Regenerate.
16615
1ef395e4
JG
166162013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
16617
16618 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
16619 format specifier in 'X' case.
16620
41c34e94
AM
166212013-04-25 Alan Modra <amodra@gmail.com>
16622
16623 PR target/57052
16624 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
16625 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
16626 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
16627 Repeat for many other rotate/shift and mask patterns using subregs.
16628 Name lshiftrt insns.
16629 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
16630 on WORDS_BIG_ENDIAN.
16631
b9a7eb5d
AM
166322013-04-25 Alan Modra <amodra@gmail.com>
16633
16634 * config.gcc: Support little-endian powerpc-linux targets.
16635 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
16636 (LINK_OS_LINUX_SPEC): Define.
16637 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
16638 Preserve MASK_LITTLE_ENDIAN.
16639 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
16640 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
16641 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
16642 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
16643 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
16644 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
16645 Correct fp word order for little-endian. Don't shift toc entries
16646 smaller than a word for little-endian.
16647 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
16648 (bswapdi2 splits): Correct low-part subreg for little-endian.
16649 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
16650 low/high where such is correct only for be.
16651 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
16652 little-endian for -mcall-aixdesc.
16653
87f73374
AM
166542013-04-25 Alan Modra <amodra@gmail.com>
16655
16656 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
16657 replace_equiv_address_nv.
16658
cabf91cd
AM
166592013-04-25 Alan Modra <amodra@gmail.com>
16660
16661 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
16662
0ae24cc8
VM
166632013-04-24 Vladimir Makarov <vmakarov@redhat.com>
16664
16665 Revert:
16666 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
16667 * rtl.h (struct rtx_def): ...
cabf91cd 16668
77bce07c
VM
166692013-04-24 Vladimir Makarov <vmakarov@redhat.com>
16670
16671 PR rtl-optimizations/57046
16672 * lra-constraints (split_reg): Set up lra_risky_transformations_p
16673 for multi-reg splits.
16674
0db63e7f
L
166752013-04-24 H.J. Lu <hongjiu.lu@intel.com>
16676
16677 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
16678
3362b6b6
SA
166792013-04-24 Sterling Augustine <saugustine@google.com>
16680
16681 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
16682 (comp_dir_string, debug_str_dwo_section): New.
16683 (DEBUG_STR_DWO_SECTION): Rename to ...
16684 (DEBUG_DWO_STR_SECTION): ... this.
16685 (DEBUG_NORM_STR_SECTION): Delete.
16686 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
16687 (DEBUG_STR_DWO_SECTION_FLAGS): New.
16688 (find_AT_string): Move most logic to ...
16689 (find_AT_string_in_table): ... here. New.
16690 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
16691 add_skeleton_AT_string. Delete logic.
16692 (output_skeleton_debug_sections): Remove call to
16693 add_top_level_skeleton_die_attrs.
16694 (add_comp_dir_attribute): Move logic to comp_dir_string.
16695 (dwarf2out_init): Initialize debug_str_dwo_section.
16696 (output_indirect_string): Call find_string_form.
16697 (output_indirect_strings): Rewrite.
16698 (prune_unused_types): Empty skeleton_debug_str_hash.
16699 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
16700 (dwarf2out_finish): Call output_indirect_strings.
16701
e93e18e9
PC
167022013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
16703
16704 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
16705
f6ce35ac
VM
167062013-04-24 Vladimir Makarov <vmakarov@redhat.com>
16707
cabf91cd 16708 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
16709 (LRA_SUBREG_P): New macro.
16710 * recog.c (register_operand): Check LRA_SUBREG_P.
16711 * lra.c (lra): Add note at the end of RTL code. Align non-empty
16712 stack frame.
16713 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
16714 (lra_final_code_change): Skip subreg change for operators.
16715 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
16716 if there are no operand changes.
16717 * lra-constraints.c (curr_insn_set): New.
16718 (match_reload): Set LRA_SUBREG_P.
16719 (emit_spill_move): Ditto.
16720 (check_and_process_move): Use curr_insn_set. Process only single
16721 set insns. Don't initialize sec_mem_p and change_p.
16722 (simplify_operand_subreg): Use LRA_SUBREG_P.
16723 (reg_in_class_p): New function.
16724 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
16725 of #ifdef. Add code to remove cycling.
16726 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
16727 non-null disp. Reload inner instead of disp when base and index
16728 are null. Try to put lo_sum into register.
16729 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 16730 (check_and_process_move): Move code for move cost check to
f6ce35ac 16731 simple_move_p. Remove equiv_substitution.
cabf91cd 16732 (simple_move_p): New function.
f6ce35ac
VM
16733 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
16734 curr_insn_set. Call check_and_process_move only for single set
16735 insns. Use the new function. Move call of check_and_process_move
16736 after operand equiv substitution and address process.
16737
38047d90
JG
167382013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
16739
16740 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
16741 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
16742 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
16743
13f39b2e
PC
167442013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
16745
16746 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
16747
97c116dc
MP
167482013-04-24 Marek Polacek <polacek@redhat.com>
16749
16750 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
16751 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
16752 (select_loops_exit_conditions): Likewise.
16753 (number_of_iterations_for_all_loops): Likewise.
16754 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
16755 (scev_analysis): Likewise.
16756
83082391 167572013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 16758 Chao-ying Fu <fu@mips.com>
83082391 16759
cabf91cd
AM
16760 * config/mips/micromips.md (jraddiusp): New pattern.
16761 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
16762 instruction if possible.
83082391 16763
19e34aa2
AM
167642013-04-24 Alan Modra <amodra@gmail.com>
16765
16766 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
16767
fdb6603c
JB
167682013-04-24 Julian Brown <julian@codesourcery.com>
16769 Chung-Lin Tang <cltang@codesourcery.com>
16770
16771 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
16772 dependency behavior in enumeration type DIE generation. Add TODO note
16773 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 16774
bf190e8d
LC
167752013-04-23 Lawrence Crowl <crowl@google.com>
16776
16777 * Makefile.in: Update as needed below.
16778
16779 * hash-table.h (class hash_table):
16780 Correct many methods with parameter types compare_type to the correct
16781 value_type. (Correct code was unlikely to notice the change.)
16782 (hash_table::elements_with_deleted) New.
16783 (class hashtable::iterator): New.
16784 (hashtable::begin()): New.
16785 (hashtable::end()): New.
16786 (FOR_EACH_HASH_TABLE_ELEMENT): New.
16787
16788 * statistics.c (statistics_hashes):
16789 Change type to hash_table. Update dependent calls and types.
16790
16791 * tree-into-ssa.c (var_infos):
16792 Change type to hash_table. Update dependent calls and types.
16793
16794 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
16795 Change type to hash_table. Update dependent calls and types.
16796
16797 * tree-ssa-loop-im.c (struct mem_ref.refs):
16798 Change type to hash_table. Update dependent calls and types.
16799
16800 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
16801 Change type to hash_table. Update dependent calls and types.
16802
16803 * tree-ssa-sccvn.c (vn_tables_s::nary):
16804 Change type to hash_table. Update dependent calls and types.
16805 (vn_tables_s::phis): Likewise.
16806 (vn_tables_s::references): Likewise.
16807
16808 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
16809 (vn_reference_eq): Update parameter and return types.
16810
16811 * tree-ssa-structalias.c (pointer_equiv_class_table):
16812 Change type to hash_table. Update dependent calls and types.
16813 (location_equiv_class_table): Likewise.
16814
16815 * tree-vect-data-refs.c: Consequential changes for making
16816 peeling a hash_table.
16817
16818 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
16819 (destroy_loop_vec_info): Dependent hash_table update.
16820
16821 * tree-vectorizer.h (peeling_htab):
16822 Change type to hash_table. Update dependent calls and types.
16823
d70a81dd
SC
168242013-04-23 Shiva Chen <shiva0217@gmail.com>
16825
cabf91cd
AM
16826 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
16827 to check the register content is equal or not.
16828 * lra-constraints.c (match_reload): Use lra_assign_reg_val
16829 to assign register content record.
16830 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 16831 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
16832 * lra-int.h (struct lra_reg): Add offset member.
16833 (lra_reg_val_equal_p): New static inline function.
16834 (lra_update_reg_val_offset): New static inline function.
16835 (lra_assign_reg_val): New static inline function.
16836 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
16837 to assign register content record.
16838 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 16839
b894a1f3
CM
168402013-04-23 Catherine Moore <clm@codesourcery.com>
16841
16842 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
16843 operands. Record compression.
16844
ecd14de9
XDL
168452013-04-23 Xinliang David Li <davidxl@google.com>
16846
16847 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
16848
92e776e9
RB
168492013-04-23 Richard Biener <rguenther@suse.de>
16850
16851 PR middle-end/57036
16852 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
16853 parameter, only add abnormal goto edges from the copied body
16854 if the call could perform abnormal gotos.
16855 (copy_cfg_body): Adjust.
16856
a15ee567
SN
168572013-04-23 Sofiane Naci <sofiane.naci@arm.com>
16858
16859 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
16860
08c52234
AS
168612013-04-23 Andreas Schwab <schwab@linux-m68k.org>
16862
16863 * coretypes.h (gimple_stmt_iterator): Add struct to make
16864 compatible with C.
16865
999c1171
RB
168662013-04-23 Richard Biener <rguenther@suse.de>
16867
16868 PR tree-optimization/57026
16869 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
16870 from SSA names occuring in abnormal PHI nodes.
16871
53669259
AK
168722013-04-22 Andi Kleen <ak@linux.intel.com>
16873
16874 * lto/lto.c (print_lto_report_1): Fix LTO report names.
16875
1a0ad150
AK
168762013-04-22 Andi Kleen <ak@linux.intel.com>
16877
16878 * lto/lto.c (print_lto_report_1): Declare early.
16879 (read_cgraph_and_symbols): Call print_lto_report_1 early.
16880
057f8f20
AK
168812013-04-22 Andi Kleen <ak@linux.intel.com>
16882
16883 * common.opt (-flto-report-wpa): Add.
16884 * doc/invoke.texi (-flto-report-wpa): Add.
16885 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
16886 (lto_main): dito.
16887
473b1e05
XDL
168882013-04-22 Xinliang David Li <davidxl@google.com>
16889
16890 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
16891 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
16892 * Makefile.in: New dependency
16893
cabf91cd 16894 David Daney <ddaney.cavm@gmail.com>
b1485a33 16895
cabf91cd
AM
16896 * configure.ac (gcc_cv_as_micromips_support): Use the
16897 --fatal-warnings option.
16898 * configure: Regenerate.
b1485a33 16899
829d0168
MP
169002013-04-22 Marek Polacek <polacek@redhat.com>
16901
16902 PR sanitizer/56990
16903 * tsan.c (instrument_expr): Don't instrument expression
16904 in case its size is zero.
16905
6d9b7208
UB
169062013-04-22 Uros Bizjak <ubizjak@gmail.com>
16907
16908 PR target/57032
16909 Revert:
16910 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
16911
16912 * config/alpha/alpha.c (TARGET_LRA_P): New define.
16913
ea679d55
JG
169142013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
16915
16916 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
16917 (gimple_stmt_iterator): New typedef.
16918 * gimple.h (gimple_stmt_iterator): Rename to...
16919 (gimple_stmt_iterator_d): ... This.
16920 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
16921 trees be valid for GIMPLE and GENERIC.
16922 (TARGET_GIMPLE_FOLD_BUILTIN): New.
16923 * gimple-fold.c (gimple_fold_call): Call target hook
16924 gimple_fold_builtin.
16925 * hooks.c (hook_bool_gsiptr_false): New.
16926 * hooks.h (hook_bool_gsiptr_false): New.
16927 * target.def (fold_stmt): New.
16928 * doc/tm.texi: Regenerate.
16929
88a581da
VM
169302013-04-22 Vladimir Makarov <vmakarov@redhat.com>
16931
16932 PR target/57018
16933 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
16934 a set sp if no stack realignment.
16935
92be22dc
NC
169362013-04-22 Nick Clifton <nickc@redhat.com>
16937
16938 * config.gcc (tilegx-linux): Extend extra_objs rather than
16939 overwriting it.
16940 (tilepro-linux): Likewise.
16941
0ddec79f
JG
169422013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
16943
16944 * config/aarch64/aarch64-builtins.c
16945 (CF): Remove.
16946 (CF0, CF1, CF2, CF3, CF4, CF10): New.
16947 (VAR<1-12>): Add MAP parameter.
16948 (BUILTIN_*): Likewise.
16949 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
16950 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
16951 (aarch64_ushl_n<mode>): Likewise.
16952 (aarch64_sshr_n<mode>): Likewise.
16953 (aarch64_ushr_n<mode>): Likewise.
16954 (aarch64_<maxmin><mode>): Likewise.
16955 (aarch64_sqrt<mode>): Likewise.
16956 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
16957 (vshr<q>_n_*): Likewise.
16958
0050faf8
JG
169592013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
16960
16961 * config/aarch64/aarch64-builtins.c
16962 (aarch64_simd_builtin_type_mode): Handle SF types.
16963 (sf_UP): Define.
16964 (BUILTIN_GPF): Define.
16965 (aarch64_init_simd_builtins): Handle SF types.
16966 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
16967 (frecps): Likewise.
16968 (frecpx): Likewise.
16969 * config/aarch64/aarch64-simd.md
16970 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
16971 (aarch64_frecpe<mode>): New.
16972 (aarch64_frecps<mode>): Likewise.
16973 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
16974 (v8type): Add frecp<esx>.
16975 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
16976 (aarch64_frecps<mode>): Likewise.
16977 * config/aarch64/iterators.md (FRECP): New.
16978 (frecp_suffix): Likewise.
16979 * config/aarch64/arm_neon.h
16980 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
16981
0fad3dbc 169822013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
16983
16984 PR target/56995
16985 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
16986 (REG_CLASS_NAMES): Idem.
16987 (REG_CLASS_CONTENTS): Idem.
16988 (REGCLASS_HAS_FP_REG): Idem.
16989 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
16990 (sh_conditional_register_usage): Idem.
16991
3e8a33f9
JL
169922013-04-21 Jeff Law <law@redhat.com>
16993
16994 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
16995 (ssa_forward_propagate_and_combine): Use it.
16996
f38e1b0a
VM
169972013-04-19 Vladimir Makarov <vmakarov@redhat.com>
16998
16999 * lra.c: Update the flow chart diagram.
17000
682303da
VM
170012013-04-19 Vladimir Makarov <vmakarov@redhat.com>
17002
17003 PR rtl-optimization/56847
17004 * lra-constraints.c (process_alt_operands): Discourage alternative
17005 with non-matche doffsettable memory constraint fro memory with
17006 known offset.
17007
f6b64c35
RB
170082013-04-19 Richard Biener <rguenther@suse.de>
17009
17010 PR tree-optimization/56982
17011 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
17012 function.
17013 * gimplify.c (gimplify_call_expr): Notice special calls.
17014 (gimplify_modify_expr): Likewise.
17015 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
17016 abnormal control flow receivers.
17017 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
17018 in the same way as cfun->has_nonlocal_labels.
17019 (gimple_purge_dead_abnormal_call_edges): Likewise.
17020 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
17021 receivers start a basic-block.
17022
01d8bf07
RB
170232013-04-19 Richard Biener <rguenther@suse.de>
17024
17025 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
17026 member ...
17027 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
17028 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
17029 (SLP_TREE_LOAD_PERMUTATION): Add.
17030 (vect_transform_slp_perm_load): Adjust prototype.
17031 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
17032 (vect_free_slp_instance): Likewise.
17033 (vect_create_new_slp_node): Likewise.
17034 (vect_supported_slp_permutation_p): Remove.
17035 (vect_slp_rearrange_stmts): Adjust.
17036 (vect_supported_load_permutation_p): Likewise. Inline
17037 vect_supported_slp_permutation_p here.
17038 (vect_analyze_slp_instance): Compute load permutations per
17039 slp node instead of per instance.
17040 (vect_get_slp_defs): Adjust.
17041 (vect_transform_slp_perm_load): Likewise.
17042 (vect_schedule_slp_instance): Remove redundant code.
17043 (vect_schedule_slp): Remove hack for PR56270, add it ...
17044 * tree-vect-stmts.c (vectorizable_load): ... here, do not
17045 CSE loads for SLP. Adjust.
17046
ede22fc3
GY
170472013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
17048
17049 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
17050 spelling in two comments.
17051
67bc84fb
GY
170522013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
17053
17054 PR target/56797
17055 * config/arm/arm.c (load_multiple_sequence): Require SP
17056 as base register for loads if SP is in the register list.
17057
e248d83f
MJ
170582013-04-19 Martin Jambor <mjambor@suse.cz>
17059
17060 PR tree-optimization/56718
17061 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
17062 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
17063 and made public. Adjusted all callers.
17064 (ipa_intraprocedural_devirtualization): New function.
17065 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
17066 (ipa_intraprocedural_devirtualization): Likewise.
17067 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
17068
4891e8f8
RB
170692013-04-19 Richard Biener <rguenther@suse.de>
17070
17071 PR tree-optimization/57000
17072 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
17073
dad89f7c
TG
170742013-04-19 Terry Guo <terry.guo@arm.com>
17075
17076 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
17077 Replace with ...
17078 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
17079 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
17080 (cortex_m4_fmacs): Use new reservations.
17081 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
17082
72ea0d47
VM
170832013-04-18 Vladimir Makarov <vmakarov@redhat.com>
17084
f1e6512c 17085 PR rtl-optimization/56999
72ea0d47
VM
17086 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
17087 related code.
17088 (lra_coalesce): Remove split_origin_bitmap and related code.
17089 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
17090 ranges if necessary.
17091
780a5b71
UB
170922013-04-18 Uros Bizjak <ubizjak@gmail.com>
17093
17094 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
17095 New array.
17096 (ix86_expand_call): Remove clobbered_registers array and use
17097 x86_64_ms_sysv_extra_clobbered_registers instead.
17098 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
17099 Declare here.
17100 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
17101 predicate.
17102 * config/i386/i386.md (*call_rex64_ms_sysv): Use
17103 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
17104 (*call_value_rex64_ms_sysv): Ditto.
17105
6f5a366a
CC
171062013-04-18 Cary Coutant <ccoutant@google.com>
17107
17108 * dwarf2out.c (output_pubnames): Check die_perennial_p of
17109 parent instead of die_mark.
17110
475b8f37
DN
171112013-04-18 Diego Novillo <dnovillo@google.com>
17112
17113 * gimple.c (create_gimple_tmp): New.
17114 (get_expr_type): New.
17115 (build_assign): New.
17116 (build_type_cast): New.
17117 * gimple.h (enum ssa_mode): Define.
17118 (gimple_seq_set_location): New.
17119 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 17120 to use build_assign and build_type_cast.
475b8f37 17121
08940f33
RB
171222013-04-18 Richard Biener <rguenther@suse.de>
17123
17124 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
17125 handle negative step. Remove redundant checks.
17126 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
17127 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
17128 for negative step and grouped loads fail to vectorize.
17129
0e0f87d4
SB
171302013-04-18 Steven Bosscher <steven@gcc.gnu.org>
17131
17132 * emit-rtl.c (reset_insn_used_flags): New function.
17133 (reset_all_used_flags): Use it.
17134 (verify_insn_sharing): New function.
17135 (verify_rtl_sharing): Fix verification for SEQUENCEs.
17136
4c445590
JJ
171372013-04-18 Jakub Jelinek <jakub@redhat.com>
17138
17139 PR tree-optimization/56984
17140 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
17141 and (x >> M) >= N don't register any assertion if N << M is the
17142 minimum value.
17143
6873ecab
SB
171442013-04-18 Steven Bosscher <steven@gcc.gnu.org>
17145
17146 * lower-subreg.c (resolve_simple_move): If called self-recursive,
17147 do not delete_insn insns that have not yet been emitted, only
17148 unlink them with remove_insn.
17149 * df-scan.c (df_insn_delete): Revert r197492.
17150
3ccb989e
SB
171512013-04-17 Steven Bosscher <steven@gcc.gnu.org>
17152
17153 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
17154 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
17155
171562013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
17157
17158 * config/arm/arm.md (movsicc_insn): Convert define_insn into
17159 define_insn_and_split.
17160 (and_scc,ior_scc,negscc): Likewise.
17161 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
17162
3ccb989e 171632013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
17164
17165 * config/arm/arm.c (use_return_insn): Return 0 for targets that
17166 can benefit from using a sequence of LDRD instructions in epilogue
17167 instead of a single LDM instruction.
17168
6d10a203
MLI
171692013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
17170
17171 PR 45688
17172 * doc/extend.texi: Fix typo.
17173
6983e6b5
RB
171742013-04-17 Richard Biener <rguenther@suse.de>
17175
17176 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
17177 (vect_build_slp_tree): ... here.
17178 (vect_build_slp_tree_1): Compute which stmts of the SLP group
17179 match. Remove special-casing of mismatched complex loads.
17180 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
17181 re-try the match with swapped commutative operands.
17182 (vect_supported_load_permutation_p): Remove special-casing of
17183 mismatched complex loads.
17184 (vect_analyze_slp_instance): Adjust.
17185
ef23e6a2
RB
171862013-04-17 Richard Biener <rguenther@suse.de>
17187
17188 PR rtl-optimization/56921
17189 * cfgloop.h (struct loop): Add simple_loop_desc member.
17190 (struct niter_desc): Mark with GTY(()).
17191 (simple_loop_desc): Do not use aux field but simple_loop_desc.
17192 * loop-iv.c (get_simple_loop_desc): Likewise.
17193 (free_simple_loop_desc): Likewise.
17194
17195 Revert
17196 2013-04-16 Richard Biener <rguenther@suse.de>
17197
17198 PR rtl-optimization/56921
17199 * loop-init.c (pass_rtl_move_loop_invariants): Add
17200 TODO_do_not_ggc_collect to todo_flags_finish.
17201 (pass_rtl_unswitch): Same.
17202 (pass_rtl_unroll_and_peel_loops): Same.
17203 (pass_rtl_doloop): Same.
17204
fc6f94f5
EB
172052013-04-17 Eric Botcazou <ebotcazou@adacore.com>
17206
17207 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
17208 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
17209 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
17210 references.
17211 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
17212 * tree-streamer.c (record_common_node): Adjust reference in comment.
17213
10a88311
TG
172142013-04-17 Terry Guo <terry.guo@arm.com>
17215
17216 * config/arm/cortex-m4.md: Add a new bypass.
17217
6d9b7208 172182013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
17219
17220 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
17221 New pattern.
17222 (*subs_<optab><mode>_multp2): New pattern.
17223 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
17224 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
17225
6d9b7208 172262013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
17227
17228 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
17229 (*subs_mul_imm_<mode>): New pattern.
17230
18a6701e
DE
172312013-04-16 David Edelsohn <dje.gcc@gmail.com>
17232
17233 PR target/56948
17234 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
17235 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
17236 (vsx_movti_32bit): Change j->wa to O->wa.
17237
07c37b2f
RB
172382013-04-16 Richard Biener <rguenther@suse.de>
17239
17240 PR rtl-optimization/56921
17241 * loop-init.c (pass_rtl_move_loop_invariants): Add
17242 TODO_do_not_ggc_collect to todo_flags_finish.
17243 (pass_rtl_unswitch): Same.
17244 (pass_rtl_unroll_and_peel_loops): Same.
17245 (pass_rtl_doloop): Same.
17246
0e0f87d4 172472013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
17248
17249 * config/arm/arm.c (emit_multi_reg_push): New declaration
17250 for an existing function.
17251 (arm_emit_strd_push): New function.
17252 (arm_expand_prologue): Used here.
17253 (arm_emit_ldrd_pop): New function.
17254 (arm_expand_epilogue): Used here.
17255 (arm_get_frame_offsets): Update condition.
17256 (arm_emit_multi_reg_pop): Add a special case for load of a single
17257 register with writeback.
17258
5e8e2af4
UB
172592013-04-16 Uros Bizjak <ubizjak@gmail.com>
17260
17261 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
17262 description.
17263
9fd9ccf7
RB
172642013-04-16 Richard Biener <rguenther@suse.de>
17265
17266 PR tree-optimization/56756
17267 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
17268 (first_mem_ref_loc): New.
17269 (execute_sm): Place the load temporarily before a previous
17270 access instead of in the latch edge to ensure its SSA dependencies
17271 are defined at points dominating the load.
17272
96fba521
SB
172732013-04-16 Steven Bosscher <steven@gcc.gnu.org>
17274
4c8af858
SB
17275 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
17276 correct fix by moving header and footer insn to the footer of
17277 the merged basic block. Clear BB_END of the merged-away block.
17278
96fba521
SB
17279 PR middle-end/43631
17280 * emit-rtl.c (make_note_raw): New function.
17281 (link_insn_into_chain): New static inline function.
17282 (add_insn): Use it.
17283 (add_insn_before, add_insn_after): Factor insn chain linking code...
17284 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
17285 using link_insn_into_chain.
17286 (note_outside_basic_block_p): New helper function for emit_note_after
17287 and emit_note_before.
17288 (emit_note_after): Use nobb variant of add_insn_after if the note
17289 should not be contained in a basic block.
17290 (emit_note_before): Use nobb variant of add_insn_before if the note
17291 should not be contained in a basic block.
17292 (emit_note_copy): Use make_note_raw.
17293 (emit_note): Likewise.
17294 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
17295 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
17296 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
17297 the moved barrier the tail of the basic block it follows.
17298 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
17299
7b8265ba
JJ
173002013-04-15 Jakub Jelinek <jakub@redhat.com>
17301
17302 PR tree-optimization/56962
17303 * gimple-ssa-strength-reduction.c (record_increment): Only set
17304 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
17305 either rhs1 or rhs2 is equal to c->base_expr.
17306
5185d248
RB
173072013-04-15 Richard Biener <rguenther@suse.de>
17308
17309 PR tree-optimization/56933
17310 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
17311 member.
17312 (GROUP_READ_WRITE_DEPENDENCE): Remove.
17313 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
17314 * tree-vect-data-refs.c (vect_analyze_group_access): Move
17315 dependence check ...
17316 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
17317 ... here.
17318 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
17319 GROUP_READ_WRITE_DEPENDENCE.
17320
a24243a0
AK
173212013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17322
17323 * emit-rtl.c (reset_all_used_flags): New function.
17324 (verify_rtl_sharing): Call reset_all_used_flags before and after
17325 performing the checks.
17326
1c50eada
KT
173272013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17328
17329 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
17330 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
17331 * config/arm/constraints.md (De): New constraint.
17332 * config/arm/neon.md (anddi3_neon): Delete.
17333 (neon_vand<mode>): Expand to standard anddi3 pattern.
17334 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
17335 Move earlier in the file.
17336 (neon_inv_logic_op2): Likewise.
17337 (arm_anddi_operand_neon): New predicate.
17338
e927b6ad
RO
173392013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17340
17341 * configure.ac (gcc_cv_ld_as_needed): Set
17342 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
17343 Use -z ignore, -z record on *-*-solaris2*.
17344 (HAVE_LD_AS_NEEDED): Update comment.
17345 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
17346 * configure: Regenerate.
17347 * config.in: Regenerate.
17348 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
17349 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
17350 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
17351 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
17352 equivalents. Fix markup.
17353 * doc/tm.texi: Regenerate.
17354
e0ea8797
AH
173552013-04-15 Andrew Hsieh <andrewhsieh.google.com>
17356
17357 * config/i386/i386.opt: New option mstack-protector-guard=.
17358 * config/i386/i386-opts.h: Add enum stack_protector_guard.
17359 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
17360 TARGET_SSP_TLS_GUARD.
17361 * config/i386/i386.c (ix86_option_override_internal): Set
17362 ix86_stack_protector_guard.
17363 * config/i386/i386.md (stack_protect_set): Enable for
17364 TARGET_SSP_TLS_GUARD only.
17365 (stack_protect_set_<mode>): Ditto.
17366 (stack_protect_test): Ditto.
17367 (stack_protect_test_<mode>): Ditto.
17368 * doc/invoke.texi (i386 Option): Document.
17369
811b72f9
EB
173702013-04-15 Eric Botcazou <ebotcazou@adacore.com>
17371
17372 PR target/56890
17373 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
17374 (S_MODES): Set H_MODE bit.
17375 (SF_MODES): Set only S_MODE and SF_MODE bits.
17376 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
17377 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
17378 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
17379 <MODE_FLOAT>: Likewise.
17380
5529fdd6
JY
173812013-04-15 Joey Ye <joey.ye@arm.com>
17382
17383 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
17384
517b1da2
JY
173852013-04-15 Joey Ye <joey.ye@arm.com>
17386
17387 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
17388 for real far jump.
17389 (thumb_far_jump_used_p): Count instruction size and set
17390 far_jump_used.
17391
01007ae0
EB
173922013-04-14 Eric Botcazou <ebotcazou@adacore.com>
17393
17394 * reorg.c (fill_simple_delay_slots): Reindent block of code.
17395 * resource.c (mark_target_live_regs): Reformat conditional block.
17396
c46f6580
SB
173972013-04-13 Steven Bosscher <steven@gcc.gnu.org>
17398
17399 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
17400 notes, they are emitted only just before final.
17401 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
17402
1f397f45
SB
174032013-04-13 Steven Bosscher <steven@gcc.gnu.org>
17404
17405 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
17406 * cfgrtl.c (delete_insn): Call it here instead.
17407 * lra-spills.c (lra_final_code_change): Use delete_insn.
17408 * haifa-sched.c (sched_remove_insn): Likewise.
17409 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
17410 returning to the nop pool.
17411 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
17412 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
17413
58a51369
SB
174142013-04-12 Steven Bosscher <steven@gcc.gnu.org>
17415
17416 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
17417 * doc/tm.texi: Regenerated.
17418
33159866
UB
174192013-04-12 Uros Bizjak <ubizjak@gmail.com>
17420
17421 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
17422 QImode checks.
17423
226e378f
SB
174242013-04-12 Steven Bosscher <steven@gcc.gnu.org>
17425
17426 * df-core.c (df_find_def): Compare register numbers.
17427 (df_find_use): Likewise.
17428
fafb9b18
VM
174292013-04-12 Vladimir Makarov <vmakarov@redhat.com>
17430
17431 PR target/56903
17432 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
17433 lra_in_progress for return.
17434
9a946fd6
GY
174352013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
17436
17437 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
17438 define_insn into define_insn_and_split and emit movsicc patterns.
17439
41b83758
GY
174402013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
17441
17442 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
17443
d3afd9aa
RB
174442013-04-12 Richard Biener <rguenther@suse.de>
17445
17446 * tree-pass.h (TODO_do_not_ggc_collect): New.
17447 * passes.c (execute_one_ipa_transform_pass): Honor
17448 TODO_do_not_ggc_collect.
17449 (execute_one_pass): Likewise.
17450
17451 Revert
17452 2013-04-10 Richard Biener <rguenther@suse.de>
17453
17454 * passes.c (init_optimization_passes): Remove reload pass.
17455 * ira.c (do_reload): Merge into ...
17456 (ira): ... this.
17457 (rest_of_handle_reload): Remove.
17458 (pass_reload): Likewise.
17459 * config/i386/i386.c (ix86_option_override): Refer to ira instead
17460 of reload for vzeroupper pass placement.
17461
06f9b387
JJ
174622013-04-12 Jakub Jelinek <jakub@redhat.com>
17463
17464 PR tree-optimization/56918
17465 PR tree-optimization/56920
17466 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
17467 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
17468 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
17469 use wide_mul_with_sign method.
17470
953094d2
RB
174712013-04-12 Richard Biener <rguenther@suse.de>
17472
17473 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
17474 not be considered a gimple constant.
17475
bb506982
MG
174762013-04-12 Marc Glisse <marc.glisse@inria.fr>
17477
17478 * fold-const.c (const_binop): Handle vector shifts by a scalar.
17479 (fold_binary_loc): Call const_binop also for mixed vector-scalar
17480 operations.
17481
4b84d650
JJ
174822013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
17483 Jakub Jelinek <jakub@redhat.com>
17484
17485 * opts.c: Include diagnostic-color.h.
17486 (common_handle_option): Handle OPT_fdiagnostics_color_.
17487 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
17488 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
17489 (diagnostic-color.o): New.
17490 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
17491 (diagnostic_color_rule): New enum.
17492 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
17493 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
17494 the location string.
17495 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
17496 either NULL, or color kind.
17497 * diagnostic-color.c: New file.
17498 * diagnostic-color.h: New file.
17499 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
17500 arguments.
17501 * doc/invoke.texi (-fdiagnostics-color): Document.
17502 * pretty-print.h (pp_show_color): Define.
17503 (struct pretty_print_info): Add show_color field.
17504 * diagnostic.c: Include diagnostic-color.h.
17505 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
17506 macros. Colorize error:, warning: etc. strings and also the location
17507 string.
17508 (diagnostic_show_locus): Colorize the caret line.
17509 * pretty-print.c: Include diagnostic-color.h.
17510 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
17511 inside of %< %> quotes or quoted through q format modifier.
17512
067a1e71
AK
175132013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17514
33159866 17515 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 17516
33159866 175172013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
17518
17519 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
17520 code in CC_NZ mode.
17521 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
17522 pattern.
17523
7b55f98f
MP
175242013-04-11 Marek Polacek <polacek@redhat.com>
17525
17526 PR tree-optimization/48184
33159866 17527 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 17528
966b587e
EB
175292013-04-11 Eric Botcazou <ebotcazou@adacore.com>
17530
17531 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
17532 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
17533 (skip_simple_arithmetic): Tidy up.
17534 * tree.h (skip_simple_constant_arithmetic): Declare.
17535
33159866 175362013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
17537
17538 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
17539
1d42c1ec
RB
175402013-04-11 Richard Biener <rguenther@suse.de>
17541
17542 * tree-vect-loop.c (get_initial_def_for_induction): Properly
17543 generate vector constants.
17544
4ba5ea11
RB
175452013-04-11 Richard Biener <rguenther@suse.de>
17546
17547 PR tree-optimization/56878
17548 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
17549 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
17550 New function.
17551 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17552 Prefer to align the DR with the most invariant base address.
17553
f0defe58
SKS
175542013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
17555
17556 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
17557 comment.
17558
d07458be
JG
175592013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17560
17561 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
17562 floating-point vector comparisons against 0.
17563
146b8692
JJ
175642013-04-11 Jakub Jelinek <jakub@redhat.com>
17565
17566 PR tree-optimization/56899
17567 * fold-const.c (extract_muldiv_1): Apply distributive law
17568 only if TYPE_OVERFLOW_WRAPS (ctype).
17569
b8578ff7
BC
175702013-04-11 Bin Cheng <bin.cheng@arm.com>
17571
17572 PR target/56124
17573 * ira-costs.c (scan_one_insn): Check whether the source rtx of
17574 loading has side effect.
17575
0ea8a6f9
SB
175762013-04-10 Steven Bosscher <steven@gcc.gnu.org>
17577
17578 * config/sparc/sparc.c: Include tree-pass.h.
17579 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
17580 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
17581 head of file. Change return type. Split off gate function.
17582 (sparc_gate_work_around_errata): New function.
17583 (pass_work_around_errata): New pass definition.
17584 (insert_pass_work_around_errata) New pass insert definition to
17585 insert pass_work_around_errata just after delayed-branch scheduling.
17586 (sparc_option_override): Insert the pass.
17587 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
17588
42e37616
DM
175892013-04-10 David S. Miller <davem@davemloft.net>
17590
89deeb3b
DM
17591 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
17592 or -mcpu=hypersparc.
17593
42e37616
DM
17594 * target.def (cstore_mode): New hook.
17595 * target.h: Include insn-codes.h
17596 * targhooks.c: Likewise.
17597 (default_cstore_mode): New function.
17598 * targhooks.h: Declare it.
17599 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
17600 * doc/tm.texi: Rebuild.
17601 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
17602 target hook, rather than inspecting the insn_data.
17603 * config/sparc/sparc.c (sparc_cstore_mode): New function.
17604 (TARGET_CSTORE_MODE): Redefine.
17605 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
17606 result patterns.
17607 * config/sparc/predicates.md (cstore_result_operand): New special
17608 predicate.
17609 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
17610 Use it for operand 0.
17611 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
17612 (*snesi_special): Likewise.
17613 (*snesi_zero): Likewise.
17614 (*seqsi_zero): Likewise.
17615 (*sltu_insn): Likewise.
17616 (*sgeu_insn): Likewise.
17617 (*seqdi_special): Make operand 0 and comparison operation be of
17618 DImode.
17619 (*snedi_special): Likewise.
17620 (*snedi_special_vis3): Likewise.
17621 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
17622 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
17623 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
17624 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
17625 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
17626 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
17627 (*sltu_extend_sp64): Likewise.
17628 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
17629 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
17630 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
17631 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
17632 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
17633
95ca411e
YZ
176342013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
17635
17636 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
17637 (aarch64_start_file): Use the new function.
17638
6782438d 176392013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 17640 Jason Merrill <jason@redhat.com>
6782438d
SKS
17641
17642 * common.opt: Add -gdwarf.
17643 * opts.c (common_handle_option): Handle it.
17644 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
17645
bb313b93
RB
176462013-04-10 Richard Biener <rguenther@suse.de>
17647
17648 * passes.c (execute_todo): Do not call ggc_collect conditional here.
17649 (execute_one_ipa_transform_pass): But unconditionally here.
17650 (execute_one_pass): And here.
17651 (init_optimization_passes): Remove reload pass.
17652 * tree-pass.h (TODO_ggc_collect): Remove.
17653 (pass_reload): Likewise.
17654 * ira.c (do_reload): Merge into ...
17655 (ira): ... this.
17656 (rest_of_handle_reload): Remove.
17657 (pass_reload): Likewise.
17658 * config/i386/i386.c (ix86_option_override): Refer to ira instead
17659 of reload for vzeroupper pass placement.
17660 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
17661 and todo_flags_finish of all passes.
17662
793d9a16
RB
176632013-04-10 Richard Biener <rguenther@suse.de>
17664
17665 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
17666 first_const_oprnd field, rename first_def_type to first_op_type.
17667 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
17668 (vect_get_and_check_slp_defs): Always use the type of the
17669 operand. Allow mixed vect_external_def, vect_constant_def types.
17670 (vect_get_constant_vectors): Handle mixed vect_external_def,
17671 vect_constant_def types.
17672
12211b99 176732013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
17674
17675 PR tree-optimization/55524
17676 * tree-ssa-math-opts.c
17677 (convert_mult_to_fma): Don't use an fms construct
17678 when we don't have an fms operation, but fnma, and it looks
17679 likely that we'll be able to use the latter.
17680
12211b99 176812013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
17682
17683 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
17684 function.
17685 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
17686 inline fail caused by overwritable functions.
17687
34ab4a5b
CJW
176882013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
17689
17690 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
17691 unnecessary bits in the constant power of two case.
17692
abf9bfbc
RB
176932013-04-10 Richard Biener <rguenther@suse.de>
17694
17695 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
17696 broken code swapping operands.
17697 (vect_build_slp_tree): Do not compute load permutations here.
17698 (vect_analyze_slp_instance): Compute load permutations here,
17699 after building the SLP tree.
17700
f408477e
CB
177012013-04-09 Christian Bruel <christian.bruel@st.com>
17702
17703 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
17704 of next/prev_real_insn.
17705
5ac42672
JH
177062013-04-09 Jan Hubicka <jh@suse.cz>
17707
abf9bfbc
RB
17708 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
17709 Drop aliased parameter.
5ac42672
JH
17710 (function_and_variable_visibility): Do not handle alias pairs.
17711 * cgraph.c (varpool_externally_visible_p): Update prototype.
17712 * varpool.c (varpool_add_new_variable): Update.
17713
5017f1d2
KT
177142013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17715
17716 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
17717
48eecbee
SB
177182013-04-09 Steven Bosscher <steven@gcc.gnu.org>
17719
a949cf1c
SB
17720 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
17721
48eecbee
SB
17722 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
17723
75ef8e3d
MP
177242013-04-09 Marek Polacek <polacek@redhat.com>
17725
17726 PR tree-optimization/48762
33159866 17727 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 17728
23847df4
RB
177292013-04-09 Richard Biener <rguenther@suse.de>
17730
17731 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
17732 dealing with cost.
17733 (vect_build_slp_tree): Likewise.
17734 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
17735 calculating the cost of a SLP instance.
17736 (vect_analyze_slp_instance): Use it from here, after building
17737 the SLP tree.
17738
ea3a0fde
JJ
177392013-04-09 Jakub Jelinek <jakub@redhat.com>
17740
17741 PR middle-end/56883
17742 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
17743 expand_omp_for_static_chunk): Use simple_p = true in
17744 force_gimple_operand_gsi calls when assigning to addressable decls.
17745
a32dfe9d
JL
177462013-04-09 Jeff Law <law@redhat.com>
17747
17748 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
17749 when the boolean was created by converting a wider object which
17750 had a boolean range.
17751
d755c7ef
RB
177522013-04-09 Richard Biener <rguenther@suse.de>
17753
17754 * tree-vectorizer.h (slp_void_p): Remove.
17755 (slp_tree): Typedef before _slp_tree declaration.
17756 (struct _slp_tree): Use a vector of slp_tree as children.
17757 (vect_get_place_in_interleaving_chain): Remove.
17758 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
17759 Move ...
17760 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
17761 and make static.
17762 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
17763 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
17764 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
17765 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
17766 Use slp_node instead of slp_void_p and adjust.
17767
3d741091
RB
177682013-04-09 Richard Biener <rguenther@suse.de>
17769
17770 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
17771 work that is not necessary.
17772
39307ba7
JJ
177732013-04-09 Jakub Jelinek <jakub@redhat.com>
17774
17775 PR tree-optimization/56854
17776 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
17777 forward into clobber stmts if it would change MEM_REF lhs into
17778 non-MEM_REF.
17779
343881fd
MK
177802013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
17781
17782 * tree.c (type_hash_lookup, type_hash_add): Make static.
17783 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
17784
3922658a
RB
177852013-04-09 Richard Biener <rguenther@suse.de>
17786
17787 * tree.h (unsave_expr_now): Remove.
17788 * tree-inline.c (mark_local_for_remap_r): Remove.
17789 (unsave_expr_1): Likewise.
17790 (unsave_r): Likewise.
17791 (unsave_expr_now): Likewise.
17792 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
17793 (propagate_tree_value): Likewise.
17794
9fb6b620
SB
177952013-04-08 Steven Bosscher <steven@gcc.gnu.org>
17796
17797 * doc/rtl.texi (sequence): Rewrite documentation to match the
17798 current use of SEQUENCE rtl objects.
17799 * rtl.def (SEQUENCE): Likewise.
17800
17801 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
17802 Update documentation.
17803 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
17804 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
17805
17806 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
17807
8ddb5a29
TJ
178082013-04-08 Teresa Johnson <tejohnson@google.com>
17809
17810 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
17811 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 17812 methods.
8ddb5a29
TJ
17813 (estimate_edge_size_and_time): Add comment to suggest using rounding
17814 methods.
17815 (estimate_node_size_and_time): Ditto.
17816 (remap_edge_change_prob): Use helper rounding divide methods.
17817 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
17818 (gimple_mod_pow2_value_transform): Ditto.
17819 (gimple_mod_subtract_transform): Ditto.
17820 (gimple_ic_transform): Ditto.
17821 (gimple_stringops_transform): Ditto.
17822 * stmt.c (conditional_probability): Ditto.
17823 (emit_case_dispatch_table): Ditto.
17824 * lto-cgraph.c (merge_profile_summaries): Ditto.
17825 * tree-optimize.c (execute_fixup_cfg): Ditto.
17826 * cfgcleanup.c (try_forward_edges): Ditto.
17827 * cfgloopmanip.c (scale_loop_profile): Ditto.
17828 (loopify): Ditto.
17829 (duplicate_loop_to_header_edge): Ditto.
17830 (lv_adjust_loop_entry_edge): Ditto.
17831 * tree-vect-loop.c (vect_transform_loop): Ditto.
17832 * profile.c (compute_branch_probabilities): Ditto.
17833 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
17834 * lto-streamer-in.c (input_cfg): Ditto.
17835 * gimple-streamer-in.c (input_bb): Ditto.
17836 * ipa-cp.c (update_profiling_info): Ditto.
17837 (update_specialized_profile): Ditto.
17838 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
17839 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 17840 rounding methods.
8ddb5a29
TJ
17841 * sched-rgn.c (compute_dom_prob_ps): Ditto.
17842 (compute_trg_info): Ditto.
17843 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
17844 (purge_dead_edges): Ditto.
17845 * loop-unswitch.c (unswitch_loop): Ditto.
17846 * cgraphclones.c (cgraph_clone_edge): Ditto.
17847 (cgraph_clone_node): Ditto.
17848 * tree-inline.c (copy_bb): Ditto.
17849 (copy_edges_for_bb): Ditto.
17850 (initialize_cfun): Ditto.
17851 (copy_cfg_body): Ditto.
17852 (expand_call_inline): Ditto.
17853
661e6bd7
KT
178542013-04-08 Kai Tietz <ktietz@redhat.com>
17855
17856 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
17857 TARGET_CYGWIN64 by TARGET_64BIT.
17858
105766f3
JR
178592013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
17860
17861 * config/epiphany/epiphany.md (GPR_1): New constant.
17862 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
17863 * config/epiphany/epiphany.c (gen_compare_reg):
17864 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
17865 is already in place.
17866 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
17867 Don't require being called during rtl expansion; If y operlaps r0,
17868 return 0.
17869 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
17870 (epiphany_expand_epilogue): Likewise.
17871
8afab237
JR
17872 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
17873 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 17874 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 17875
fa7707d6
JR
17876 * config/epiphany/constraints.md (CnL): New constraint.
17877 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
17878 * config/epiphany/predicates.md (add_operand): Allow 1024.
17879
5138e18d
JR
17880 * config/epiphany/epiphany.md (logical_op): New code iterator.
17881 (op_mnc): New code attribute.
17882 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
17883 (mov_f+1, mov_f+2): New peephole2 patterns.
17884
2ccc703d
JR
17885 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
17886 (cstoresi4): Also allow re-use of zero result when doing a NE
17887 comparison to a non-zero operand.
aefb0819 17888 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 17889
093ac0a5
JR
17890 * config/epiphany/epiphany.md (<insn_opname>v2si3):
17891 Use gen_addsi3_i / gen_subsi3_i.
17892
f223bb13
JJ
178932013-04-08 Jakub Jelinek <jakub@redhat.com>
17894
17895 PR c++/34949
17896 PR c++/50243
17897 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
17898 contain anything but clobbers, at most one __builtin_stack_restore,
17899 optionally debug stmts and final resx, and if it has at least one
17900 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
17901 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
17902 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
17903 which isn't defaut definition, remove them.
17904 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
17905 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
17906 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
17907 with MEM_REF LHS with SSA_NAME address.
17908
4481581f
JL
179092013-04-08 Jeff Law <law@redhat.com>
17910
17911 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 17912
451dabda
RB
179132013-04-08 Richard Biener <rguenther@suse.de>
17914
17915 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
17916 extra newline.
17917 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
17918 determined vector type.
17919 (vect_analyze_data_refs): Likewise.
17920 (vect_get_new_vect_var): Adjust.
17921 (vect_create_destination_var): Preserve SSA name versions.
17922 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
17923 not dump anything here.
17924
3b088b47
JR
179252013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
17926
17927 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
17928 Add member lr_slot_known.
17929 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
17930 if necessary.
17931 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
17932 Remove code that sets lr_slot_offset according to what a previous
17933 version of epiphany_emit_save_restore used to do.
17934 (epiphany_emit_save_restore): When doing an lr save or restore,
17935 set/verify lr_slot_known and lr_slot_offset.
17936
d8484d41
XQ
179372013-04-08 Xinyu Qi <xyqi@marvell.com>
17938
33159866
UB
17939 PR target/54338
17940 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
17941 in ALL_REGS.
17942
481be1c4
RB
179432013-04-08 Richard Biener <rguenther@suse.de>
17944
17945 * alias.c (find_base_term): Fix thinko in previous change.
17946
401f3a81
JJ
179472013-04-08 Jakub Jelinek <jakub@redhat.com>
17948
17949 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
17950 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
17951 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
17952 if possible to compute val.
17953 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
17954 For QImode integers don't require anything about precision. Use
17955 const_with_all_bytes_same to find out if the constant doesn't have
17956 repeated bytes in it.
17957
03ed99a8
AK
179582013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17959
17960 * config/s390/s390.c (s390_expand_insv): Only accept insertions
17961 within mode size.
17962
781b2e62
MP
179632013-04-08 Marek Polacek <polacek@redhat.com>
17964
17965 PR rtl-optimization/48182
17966 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
17967 value to 1.
17968
27e430a2
JDA
179692013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17970
17971 PR target/55487
17972 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
17973 nuses, make sure we have a label.
17974
4902aa64
BS
179752013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17976
17977 PR target/56843
17978 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
17979 (rs6000_emit_swdiv_low_precision): Remove.
17980 (rs6000_emit_swdiv): Rewrite to handle between one and four
17981 iterations of Newton-Raphson generally; modify required number of
17982 iterations for some cases.
17983 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
17984
7bca81dc
SB
179852013-04-05 Steven Bosscher <steven@gcc.gnu.org>
17986
17987 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
17988 set-but-unused variable.
17989
17990 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
17991 basic blocks of released function bodies garbage-collectable.
17992
17993 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
17994 (struct rtl_opt_pass): Add TODO_df_finish.
17995
17996 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
17997
4542a38a
GY
179982013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
17999
18000 * config/arm/constraints.md (q): New constraint.
18001 * config/arm/ldrdstrd.md: New file.
18002 * config/arm/arm.md (ldrdstrd.md) New include.
18003 (arm_movdi): Use "q" instead of "r" constraint
18004 for double-word memory access.
18005 (movdf_soft_insn): Likewise.
18006 * config/arm/vfp.md (movdi_vfp): Likewise.
18007 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 18008 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
18009 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
18010 (mem_ok_for_ldrd_strd): Likewise.
18011 (output_move_double): Update assertion.
18012
2385b218
GY
180132013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18014
18015 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
18016
75fe1cb5
GY
180172013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18018
18019 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
18020 define_insn_and_split.
18021 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
18022
dd660e8e
GY
180232013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18024
18025 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
18026 define_insn_and_split.
33159866 18027 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
18028 (shiftsi3_compare): New pattern.
18029 (rrx): New pattern.
18030 * config/arm/unspecs.md (UNSPEC_RRX): New.
18031
045e472c
GY
180322013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18033
18034 * config/arm/arm.md (negdi_extendsidi): New pattern.
18035 (negdi_zero_extendsidi): Likewise.
18036
3f3bf1a8
GY
180372013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18038
18039 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
18040 define_insn_and_split.
18041 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
18042 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
18043
b0b49556
GY
180442013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18045
18046 * config/arm/arm.md (arm_subdi3): Convert define_insn into
18047 define_insn_and_split.
18048 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
18049 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
18050
d633dd84
GY
180512013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18052
18053 * config/arm/arm.md (subsi3_carryin): New pattern.
18054 (subsi3_carryin_const): Likewise.
18055 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
18056 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
18057
f4499066
GY
180582013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18059
18060 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
18061
ceef6fd9
GY
180622013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
18063
18064 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 18065 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 18066
ddbdd8a7
KT
180672013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18068
18069 * config/arm/arm.c (arm_expand_builtin): Change fcode
18070 type to unsigned int.
18071
8456d78a
RR
180722013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18073
18074 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
18075
526c230f
ILT
180762013-04-04 Ian Lance Taylor <iant@google.com>
18077
33159866
UB
18078 * doc/standards.texi (Standards): The Go frontend supports the Go 1
18079 language standard.
526c230f 18080
3cfbe04d
SB
180812013-04-04 Steven Bosscher <steven@gcc.gnu.org>
18082
18083 PR middle-end/56729
18084 * df-scan.c (df_insn_delete): Disable failing assert.
18085
dfa3f8d0
KT
180862013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18087
18088 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
18089 New function prototype.
18090 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
18091 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
18092 (arm_builtin_vectorized_function): New function.
18093
f7837758
KT
180942013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18095
18096 * config/arm/arm_neon_builtins.def: New file.
18097 * config/arm/arm.c (neon_builtin_data): Move contents to
18098 arm_neon_builtins.def.
18099 (enum arm_builtins): Include neon builtin definitions.
18100 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 18101 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 18102
39c1b6db
MP
181032013-04-04 Marek Polacek <polacek@redhat.com>
18104
18105 PR tree-optimization/48186
18106 * predict.c (maybe_hot_frequency_p): Return false if
18107 HOT_BB_FREQUENCY_FRACTION is 0.
18108 (cgraph_maybe_hot_edge_p): Likewise.
18109
314f64eb
RB
181102013-04-04 Richard Biener <rguenther@suse.de>
18111
18112 PR tree-optimization/56826
18113 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
18114 more accurately.
18115
51a905b2
RB
181162013-04-04 Richard Biener <rguenther@suse.de>
18117
18118 PR tree-optimization/56213
18119 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 18120 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 18121
f1bf4f3a
RB
181222013-04-04 Richard Biener <rguenther@suse.de>
18123
18124 PR tree-optimization/56837
18125 * tree-loop-distribution.c (classify_partition): For non-zero
18126 values require that the value has the same precision as its
18127 mode to be useful as memset value.
18128
0bca7ded
NC
181292013-04-03 Nick Clifton <nickc@redhat.com>
18130
33159866 18131 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
18132 (fmssf4): Use fmsf.s on E3V5 architectures.
18133 (fnmasf4): Use fnmaf.s on E3V5 architectures.
18134 (fnmssf4): Use fnmsf.s on E3V5 architectures.
18135
b4019227
JL
181362013-04-03 Jeff Law <law@redhat.com>
18137
18138 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
18139 (lra-eliminations.o): Likewise.
18140
f57ddb5b
TJ
181412013-04-03 Teresa Johnson <tejohnson@google.com>
18142
18143 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 18144 compute_working_sets here from profile.c.
f57ddb5b 18145 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
18146 (gcov_working_set_t): Moved typedef here from basic-block.h
18147 (compute_working_set): Declare.
f57ddb5b
TJ
18148 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
18149 (get_working_sets): Renamed from compute_working_set,
33159866 18150 replace most of body with call to new compute_working_sets.
f57ddb5b 18151 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
18152 to get_working_sets.
18153 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 18154 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 18155 to get_working_sets.
f57ddb5b
TJ
18156 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
18157 * gcov-dump.c (dump_working_sets): New function.
18158
12211b99 181592013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
18160
18161 * hwint.c (sext_hwi, zext_hwi): New functions.
18162 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
18163 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
18164 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
18165 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
18166 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
18167 (sext_hwi, zext_hwi): New functions.
0bca7ded 18168
be672e08
JL
181692013-04-03 Jeff Law <law@redhat.com>
18170
18171 PR tree-optimization/56799
33159866
UB
18172 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
18173 back test for widening conversion erroneously dropped in prior change.
be672e08 18174
9d821fa5
KT
181752013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18176
18177 PR target/56809
18178 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
18179 instead of next_real_insn.
18180
71c581e7
MP
181812013-04-03 Marek Polacek <polacek@redhat.com>
18182
18183 PR sanitizer/55702
33159866 18184 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 18185
4a32ef80
KT
181862013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18187
18188 PR target/56809
18189 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
18190 next_real_insn.
18191 (thumb1_output_casesi): Likewise.
18192 (thumb2_output_casesi): Likewise.
18193
1b2253d4
RB
181942013-04-03 Richard Biener <rguenther@suse.de>
18195
18196 PR tree-optimization/56817
18197 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18198 Split out ...
18199 (tree_unroll_loops_completely_1): ... new function to manually
18200 walk the loop tree, properly defering outer loops of unrolled
18201 loops to later iterations.
18202
38000232
MG
182032013-04-03 Marc Glisse <marc.glisse@inria.fr>
18204
18205 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
18206 (vectorizable_load): Likewise.
18207 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
18208 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
18209
3fa35298
MG
182102013-04-03 Marc Glisse <marc.glisse@inria.fr>
18211
18212 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
18213 BIT_FIELD_REF.
18214
b3d45ff0
UW
182152013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18216
18217 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
18218
ec9202a8
BC
182192013-04-03 Bin Cheng <bin.cheng@arm.com>
18220
18221 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
18222
6805bd36
MG
182232013-04-03 Marc Glisse <marc.glisse@inria.fr>
18224
18225 PR tree-optimization/56790
33159866
UB
18226 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
18227 folding.
6805bd36 18228
da694a77
MG
182292013-04-03 Marc Glisse <marc.glisse@inria.fr>
18230
18231 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
18232 Handle VEC_MERGE.
18233 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
18234 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
18235 equal arguments.
18236
4e7d7b3d
JJ
182372013-04-03 Jakub Jelinek <jakub@redhat.com>
18238
18239 PR c/19449
18240 * tree.h (force_folding_builtin_constant_p): New decl.
18241 * builtins.c (force_folding_builtin_constant_p): New variable.
18242 (fold_builtin_constant_p): Fold immediately also if
18243 force_folding_builtin_constant_p.
18244
e6c9d234
RB
182452013-04-03 Richard Biener <rguenther@suse.de>
18246
18247 PR tree-optimization/56812
18248 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
18249 DRs of the same interleaving chain are independent.
18250
984d07dd
JM
182512013-04-02 Jason Merrill <jason@redhat.com>
18252
18253 * gdbinit.in (pbb): Use debug fn.
18254
622849c9
LC
182552013-04-02 Lawrence Crowl <crowl@google.com>
18256
18257 * sese.h (struct ivtype_map_elt_s): Remove unused.
18258 (extern debug_ivtype_map): Remove unused.
18259 (extern eq_ivtype_map_elts): Remove unused.
18260 * sese.c (debug_ivtype_map): Removed unused.
18261 (debug_ivtype_map_1): Removed unused.
18262 (debug_ivtype_elt): Remove unused.
18263 (eq_ivtype_map_elts): Remove unused.
18264
18265
82c0e1a0
KT
182662013-04-02 Kai Tietz <ktietz@redhat.com>
18267
18268 PR target/52790
18269 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
18270 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
18271 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
18272 function.
82c0e1a0
KT
18273 (legitimize_pe_coff_symbol): Likewise.
18274 (is_imported_p): New helper-function.
18275 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
18276 for Windows x64 targets.
18277 (ix86_expand_prologue): Optimize for pe-coff targets.
18278 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
18279 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
18280 medium/large code-model.
18281 (legitimize_pic_address): Likewise.
18282 (legitimize_tls_address): Likewise.
18283 (ix86_expand_call): Likewise.
18284 (x86_output_mi_thunk): Likewise.
18285 (get_dllimport_decl): Add new beimport argument.
18286 (construct_plt_address): Don't assert for x64 pe-coff targets.
18287 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
18288 targets.
18289 (SYMBOL_FLAG_STUBVAR): New macro.
18290 (SYMBOL_REF_STUBVAR_P): Likewise.
18291 * config/i386/winnt.c (stub_list): New structure.
18292 (stub_head): New local variable.
18293 (i386_pe_record_stub): New function.
18294 (i386_pe_file_end): Emit refptr-stubs.
18295
5d751b0c
JJ
182962013-04-02 Jakub Jelinek <jakub@redhat.com>
18297
09bb4c99
JJ
18298 PR rtl-optimization/56745
18299 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
18300 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
18301
a1d8947a
JJ
18302 PR c++/34949
18303 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
18304 and both of them are MEM_REFs, just compare first argument for
18305 equality and attempt to deal even with differing offsets.
18306
5d751b0c
JJ
18307 PR c++/34949
18308 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
18309 of gimple_clobber_p to be MEM_REF.
18310 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
18311 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
18312 after gimplification.
18313 * asan.c (get_mem_ref_of_assignment): Don't instrument
18314 gimple_clobber_p stmts.
18315 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
18316 gimple_clobber_p stmt if they have MEM_REF lhs and
18317 are dead because of another gimple_clobber_p stmt.
18318 * tree-ssa-live.c (clear_unused_block_pointer): Treat
18319 gimple_clobber_p stmts like debug stmts.
18320 (remove_unused_locals): Remove clobbers with MEM_REF lhs
18321 that refer to unused VAR_DECLs or uninitialized values.
18322 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
18323 gimple_clobber_p stmts if they refer to removed parameters.
18324 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
18325 formatting.
18326
e594716a
UB
183272013-04-02 Uros Bizjak <ubizjak@gmail.com>
18328
18329 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
18330 using SWI48 mode attribute.
18331
7a80735b
WM
183322013-04-02 Wei Mi <wmi@google.com>
18333
18334 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
18335 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
18336 *<rotate_insn><mode>3_mask in i386.md.
18337
f423a9e4
AI
183382013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
18339
18340 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
18341
90eb75f2
RB
183422013-04-02 Richard Biener <rguenther@suse.de>
18343
18344 PR tree-optimization/56778
18345 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18346 Runtime alias tests are not supported for gather loads.
18347 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
18348 stmts referenced from SSA operands before updating SSA form.
18349
d8c69a92
IC
183502013-04-02 Ian Caulfield <ian.caulfield@arm.com>
18351 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18352
18353 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
18354 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
18355 * config/arm/cortex-a53.md: New file.
18356 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
18357 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
18358 * config/arm/arm.c (arm_issue_rate): Likewise.
18359 * config/arm/arm-tune.md: Regenerate
18360 * config/arm/arm-tables.opt: Regenerate.
18361 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 18362
239eb04c
ZC
183632013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
18364
18365 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
18366 non-static link.
18367
c902d3c8
SN
183682013-04-02 Sofiane Naci <sofiane.naci@arm.com>
18369
d8c69a92
IC
18370 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
18371 scalar load/store operations using B/H registers.
c902d3c8
SN
18372 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
18373
051d0e2f
SN
183742013-04-02 Sofiane Naci <sofiane.naci@arm.com>
18375
18376 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
18377 scalar move.
18378 * config/aarch64/aarch64.c
18379 (aarch64_simd_scalar_immediate_valid_for_move): New.
18380 * config/aarch64/aarch64-protos.h
18381 (aarch64_simd_scalar_immediate_valid_for_move): New.
18382 * config/aarch64/constraints.md (Dh, Dq): New.
18383 * config/aarch64/iterators.md (hq): New.
18384
0ee1e3d9
EB
183852013-04-02 Eric Botcazou <ebotcazou@adacore.com>
18386
18387 * reorg.c (get_branch_condition): Deal with conditional returns.
18388 (fill_simple_delay_slots): Remove dead code dealing with jumps.
18389
136fb3f7
WM
183902013-04-01 Wei Mi <wmi@google.com>
18391
18392 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
18393 Truncate operand 2 using %b asm operand modifier.
18394 (*<shift_insn><mode>3_mask): Ditto.
18395 (*<rotate_insn><mode>3_mask): Ditto.
18396
6388c738
SB
183972013-04-01 Steven Bosscher <steven@gcc.gnu.org>
18398
18399 PR middle-end/56798
18400 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
18401
f7a4d826
KK
184022013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
18403
18404 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
18405 of next_real_insn.
18406 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
18407
4b943a49
LC
184082013-03-30 Lawrence Crowl <crowl@google.com>
18409
18410 * dse.c (clear_alias_sets): Remove never set.
18411 (disqualified_clear_alias_sets): Remove never set.
18412 (clear_alias_mode_pool): Remove never set.
18413 (dse_step0): Remove condition that is never true.
18414 (canon_address): Remove condition that is never true.
18415 (dse_step7): Remove condition that is never true.
18416 (rest_of_handle_dse): Remove condition that is never true.
18417 (rest_of_handle_dse::did_global): Remove never read from above.
18418 (dse_step2_spill): Remove never called from above.
18419 (dse_step5_spill): Remove never called from above.
18420
39718607
SB
184212013-03-30 Steven Bosscher <steven@gcc.gnu.org>
18422
da5c6bde
SB
18423 * doc/md.texi (Standard Names) <casesi>: Update documentation for
18424 JUMP_TABLE_DATA changes.
18425 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
18426 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
18427 (Insns) <jump_table_data>: New entry.
18428 * doc/tm.texi: Regenerate.
18429
39718607
SB
18430 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
18431
18432 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
18433 for table jump at the end of a basic block using tablejump_p.
18434 * targhooks.c (default_invalid_within_doloop): Likewise.
18435 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
18436 target hook implementation that is identical to the default hook.
18437 (rs6000_invalid_within_doloop): Remove.
18438
18439 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
18440 unused variable from tablejump_p call.
18441
18442 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
18443 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
18444 (INSN_DELETED_P): Likewise.
18445 (emit_jump_table_data): New prototype.
18446 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
18447 after 4th as unused.
18448 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
18449 * sched-vis.c (print_insn): Likewise.
18450 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
18451 insn for compatibility with back ends that use next_active_insn to
18452 identify jump table data.
18453 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
18454 (remove_insn): Likewise.
18455 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
18456 to be emitted.
18457 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
18458 (emit_jump_table_data): New function.
18459
18460 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
18461 basic block, a JUMP_TABLE_DATA never is.
18462 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
18463 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
18464 off from code handling real insns.
18465 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
18466 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
18467 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
18468 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
18469 is not a NONDEBUG_INSN_P.
18470 * ira-costs.c (scan_one_insn): Likewise.
18471 * jump.c (mark_all_labels): Likewise.
18472 (mark_jump_label_1): Likewise.
18473 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
18474 * lra.c (get_insn_freq): Expect all insns reaching here to be in
18475 a basic block.
18476 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
18477 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
18478 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
18479 JUMP_TABLE_DATA_P insns.
18480 (calculate_elim_costs_all_insns): Likewise.
18481 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
18482 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
18483 (delete_output_reload): Code style fixups.
18484 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
18485 insn flags on this non-insn.
18486 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
18487 as scheduling barriers, for pre-change compatibility.
18488 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
18489 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
18490
18491 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
18492 redundant JUMP_TABLE_DATA_P test.
18493 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
18494 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
18495 (frv_for_each_packet): Likewise.
18496 * config/i386/i386.c (min_insn_size): Likewise.
18497 (ix86_avoid_jump_mispredicts): Likewise.
18498 * config/m32r/m32r.c (m32r_is_insn): Likewise.
18499 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
18500 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
18501 (mips16_insn_length): Robustify.
18502 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
18503 (mips16_split_long_branches): Likewise.
18504 * config/pa/pa.c (pa_combine_instructions): Likewise.
18505 * config/rs6000/rs6000.c (get_next_active_insn): Treat
18506 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
18507 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
18508 as contributing to pool range lengths.
18509 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
18510 Remove redundant JUMP_TABLE_DATA_P test.
18511 (sh_loop_align): Likewise.
18512 (split_branches): Likewise.
18513 (sh_insn_length_adjustment): Likewise.
18514 * config/spu/spu.c (get_branch_target): Likewise.
18515
0208f7da
JH
185162013-03-29 Jan Hubicka <jh@suse.cz>
18517
18518 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
18519 gcov streaming; stream hot bb threshold to ltrans.
18520 * predict.c (get_hot_bb_threshold): Break out from ....
18521 (maybe_hot_count_p): ... here.
18522 (set_hot_bb_threshold): New function.
18523 * lto-section-in.c (lto_section_name): Add profile.
18524 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
18525 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
18526 and data-streamer.h
18527 (histogram_entry): New structure.
18528 (histogram, histogram_pool): New global vars.
18529 (histogram_hash): New structure.
18530 (histogram_hash::hash): New method.
18531 (histogram_hash::equal): Likewise.
18532 (account_time_size): New function.
18533 (cmp_counts): New function.
18534 (dump_histogram): New function.
18535 (ipa_profile_generate_summary): New function.
18536 (ipa_profile_write_summary): New function.
18537 (ipa_profile_read_summary): New function.
18538 (ipa_profile): Decide on threshold.
e594716a
UB
18539 (pass_ipa_profile): Add ipa_profile_write_summary and
18540 ipa_profile_read_summary.
0208f7da
JH
18541 * Makefile.in (ipa.o): Update dependencies.
18542 * lto-streamer.h (LTO_section_ipa_profile): New section.
18543
5a6ccc94
GDR
185442013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
18545
18546 * tree.h (VAR_P): New.
18547
39385fa6
PC
185482013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
18549
18550 PR lto/56777
18551 * doc/invoke.texi ([-fwhole-program]): Fix typo.
18552
34f0d87a
SB
185532013-03-29 Steven Bosscher <steven@gcc.gnu.org>
18554
18555 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
18556 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
18557 (control_flow_insn_p): Likewise.
18558 * cfgrtl.c (duplicate_insn_chain): Likewise.
18559 * final.c (get_attr_length_1): Likewise.
18560 (shorten_branches): Likewise.
18561 (final_scan_insn): Likewise.
18562 * function.c (instantiate_virtual_regs): Likewise.
18563 * gcse.c (insert_insn_end_basic_block): Likewise.
18564 * ira-costs.c (scan_one_insn): Likewise.
18565 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
18566 * lra.c (check_rtl): Likewise.
18567 * reload1.c (elimination_costs_in_insn): Likewise.
18568 * reorg.c (follow_jumps): Likewise.
18569
18570 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
18571 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
18572 (thumb_far_jump_used_p): Likewise.
18573 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
18574 (workaround_speculation): Likewise.
18575 (add_sched_insns_for_speculation): Likewise.
18576 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
18577 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
18578 (frv_for_each_packet): Likewise.
18579 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
18580 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
18581 (final_emit_insn_group_barriers): Likewise.
18582 * config/m32r/m32r.c (m32r_is_insn): Likewise.
18583 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
18584 (mips16_insn_length): Likewise.
18585 * config/pa/pa.c (pa_reorg): Likewise.
18586 (pa_combine_instructions): Likewise.
18587 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
18588 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
18589 (sh_reorg): Likewise.
18590 (split_branches): Likewise.
18591 * config/spu/spu.c (get_branch_target): Likewise.
18592
18593 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
18594 JUMP_TABLE_DATA_P.
18595
4ac761b0
KY
185962013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
18597
39385fa6 18598 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
18599 Fix declaration name.
18600
58a49189
LC
186012013-03-28 Lawrence Crowl <crowl@google.com>
18602
18603 * graphds.h (struct graph.indicies): Remove unused.
18604 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
18605 (SCOP_ORIGINAL_PDDRS): Remove unused.
18606 * sese.h (extern insert_loop_close_phis): Removed unused.
18607 (extern insert_guard_phis): Removed unused.
18608 (extern ivtype_map_elt_info): Removed unused.
18609 (new_ivtype_map_elt): Removed unused.
18610 * sese.c (ivtype_map_elt_info): Removed unused.
18611
7b3b6ae4
LC
186122013-03-28 Lawrence Crowl <crowl@google.com>
18613
18614 * Makefile.in: Add several missing include dependences.
18615 (DUMPFILE_H): New.
18616 (test-dump.o): New. This object is not added to any executable,
18617 but is present for ad-hoc testing.
18618 * bitmap.c
18619 (debug (const bitmap_head_def &)): New.
18620 (debug (const bitmap_head_def *)): New.
18621 * bitmap.h
18622 (extern debug (const bitmap_head_def &)): New.
18623 (extern debug (const bitmap_head_def *)): New.
18624 * cfg.c
18625 (debug (edge_def &)): New.
18626 (debug (edge_def *)): New.
18627 * cfghooks.c
18628 (debug (basic_block_def &)): New.
18629 (debug (basic_block_def *)): New.
18630 * dumpfile.h
18631 (dump_node (const_tree, int, FILE *)): Correct source file.
18632 * dwarf2out.c
18633 (debug (die_struct &)): New.
18634 (debug (die_struct *)): New.
18635 * dwarf2out.h
18636 (extern debug (die_struct &)): New.
18637 (extern debug (die_struct *)): New.
18638 * gimple-pretty-print.c
18639 (debug (gimple_statement_d &)): New.
18640 (debug (gimple_statement_d *)): New.
18641 * gimple-pretty-print.h
18642 (extern debug (gimple_statement_d &)): New.
18643 (extern debug (gimple_statement_d *)): New.
18644 * ira-build.c
18645 (debug (ira_allocno_copy &)): New.
18646 (debug (ira_allocno_copy *)): New.
18647 (debug (ira_allocno &)): New.
18648 (debug (ira_allocno *)): New.
18649 * ira-int.h
18650 (extern debug (ira_allocno_copy &)): New.
18651 (extern debug (ira_allocno_copy *)): New.
18652 (extern debug (ira_allocno &)): New.
18653 (extern debug (ira_allocno *)): New.
18654 * ira-lives.c
18655 (debug (live_range &)): New.
18656 (debug (live_range *)): New.
18657 * lra-int.h
18658 (debug (lra_live_range &)): New.
18659 (debug (lra_live_range *)): New.
18660 * lra-lives.c
18661 (debug (lra_live_range &)): New.
18662 (debug (lra_live_range *)): New.
18663 * omega.c
18664 (debug (omega_pb_d &)): New.
18665 (debug (omega_pb_d *)): New.
18666 * omega.h
18667 (extern debug (omega_pb_d &)): New.
18668 (extern debug (omega_pb_d *)): New.
18669 * print-rtl.c
18670 (debug (const rtx_def &)): New.
18671 (debug (const rtx_def *)): New.
18672 * print-tree.c
18673 (debug_tree (tree): Move within file.
18674 (debug_raw (const tree_node &)): New.
18675 (debug_raw (const tree_node *)): New.
18676 (dump_tree_via_hooks (const tree_node *, int)): New.
18677 (debug (const tree_node &)): New.
18678 (debug (const tree_node *)): New.
18679 (debug_verbose (const tree_node &)): New.
18680 (debug_verbose (const tree_node *)): New.
18681 (debug_head (const tree_node &)): New.
18682 (debug_head (const tree_node *)): New.
18683 (debug_body (const tree_node &)): New.
18684 (debug_body (const tree_node *)): New.
18685 (debug_vec_tree (tree): Move and reimplement in terms of dump.
18686 (debug (vec<tree, va_gc> &)): New.
18687 (debug (vec<tree, va_gc> *)): New.
18688 * rtl.h
18689 (extern debug (const rtx_def &)): New.
18690 (extern debug (const rtx_def *)): New.
18691 * sbitmap.c
18692 (debug_raw (simple_bitmap_def &)): New.
18693 (debug_raw (simple_bitmap_def *)): New.
18694 (debug (simple_bitmap_def &)): New.
18695 (debug (simple_bitmap_def *)): New.
18696 * sbitmap.h
18697 (extern debug (simple_bitmap_def &)): New.
18698 (extern debug (simple_bitmap_def *)): New.
18699 (extern debug_raw (simple_bitmap_def &)): New.
18700 (extern debug_raw (simple_bitmap_def *)): New.
18701 * sel-sched-dump.c
18702 (debug (vinsn_def &)): New.
18703 (debug (vinsn_def *)): New.
18704 (debug_verbose (vinsn_def &)): New.
18705 (debug_verbose (vinsn_def *)): New.
18706 (debug (expr_def &)): New.
18707 (debug (expr_def *)): New.
18708 (debug_verbose (expr_def &)): New.
18709 (debug_verbose (expr_def *)): New.
18710 (debug (vec<rtx> &)): New.
18711 (debug (vec<rtx> *)): New.
18712 * sel-sched-dump.h
18713 (extern debug (vinsn_def &)): New.
18714 (extern debug (vinsn_def *)): New.
18715 (extern debug_verbose (vinsn_def &)): New.
18716 (extern debug_verbose (vinsn_def *)): New.
18717 (extern debug (expr_def &)): New.
18718 (extern debug (expr_def *)): New.
18719 (extern debug_verbose (expr_def &)): New.
18720 (extern debug_verbose (expr_def *)): New.
18721 (extern debug (vec<rtx> &)): New.
18722 (extern debug (vec<rtx> *)): New.
18723 * sel-sched-ir.h
18724 (_list_iter_cond_expr): Make inline instead of static.
18725 * sreal.c
18726 (debug (sreal &)): New.
18727 (debug (sreal *)): New.
18728 * sreal.h
18729 (extern debug (sreal &)): New.
18730 (extern debug (sreal *)): New.
18731 * tree.h
18732 (extern debug_raw (const tree_node &)): New.
18733 (extern debug_raw (const tree_node *)): New.
18734 (extern debug (const tree_node &)): New.
18735 (extern debug (const tree_node *)): New.
18736 (extern debug_verbose (const tree_node &)): New.
18737 (extern debug_verbose (const tree_node *)): New.
18738 (extern debug_head (const tree_node &)): New.
18739 (extern debug_head (const tree_node *)): New.
18740 (extern debug_body (const tree_node &)): New.
18741 (extern debug_body (const tree_node *)): New.
18742 (extern debug (vec<tree, va_gc> &)): New.
18743 (extern debug (vec<tree, va_gc> *)): New.
18744 * tree-cfg.c
18745 (debug (struct loop &)): New.
18746 (debug (struct loop *)): New.
18747 (debug_verbose (struct loop &)): New.
18748 (debug_verbose (struct loop *)): New.
18749 * tree-dump.c: Add header dependence.
18750 * tree-flow.h
18751 (extern debug (struct loop &)): New.
18752 (extern debug (struct loop *)): New.
18753 (extern debug_verbose (struct loop &)): New.
18754 (extern debug_verbose (struct loop *)): New.
18755 * tree-data-ref.c
18756 (debug (data_reference &)): New.
18757 (debug (data_reference *)): New.
18758 (debug (vec<data_reference_p> &)): New.
18759 (debug (vec<data_reference_p> *)): New.
18760 (debug (vec<ddr_p> &)): New.
18761 (debug (vec<ddr_p> *)): New.
18762 * tree-data-ref.h
18763 (extern debug (data_reference &)): New.
18764 (extern debug (data_reference *)): New.
18765 (extern debug (vec<data_reference_p> &)): New.
18766 (extern debug (vec<data_reference_p> *)): New.
18767 (extern debug (vec<ddr_p> &)): New.
18768 (extern debug (vec<ddr_p> *)): New.
18769 * tree-ssa-alias.c
18770 (debug (pt_solution &)): New.
18771 (debug (pt_solution *)): New.
18772 * tree-ssa-alias.h
18773 (extern debug (pt_solution &)): New.
18774 (extern debug (pt_solution *)): New.
18775 * tree-ssa-alias.c
18776 (debug (_var_map &)): New.
18777 (debug (_var_map *)): New.
18778 (debug (tree_live_info_d &)): New.
18779 (debug (tree_live_info_d *)): New.
18780 * tree-ssa-alias.h
18781 (extern debug (_var_map &)): New.
18782 (extern debug (_var_map *)): New.
18783 (extern debug (tree_live_info_d &)): New.
18784 (extern debug (tree_live_info_d *)): New.
18785
be77e1e5
JH
187862013-03-28 Jan Hubicka <jh@suse.cz>
18787
18788 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
18789
777e6976
IB
187902013-03-28 Ian Bolton <ian.bolton@arm.com>
18791
18792 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
18793 record only when desired or required.
18794
9cd347ae
UB
187952013-03-28 Uros Bizjak <ubizjak@gmail.com>
18796
18797 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
18798 *vec_extractv2di_1_rex64. Use x64 isa attribute.
18799
33159866 188002013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
18801
18802 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
18803 (*andsi3_compare0_uxtw): New pattern.
18804 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
18805 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
18806
89ab31c1
JH
188072013-03-28 Jan Hubicka <jh@suse.cz>
18808
18809 * data-streamer-in.c (streamer_read_gcov_count): New function.
18810 * gimple-streamer-out.c: Include value-prof.h.
18811 (output_gimple_stmt): Output histogram.
18812 (output_bb): Use streamer_write_gcov_count.
18813 * value-prof.c: Include data-streamer.h
18814 (dump_histogram_value): Add HIST_TYPE_MAX.
18815 (stream_out_histogram_value): New function.
18816 (stream_in_histogram_value): New function.
18817 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
18818 (stream_out_histogram_value, stream_in_histogram_value): Declare.
18819 * data-streamer-out.c (streamer_write_gcov_count): New function.
18820 (streamer_write_gcov_count_stream): New function.
18821 * lto-cgraph.c (lto_output_edge): Update counter streaming.
18822 (lto_output_node): Likewise.
18823 (input_node, input_edge): Likewise.
18824 * lto-streamer-out.c (output_cfg): Update streaming.
18825 * lto-streamer-in.c (input_cfg): Likewise.
18826 * data-streamer.h (streamer_write_gcov_count,
18827 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
18828 * gimple-streamer-in.c: Include value-prof.h
18829 (input_gimple_stmt): Input histograms.
18830 (input_bb): Update profile streaming.
18831
e594716a 188322013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 18833
33159866 18834 * genmodes.c (emit_max_int): New function.
8697be17 18835 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
18836 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
18837 Added doc.
8697be17 18838 * machmode.def: Fixed comment.
89ab31c1 18839
e594716a 188402013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
18841
18842 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
18843 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
18844
74946978
MP
188452013-03-28 Marek Polacek <polacek@redhat.com>
18846 Richard Biener <rguenther@suse.de>
18847
18848 PR tree-optimization/56695
18849 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
18850 build signed result of a vector comparison.
18851 * tree-cfg.c (verify_gimple_comparison): Check that a result
18852 of a vector comparison has signed type.
18853
a64b9c26
RB
188542013-03-28 Richard Biener <rguenther@suse.de>
18855
18856 PR tree-optimization/37021
18857 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
18858 do not restrict gaps between groups.
18859 * tree-vect-stmts.c (vectorizable_load): Properly account for
18860 a gap between groups.
18861
a9dc2a2f
EB
188622013-03-28 Eric Botcazou <ebotcazou@adacore.com>
18863
18864 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
18865 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
18866 is not enabled.
18867
53cb97f9
GP
188682013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
18869
18870 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
18871 * doc/extend.texi (Named Address Spaces): Ditto.
18872 (Variable Attributes): Ditto.
18873
b802ae5c
KT
188742013-03-27 Kai Tietz <ktietz@redhat.com>
18875
eddae10a
KT
18876 * config.build: Add support for cygwin x64 target.
18877 * config.gcc: Likewise.
18878 * config.host: Likewise.
18879 * configure.ac: Likewise
18880 * configure: Regenerated.
b802ae5c 18881
371e77e3 188822013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
18883
18884 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
18885 * config/i386/t-cygwin-w64: New file.
18886 * config/i386/cygwin-w64.h: New file.
18887 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
18888 and add support for x64-cygwin target.
18889 (CPP_SPEC): Likewise.
18890 (CXX_WRAP_SPEC_LIST): Undefine before define.
18891 (LIBGCJ_SONAME): Use 15 as version.
18892
f49b33cb
RB
188932013-03-27 Richard Biener <rguenther@suse.de>
18894
18895 PR tree-optimization/56716
18896 * tree-ssa-structalias.c (perform_var_substitution): Adjust
18897 dumping for ref nodes.
18898
b37a6ce5
MJ
188992013-03-27 Martin Jambor <mjambor@suse.cz>
18900
18901 PR tree-optimization/55334
18902 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
18903 restricted pointers to arrays.
18904
9469b9b2
GDR
189052013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
18906
18907 * Makefile.in (.SUFFIXES): Add .cc.
18908 (.c.o): Apply same recipe for implicit rule .cc.o.
18909
7d24f650
RB
189102013-03-27 Richard Biener <rguenther@suse.de>
18911
18912 PR tree-optimization/37021
18913 * tree-vect-data-refs.c (vect_check_strided_load): Allow
18914 REALPART/IMAGPART_EXPRs around the supported refs.
18915 * tree-ssa-structalias.c (find_func_aliases): Assume that
18916 floating-point values are not used to transfer pointers.
18917
2f251a05
AI
189182013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
18919
f43245d1
UB
18920 * target.def (TARGET_HAS_IFUNC_P): New target hook.
18921 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
18922 * doc/tm.texi: Regenerate.
18923 * targhooks.h (default_has_ifunc_p): New.
18924 * targhooks.c (default_has_ifunc_p): Ditto.
18925 * config/linux-protos.h: New file.
18926 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
18927 hook for linux which disables support of indirect functions in android.
18928 * config/linux-android.c: New file.
18929 * config/t-linux-android.c: Ditto.
18930 * config.gcc: Added new object file linux-android.o.
18931 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 18932 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 18933 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
18934 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
18935 doesn't support indirect functions.
18936 * configure: Regenerate.
18937
78b4e425
BC
189382013-03-27 Bin Cheng <bin.cheng@arm.com>
18939
18940 PR target/56102
18941 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
18942 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
18943 mult-word mode.
18944
a5ba7b92
AK
189452013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18946
18947 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
18948
be624986
TG
189492013-03-27 Terry Guo <terry.guo@arm.com>
18950
18951 * config/arm/arm-cores.def: Added core cortex-r7.
18952 * config/arm/arm-tune.md: Regenerated.
18953 * config/arm/arm-tables.opt: Regenerated.
18954 * doc/invoke.texi: Added entry for core cortex-r7.
18955
0a514f47
WL
189562013-03-27 Walter Lee <walt@tilera.com>
18957
18958 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
18959 double-decrement of next_scratch_regno.
18960
9332b0d2
WL
189612013-03-27 Walter Lee <walt@tilera.com>
18962
801d9b2a 18963 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
18964 input operands.
18965 (insn_v1mulus): Ditto.
18966 (insn_v2muls): Ditto.
18967
f54ea5dd
WL
189682013-03-27 Walter Lee <walt@tilera.com>
18969
e594716a 18970 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
18971 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
18972
bf60f4ca
WL
189732013-03-27 Walter Lee <walt@tilera.com>
18974
e594716a 18975 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
18976 (*sibcall_value): Ditto.
18977
e3b51eeb
WL
189782013-03-27 Walter Lee <walt@tilera.com>
18979
18980 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
18981 (insn_mnz_v8qi): ... this ...
18982 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
18983 vector equivalent.
18984 (insn_v<n>mnz): Replaced by ...
18985 (insn_v1mnz): ... this ...
18986 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
18987 equivalent.
18988 (insn_mz_<mode>): Replaced by ...
18989 (insn_mz_v8qi): ... this ...
18990 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
18991 vector equivalent.
18992 (insn_v<n>mz): Replaced by ...
18993 (insn_v1mz): ... this ...
18994 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
18995 equivalent.
18996
4fc7b145
EB
189972013-03-26 Eric Botcazou <ebotcazou@adacore.com>
18998
18999 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
19000
6f33817e
RM
190012013-03-26 Roland McGrath <mcgrathr@google.com>
19002
19003 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
19004 than fprintf with a non-constant, non-format string.
19005
93a4145b
UB
190062013-03-26 Uros Bizjak <ubizjak@gmail.com>
19007
19008 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
19009 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
19010 operand 0 predicate.
19011 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
19012 attribute. Use general_x64nomem_operand as operand 1 predicate.
19013 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
19014 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
19015 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
19016 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
19017 (mov<mode>_insv_1): Remove expander. Merge insn with
19018 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
19019 Use general_x64nomem_operand as operand 1 predicate.
19020 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
19021 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
19022 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
19023 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
19024 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
19025 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
19026 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
19027 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
19028 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
19029 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
19030 (general_x64nomem_operand): Ditto.
19031
c6a9ed5a 190322013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
19033
19034 * config/rtems.opt: Add -pthread option.
19035
31b0a960
RB
190362013-03-26 Richard Biener <rguenther@suse.de>
19037
93a4145b
UB
19038 * alias.c (find_base_term): Avoid redundant and not used recursion.
19039 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
19040 (true_dependence_1): Compute and pass base terms to base_alias_check.
19041 (write_dependence_p): Likewise.
19042 (may_alias_p): Likewise.
19043
79517551
SN
190442013-03-26 Sofiane Naci <sofiane.naci@arm.com>
19045
19046 * config/aarch64/aarch64.c (aarch64_classify_address): Support
19047 PC-relative load in SI modes and above only.
19048
a76213b9
XQ
190492013-03-26 Xinyu Qi <xyqi@marvell.com>
19050
19051 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
19052 * config/arm/iwmmxt.md (WCGR0): Update.
19053 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 19054
37ff9355
UB
190552013-03-26 Uros Bizjak <ubizjak@gmail.com>
19056
19057 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
19058 Use x64 and nox64 isa attributes.
19059
30b0317c
RB
190602013-03-26 Richard Biener <rguenther@suse.de>
19061
19062 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
19063 alignment computations and rely on get_object_alignment_1
19064 for the !TYPE_P case.
19065 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
19066
cbcdb140
WL
190672013-03-26 Walter Lee <walt@tilera.com>
19068
19069 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
19070 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
19071
dd884525 190722013-03-25 Jeff Law <law@redhat.com>
be672e08 19073
33159866
UB
19074 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
19075 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
19076 wrong version of prior patch.
19077
0051d3ec
WL
190782013-03-25 Walter Lee <walt@tilera.com>
19079
19080 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
19081 TILEGX_INSN_SHUFFLEBYTES1.
19082 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
19083 shufflebytes1.
19084 (tilegx_builtins): Ditto.
19085 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
19086
065a3605
WL
190872013-03-25 Walter Lee <walt@tilera.com>
19088
19089 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
19090 (floatunssisf2): New pattern.
19091 (floatsidf2): New pattern.
19092 (floatunssidf2): New pattern.
065a3605 19093
5b2a3c82
WL
190942013-03-25 Walter Lee <walt@tilera.com>
19095
19096 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
19097 tests for constraint J, K, N, P.
19098
192ea533
WL
190992013-03-25 Walter Lee <walt@tilera.com>
19100
19101 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
19102 Use indirect/pcrel encoding.
19103 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
19104 Ditto.
19105
855e0d0b
SE
191062013-03-25 Steve Ellcey <sellcey@mips.com>
19107
19108 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
19109 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
19110 * config/mips/mips.c (mips_option_override): Set IMADD default.
19111 * config/mips/mips.h (PTF_AVOID_IMADD): New.
19112 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
19113 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
19114 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
19115 * doc/invoke.texi (-mimadd/-mno-imadd): New.
19116
39e45653
JL
191172013-03-25 Jeff Law <law@redhat.com>
19118
19119 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
19120 slightly to avoid creating and folding useless trees. Simplify
19121 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
19122
7482c470
UB
191232013-03-25 Uros Bizjak <ubizjak@gmail.com>
19124
19125 * config/i386/i386.md (*zero_extendsidi2): Merge with
19126 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
19127 * config/i386/predicates.md (x86_64_zext_operand): Rename from
19128 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
19129 targets. Clarify comment.
19130
4a53743e
MJ
191312013-03-25 Martin Jambor <mjambor@suse.cz>
19132
19133 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
19134 pass-through jump functions differently.
19135 (ipa_read_jump_function): Likewise. Also use setter functions to set
19136 up jump functions.
19137
162712de
MJ
191382013-03-25 Martin Jambor <mjambor@suse.cz>
19139
19140 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
19141 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
19142 process it.
19143 (ipa_get_indirect_edge_target): New function.
19144 (devirtualization_time_bonus): New parameter known_aggs, pass it to
19145 ipa_get_indirect_edge_target. Update all callers.
19146 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
19147 ipa_get_indirect_edge_target_1 instead of calling
19148 ipa_get_indirect_edge_target.
19149 (create_specialized_node): Pass aggvlas to
19150 ipcp_discover_new_direct_edges.
19151
a5a4c20a
KT
191522013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19153
19154 * config/arm/arm.md (f_sels, f_seld): New types.
19155 (*cmov<mode>): New pattern.
19156 * config/arm/predicates.md (arm_vsel_comparison_operator): New
19157 predicate.
19158
f992b9fc
KT
191592013-03-25 Kai Tietz <ktietz@redhat.com>
19160
19161 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
19162 POSIX-printf for mingw-hosted builds.
19163
c16fd676
RB
191642013-03-25 Richard Biener <rguenther@suse.de>
19165
19166 PR middle-end/56694
19167 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
19168 must-not-throw stmt location.
19169
5ad29f12
KT
191702013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19171
19172 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
19173 Emit load-acquire versions when acq is true.
19174 (arm_emit_store_exclusive): Add rel parameter.
19175 Emit store-release versions when rel is true.
19176 (arm_split_compare_and_swap): Use acquire-release instructions
19177 instead.
19178 of barriers when appropriate.
19179 (arm_split_atomic_op): Likewise.
19180 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
19181 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
19182 (VUNSPEC_SLX): Likewise.
19183 (VUNSPEC_LDA): Likewise.
19184 (VUNSPEC_STL): Likewise.
19185 * config/arm/sync.md (atomic_load<mode>): New pattern.
19186 (atomic_store<mode>): Likewise.
19187 (arm_load_acquire_exclusive<mode>): Likewise.
19188 (arm_load_acquire_exclusivesi): Likewise.
19189 (arm_load_acquire_exclusivedi): Likewise.
19190 (arm_store_release_exclusive<mode>): Likewise.
19191
03a7dddb
CM
191922013-03-25 Catherine Moore <clm@codesourcery.com>
19193
19194 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
19195 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
19196 * config/mip/predicates.md (lwsp_swsp_operand,
19197 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
19198 sb16_operand, db4_operand, db7_operand, ib3_operand,
19199 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
19200 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
19201 andi16_operand): New predicates.
19202 * config/mips/mips.md (compression): New attribute.
19203 (enabled): New attribute.
19204 (length): Consider compression in computing length.
19205 (shift_compression): New code attribute.
19206 (*add<mode>3): New operands. Record compression.
19207 (sub<mode>3): Likewise.
19208 (one_cmpl<mode>2): Likewise.
19209 (*and<mode>3): Likewise.
19210 (*ior<mode>3): Likewise.
19211 (unnamed pattern for xor): Likewise.
19212 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
19213 (*<optab><mode>3): Likewise.
19214 (*mov<mode>_internal: Likewise.
19215 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
19216 (mips_unsigned_immediate_p): New.
19217 (umips_lwsp_swsp_address_p): New.
19218 (m16_based_address_p): New.
19219 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
19220 (mips_unsigned_immediate_p): New prototype.
19221 (lwsp_swsp_address_p): New prototype.
19222 (m16_based_address_p): New prototype.
19223 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
19224 (mips_signed_immediate_p): New function.
19225 (m16_based_address_p): New function.
19226 (lwsp_swsp_address_p): New function.
19227 (mips_print_operand_punctuation): Recognize short delay slot insns
19228 for microMIPS.add<mode>3"
19229
f35c297f 192302013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 19231
f35c297f
KT
19232 PR target/56720
19233 * config/arm/iterators.md (v_cmp_result): New mode attribute.
19234 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
19235
051b9446
RB
192362013-03-25 Richard Biener <rguenther@suse.de>
19237
19238 PR tree-optimization/56689
19239 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
19240 any edge.
19241
374001cb
RB
192422013-03-25 Richard Biener <rguenther@suse.de>
19243
19244 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
19245 of bitmap.
19246 (memory_references): Likewise.
19247 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
19248 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
19249 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
19250 (gather_mem_refs_in_loops): Fold into ...
19251 (analyze_memory_references): ... this. Move initialization
19252 to tree_ssa_lim_initialize.
19253 (fill_always_executed_in): Rename to ...
19254 (fill_always_executed_in_1): ... this.
19255 (fill_always_executed_in): Move contains_call computation to
19256 this new function from ...
19257 (tree_ssa_lim_initialize): ... here.
19258 (tree_ssa_lim): Call fill_always_executed_in.
19259
57895947
EB
192602013-03-25 Eric Botcazou <ebotcazou@adacore.com>
19261
19262 * postreload.c (reload_combine): Fix code detecting returns.
19263
1e1b18c1
EB
192642013-03-25 Eric Botcazou <ebotcazou@adacore.com>
19265
19266 * function.c (emit_use_return_register_into_block): On cc0 targets,
19267 do not emit the sequence between cc0 setter and user.
19268
9216baf1
KT
192692013-03-25 Kai Tietz <ktietz@redhat.com>
19270
1e1b18c1
EB
19271 * config/i386/predicates.md (local_symbolic_operand): Interpret
19272 dll-imported symbols as none-local.
9216baf1 19273
76421b44
RB
192742013-03-25 Richard Biener <rguenther@suse.de>
19275
19276 * tree-ssa-loop-im.c (struct depend): Remove.
19277 (struct lim_aux_data): Make depends a vec of gimples.
19278 (free_lim_aux_data): Adjust.
19279 (add_dependency): Likewise.
19280 (set_level): Likewise.
19281
d154bfa2
RB
192822013-03-25 Richard Biener <rguenther@suse.de>
19283
19284 PR middle-end/56434
19285 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
19286 the pointer returned by calls with ECF_MALLOC set.
19287
2cd9804e
UB
192882013-03-24 Uros Bizjak <ubizjak@gmail.com>
19289
acef5fe0
UB
19290 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
19291
192922013-03-24 Uros Bizjak <ubizjak@gmail.com>
19293
19294 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
19295 using MMXMODE mode iterator.
19296 (*move<mode>_internal): Merge with *movv2sf_internal and
19297 *movv2sf_internal_rex64 using MMXMODE mode iterator.
19298
225ccc68
SB
192992013-03-23 Steven Bosscher <steven@gcc.gnu.org>
19300
85c0f02d
SB
19301 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
19302 (record_last_mem_set_info): Likewise.
19303
225ccc68
SB
19304 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
19305 of XNEWVEC followed by memset.
19306 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
19307
b64925dc
SB
193082013-03-23 Steven Bosscher <steven@gcc.gnu.org>
19309
19310 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
19311 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
19312 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
19313 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
19314 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
19315 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
19316 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
19317 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
19318 BARRIER_P instead of GET_CODE.
19319
b9aaf52e
EB
193202013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19321
19322 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
19323 inaccuracy in the probing code.
19324
19325 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
19326 (ctrapdi4): Likewise.
19327
66de4d7c
EB
193282013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19329
19330 * calls.c (expand_call): Add missing guard to code handling return
19331 of non-BLKmode structures in MSB.
19332 * function.c (expand_function_end): Likewise.
19333
4f25c8fb
EB
193342013-03-23 Eric Botcazou <ebotcazou@adacore.com>
19335
19336 * combine.c (try_combine): Adjust comment. Do not add the set of
19337 insn #0 if the destination indirectly is set or dies in insn #2.
19338 Tidy up code to distribute a new note.
19339
23b7850d
UB
193402013-03-22 Uros Bizjak <ubizjak@gmail.com>
19341
19342 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
19343 also for alternatives 16 and 17.
19344
bed852cf
UB
193452013-03-22 Uros Bizjak <ubizjak@gmail.com>
19346
19347 * config/i386/sse.md (*mov<mode>_internal): Merge with
19348 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
19349 Emit insn template depending on type attribute. Use
19350 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
19351 movd instead of movq mnemonic for interunit moves. Rewrite mode
19352 attribute calculation. Remove unit attribute calculation.
19353 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
19354 Set prefix_data16 attribute for DImode ssemov types.
19355 Use Ym instead of y for SSE-MMX conversion alternatives.
19356 Reorder operand constraints.
19357
1e8a7937
SB
193582013-03-22 Steven Bosscher <steven@gcc.gnu.org>
19359
19360 * df.h (df_insn_delete): Adjust prototype.
19361 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
19362 and let it decide whether mark the basic block dirty.
19363 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
19364 * df-scan.c (df_insn_info_delete): New helper function, split
19365 off from df_insn_delete.
19366 (df_scan_free_bb_info): Use it.
19367 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
19368 Likewise.
19369 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
19370 that the insn is actually an insn and it has a non-NULL basic block.
19371 Do not mark basic block dirty if only deleting a DEBUG_INSN.
19372
e14d094c
RB
193732013-03-22 Richard Biener <rguenther@suse.de>
19374
19375 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
19376 dep_ref members.
19377 (mem_ref_alloc): Do not allocate them.
19378 (refs_independent_p): Do not query or maintain a cache.
19379
e9cf7316
RB
193802013-03-22 Richard Biener <rguenther@suse.de>
19381
19382 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
19383 (gather_mem_refs_in_loops): Do not compute it.
19384 (analyze_memory_references): Do not allocate it.
19385 (tree_ssa_lim_finalize): Do not free it.
19386 (for_all_locs_in_loop): Do not query all_refs_in_loop.
19387
f046e81b
RB
193882013-03-22 Richard Biener <rguenther@suse.de>
19389
19390 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 19391
a05c0ddf
IB
193922013-03-22 Ian Bolton <ian.bolton@arm.com>
19393
19394 * config/aarch64/aarch64.c (aarch64_print_operand): New
19395 format specifier for printing a constant in hex.
19396 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
19397 format specifier for printing second operand.
19398
c00217fc
RB
193992013-03-22 Richard Biener <rguenther@suse.de>
19400
19401 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
19402 bitmaps.
19403 (gather_mem_refs_in_loops): Perform store accumulation here.
19404 (create_vop_ref_mapping_loop): Remove.
19405 (create_vop_ref_mapping): Likewise.
19406 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 19407 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
19408 (record_indep_loop): Remove.
19409 (record_dep_loop): New function.
19410 (ref_indep_loop_p_1): Adjust to only walk over references
19411 in the loop, not its subloops.
19412 (ref_indep_loop_p): Rename to ...
19413 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
19414 maintaining a more fine-grained cache.
19415 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
19416 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
19417
15d19bf8
RB
194182013-03-22 Richard Biener <rguenther@suse.de>
19419
19420 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
19421 (struct mem_ref): Make accesses_in_loop a vec of a vec of
19422 aggregate mem_ref_loc.
19423 (free_mem_ref_locs): Inline into ...
19424 (memref_free): ... this and adjust.
19425 (mem_ref_alloc): Adjust.
19426 (mem_ref_locs_alloc): Remove.
19427 (record_mem_ref_loc): Adjust.
19428 (get_all_locs_in_loop): Rewrite into ...
19429 (for_all_locs_in_loop): ... this iterator.
19430 (rewrite_mem_ref_loc): New functor.
19431 (rewrite_mem_refs): Use for_all_locs_in_loop.
19432 (sm_set_flag_if_changed): New functor.
19433 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
19434 (ref_always_accessed): New functor.
19435 (ref_always_accessed_p): Use for_all_locs_in_loop.
19436
6f37411d
MG
194372013-03-21 Marc Glisse <marc.glisse@inria.fr>
19438
19439 * tree-pass.h (PROP_gimple_lvec): New.
19440 * passes.c (dump_properties): Handle PROP_gimple_lvec.
19441 (init_optimization_passes): Move pass_lower_vector.
19442 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
19443 PROP_gimple_lvec.
19444 (pass_lower_vector): Provide PROP_gimple_lvec.
19445 (pass_lower_vector_ssa): Likewise.
19446 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
19447
511ef689
MW
194482013-03-21 Mark Wielaard <mjw@redhat.com>
19449
19450 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
19451
cc1df30b
UB
194522013-03-21 Uros Bizjak <ubizjak@gmail.com>
19453
19454 * config/i386/i386.md (*movdi_internal): Disparage slightly
19455 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
19456 conversion alternatives.
19457
c845cfe1
JJ
194582013-03-21 Jakub Jelinek <jakub@redhat.com>
19459
37e99116
JJ
19460 PR middle-end/48087
19461 * diagnostic.def (DK_WERROR): New kind.
19462 * diagnostic.h (werrorcount): Define.
19463 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
19464 promoted to DK_ERROR, increment DK_WERROR counter instead of
19465 DK_ERROR counter.
19466 * toplev.c (toplev_main): Call print_ignored_options even if
19467 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
19468 even if just werrorcount is non-zero.
19469
c845cfe1
JJ
19470 PR debug/55608
19471 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
19472 on failure.
19473 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
19474 (string_cst_pool_decl): New function.
19475 (optimize_one_addr_into_implicit_ptr): New function.
19476 (resolve_addr_in_expr): Optimize DWARF location expression
19477 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
19478 which doesn't live in memory, but has DW_AT_location or
19479 DW_AT_const_value, or refers to a string literal, into
19480 DW_OP_GNU_implicit_pointer.
19481 (optimize_location_into_implicit_ptr): New function.
19482 (resolve_addr): If removing DW_AT_location of a variable because
19483 it was DW_OP_addr of address of the variable, but the variable doesn't
19484 live in memory, try to emit const value attribute for the initializer.
19485
08e0cda6
MG
194862013-03-21 Marc Glisse <marc.glisse@inria.fr>
19487
19488 * tree.h (VECTOR_TYPE_P): New macro.
19489 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
19490 TYPE_MODE): Use it.
19491 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
19492 VEC_COND_EXPR cannot be lvalues.
19493 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
19494
d08633b4
MG
194952013-03-21 Marc Glisse <marc.glisse@inria.fr>
19496
19497 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
19498 Restrict the transformation to equal modes.
19499
e6647190
RB
195002013-03-21 Richard Biener <rguenther@suse.de>
19501
19502 PR tree-optimization/39326
19503 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
19504 (MEM_ANALYZABLE): Adjust.
19505 (record_mem_ref_loc): Move bitmap ops ...
19506 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
19507 unanalyzable refs, do not record locations for it.
19508 (analyze_memory_references): Allocate ref zero as shared
19509 unanalyzable ref.
19510 (refs_independent_p): Do not test for unanalyzed mems here.
19511 (ref_indep_loop_p_1): Special-case disambiguation against
19512 the unanalyzed ref.
cc1df30b 19513 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 19514
65074f54
CL
195152013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
19516
19517 * config/arm/arm-protos.h (tune_params): Add
19518 prefer_neon_for_64bits field.
19519 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
19520 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
19521 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19522 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19523 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
19524 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19525 (arm_option_override): Handle -mneon-for-64bits new option.
19526 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
19527 (prefer_neon_for_64bits): Declare new variable.
19528 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 19529 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
19530 (arch_enabled): Handle new arch types. Remove support for onlya8
19531 and nota8.
19532 (one_cmpldi2): Use new arch names.
bc5faa5b 19533 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
19534 * config/arm/arm.opt (mneon-for-64bits): Add option.
19535 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
19536 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
19537 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
19538 of onlya8.
19539 * doc/invoke.texi (-mneon-for-64bits): Document.
19540
5a2d2a79
RB
195412013-03-21 Richard Biener <rguenther@suse.de>
19542
19543 PR tree-optimization/39326
19544 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
19545 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 19546 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 19547
5abe1e05
RB
195482013-03-21 Richard Biener <rguenther@suse.de>
19549
19550 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
19551 (vect_insert_into_interleaving_chain): Likewise.
19552 (vect_drs_dependent_in_basic_block): Inline ...
19553 (vect_slp_analyze_data_ref_dependence): ... here. New function,
19554 split out from ...
19555 (vect_analyze_data_ref_dependence): ... here. Simplify.
19556 (vect_check_interleaving): Simplify.
19557 (vect_analyze_data_ref_dependences): Likewise. Split out ...
19558 (vect_slp_analyze_data_ref_dependences): ... this new function.
19559 (dr_group_sort_cmp): New function.
19560 (vect_analyze_data_ref_accesses): Compute data-reference groups
19561 here instead of in vect_analyze_data_ref_dependence. Use
19562 a more efficient algorithm.
19563 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
19564 vect_slp_analyze_data_ref_dependences. Call
19565 vect_analyze_data_ref_accesses earlier.
19566 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19567 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
19568 (vect_slp_analyze_data_ref_dependences): New prototype.
19569
cad1735b
RB
195702013-03-21 Richard Biener <rguenther@suse.de>
19571
19572 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
19573 ref is stored in the loop.
19574 (find_refs_for_sm): Walk only over all stores.
19575 (store_motion_loop): Allocate from lim_bitmap_obstack.
19576 (store_motion): Likewise.
19577
141310ef
RB
195782013-03-21 Richard Biener <rguenther@suse.de>
19579
19580 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
19581 Update virtual SSA form.
19582
5022315a
RO
195832013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19584
19585 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
19586 * configure: Regenerate.
19587 * config.in: Regenerate.
19588 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
19589 if !HAVE_LD_EH_FRAME_CIEV3.
19590
50d4421c
RB
195912013-03-21 Richard Biener <rguenther@suse.de>
19592
19593 * tree-cfg.c (verify_expr_no_block): New function.
19594 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
19595 nor DECL_VALUE_EXPR have locations with associated blocks.
19596 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
19597 (clear_unused_block_pointer): Remove code dealing with
19598 blocks in DECL_DEBUG_EXPR locations.
19599
839b422f
RB
196002013-03-21 Richard Biener <rguenther@suse.de>
19601
19602 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
19603 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
19604 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
19605 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
19606 instead of DECL_DEBUG_EXPR_IS_FROM.
19607 * gimplify.c (gimplify_modify_expr): Likewise.
19608 * tree-cfg.c (verify_expr_location_1): Likewise.
19609 * tree-complex.c (create_one_component_var): Likewise.
19610 * tree-sra.c (create_access_replacement): Likewise.
19611 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
19612 (clear_unused_block_pointer): Likewise.
19613 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
19614 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
19615 * var-tracking.c (var_debug_decl): Likewise.
19616 (track_expr_p): Likewise.
19617 * tree-inline.c (add_local_variables): Likewise. Set
19618 DECL_HAS_DEBUG_EXPR_P after copying it.
19619 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
19620 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
19621
fe04878d
UB
196222013-03-21 Uros Bizjak <ubizjak@gmail.com>
19623
19624 PR bootstrap/56656
19625 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
19626 * configure: Regenerate.
19627 * config.in: Regenerate.
19628 * config/i386/i386.md (*movdf_internal): Use
19629 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
19630 movd instead of movq mnemonic for interunit moves.
19631 (*movdi_internal): Ditto.
19632
bd059b26 196332013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
19634
19635 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
19636 (abd<mode>_3): New pattern.
19637 (aba<mode>_3): New pattern.
19638 (fabd<mode>_3): New pattern.
19639
bd059b26 196402013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
19641
19642 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
19643 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
19644 occurrence of REGISTER_PREFIX as its empty string.
19645
4f1f78b9
JL
196462013-03-20 Jeff Law <law@redhat.com>
19647
19648 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
19649 addititional equivalences for equality comparisons between an SSA_NAME
19650 and a constant where the SSA_NAME was set from a widening conversion.
19651
327a1118
WL
196522013-03-20 Walter Lee <walt@tilera.com>
19653
19654 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
19655
813e0036
UB
196562013-03-20 Uros Bizjak <ubizjak@gmail.com>
19657
19658 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
19659 depending on type attribute.
19660 (*movti_internal): Ditto.
19661 (*movtf_internal): Ditto.
19662 (*movxf_internal): Ditto.
19663 (*movdf_internal): Ditto.
19664 (*movsf_internal): Ditto.
19665
7cf34aae
UB
196662013-03-20 Uros Bizjak <ubizjak@gmail.com>
19667
19668 * config/i386/i386.md (*movti_internal): Set prefix attribute to
19669 maybe_vex for sselog1 and ssemov types.
19670 (*movdi_internal): Reorder operand constraints.
19671 (*movsi_internal): Ditto. Set prefix attribute to
19672 maybe_vex for sselog1 and ssemov types.
19673 (*movtf_internal): Set prefix attribute to maybe_vex
19674 for sselog1 and ssemov types.
19675 (*movdf_internal): Ditto. Set prefix_data16 attribute for
19676 DImode ssemov types. Reorder operand constraints.
19677 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
19678 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
19679 attribute for SImode ssemov types. Reorder operand constraints.
19680
19321415
MJ
196812013-03-20 Martin Jambor <mjambor@suse.cz>
19682
19683 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
19684 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
19685
12211b99 196862013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
19687
19688 * config/rs6000/predicates.md (indexed_address, update_address_mem
19689 update_indexed_address_mem): New predicates.
19690 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
19691 attribute for load/store instructions.
19692 * config/rs6000/dfp.md (movsd_store): Likewise.
19693 (movsd_load): Likewise.
19694 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
19695 (unnamed HI->DI extend define_insn): Likewise.
19696 (unnamed SI->DI extend define_insn): Likewise.
19697 (unnamed QI->SI extend define_insn): Likewise.
19698 (unnamed QI->HI extend define_insn): Likewise.
19699 (unnamed HI->SI extend define_insn): Likewise.
19700 (unnamed HI->SI extend define_insn): Likewise.
19701 (extendsfdf2_fpr): Likewise.
19702 (movsi_internal1): Likewise.
19703 (movsi_internal1_single): Likewise.
19704 (movhi_internal): Likewise.
19705 (movqi_internal): Likewise.
19706 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
19707 attribute for load/store instructions.
19708 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
19709 instructions.
19710 (mov<mode>_softfloat): Likewise.
19711 (mov<mode>_hardfloat32): Likewise.
19712 (mov<mode>_hardfloat64): Likewise.
19713 (mov<mode>_softfloat64): Likewise.
19714 (movdi_internal32): Likewise.
19715 (movdi_internal64): Likewise.
19716 (probe_stack_<mode>): Likewise.
19717
197182013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
19719
19720 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
19721 floating point, and decimal floating point to reload iterator.
19722
19723 * config/rs6000/constraints.md (wl constraint): New constraints to
19724 return FLOAT_REGS if certain options are used to reduce the number
19725 of separate patterns that exist in the file.
19726 (wx constraint): Likewise.
19727 (wz constraint): Likewise.
19728
19729 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
19730 -mdebug=reg, print wg, wl, wx, and wz constraints.
19731 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
19732 Initialize the reload functions for 64-bit binary/decimal floating
19733 point types.
19734 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
19735 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
19736 create the buffer on the stack to overcome not having a 32-bit
19737 load and store.
19738 (rs6000_emit_move): Likewise.
19739 (rs6000_secondary_memory_needed_rtx): Likewise.
19740 (rs6000_alloc_sdmode_stack_slot): Likewise.
19741 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
19742 via xxlxor, just like DFmode 0.0.
19743
19744 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
19745 define as 1 if we are running on a power7 or newer.
19746 (enum r6000_reg_class_enum): Add new constraints.
19747
19748 * config/rs6000/dfp.md (movsd): Delete, combine with binary
19749 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
19750 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 19751 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
19752 (movsd splitter): Likewise.
19753 (movsd_hardfloat): Likewise.
19754 (movsd_softfloat): Likewise.
19755
19756 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
19757 binary and decimal floating point moves.
19758 (fmove_ok): New attributes to combine binary and decimal floating
19759 point moves, and to combine power6x (mfpgpr) moves along normal
19760 floating moves.
19761 (real_value_to_target): Likewise.
19762 (f32_lr): Likewise.
19763 (f32_lm): Likewise.
19764 (f32_li): Likewise.
19765 (f32_sr): Likewise.
19766 (f32_sm): Likewise.
19767 (f32_si): Likewise.
19768 (movsf): Combine binary and decimal floating point moves. Combine
19769 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 19770 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
19771 (mov<mode> for SFmode/SDmode); Likewise.
19772 (SFmode/SDmode splitters): Likewise.
19773 (movsf_hardfloat): Likewise.
19774 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
19775 (movsf_softfloat): Likewise.
19776 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
19777
19778 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
19779 wx and wz constraints.
19780
19781 * config/rs6000/constraints.md (wg constraint): New constraint to
19782 return FLOAT_REGS if -mmfpgpr (power6x) was used.
19783
19784 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
19785 constraint.
19786
19787 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
19788 -mdebug=reg, print wg, wl, wx, and wz constraints.
19789 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
19790 Initialize the reload functions for 64-bit binary/decimal floating
19791 point types.
19792 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
19793 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
19794 create the buffer on the stack to overcome not having a 32-bit
19795 load and store.
19796 (rs6000_emit_move): Likewise.
19797 (rs6000_secondary_memory_needed_rtx): Likewise.
19798 (rs6000_alloc_sdmode_stack_slot): Likewise.
19799 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
19800 via xxlxor, just like DFmode 0.0.
19801
c6d5ff83
MM
19802 * config/rs6000/dfp.md (movdd): Delete, combine with binary
19803 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
19804 with other moves by using conditional constraits (wg). Use LFIWZX
19805 and STFIWX for loading SDmode on power7.
19806 (movdd splitters): Likewise.
19807 (movdd_hardfloat32): Likewise.
19808 (movdd_softfloat32): Likewise.
19809 (movdd_hardfloat64_mfpgpr): Likewise.
19810 (movdd_hardfloat64): Likewise.
19811 (movdd_softfloat64): Likewise.
19812
19813 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
19814 64-bit binary and decimal floating point moves.
19815 (FMOVE64X): Likewise.
19816 (movdf): Combine 64-bit binary and decimal floating point moves.
19817 Combine power6x (mfpgpr) moves with other moves by using
19818 conditional constraits (wg).
19819 (mov<mode> for DFmode/DDmode): Likewise.
19820 (DFmode/DDmode splitters): Likewise.
19821 (movdf_hardfloat32): Likewise.
19822 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
19823 (movdf_softfloat32): Likewise.
19824 (movdf_hardfloat64_mfpgpr): Likewise.
19825 (movdf_hardfloat64): Likewise.
19826 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
19827 (movdf_softfloat64): Likewise.
19828 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
19829 (reload_<mode>_load): Move to later in the file so they aren't in
19830 the middle of the floating point move insns.
19831 (reload_<mode>_store): Likewise.
19832
19833 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
19834 constraint.
19835
19836 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
19837 constraint if -mdebug=reg.
bd059b26
UB
19838 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
19839 Enable using dd reload support if needed.
c6d5ff83
MM
19840
19841 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
19842 binary and decimal floating point moves in rs6000.md.
19843 (movtd_internal): Likewise.
19844
19845 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
19846 decimal floating point moves.
19847 (movtf): Likewise.
19848 (movtf_internal): Likewise.
19849 (mov<mode>_internal, TDmode/TFmode): Likewise.
19850 (movtf_softfloat): Likewise.
19851 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
19852
19853 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
19854 movdi_internal64, using wg constraint for move direct operations.
19855 (movdi_internal64): Likewise.
19856
19857 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
19858 MODES_TIEABLE_P for selected modes. Print the numerical value of
19859 the various virtual registers. Use GPR/FPR first/last values,
19860 instead of hard coding the register numbers. Print which modes
19861 have reload functions registered.
bd059b26
UB
19862 (rs6000_option_override_internal): If -mdebug=reg, trace the options
19863 settings before/after setting cpu, target and subtarget settings.
19864 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
19865 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
19866 (rs6000_secondary_reload_fail): Likewise.
19867 (rs6000_secondary_reload_inner): Likewise.
19868
19869 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
19870 macros for first/last GPR and FPR registers.
19871 (LAST_GPR_REGNO): Likewise.
19872 (FIRST_FPR_REGNO): Likewise.
19873 (LAST_FPR_REGNO): Likewise.
19874
19875 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
19876 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
19877 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
19878 (vcond<mode><mode>): Likewise.
19879 (vcondu<mode><mode>): Likewise.
19880 (vector_gtu<mode>): Likewise.
19881 (vector_gte<mode>): Likewise.
19882 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 19883 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
19884 (ior<mode>3): Likewise.
19885 (and<mode>3): Likewise.
19886 (one_cmpl<mode>2): Likewise.
19887 (nor<mode>3): Likewise.
19888 (andc<mode>3): Likewise.
19889
19890 * config/rs6000/constraints.md (wt constraint): New constraint
19891 that returns VSX_REGS if TImode is allowed in VSX registers.
19892
19893 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
19894 constant under VSX.
19895
19896 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
19897 similar to TImode, but it is restricted to being in the GPRs.
19898
19899 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
19900 TImode to occupy a single VSX register.
19901
19902 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
19903 -mvsx-timode for power7/power8.
19904 (power7 cpu): Likewise.
19905 (power8 cpu): Likewise.
19906
19907 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
19908 sure that TFmode/TDmode take up two registers if they are ever
19909 allowed in the upper VSX registers.
19910 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
19911 registers.
19912 (rs6000_init_hard_regno_mode_ok): Likewise.
19913 (rs6000_debug_reg_global): Add debugging for PTImode and wt
19914 constraint. Print if LRA is turned on.
19915 (rs6000_option_override_internal): Give an error if -mvsx-timode
19916 and VSX is not enabled.
19917 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
19918 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
19919 to reg+offset addressing. Use PTImode when checking offset
19920 addresses for validity.
19921 (reg_offset_addressing_ok_p): Likewise.
19922 (rs6000_legitimate_offset_address_p): Likewise.
19923 (rs6000_legitimize_address): Likewise.
19924 (rs6000_legitimize_reload_address): Likewise.
19925 (rs6000_legitimate_address_p): Likewise.
19926 (rs6000_eliminate_indexed_memrefs): Likewise.
19927 (rs6000_emit_move): Likewise.
19928 (rs6000_secondary_reload): Likewise.
19929 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
19930 reloads to fpr registers to continue to use reg+offset addressing,
19931 but 64-bit reloads to altivec registers need reg+reg addressing.
19932 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
19933 it. Treat LO_SUM like a PLUS operation.
19934 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 19935 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
19936 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
19937 registers to share a register with a smaller sized type, since VSX
19938 puts scalars in the upper 64-bits.
19939 (print_operand): Add support for PTImode.
19940 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
19941 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
19942 registers, but don't have arithmetic support.
19943 (rs6000_memory_move_cost): Add test for VSX.
19944 (rs6000_opt_masks): Add -mvsx-timode.
19945
19946 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
19947 for TImode.
19948 (VSs): Likewise.
19949 (VSr): Use wt constraint for TImode.
19950 (VSv): Drop TImode support.
19951 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
19952 (vsx_movti_64bit): Likewise.
19953 (vsx_movti_32bit): Likewise.
19954 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
19955 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
19956 one '?' on the appropriate output constraint. Do not allow TImode
19957 logical operations on 32-bit systems.
19958 (vsx_ior<mode>3): Likewise.
19959 (vsx_xor<mode>3): Likewise.
19960 (vsx_one_cmpl<mode>2): Likewise.
19961 (vsx_nor<mode>3): Likewise.
19962 (vsx_andc<mode>3): Likewise.
19963 (vsx_concat_<mode>): Likewise.
19964 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
19965
19966 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
19967 OPTION_MASK_VSX_TIMODE.
19968 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
19969 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
19970
19971 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
19972 (TI2 iterator): New iterator for TImode, PTImode.
19973 (wd mode attribute): Add values for vector types.
bd059b26
UB
19974 (movti_string): Replace TI move operations with operations for TImode
19975 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
19976 (mov<mode>_string, TImode/PTImode): Likewise.
19977 (movti_ppc64): Likewise.
19978 (mov<mode>_ppc64, TImode/PTImode): Likewise.
19979 (TI mode splitters): Likewise.
19980
19981 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
19982 constraint.
19983
1fc5eced
MG
199842013-03-20 Marc Glisse <marc.glisse@inria.fr>
19985
19986 PR tree-optimization/56355
19987 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
19988 Also handle integers with undefined overflow.
19989
22c4c869
CM
199902013-03-20 Catherine Moore <clm@codesourcery.com>
19991 Maciej W. Rozycki <macro@codesourcery.com>
19992 Tom de Vries <tom@codesourcery.com>
12211b99 19993 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
19994 Iain Sandoe <iain@codesourcery.com>
19995 Nathan Froyd <froydnj@codesourcery.com>
12211b99 19996 Chao-ying Fu <fu@mips.com>
22c4c869
CM
19997
19998 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 19999 Document new function attributes.
22c4c869
CM
20000 * doc/invoke.texi (minterlink-compressed, mmicromips,
20001 m14k, m14ke, m14kec): Document new options.
20002 (minterlink-mips16): Update documentation.
20003 * doc/md.texi (ZC, ZD): Document new constraints.
20004 * configure.ac (gcc_cv_as_micromips): Check if linker
20005 supports the .set micromips directive.
20006 * configure: Regenerate.
20007 * config.in: Regenerate.
20008 * config/mips/mips-tables.opt: Regenerate.
20009 * config/mips/micromips.md: New file.
20010 * constraints.md (ZC, ZD): New constraints.
20011 * config/mips/predicates.md (movep_src_register): New predicate.
20012 (movep_src_operand): New predicate.
20013 (non_volatile_mem_operand): New predicate.
20014 * config/mips/mips.md (multimem): New type.
20015 (length): Differentiate between 17-bit and 18-bit branch offsets.
20016 (MOVEP1, MOVEP2): New mode iterator.
33159866 20017 (mov_<load>l): Use ZC constraint.
22c4c869
CM
20018 (mov_<load>r): Likewise.
20019 (mov_<store>l): Likewise.
20020 (mov_<store>r): Likewise.
20021 (*branch_equality<mode>_inverted): Add microMIPS support.
20022 (*branch_equality<mode>): Likewise.
20023 (*jump_absolute): Likewise.
20024 (indirect_jump_<mode>): Likewise.
20025 (tablejump_<mode>): Likewise.
20026 (<optab>_internal): Likewise.
20027 (sibcall_internal): Likewise.
20028 (sibcall_value_internal): Likewise.
20029 (prefetch): Use constraint ZD.
20030 * config/mips/mips.opt (minterlink-compressed): New option.
20031 (minterlink-mips16): Now an alias for minterlink-compressed.
20032 (mmicromips): New option.
20033 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
20034 (compare_and_swap_12): Likewise.
20035 (sync_add<mode>): Likewise.
20036 (sync_<optab>_12): Likewise.
20037 (sync_old_<optab>_12): Likewise.
20038 (sync_new_<optab>_12): Likewise.
20039 (sync_nand_12): Likewise.
20040 (sync_old_nand_12): Likewise.
20041 (sync_new_nand_12): Likewise.
20042 (sync_sub<mode>): Likewise.
20043 (sync_old_add<mode>): Likewise.
20044 (sync_old_sub<mode>): Likewise.
20045 (sync_new_add<mode>): Likewise.
20046 (sync_new_sub<mode>): Likewise.
20047 (sync_<optab><mode>): Likewise.
20048 (sync_old_<optab><mode>): Likewise.
20049 (sync_new_<optab><mode>): Likewise.
20050 (sync_nand<mode>): Likewise.
20051 (sync_old_nand<mode>): Likewise.
20052 (sync_new_nand<mode>): Likewise.
20053 (sync_lock_test_and_set<mode>): Likewise.
20054 (test_and_set_12): Likewise.
20055 (atomic_compare_and_swap<mode>): Likewise.
20056 (atomic_exchange<mode>_llsc): Likewise.
20057 (atomic_fetch_add<mode>_llsc): Likewise.
20058 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
20059 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
20060 (umips_save_restore_pattern_p): Likewise.
20061 (umips_load_store_pair_p): Likewise.
20062 (umips_output_load_store_pair): Likewise.
20063 (umips_movep_target_p): Likewise.
20064 (umips_12bit_offset_address_p): Likewise.
20065 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
20066 (mips_base_mips16): Rename this...
20067 (mips_base_compression_flags): ...to this. Update all uses.
20068 (mips_attribute_table): Add micromips, nomicromips and nocompression.
20069 (mips_mips16_decl_p): Delete.
20070 (mips_nomips16_decl_p): Delete.
33159866 20071 (mips_get_compress_on_flags): New function.
22c4c869
CM
20072 (mips_get_compress_off_flags): New function.
20073 (mips_get_compress_mode): New function.
20074 (mips_get_compress_on_name): New function.
20075 (mips_get_compress_off_name): New function.
20076 (mips_insert_attributes): Support multiple compression types.
20077 (mips_merge_decl_attributes): Likewise.
20078 (umips_12bit_offset_address_p): New function.
20079 (mips_start_function_definition): Emit .set micromips directive.
20080 (mips_call_may_need_jalx_p): New function.
20081 (mips_function_ok_for_sibcall): Add microMIPS support.
20082 (mips_print_operand_punctuation): Support short delay slots and
20083 compact jumps.
20084 (umips_swm_mask, umips_swm_encoding): New.
20085 (umips_build_save_restore): New function.
20086 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
20087 (was_mips16_p): Remove.
20088 (old_compression_mode): New.
20089 (mips_set_compression_mode): New function.
20090 (mips_set_current_function): Add microMIPS support.
20091 (mips_option_override): Likewise.
20092 (umips_save_restore_pattern_p): New function.
20093 (umips_output_save_restore): New function.
20094 (umips_load_store_pair_p_1): New function.
20095 (umips_load_store_pair_p): New function.
20096 (umips_output_load_store_pair_1): New function.
20097 (umips_output_load_store_pair): New function.
20098 (umips_movep_target_p) New function.
20099 (mips_prepare_pch_save): Add microMIPS support.
20100 * config/mips/mips.h (TARGET_COMPRESSION): New.
20101 (TARGET_CPU_CPP_BUILTINS): Update macro
20102 to use new compression flags and to support microMIPS.
20103 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
20104 (MIPS_ARCH_FLOAT_SPEC): Likewise.
20105 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
20106 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
20107 (ASM_SPEC): Support mmicromips and mno-micromips.
20108 (M16STORE_REG_P): New macro.
20109 (MIPS_CALL): Support TARGET_MICROMIPS.
20110 (MICROMIPS_J): New macro.
20111 (mips_base_mips16): Rename this...
20112 (mips_base_compression_flags): ...to this.
20113 (UMIPS_12BIT_OFFSET_P): New macro.
20114 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
20115 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
201162013-03-20 Richard Biener <rguenther@suse.de>
20117
20118 PR tree-optimization/56661
20119 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
20120 the result does not have to be distinct.
20121
54714c68
RB
201222013-03-20 Richard Biener <rguenther@suse.de>
20123
20124 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
20125 remap_gimple_op_r.
20126
cca1130d 201272013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 20128 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
20129
20130 PR rtl-optimization/56605
20131 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
20132
2a930377
UB
201332013-03-20 Uros Bizjak <ubizjak@gmail.com>
20134
20135 PR bootstrap/56656
20136 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
20137 that require movd instead of movq.
20138
d6d305fe
RB
201392013-03-20 Richard Biener <rguenther@suse.de>
20140
20141 * tree-ssa-structalias.c (struct variable_info): Add pointer
20142 to the first field of an aggregate with sub-vars. Make
20143 this and the pointer to the next subfield its ID.
20144 (vi_next): New function.
20145 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
20146 storedanything_id, integer_id): Increment by one.
20147 (new_var_info, get_call_vi, lookup_call_clobber_vi,
20148 get_call_clobber_vi): Adjust.
20149 (solution_set_expand): Simplify and speedup.
20150 (solution_set_add): Inline into ...
20151 (set_union_with_increment): ... this. Adjust accordingly.
20152 (do_sd_constraint): Likewise.
20153 (do_ds_constraint): Likewise.
20154 (do_complex_constraint): Simplify.
20155 (build_pred_graph): Adjust.
20156 (solve_graph): Likewise. Simplify and speedup.
20157 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
20158 get_constraint_for_component_ref, get_constraint_for_1,
20159 first_vi_for_offset, first_or_preceding_vi_for_offset,
20160 create_function_info_for, create_variable_info_for_1,
20161 create_variable_info_for, intra_create_variable_infos): Adjust.
20162 (init_base_vars): Push NULL for ID zero.
20163 (compute_points_to_sets): Adjust.
20164
a271b42d
RB
201652013-03-20 Richard Biener <rguenther@suse.de>
20166
20167 * cfgloop.c (verify_loop_structure): Streamline and avoid
20168 ICEing on corrupt loop tree.
20169 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
20170 loop tree.
20171
ebd65954
RB
201722013-03-20 Richard Biener <rguenther@suse.de>
20173
20174 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
20175 check whether an SSA update is needed.
20176
4547b7ee
RS
201772013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
20178
20179 * config/mips/constraints.md (T): Rename to...
20180 (Yf): ...this.
20181 (U): Rename to...
20182 (Yd): ...this.
20183 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
20184 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
20185
0b8cdc58
IB
201862013-03-19 Ian Bolton <ian.bolton@arm.com>
20187
20188 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
20189 (*subsi3_carryin_uxtw): Likewise.
20190
5977a10d
IB
201912013-03-19 Ian Bolton <ian.bolton@arm.com>
20192
20193 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
20194 (*rorsi3_insn_uxtw): Likewise.
20195
bd83ff2c
IB
201962013-03-19 Ian Bolton <ian.bolton@arm.com>
20197
20198 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
20199 (*extrsi5_insn_uxtw): Likewise.
20200
ba65123c
RB
202012013-03-19 Richard Biener <rguenther@suse.de>
20202
20203 PR tree-optimization/56273
20204 * passes.c (init_optimization_passes): Move second VRP after DOM.
20205
2eac0476
UB
202062013-03-19 Uros Bizjak <ubizjak@gmail.com>
20207
20208 * config/i386/i386.md (*movti_internal): Merge from
20209 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
20210 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
20211 nox64 isa attributes.
20212
6e55eda7
RB
202132013-03-18 Richard Biener <rguenther@suse.de>
20214
20215 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
20216 (unite): Likewise.
20217 (merge_node_constraints): Likewise.
20218 (build_succ_graph): Likewise.
20219 (valid_graph_edge): Inline into single caller.
20220 (unify_nodes): Likewise. Use bitmap_set_bit return value
20221 and cache varinfo.
20222 (scc_visit): Fix formatting and variable use.
20223 (do_sd_constraint): Use gcc_checking_assert.
20224 (do_ds_constraint): Likewise.
20225 (do_complex_constraint): Likewise.
20226 (condense_visit): Likewise. Cleanup.
20227 (dump_pred_graph): New function.
20228 (perform_var_substitution): Dump the pred-graph before
20229 variable substitution.
20230 (find_equivalent_node): Use gcc_checking_assert.
20231 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
20232
4bdd44c4
RB
202332013-03-18 Richard Biener <rguenther@suse.de>
20234
20235 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
20236 Remove cond_expr_stmt_list argument and do not gimplify the
20237 built expression.
20238 (vect_loop_versioning): Adjust.
20239 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20240 Cleanup to use less temporaries.
20241 (vect_create_data_ref_ptr): Cleanup.
20242
38c56a5b
JJ
202432013-03-18 Jakub Jelinek <jakub@redhat.com>
20244
20245 PR tree-optimization/56635
20246 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
20247 require types_compatible_p types.
20248
20b2e6a0
NC
202492013-03-18 Nick Clifton <nickc@redhat.com>
20250
a6178a25
NC
20251 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
20252 spurious backslash.
20253
20b2e6a0
NC
20254 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
20255 Add missing line to comment describing function.
20256
92608d0e
RB
202572013-03-18 Richard Biener <rguenther@suse.de>
20258
20259 PR tree-optimization/56210
20260 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
20261 Handle string / character search functions.
20262 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
20263
31348d52
RB
202642013-03-18 Richard Biener <rguenther@suse.de>
20265
20266 PR middle-end/56483
20267 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
20268 and implement properly.
20269 * gimple.h (gimple_cond_single_var_p): Remove.
20270
fcac74a1
RB
202712013-03-18 Richard Biener <rguenther@suse.de>
20272
20273 * tree-data-ref.h (find_data_references_in_loop): Declare.
20274 * tree-data-ref.c (get_references_in_stmt): Use a stack
20275 vector pre-allocated in the callers.
20276 (find_data_references_in_stmt): Adjust.
20277 (graphite_find_data_references_in_stmt): Likewise.
20278 (create_rdg_vertices): Likewise.
20279 (find_data_references_in_loop): Export.
20280 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
20281 Compute dependences here...
20282 (vect_analyze_data_refs): ...not here. When we encounter
20283 a non-vectorizable data reference in basic-block vectorization
20284 truncate the data reference vector. Do not bother to
20285 fixup data-dependence information for gather loads.
20286 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
20287 of data references, as reported.
20288
0d5a1b56
RB
202892013-03-18 Richard Biener <rguenther@suse.de>
20290
20291 PR tree-optimization/3713
20292 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
20293 has_constants and expr.
20294 (stmt_has_constants): Properly valueize SSA names when deciding
20295 whether the stmt has constants.
20296
789c34e3
RB
202972013-03-18 Richard Biener <rguenther@suse.de>
20298
20299 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
20300 whole function when there is nothing to do.
20301 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
20302 * tree-vectorizer.c (vectorize_loops): Update virtual and
20303 loop-closed SSA once.
20304 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
20305
076b4605
RB
203062013-03-18 Richard Biener <rguenther@suse.de>
20307
20308 PR middle-end/56113
20309 * domwalk.c (bb_postorder): New global static.
20310 (cmp_bb_postorder): New function.
20311 (walk_dominator_tree): Replace scheme imposing an order for
20312 visiting dominator sons by one sorting them at the time they
20313 are pushed on the stack.
20314
bdb01696
RB
203152013-03-18 Richard Biener <rguenther@suse.de>
20316
20317 PR tree-optimization/39326
20318 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
20319 (struct mem_ref): Replace mem member with ao_ref typed member.
20320 (MEM_ANALYZABLE): Adjust.
20321 (memref_eq): Likewise.
20322 (mem_ref_alloc): Likewise.
20323 (gather_mem_refs_stmt): Likewise.
20324 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
20325 (execute_sm_if_changed_flag_set): Adjust.
20326 (execute_sm): Likewise.
20327 (ref_always_accessed_p): Likewise.
20328 (refs_independent_p): Likewise.
20329 (can_sm_ref_p): Likewise.
20330
12d2dc5e
JJ
203312013-03-18 Jakub Jelinek <jakub@redhat.com>
20332
20333 PR c/56566
20334 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
20335 return 1 even for !unsignedp.
20336
286fb677
UB
203372013-03-17 Uros Bizjak <ubizjak@gmail.com>
20338
20339 * config/i386/i386.md (isa): Add x64 and nox64.
20340 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
20341 (*pushtf): Enable *roF alternative for x64 isa only.
20342 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
20343 mode attribute of integer alternatives to DImode for TARGET_64BIT.
20344 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
20345 (*movtf_internal): Merge from *movtf_internal_rex64 and
20346 *movtf_internal_sse. Use x64 and nox64 isa attributes.
20347 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
20348 nox64 isa attributes.
20349 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
20350 nox64 isa attributes.
20351 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
20352
88b97037
UB
203532013-03-17 Uros Bizjak <ubizjak@gmail.com>
20354
20355 * config/alpha/alpha.c (TARGET_LRA_P): New define.
20356
9f4f1735
JJ
203572013-03-17 Jakub Jelinek <jakub@redhat.com>
20358
20359 PR target/56640
20360 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
20361 class names. Remove trailing comma after "ALL_REGS".
20362
48f4a6fa
JH
203632013-03-16 Jan Hubicka <jh@suse.cz>
20364
20365 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
20366 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
20367 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
20368 of cgraph_get_create_node.
20369 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20370
98e81123
JM
203712013-03-16 Jason Merrill <jason@redhat.com>
20372
20373 PR debug/49090
20374 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
20375 with DW_AT_default_value.
20376
8a298c04
JJ
203772013-03-16 Jakub Jelinek <jakub@redhat.com>
20378
20379 * BASE-VER: Set to 4.9.0.
20380
4323afa0
AK
203812013-03-14 Andi Kleen <ak@linux.intel.com>
20382
20383 PR target/56619
20384 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
20385 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
20386 Document _x* TSX intrinsics.
20387
b3c0d469
JJ
203882013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
20389 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
20390
20391 * configure.ac: Add MicroBlaze TLS support detection.
20392 * configure: Regenerate.
88b97037
UB
20393 * config/microblaze/microblaze-protos.h
20394 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
20395 symbol_mentioned_p, label_mentioned_p): Add prototypes.
20396 * config/microblaze/microblaze.c (microblaze_address_type): Add
20397 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
20398 (microblaze_address_info): Add tls_reloc.
20399 (TARGET_HAVE_TLS): Define.
20400 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
20401 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
20402 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
20403 load_tls_operand, microblaze_call_tls_get_addr,
20404 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
20405 (microblaze_classify_unspec): Handle UNSPEC_TLS.
20406 (get_base_reg): Use microblaze_tls_symbol_p.
20407 (microblaze_classify_address): Handle TLS.
88b97037
UB
20408 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
20409 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
20410 (microblaze_legitimize_address): Handle TLS.
20411 (microblaze_address_insns): Handle ADDRESS_TLS.
20412 (pic_address_needs_scratch): Handle TLS.
20413 (print_operand_address): Handle TLS.
20414 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
20415 (microblaze_expand_move): Handle TLS.
88b97037
UB
20416 (microblaze_legitimate_constant_p): Check
20417 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
20418 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
20419 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
20420 (PIC_OFFSET_TABLE_REGNUM): Set.
20421 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
20422 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
20423 (addsi3, movsi_internal2, movdf_internal): Update constraints
20424 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
20425 (move_operand): Redefine as move_src_operand,
20426 check microblaze_tls_referenced_p.
8cc9a5a5 20427
d803a491
IB
204282013-03-14 Ian Bolton <ian.bolton@arm.com>
20429
20430 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
20431 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
20432
a8504f22
IB
204332013-03-14 Ian Bolton <ian.bolton@arm.com>
20434
20435 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
20436 CC mode for AND.
20437
df2dfaea
JJ
204382013-03-14 Jakub Jelinek <jakub@redhat.com>
20439
fbd28bc3
JJ
20440 PR tree-optimization/53265
20441 * common.opt (Waggressive-loop-optimizations): New option.
20442 * tree-ssa-loop-niter.c: Include tree-pass.h.
20443 (do_warn_aggressive_loop_optimizations): New function.
20444 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
20445 if number_of_latch_executions returned constant.
20446 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
20447 early. If number_of_latch_executions returned constant, set
20448 nb_iterations_upper_bound back to it.
20449 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
20450 field.
20451 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
20452 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
20453
df2dfaea
JJ
20454 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
20455 (MULTILIB_OSDIRNAMES): Set.
20456 * genmultilib: If defaultosdirname doesn't start with :: , set
20457 defaultosdirname2 instead, clear it and emit two . multilib_raw
20458 entries instead of just one.
20459
ee0d2b68
KK
204602013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
20461
20462 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
20463 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
20464 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
20465 (SUBTARGET_OVERRIDE_OPTIONS): New.
20466
decc676e
OE
204672013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
20468
20469 PR target/49880
20470 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
20471 (musermode): Convert to Var(TARGET_USERMODE).
20472 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
20473 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
20474 * config/sh/sh.c (sh_option_override): Use
20475 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
20476 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
20477 condition.
20478 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
20479 TARGET_SH4.
20480 (udivsi3_i4_single, divsi3_i4_single): Use
20481 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
20482
f4b719c7
DK
204832013-03-13 Dave Korn <dave.korn.cygwin@....>
20484
20485 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
20486 default setting.
20487
c40eced0
RB
204882013-03-13 Richard Biener <rguenther@suse.de>
20489
20490 PR tree-optimization/56608
20491 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
20492 calls when vectorizing basic-blocks.
20493
1bfa5973
JJ
204942013-03-13 Jakub Jelinek <jakub@redhat.com>
20495
20496 PR plugins/45078
20497 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
20498 tm_file.
20499
6fcf5434
JJ
205002013-03-12 Jakub Jelinek <jakub@redhat.com>
20501
20502 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
20503
4f38fa8c
JH
205042013-03-11 Jan Hubicka <jh@suse.cz>
20505
20506 PR lto/56557
20507 * lto-streamer-out.c (output_symbol_p): Skip references from
20508 constructors of external variables.
20509
c5c5ba89
JH
205102013-03-11 Jan Hubicka <jh@suse.cz>
20511
20512 PR middle-end/56571
20513 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
20514 from pseudos.
20515 * emit-rtl.c (verify_rtx_sharing): Likewise.
20516 (copy_insn_1): Likewise.
20517 * rtl.c (copy_rtx): Likewise.
20518
c2a939b1
GJL
205192013-03-11 Georg-Johann Lay <avr@gjlay.de>
20520
20521 PR target/56591
20522 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
20523 output_operand_lossage message.
88b97037 20524
3c3279fb
RE
205252013-03-11 Richard Earnshaw <rearnsha@arm.com>
20526
20527 PR target/56470
20528 * arm.c (shift_op): Validate RTL pattern on the fly.
20529 (arm_print_operand, case 'S'): Don't use shift_operator to validate
20530 the RTL.
20531
aef5ef9d
JDA
205322013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20533
20534 PR target/56347
20535 * config/pa/pa.md (call_value): Check for calls to powf and direct to
20536 new call patterns that clobber %fr12.
20537 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
20538 split and postreload patterns.
20539 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
20540 registers %fr12 and %fr12R as call used.
20541
456610d3
SB
205422013-03-09 Steven Bosscher <steven@gcc.gnu.org>
20543
20544 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
20545 (canon_address, record_store, replace_read, check_mem_read_rtx,
20546 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
20547 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
20548 rest_of_handle_dse): Likewise.
20549
4b1baac8
RS
205502013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
20551
20552 PR middle-end/56524
20553 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
20554 Add base_optabs.
20555 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
20556 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
20557 (save_optabs_if_changed): Replace with...
20558 (init_tree_optimization_optabs): ...this.
20559 * optabs.c (save_optabs_if_changed): Rename to...
20560 (init_tree_optimization_optabs): ...this. Take the optimization node
20561 as argument. Do nothing if the base optabs are already correct.
20562 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
20563 to recompute optabs.
20564 * function.h (function): Remove optabs field.
20565 * function.c (invoke_set_current_function_hook): Call
20566 init_tree_optimization_optabs. Use the result to initialize
20567 this_fn_optabs.
20568
b7a78683
AH
205692013-02-27 Aldy Hernandez <aldyh@redhat.com>
20570
20571 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
20572 if GTMA_HAS_NO_INSTRUMENTATION.
20573 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
20574 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
20575 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
20576 * gimple-pretty-print.c (dump_gimple_transaction): Handle
20577 GTMA_HAS_NO_INSTRUMENTATION.
20578
6384c29b
JJ
205792013-03-08 Jakub Jelinek <jakub@redhat.com>
20580
20581 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
20582 libasan_preinit.o.
20583
ecd4f20a
MP
205842013-03-08 Marek Polacek <polacek@redhat.com>
20585 Jakub Jelinek <jakub@redhat.com>
20586
20587 PR tree-optimization/56478
20588 * predict.c (is_comparison_with_loop_invariant_p): Change the
20589 type of loop_step to tree.
20590 (predict_loops): Adjust.
20591 (predict_iv_comparison): Perform the computations on double_ints.
20592
64366d35
RB
205932013-03-08 Richard Biener <rguenther@suse.de>
20594
20595 PR tree-optimization/56570
20596 * tree-cfg.c (verify_expr_location_1): Verify locations for
20597 DECL_DEBUG_EXPR.
20598 * tree-sra.c (create_access_replacement): Strip locations
20599 from DECL_DEBUG_EXPRs.
20600
a9d5a059
RB
206012013-03-08 Richard Biener <rguenther@suse.de>
20602
20603 * tree-inline.c (expand_call_inline): Do not associate
20604 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
20605 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
20606
b7aa4e9a
RB
206072013-03-08 Richard Biener <rguenther@suse.de>
20608
20609 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
20610 or block changes with -Og. Fix for location / block encoding
20611 changes and PHI arguments with locations.
20612
c4c2f9fa
SB
206132013-03-07 Steven Bosscher <steven@gcc.gnu.org>
20614
20615 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
20616 for all counters.
20617 (struct output_info): Likewise.
20618 (register_overhead): Remove bad gcc_assert.
20619 (bitmap_find_bit): If there is only a single bitmap element, do not
20620 count a miss as a search.
20621 (print_statistics): Update for counter type changes.
20622 (dump_bitmap_statistics): Likewise. Print headers such that they
20623 are properly lined up with the printed counters.
20624
5bf6606a
JJ
206252013-03-07 Jakub Jelinek <jakub@redhat.com>
20626
20627 PR tree-optimization/56559
20628 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
20629 check that it has only a single use.
20630
2c653d46
RB
206312013-03-07 Richard Biener <rguenther@suse.de>
20632
20633 * doc/invoke.texi (fwhole-program): Discourage use in combination
20634 with -flto.
20635
a72d8780
JJ
206362013-03-06 Jakub Jelinek <jakub@redhat.com>
20637
01a454df
JJ
20638 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
20639
c1781047
JJ
20640 PR tree-optimization/56539
20641 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
20642 instead of GSI_CONTINUE_LINKING as last argument to
20643 force_gimple_operand_gsi. Adjust function comment.
20644
9772c47a
JJ
20645 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
20646 aarch64-cores.def.
20647
a72d8780
JJ
20648 PR middle-end/56548
20649 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
20650 promoted mode, convert the result back to the original mode.
20651
fa5556de
RB
206522013-03-06 Richard Biener <rguenther@suse.de>
20653
20654 PR middle-end/56294
20655 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
20656 (insert_updated_phi_nodes_compare_uids): New function.
20657 (update_ssa): Sort symbols_to_rename after UID before
20658 traversing it to insert PHI nodes.
20659
010403d1
RB
206602013-03-06 Richard Biener <rguenther@suse.de>
20661
20662 PR middle-end/50494
20663 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
20664 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
20665
20666 Revert
20667 2013-02-13 Richard Biener <rguenther@suse.de>
20668
20669 PR lto/50494
20670 * varasm.c (output_constant_def_1): Get the decl representing
20671 the constant as argument.
20672 (output_constant_def): Wrap output_constant_def_1.
20673 (make_decl_rtl): Use output_constant_def_1 with the decl
20674 representing the constant.
20675 (build_constant_desc): Optionally re-use a decl already
20676 representing the constant.
20677 (tree_output_constant_def): Adjust.
20678
3c27ce4c
JY
206792013-03-06 Joey Ye <joey.ye@arm.com>
20680
20681 PR lto/50293
20682 * gcc.c (convert_white_space): New function.
20683 (main): Handles white space in function name.
20684
8f6d1c86
OE
206852013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
20686
20687 PR target/56529
20688 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
20689 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
20690 to SH_DIV_CALL_TABLE for TARGET_SH2.
20691 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
20692 list.
20693 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
20694 call-table options.
20695
798a209f
SA
206962013-03-05 Sterling Augustine <saugustine@google.com>
20697 Cary Coutant <ccoutant@google.com>
20698
20699 PR debug/55364
20700 * dwarf2out.c (resolve_addr): Don't call
20701 remove_loc_list_addr_table_entries a second time for the same
20702 expression.
20703
6cfa417f 207042013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 20705
6cfa417f
JJ
20706 PR debug/56510
20707 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
20708 (avoid_complex_debug_insns): New function.
20709 (expand_debug_locations): Call it.
20710
20711 PR rtl-optimization/56484
20712 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
20713 lifetimes of hard registers on small register class machines.
20714
207152013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
20716
20717 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 20718 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 20719 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
20720 fast_interrupt.
20721 (microblaze_fast_interrupt_function_p): New function.
20722 (microblaze_is_interrupt_handler): Rename to
20723 microblaze_is_interrupt_variant and add fast_interrupt check.
20724 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
20725 (save_restore_insns): Likewise.
20726 (compute_frame_size): Likewise.
20727 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
20728 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
20729 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
20730 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
20731 microblaze_is_interrupt_variant.
20732
731aefac
KT
207332013-03-05 Kai Tietz <ktietz@redhat.com>
20734
20735 * sdbout.c (sdbout_one_type): Switch to current function's section
20736 supporting cold/hot.
20737
a72d8780 207382013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
20739
20740 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
20741 -mxl-reorder.
20742
334e71e8
JJ
207432013-03-05 Jakub Jelinek <jakub@redhat.com>
20744
0b50e654
JJ
20745 PR middle-end/56461
20746 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
20747 if VALGRIND_GET_VBITS is defined, temporarily make object
20748 memory all defined, and restore previous valgrind addressability
20749 and definability afterwards. Free this_object at the end.
20750
4ccf8f43
JJ
20751 PR middle-end/56461
20752 * lra.c (lra): Call lra_clear_live_ranges if live_p,
20753 right before calling lra_create_live_ranges, also call it
20754 when clearing live_p. Only call lra_clear_live_ranges
20755 at the end if live_p.
20756
334e71e8
JJ
20757 PR middle-end/56461
20758 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
20759
9ca966ca
RB
207602013-03-05 Richard Biener <rguenther@suse.de>
20761
20762 PR tree-optimization/56521
20763 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
20764 value-id.
20765
d273b176
SB
207662013-03-05 Steven Bosscher <steven@gcc.gnu.org>
20767
20768 PR c++/55135
20769 * except.h (remove_unreachable_eh_regions): New prototype.
20770 * except.c (remove_eh_handler_splicer): New function, split out
20771 of remove_eh_handler.
20772 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
20773 warning about running it on many EH regions one at a time.
20774 (remove_unreachable_eh_regions_worker): New function, walk the
20775 EH tree in depth-first order and remove non-marked regions.
20776 (remove_unreachable_eh_regions): New function.
20777 * tree-eh.c (mark_reachable_handlers): New function, split out
20778 from remove_unreachable_handlers.
20779 (remove_unreachable_handlers): Use mark_reachable_handlers and
20780 remove_unreachable_eh_regions.
20781 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
20782 and remove_unreachable_eh_regions.
20783
5e7f1aef
RB
207842013-03-05 Richard Biener <rguenther@suse.de>
20785
20786 PR middle-end/56525
20787 * loop-init.c (fix_loop_structure): Remove loops in two stages,
20788 not freeing them until the end.
20789
f276b762
AK
207902013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20791
20792 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
20793
12a43ab8
RB
207942013-03-05 Richard Biener <rguenther@suse.de>
20795
20796 PR tree-optimization/56270
20797 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
20798 of loads after scheduling an SLP instance.
20799
93675444
JJ
208002013-03-05 Jakub Jelinek <jakub@redhat.com>
20801
db4138e3
JJ
20802 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
20803 tic6x.exp.
20804 (check_gcc_parallelize): Run guality.exp as a separate job from
20805 vect.exp with unsorted.exp and $(dg_target_exps) separately from
20806 struct-layout-1.exp with stackalign.exp.
20807
dd3d1ec0
JJ
20808 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
20809
b8d381a3
JJ
20810 PR middle-end/56461
20811 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
20812 load_index sbitmap even if some bit in it isn't set.
20813
b4f9786b
JJ
20814 PR middle-end/56461
20815 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
20816 (discover_iteration_bound_by_body_walk): Change queues to
20817 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
20818 spelling in comment. Call safe_push on queues[bound_index] directly.
20819 Release queues[queue_index] in every iteration unconditionally.
20820 Release bounds vector.
20821
93675444
JJ
20822 PR middle-end/56461
20823 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
20824 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
20825 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
20826 inner_phis vector.
20827
3e492e9c
RB
208282013-03-05 Richard Biener <rguenther@suse.de>
20829
20830 PR lto/56515
20831 * tree-inline.c (remap_blocks_to_null): New function.
20832 (expand_call_inline): When expanding a call stmt without
20833 an associated block inline remap all callee blocks to NULL.
20834
a5d1569a
JJ
208352013-03-05 Jakub Jelinek <jakub@redhat.com>
20836
86efb5cd
JJ
20837 PR rtl-optimization/56494
20838 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
20839 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
20840 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
20841
85f5dbea
JJ
20842 PR middle-end/56461
20843 * sel-sched-ir.c (free_sched_pools): Release
20844 succs_info_pool.stack[succs_info_pool.max_top] vectors too
20845 if succs_info_pool.max_top isn't -1.
20846
a5d1569a
JJ
20847 PR bootstrap/56509
20848 * opts.c (opts_obstack, opts_concat): Moved to...
20849 * opts-common.c (opts_obstack, opts_concat): ... here.
20850
4432aa6c
JJ
208512013-03-04 Jakub Jelinek <jakub@redhat.com>
20852
20853 PR middle-end/56461
20854 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
20855
f3a1fb91
MJ
208562013-03-04 Martin Jambor <mjambor@suse.cz>
20857
20858 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
20859 all appropriate places.
20860
22110e6c
EB
208612013-01-04 Eric Botcazou <ebotcazou@adacore.com>
20862
20863 PR tree-optimization/56424
20864 * ipa-split.c (split_function): Do not set the RSO flag if result is
20865 not by reference and its type is a register type.
20866
a72d8780 208672013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 20868
88b97037 20869 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 20870 (microblaze_legitimate_pic_operand): Likewise
88b97037 20871 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
20872 new function microblaze_legitimate_pic_operand
20873 * config/microblaze/microblaze-protos.h
20874 (microblaze_legitimate_pic_operand): Declare.
20875
a72d8780 208762013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 20877
a72d8780 20878 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 20879 New predicate for supported rtx code types.
a72d8780 20880 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
20881 call_insn_simple_operand predicate.
20882
541d9ac8
JJ
208832013-03-04 Jakub Jelinek <jakub@redhat.com>
20884
5eb010bc
JJ
20885 PR middle-end/56461
20886 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
20887 partitions.ordered_remove.
20888
30862efc
JJ
20889 PR middle-end/56461
20890 * tree-vect-stmts.c (vectorizable_conversion): Don't call
20891 vec_oprnds0.create (1) for modifier == NONE.
20892
8930f723
JJ
20893 PR middle-end/56461
20894 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
20895 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
20896 vec_oprnds1 right before pushing anything to it for
20897 scalar_shift_arg.
20898
541d9ac8
JJ
20899 PR middle-end/56461
20900 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
20901 set nbbs to 0 instead of having separate code path.
20902 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
20903 instead of false as last argument if returning NULL.
20904
7aa7f2e3
SL
209052013-03-03 Sandra Loosemore <sandra@codesourcery.com>
20906
20907 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
20908 the attribute is now called "target" instead of "option".
20909 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
20910 * doc/tm.texi.in (Target Attributes): Likewise document the correct
20911 attribute/pragma name for TARGET_OPTION_VALID_P and
20912 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
20913 * doc/tm.texi: Regenerated.
20914
8930f723 209152013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 20916
8930f723 20917 * config/microblaze/microblaze.c:
cb8a1637 20918 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
20919 * config/microblaze/microblaze.h: Add -mxl-reorder to
20920 DRIVER_SELF_SPECS.
20921 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
20922 instructions emitted if TARGET_REORDER.
88b97037
UB
20923 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
20924 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 20925 separately.
cb8a1637 20926
4dc1d68c
XDL
209272013-03-01 Xinliang David Li <davidxl@google.com>
20928
20929 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
20930 walk length.
20931
689eaba3
JJ
209322013-03-01 Jakub Jelinek <jakub@redhat.com>
20933
9d676bf6
JJ
20934 PR middle-end/56461
20935 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
20936 vector even when returning true. Fix up function comment formatting.
20937
caff7edf
JJ
20938 PR middle-end/56461
20939 * ira-build.c (ira_loop_nodes_count): New variable.
20940 (create_loop_tree_nodes): Initialize it.
20941 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
20942
b6b9227d
JJ
20943 PR middle-end/56461
20944 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
20945 method on dr_chain and result_chain.
20946 * tree-vect-stmts.c (vectorizable_store): Only call
20947 result_chain.create if j == 0.
20948
689eaba3
JJ
20949 PR middle-end/56461
20950 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
20951 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
20952 before overwriting it.
20953
40bf31ed
TB
209542013-03-01 Tobias Burnus <burnus@net-b.de>
20955
20956 * doc/extended.texi (C Extensions): Change order in @menu
20957 to match @node.
20958 (Other MIPS Built-in Functions): Move last MIPS entry before
20959 "picoChip Built-in Functions".
20960 (SH Built-in Functions): Move after RX Built-in Functions.
20961 * doc/gcc.texi (Introduction): Change order in @menu
20962 to match @node.
20963 * doc/md.texi (Constraints): Ditto.
20964 * gty.texi (Type Information): Ditto.
20965 (User-provided marking routines for template types): Make
20966 subsection.
20967 * doc/invoke.texi (AArch64 Options): Move before
20968 "Adapteva Epiphany Options".
20969
e664c61c
KS
209702013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
20971 Jakub Jelinek <jakub@redhat.com>
20972
20973 PR sanitizer/56454
20974 * asan.c (gate_asan): Lookup no_sanitize_address instead of
20975 no_address_safety_analysis attribute.
20976 * doc/extend.texi (no_address_safety_attribute): Rename to
20977 no_sanitize_address attribute, mention no_address_safety_analysis
20978 attribute as deprecated alias.
20979
37b5ec8f
JJ
209802013-02-28 Jakub Jelinek <jakub@redhat.com>
20981
20982 PR middle-end/56461
20983 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
20984 type to vec<vec<tree> > *.
20985 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
20986 to be vec<tree> instead of vec<tree> *, set vec_defs
20987 to vNULL and call vec_defs.create (number_of_vects), adjust other
20988 uses of vec_defs.
20989 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
20990 vectorizable_condition): Adjust vect_get_slp_defs callers.
20991
ba96cdfb
JG
209922013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
20993
20994 * config/aarch64/aarch64.c
20995 (aarch64_float_const_representable): Remove unused variable.
20996
6f549691
JG
209972013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
20998
20999 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
21000
af55e82d
JG
210012013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21002
21003 * config/aarch64/aarch64-builtins.c
21004 (aarch64_init_simd_builtins): Make static.
21005
1df3f464
JG
210062013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
21007
21008 * config/aarch64/aarch64.c
21009 (aarch64_simd_make_constant): Make static.
21010
f8f42513
MJ
210112013-02-28 Martin Jambor <mjambor@suse.cz>
21012
21013 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
21014 with no initialization to the RHS of debug statements.
21015
b48b3fc4
MJ
210162013-02-28 Martin Jambor <mjambor@suse.cz>
21017
21018 PR tree-optimization/56294
21019 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
21020 Adjust dumping.
21021 (get_access_replacement): Do not call create_access_replacement.
21022 Assert a replacement exists.
21023 (get_repl_default_def_ssa_name): Create the replacement declaration
21024 itself.
21025
c3ae224c
RR
210262013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21027
21028 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
21029 final_end_function.
21030
45fa0eef
MP
210312013-02-28 Marek Polacek <polacek@redhat.com>
21032
21033 PR rtl-optimization/56466
21034 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
21035 if we're changing a loop.
21036 (peel_loops_completely): Likewise.
21037
502c067d
PC
210382013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
21039
21040 PR c++/55813
21041 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
21042
ff24afc8
GJL
210432013-02-28 Georg-Johann Lay <avr@gjlay.de>
21044
21045 PR target/56445
21046 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
21047 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
21048 INTX_FTYPE_FX, FX_FTYPE_INTX.
21049 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
21050
c7b1fc1b
GJL
210512013-02-28 Georg-Johann Lay <avr@gjlay.de>
21052
21053 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
21054 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
21055 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
21056 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
21057 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
21058 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
21059 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
21060 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
21061 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
21062 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
21063 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
21064 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
21065 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
21066 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
21067 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
21068 (avrxmega6): Increase max flash segments from 5 to 6.
21069 * config/avr/t-multilib: Regenerate.
21070 * config/avr/avr-tables.opt: Regenerate.
21071 * doc/avr-mmcu.texi: Regenerate.
21072
4a0e3cfe
GJL
210732013-02-28 Georg-Johann Lay <avr@gjlay.de>
21074
21075 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
21076 (avr_device_to_arch): Rename to avr_device_to_ld.
21077 (avr_device_to_as): New prototype.
21078 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
21079 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
21080 * config/avr/driver-avr.c (avr_device_to_as): New.
21081 (avr_device_to_arch): Rename to avr_device_to_ld.
21082
97785e52
JJ
210832013-02-27 Jakub Jelinek <jakub@redhat.com>
21084
3f292312
JJ
21085 PR middle-end/56461
21086 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
21087 method on dr_chain and result_chain.
21088
a344216b
JJ
21089 PR middle-end/56461
21090 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
21091 pointer_set_destroy on not_executed_last_iteration.
21092
f121ad02 21093 PR middle-end/56461
88b97037 21094 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 21095
307f83a3
JJ
21096 PR middle-end/56461
21097 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
21098 FOR_EACH_DEFINED_FUNCTION when freeing state.
21099
e19624ee
JJ
21100 PR middle-end/56461
21101 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
21102 pool_free.
21103 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
21104 overwriting it.
21105
90e709fd
JJ
21106 PR middle-end/56461
21107 * ipa-cp.c (decide_whether_version_node): Call vec_free on
21108 known_aggs[i].items and release known_aggs vector.
21109
97785e52
JJ
21110 PR middle-end/56461
21111 * ipa-reference.c (propagate): Free node_info even for alias nodes.
21112
211132013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 21114
97785e52
JJ
21115 * config/microblaze/microblaze.c (microblaze_emit_compare):
21116 Use xor for EQ/NE comparisions.
21117 * config/microblaze/microblaze.md (cstoresf4): Add constraints
21118 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 21119
6fa5e0ed
JJ
211202013-02-27 Jakub Jelinek <jakub@redhat.com>
21121
21122 PR middle-end/56461
21123 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
21124 vector.
21125 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
21126 vec_safe_push, always update *slot.
21127 (redirect_edge_var_map_clear): Use vec_free.
21128 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
21129 (free_var_map_entry): Use vec_free.
21130 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
21131 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
21132
436a956a
AB
211332013-02-27 Andrey Belevantsev <abel@ispras.ru>
21134
21135 PR middle-end/45472
436a956a
AB
21136 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
21137 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
21138 Reorder tests for speculativeness in the logical and operator.
21139
f5c2caca
JJ
211402013-02-27 Jakub Jelinek <jakub@redhat.com>
21141
0fcb564b
JJ
21142 * incpath.c (add_standard_paths): Use reconcat instead of concat
21143 where appropriate and avoid leaking memory.
21144
dc357798
JJ
21145 * opts.h: Include obstack.h.
21146 (opts_concat): New prototype.
21147 (opts_obstack): New declaration.
21148 * opts.c (opts_concat): New function.
21149 (opts_obstack): New variable.
21150 (init_options_struct): Call gcc_init_obstack on opts_obstack.
21151 (finish_options): Use opts_concat instead of concat
21152 and XOBNEWVEC instead of XNEWVEC.
21153 * opts-common.c (generate_canonical_option, decode_cmdline_option,
21154 generate_option): Likewise.
21155 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
21156 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
21157
f5c2caca
JJ
21158 PR target/56455
21159 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
21160 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
21161
d0163673
JJ
211622013-02-26 Jakub Jelinek <jakub@redhat.com>
21163
21164 PR middle-end/56461
21165 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
21166
b5ad2b8e
JR
211672013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
21168
21169 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
21170 (arm_block_move_unaligned_straight): Likewise.
21171 (arm_adjust_block_mem): Likewise.
21172
9b639e2c
JR
211732013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
21174
21175 PR target/48901
21176 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
21177 temp, cond and label.
21178 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
21179
e13a0ccb
JR
21180 PR target/52500
21181 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
21182 * config/c6x/c6x.h (dbx_register_map): Update declaration.
21183
fbe4f171
JR
21184 PR target/52501
21185 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
21186 of prologue/epilogue functions.
21187
ae006543
JR
21188 PR target/52550
21189 * config/tilegx/tilegx.c (tilegx_expand_prologue):
21190 Remove unused variable cfa_offset.
21191 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
21192
c81369fa
JR
21193 PR target/54639
21194 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
21195 type promotion to unsigned.
21196
f8a8fea7
JR
21197 PR target/54640
21198 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
21199 for HOST_WIDE_INT of 32 bit / same size as int.
21200 (arm_block_move_unaligned_straight): Likewise.
21201 (arm_adjust_block_mem): Likewise.
21202
f8be5169
JR
21203 PR target/54662
21204 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
21205 ALL_CFLAGS.
21206
f1ad3354
MP
212072013-02-26 Marek Polacek <polacek@redhat.com>
21208
21209 PR tree-optimization/56426
88b97037 21210 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 21211
a6af0f42
RB
212122013-02-26 Richard Biener <rguenther@suse.de>
21213
21214 PR target/56444
21215 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
21216 unused variable loops.
21217
aca43c6c
JJ
212182013-02-26 Jakub Jelinek <jakub@redhat.com>
21219
cecbe5d9
JJ
21220 PR tree-optimization/56448
21221 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
21222 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
21223 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
21224 later operands of the references, or even first operand for
21225 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
21226
aca43c6c
JJ
21227 PR tree-optimization/56443
21228 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
21229 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
21230 to type_for_mode langhook.
21231
53e2e141
MT
212322013-02-25 Matt Turner <mattst88@gmail.com>
21233
21234 * doc/invoke.texi: Document r4700.
21235
259ee451
RB
212362013-02-25 Richard Biener <rguenther@suse.de>
21237
21238 PR tree-optimization/56175
21239 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
21240 split out from ...
21241 (simplify_bitwise_binary): ... here. Also guard the conversion
21242 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
21243
6d65e8f1
CM
212442013-02-25 Catherine Moore <clm@codesourcery.com>
21245
21246 Revert:
21247 2013-02-24 Catherine Moore <clm@codesourcery.com>
21248 Maciej W. Rozycki <macro@codesourcery.com>
21249 Tom de Vries <tom@codesourcery.com>
a72d8780 21250 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
21251 Iain Sandoe <iain@codesourcery.com>
21252 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 21253 Chao-ying Fu <fu@mips.com>
88b97037 21254
6d65e8f1 21255 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 21256 Document new function attributes.
6d65e8f1
CM
21257 * doc/invoke.texi (minterlink-compressed, mmicromips,
21258 m14k, m14ke, m14kec): Document new options.
21259 (minterlink-mips16): Update documentation.
21260 * doc/md.texi (ZC, ZD): Document new constraints.
21261 * configure.ac (gcc_cv_as_micromips): Check if linker
21262 supports the .set micromips directive.
21263 * configure: Regenerate.
21264 * config.in: Regenerate.
21265 * config/mips/mips-tables.opt: Regenerate.
21266 * config/mips/micromips.md: New file.
21267 * constraints.md (ZC, AD): New constraints.
21268 * config/mips/predicates.md (movep_src_register): New predicate.
21269 (movep_src_operand): New predicate.
21270 (non_volatile_mem_operand): New predicate.
21271 * config/mips/mips.md (multimem): New type.
21272 (length): Differentiate between 17-bit and 18-bit branch offsets.
21273 (MOVEP1, MOVEP2): New mode iterator.
21274 (mov_<load>l): Use ZC constraint.
21275 (mov_<load>r): Likewise.
21276 (mov_<store>l): Likewise.
21277 (mov_<store>r): Likewise.
21278 (*branch_equality<mode>_inverted): Add microMIPS support.
21279 (*branch_equality<mode>): Likewise.
21280 (*jump_absolute): Likewise.
21281 (indirect_jump_<mode>): Likewise.
21282 (tablejump_<mode>): Likewise.
21283 (<optab>_internal): Likewise.
21284 (sibcall_internal): Likewise.
21285 (sibcall_value_internal): Likewise.
21286 (prefetch): Use constraint ZD.
21287 * config/mips/mips.opt (minterlink-compressed): New option.
21288 (minterlink-mips16): Now an alias for minterlink-compressed.
21289 (mmicromips): New option.
21290 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21291 (compare_and_swap_12): Likewise.
21292 (sync_add<mode>): Likewise.
21293 (sync_<optab>_12): Likewise.
21294 (sync_old_<optab>_12): Likewise.
21295 (sync_new_<optab>_12): Likewise.
21296 (sync_nand_12): Likewise.
21297 (sync_old_nand_12): Likewise.
21298 (sync_new_nand_12): Likewise.
21299 (sync_sub<mode>): Likewise.
21300 (sync_old_add<mode>): Likewise.
21301 (sync_old_sub<mode>): Likewise.
21302 (sync_new_add<mode>): Likewise.
21303 (sync_new_sub<mode>): Likewise.
21304 (sync_<optab><mode>): Likewise.
21305 (sync_old_<optab><mode>): Likewise.
21306 (sync_new_<optab><mode>): Likewise.
21307 (sync_nand<mode>): Likewise.
21308 (sync_old_nand<mode>): Likewise.
21309 (sync_new_nand<mode>): Likewise.
21310 (sync_lock_test_and_set<mode>): Likewise.
21311 (test_and_set_12): Likewise.
21312 (atomic_compare_and_swap<mode>): Likewise.
21313 (atomic_exchange<mode>_llsc): Likewise.
21314 (atomic_fetch_add<mode>_llsc): Likewise.
21315 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21316 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21317 (umips_save_restore_pattern_p): Likewise.
21318 (umips_load_store_pair_p): Likewise.
21319 (umips_output_load_store_pair): Likewise.
21320 (umips_movep_target_p): Likewise.
21321 (umips_12bit_offset_address_p): Likewise.
21322 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21323 (mips_base_mips16): Rename this...
21324 (mips_base_compression_flags): ...to this. Update all uses.
21325 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21326 (mips_mips16_decl_p): Delete.
21327 (mips_nomips16_decl_p): Delete.
21328 (mips_get_compress_on_flags): New function.
21329 (mips_get_compress_off_flags): New function.
21330 (mips_get_compress_mode): New function.
21331 (mips_get_compress_on_name): New function.
21332 (mips_get_compress_off_name): New function.
21333 (mips_insert_attributes): Support multiple compression types.
21334 (mips_merge_decl_attributes): Likewise.
21335 (umips_12bit_offset_address_p): New function.
21336 (mips_start_function_definition): Emit .set micromips directive.
21337 (mips_call_may_need_jalx_p): New function.
21338 (mips_function_ok_for_sibcall): Add microMIPS support.
21339 (mips_print_operand_punctuation): Support short delay slots and
21340 compact jumps.
21341 (umips_swm_mask, umips_swm_encoding): New.
21342 (umips_build_save_restore): New function.
21343 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21344 (was_mips16_p): Remove.
21345 (old_compression_mode): New.
21346 (mips_set_compression_mode): New function.
21347 (mips_set_current_function): Add microMIPS support.
21348 (mips_option_override): Likewise.
21349 (umips_save_restore_pattern_p): New function.
21350 (umips_output_save_restore): New function.
21351 (umips_load_store_pair_p_1): New function.
21352 (umips_load_store_pair_p): New function.
21353 (umips_output_load_store_pair_1): New function.
21354 (umips_output_load_store_pair): New function.
21355 (umips_movep_target_p) New function.
21356 (mips_prepare_pch_save): Add microMIPS support.
21357 * config/mips/mips.h (TARGET_COMPRESSION): New.
21358 (TARGET_CPU_CPP_BUILTINS): Update macro
21359 to use new compression flags and to support microMIPS.
21360 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21361 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21362 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21363 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21364 (ASM_SPEC): Support mmicromips and mno-micromips.
21365 (M16STORE_REG_P): New macro.
21366 (MIPS_CALL): Support TARGET_MICROMIPS.
21367 (MICROMIPS_J): New macro.
21368 (mips_base_mips16): Rename this...
21369 (mips_base_compression_flags): ...to this.
21370 (UMIPS_12BIT_OFFSET_P): New macro.
21371 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21372 (MULTILIB_DIRNAMES): Likewise.
21373
5e5df392
TV
213742013-02-25 Tom de Vries <tom@codesourcery.com>
21375
21376 PR rtl-optimization/56131
21377 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
21378 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
21379 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
21380
3fdb53c1
TB
213812013-02-25 Tobias Burnus <burnus@net-b.de>
21382
21383 * doc/invoke.texi (-fsanitize=): Move from optimization
21384 to debugging options.
21385
ed358aea
AB
213862013-02-25 Andrey Belevantsev <abel@ispras.ru>
21387
21388 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
21389
f45e9053
AB
213902013-02-25 Andrey Belevantsev <abel@ispras.ru>
21391 Alexander Monakov <amonakov@ispras.ru>
21392
21393 PR middle-end/56077
21394 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
21395 flush pending lists also on non-jumps. Adjust comment.
21396
6941b508
CM
213972013-02-24 Catherine Moore <clm@codesourcery.com>
21398 Maciej W. Rozycki <macro@codesourcery.com>
21399 Tom de Vries <tom@codesourcery.com>
a72d8780 21400 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
21401 Iain Sandoe <iain@codesourcery.com>
21402 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 21403 Chao-ying Fu <fu@mips.com>
6941b508
CM
21404
21405 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 21406 Document new function attributes.
6941b508
CM
21407 * doc/invoke.texi (minterlink-compressed, mmicromips,
21408 m14k, m14ke, m14kec): Document new options.
21409 (minterlink-mips16): Update documentation.
21410 * doc/md.texi (ZC, ZD): Document new constraints.
21411 * configure.ac (gcc_cv_as_micromips): Check if linker
21412 supports the .set micromips directive.
21413 * configure: Regenerate.
21414 * config.in: Regenerate.
21415 * config/mips/mips-tables.opt: Regenerate.
21416 * config/mips/micromips.md: New file.
21417 * constraints.md (ZC, AD): New constraints.
21418 * config/mips/predicates.md (movep_src_register): New predicate.
21419 (movep_src_operand): New predicate.
21420 (non_volatile_mem_operand): New predicate.
21421 * config/mips/mips.md (multimem): New type.
21422 (length): Differentiate between 17-bit and 18-bit branch offsets.
21423 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 21424 (mov_<load>l): Use ZC constraint.
6941b508
CM
21425 (mov_<load>r): Likewise.
21426 (mov_<store>l): Likewise.
21427 (mov_<store>r): Likewise.
21428 (*branch_equality<mode>_inverted): Add microMIPS support.
21429 (*branch_equality<mode>): Likewise.
21430 (*jump_absolute): Likewise.
21431 (indirect_jump_<mode>): Likewise.
21432 (tablejump_<mode>): Likewise.
21433 (<optab>_internal): Likewise.
21434 (sibcall_internal): Likewise.
21435 (sibcall_value_internal): Likewise.
21436 (prefetch): Use constraint ZD.
21437 * config/mips/mips.opt (minterlink-compressed): New option.
21438 (minterlink-mips16): Now an alias for minterlink-compressed.
21439 (mmicromips): New option.
21440 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21441 (compare_and_swap_12): Likewise.
21442 (sync_add<mode>): Likewise.
21443 (sync_<optab>_12): Likewise.
21444 (sync_old_<optab>_12): Likewise.
21445 (sync_new_<optab>_12): Likewise.
21446 (sync_nand_12): Likewise.
21447 (sync_old_nand_12): Likewise.
21448 (sync_new_nand_12): Likewise.
21449 (sync_sub<mode>): Likewise.
21450 (sync_old_add<mode>): Likewise.
21451 (sync_old_sub<mode>): Likewise.
21452 (sync_new_add<mode>): Likewise.
21453 (sync_new_sub<mode>): Likewise.
21454 (sync_<optab><mode>): Likewise.
21455 (sync_old_<optab><mode>): Likewise.
21456 (sync_new_<optab><mode>): Likewise.
21457 (sync_nand<mode>): Likewise.
21458 (sync_old_nand<mode>): Likewise.
21459 (sync_new_nand<mode>): Likewise.
21460 (sync_lock_test_and_set<mode>): Likewise.
21461 (test_and_set_12): Likewise.
21462 (atomic_compare_and_swap<mode>): Likewise.
21463 (atomic_exchange<mode>_llsc): Likewise.
21464 (atomic_fetch_add<mode>_llsc): Likewise.
21465 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21466 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21467 (umips_save_restore_pattern_p): Likewise.
21468 (umips_load_store_pair_p): Likewise.
21469 (umips_output_load_store_pair): Likewise.
21470 (umips_movep_target_p): Likewise.
21471 (umips_12bit_offset_address_p): Likewise.
21472 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21473 (mips_base_mips16): Rename this...
21474 (mips_base_compression_flags): ...to this. Update all uses.
21475 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21476 (mips_mips16_decl_p): Delete.
21477 (mips_nomips16_decl_p): Delete.
3fdb53c1 21478 (mips_get_compress_on_flags): New function.
6941b508
CM
21479 (mips_get_compress_off_flags): New function.
21480 (mips_get_compress_mode): New function.
21481 (mips_get_compress_on_name): New function.
21482 (mips_get_compress_off_name): New function.
21483 (mips_insert_attributes): Support multiple compression types.
21484 (mips_merge_decl_attributes): Likewise.
21485 (umips_12bit_offset_address_p): New function.
21486 (mips_start_function_definition): Emit .set micromips directive.
21487 (mips_call_may_need_jalx_p): New function.
21488 (mips_function_ok_for_sibcall): Add microMIPS support.
21489 (mips_print_operand_punctuation): Support short delay slots and
21490 compact jumps.
21491 (umips_swm_mask, umips_swm_encoding): New.
21492 (umips_build_save_restore): New function.
21493 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21494 (was_mips16_p): Remove.
21495 (old_compression_mode): New.
21496 (mips_set_compression_mode): New function.
21497 (mips_set_current_function): Add microMIPS support.
21498 (mips_option_override): Likewise.
21499 (umips_save_restore_pattern_p): New function.
21500 (umips_output_save_restore): New function.
21501 (umips_load_store_pair_p_1): New function.
21502 (umips_load_store_pair_p): New function.
21503 (umips_output_load_store_pair_1): New function.
21504 (umips_output_load_store_pair): New function.
21505 (umips_movep_target_p) New function.
21506 (mips_prepare_pch_save): Add microMIPS support.
21507 * config/mips/mips.h (TARGET_COMPRESSION): New.
21508 (TARGET_CPU_CPP_BUILTINS): Update macro
21509 to use new compression flags and to support microMIPS.
21510 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21511 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21512 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21513 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21514 (ASM_SPEC): Support mmicromips and mno-micromips.
21515 (M16STORE_REG_P): New macro.
21516 (MIPS_CALL): Support TARGET_MICROMIPS.
21517 (MICROMIPS_J): New macro.
21518 (mips_base_mips16): Rename this...
21519 (mips_base_compression_flags): ...to this.
21520 (UMIPS_12BIT_OFFSET_P): New macro.
21521 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21522 (MULTILIB_DIRNAMES): Likewise.
21523
cdebbc6d
JJ
215242013-02-24 Jakub Jelinek <jakub@redhat.com>
21525
21526 PR target/52555
21527 * target-globals.c (save_target_globals): For init_reg_sets and
21528 target_reinit remporarily set this_fn_optabs to this_target_optabs.
21529
18c63565
JG
215302013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
21531
21532 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
21533 * config/aarch64/t-aarch64
21534 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
21535
2194f7a2
VM
215362013-02-22 Vladimir Makarov <vmakarov@redhat.com>
21537
21538 PR inline-asm/56148
21539 * lra-constraints.c (process_alt_operands): Reload operand
21540 conflicting with earlier clobber only if no more other conflicting
21541 operands.
21542
7d613735
JJ
215432013-02-22 Jakub Jelinek <jakub@redhat.com>
21544
21545 PR sanitizer/56393
21546 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
21547 if not linking a shared library.
21548
ac8d93a7
SL
215492013-02-22 Seth LaForge <sethml@google.com>
21550
21551 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
21552
e0237780
GY
215532013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
21554
3fdb53c1
TB
21555 * config/arm/arm.md (split for extendsidi): Update condition.
21556 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
21557 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
21558 (qhs_zextenddi_cstr): Likewise.
e0237780 21559
d7fde18c
JJ
215602013-02-21 Jakub Jelinek <jakub@redhat.com>
21561
be63b77d
JJ
21562 PR middle-end/56420
21563 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
21564 avoid signed wrapping.
21565 (expand_mult): Handle properly multiplication by
21566 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
21567 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
21568 in the compiler if coeff is HOST_WIDE_INT_MIN.
21569 (expand_divmod): Don't make ext_op1 static, change it's type to
21570 uhwi. Avoid undefined behavior in -INTVAL (op1).
21571
d7fde18c
JJ
21572 PR rtl-optimization/50339
21573 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
21574 field.
21575 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
21576 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
21577 into splitting_ashiftrt field.
21578 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
21579 ASHIFTRT.
21580 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
21581 choices.
21582
6aad4455
AH
215832013-02-20 Aldy Hernandez <aldyh@redhat.com>
21584
21585 PR middle-end/56108
21586 * trans-mem.c (execute_tm_mark): Do not expand transactions that
21587 are sure to go irrevocable.
21588
38fe784d
HPN
215892013-02-21 Hans-Peter Nilsson <hp@axis.com>
21590
21591 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
21592 scalars are valid operands.
21593
0fd44da3
MJ
215942013-02-21 Martin Jambor <mjambor@suse.cz>
21595
21596 PR tree-optimization/56310
21597 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
21598 only matching indices and non-negative final offsets.
21599 (intersect_aggregates_with_edge): Pass src_idx to
21600 agg_replacements_to_vector. Pass src_idx insstead of index to
21601 intersect_with_agg_replacements.
21602
7a92038b
MJ
216032013-02-21 Martin Jambor <mjambor@suse.cz>
21604
21605 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
21606 instead of hard-wired defaults.
21607
c0da9c37
MR
216082013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
21609
21610 * doc/invoke.texi (MIPS Options): Update documentation of the
21611 floating-point multiply-accumulate instruction restrictions.
21612
d247ea0c 216132013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
21614
21615 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
21616 asan_shadow_offset on x86_64 linux.
21617
22deefcb
RB
216182013-02-21 Richard Biener <rguenther@suse.de>
21619
21620 PR tree-optimization/56415
21621 Revert
21622 2013-02-11 Richard Biener <rguenther@suse.de>
21623
21624 PR tree-optimization/56273
21625 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
21626 first VRP run.
21627
7bcc6e75
JJ
216282013-02-21 Jakub Jelinek <jakub@redhat.com>
21629
a0ad148f
JJ
21630 PR bootstrap/56258
21631 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
21632 instead of @itemx.
21633
7bcc6e75
JJ
21634 PR inline-asm/56405
21635 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
21636 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
21637
a0a7b611
JH
216382013-02-20 Jan Hubicka <jh@suse.cz>
21639
21640 PR tree-optimization/56265
88b97037
UB
21641 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
21642 when target is referenced for first time.
a0a7b611 21643
c0e50f72
RB
216442013-02-20 Richard Biener <rguenther@suse.de>
21645
21646 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
21647 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
21648 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
21649 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
21650 not return anything.
21651 (rename_ssa_copies): Do not remove unused locals.
21652 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 21653 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
21654 * passes.c (execute_function_todo): Do not schedule unused locals
21655 removal if cleanup_tree_cfg did something.
21656 * tree-ssa-live.c (remove_unused_locals): Dump statistics
21657 about the number of removed locals.
21658
a52ca739
RB
216592013-02-20 Richard Biener <rguenther@suse.de>
21660
21661 PR tree-optimization/56398
88b97037 21662 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 21663
ec9c9d1b
MJ
216642013-02-20 Martin Jambor <mjambor@suse.cz>
21665
21666 PR tree-optimization/55334
21667 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
21668 restricted pointers to arrays.
21669
e91c8ed6 216702013-02-20 Richard Biener <rguenther@suse.de>
88b97037 21671 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
21672
21673 PR tree-optimization/56396
21674 * tree-ssa-ccp.c (n_const_val): New static variable.
21675 (get_value): Return NULL for SSA names we don't have a lattice
21676 entry for.
21677 (ccp_initialize): Initialize n_const_val.
21678 * tree-ssa-copy.c (n_copy_of): New static variable.
21679 (init_copy_prop): Initialize n_copy_of.
21680 (get_value): Return NULL_TREE for SSA names we don't have a
21681 lattice entry for.
21682
3d916479
MJ
216832013-02-20 Martin Jambor <mjambor@suse.cz>
21684
21685 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
21686
71a86758
RB
216872013-02-20 Richard Biener <rguenther@suse.de>
21688
21689 * genpreds.c (write_lookup_constraint): Do not compare first
21690 letter of the constraint again.
21691
79836a12
RB
216922013-02-20 Richard Biener <rguenther@suse.de>
21693
21694 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
21695 and ceil_log2.
21696 (get_use_iv_cost): Terminate hashtable walk when coming across
21697 an empty entry.
21698
bbe4fb2c
IZ
216992013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
21700
21701 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
21702 reassociation for avx2 targets.
21703
a72d8780 217042012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 21705
c77f83d5
EI
21706 * config/microblaze/microblaze.c: microblaze_has_clz = 0
21707 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 21708 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
21709 version and TARGET_PATTERN_COMPARE check
21710 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 21711
a72d8780 217122012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 21713
a72d8780 21714 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
21715 function before branching.
21716
242387fa
AB
217172012-02-19 Andrey Belevantsev <abel@ispras.ru>
21718
21719 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
21720 DUMP_INSN_RTX_UID.
21721 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
21722
b4979ab9
AB
217232012-02-19 Andrey Belevantsev <abel@ispras.ru>
21724
21725 PR middle-end/55889
b4979ab9
AB
21726 * sel-sched.c: Include ira.h.
21727 (implicit_clobber_conflict_p): New function.
21728 (moveup_expr): Use it.
88b97037 21729 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 21730
24d63016
RB
217312013-02-19 Richard Biener <rguenther@suse.de>
21732
21733 PR tree-optimization/56384
21734 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
21735 (vn_hash_type): Split out from ...
21736 (vn_hash_constant_with_type): ... here.
21737 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
21738 (vn_phi_eq): Compare types from vn_phi_s structure.
21739 (vn_phi_lookup): Populate vn_phi_s type.
21740 (vn_phi_insert): Likewise.
21741
a475fd3d
JJ
217422013-02-19 Jakub Jelinek <jakub@redhat.com>
21743
47cc28f5
JJ
21744 PR tree-optimization/56350
21745 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
21746 if haven't found reduction or nested cycle operand, rather than
21747 asserting we must find it.
21748
a475fd3d
JJ
21749 PR tree-optimization/56381
21750 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
21751 to fold_build3.
21752
217532013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
21754 Jakub Jelinek <jakub@redhat.com>
21755
21756 PR target/52555
21757 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
21758 (swap_optab_enable): Same.
21759 (init_all_optabs): Use argument instead of global.
88b97037 21760 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
21761 * expr.h (init_all_optabs): Add argument to prototype.
21762 (TREE_OPTIMIZATION_OPTABS): New.
21763 (save_optabs_if_changed): Protoize.
21764 * optabs.h: Declare this_fn_optabs.
21765 * optabs.c (save_optabs_if_changed): New.
21766 Declare this_fn_optabs.
21767 (init_optabs): Add argument to init_all_optabs() call.
21768 * function.c (invoke_set_current_function_hook): Handle per
21769 function optabs.
21770 * function.h (struct function): New field optabs.
21771 * config/mips/mips.c (mips_set_mips16_mode): Handle when
21772 optimization_current_node has changed.
21773 * target-globals.h (save_target_globals_default_opts): Protoize.
21774 * target-globals.c (save_target_globals_default_opts): New.
21775
3f587ca3
JDA
217762013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21777
21778 PR target/56347
21779 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
21780 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
21781
21782 PR target/56214
21783 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
21784 and HImode, require all displacements to be an integer multiple of
21785 their mode size.
ceaca33e
JDA
21786 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
21787 only allow QImode and HImode when reload is in progress and strict is
21788 true. Likewise for symbolic addresses. Use base14_operand to check
21789 displacements in REG+BASE addresses.
21790
fe0b4796
RB
217912013-02-18 Richard Biener <rguenther@suse.de>
21792
21793 PR tree-optimization/56366
21794 * tree-vect-loop.c (get_initial_def_for_induction): Properly
21795 handle sign-conversion of outer-loop initial induction value.
21796
6aaf596b
RB
217972013-02-18 Richard Biener <rguenther@suse.de>
21798
73db8ff1 21799 PR middle-end/56349
6aaf596b
RB
21800 * cfghooks.c (merge_blocks): If we merge a latch into another
21801 block adjust references to it.
21802 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
21803 (verify_loop_structure): Verify that a recorded latch is in fact
21804 a latch.
21805
5e97dfb6
RB
218062013-02-18 Richard Biener <rguenther@suse.de>
21807
21808 PR tree-optimization/56321
21809 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
21810 order SSA name release and virtual operand unlinking.
21811
825527e8
EI
218122013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
21813
21814 * config/microblaze/microblaze.md (save_stack_block): Define.
21815 (restore_stack_block): Likewise.
21816
debd11d9
EI
218172013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
21818
21819 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
21820 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
21821 * config/microblaze/microblaze.c (microblaze_option_override):
21822 Bail out early for PIC modes when target does not support PIC.
21823
8ec77be0
EI
218242013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
21825
88b97037 21826 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
21827 Replace with a microblaze version.
21828 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 21829 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
21830 microblaze.
21831
b41288b3
JJ
218322013-02-16 Jakub Jelinek <jakub@redhat.com>
21833 Dodji Seketeli <dodji@redhat.com>
21834
21835 PR asan/56330
88b97037 21836 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
21837 (instrument_mem_region_access): Do not forget to always put
21838 instrumentation of the of 'base' and 'base + len' in a "if (len !=
21839 0) statement, even for cases where either 'base' or 'base + len'
21840 are not instrumented -- because they have been previously
21841 instrumented. Simplify the logic by putting all the statements
21842 instrument 'base + len' inside a sequence, and then insert that
21843 sequence right before the current insertion point. Then, to
21844 instrument 'base + len', just get an iterator on that statement.
21845 And do not forget to update the pointer to iterator the function
21846 received as argument.
21847
47918951
VM
218482013-02-15 Vladimir Makarov <vmakarov@redhat.com>
21849
21850 PR rtl-optimization/56348
21851 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
21852
3fb7c699
SB
218532013-02-15 Steven Bosscher <steven@gcc.gnu.org>
21854
21855 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
21856 (clean_graph_dump_file): Pass base to start_graph_dump.
21857
576fe41a
RH
218582013-02-14 Richard Henderson <rth@redhat.com>
21859
21860 PR target/55941
21861 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
21862
bb3accfa
SB
218632013-02-14 Steven Bosscher <steven@gcc.gnu.org>
21864
21865 * collect2-aix.h: Define F_LOADONLY.
21866
03143140
RB
218672013-02-14 Richard Biener <rguenther@suse.de>
21868
21869 PR lto/50494
21870 * varasm.c (output_constant_def_1): Get the decl representing
21871 the constant as argument.
21872 (output_constant_def): Wrap output_constant_def_1.
21873 (make_decl_rtl): Use output_constant_def_1 with the decl
21874 representing the constant.
21875 (build_constant_desc): Optionally re-use a decl already
21876 representing the constant.
21877 (tree_output_constant_def): Adjust.
21878
8fb06726
DS
218792013-02-14 Dodji Seketeli <dodji@redhat.com>
21880
21881 Fix an asan crash
21882 * asan.c (instrument_builtin_call): Really put the length of the
21883 second source argument into src1_len.
21884
c4bfe8bf
JJ
218852013-02-13 Jakub Jelinek <jakub@redhat.com>
21886
21887 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
21888 argument. If it is false, don't create edge from then_bb to
21889 fallthru_bb.
21890 (insert_if_then_before_iter): Pass true to it.
21891 (build_check_stmt): Pass false to it.
21892 (transform_statements): Flush hash table only on extended basic
21893 block boundaries, rather than at the beginning of every bb.
21894 Don't flush hash table on nonfreeing_call_p calls.
21895 * tree-flow.h (nonfreeing_call_p): New prototype.
21896 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
21897
7afe2801
DM
218982013-02-13 David S. Miller <davem@davemloft.net>
21899
21900 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
21901
70cc3288
VM
219022013-02-13 Vladimir Makarov <vmakarov@redhat.com>
21903
21904 PR target/56184
21905 * ira.c (max_regno_before_ira): Move from ...
21906 (ira): ... here.
21907 (fix_reg_equiv_init): Use max_regno_before_ira instead of
21908 vec_safe_length.
21909
6422242b
JJ
219102013-02-13 Jakub Jelinek <jakub@redhat.com>
21911
21912 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
21913
976a81ee
RB
219142013-02-13 Richard Biener <rguenther@suse.de>
21915
21916 PR lto/56295
21917 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
21918 globals in MEM_REFs.
21919
c1874a87
RB
219202013-02-13 Richard Biener <rguenther@suse.de>
21921
21922 * loop-init.c (loop_optimizer_init): Clear loop state when
21923 re-initializing preserved loops.
21924 * loop-unswitch.c (unswitch_single_loop): Return whether
21925 we unswitched the loop. Do not verify loop state here.
88b97037 21926 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 21927
b4ab7d34
KS
219282013-02-13 Kostya Serebryany <kcc@google.com>
21929
88b97037
UB
21930 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
21931 on x86_64 linux.
b4ab7d34
KS
21932 * sanitizer.def: Rename __asan_init to __asan_init_v1.
21933
bdcbe80c
DS
219342013-02-12 Dodji Seketeli <dodji@redhat.com>
21935
21936 Avoid instrumenting duplicated memory access in the same basic block
21937 * Makefile.in (asan.o): Add new dependency on hash-table.h
21938 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
21939 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
21940 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
21941 (free_mem_ref_resources, has_mem_ref_been_instrumented)
21942 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
21943 (get_mem_ref_of_assignment): New functions.
21944 (get_mem_refs_of_builtin_call): Extract from
21945 instrument_builtin_call and tweak a little bit to make it fit with
21946 the new signature.
21947 (instrument_builtin_call): Use the new
21948 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
21949 of is_gimple_builtin_call.
21950 (instrument_derefs, instrument_mem_region_access): Insert the
21951 instrumented memory reference into the hash table.
21952 (maybe_instrument_assignment): Renamed instrument_assignment into
21953 this, and change it to advance the iterator when instrumentation
21954 actually happened and return true in that case. This makes it
21955 homogeneous with maybe_instrument_assignment, and thus give a
21956 chance to callers to be more 'regular'.
21957 (transform_statements): Clear the memory reference hash table
21958 whenever we enter a new BB, when we cross a function call, or when
21959 we are done transforming statements. Use
21960 maybe_instrument_assignment instead of instrumentation. No more
21961 need to special case maybe_instrument_assignment and advance the
21962 iterator after calling it; it's now handled just like
21963 maybe_instrument_call. Update comment.
21964
4861a1f7
RB
219652013-02-13 Richard Biener <rguenther@suse.de>
21966
21967 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
21968 Fix loop discovery code.
21969
1c86bd80
VM
219702013-02-12 Vladimir Makarov <vmakarov@redhat.com>
21971
21972 PR inline-asm/56148
21973 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 21974 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
21975 the operand is not reloaded. Prefer to reload conflicting operand
21976 if earlyclobber and matching operands are the same.
21977
7cbda518
RB
219782013-02-12 Richard Biener <rguenther@suse.de>
21979
21980 PR lto/56297
21981 * lto-streamer-out.c (write_symbol): Do not output symbols
21982 for hard register variables.
21983
e68a4ef6
GJL
219842013-02-12 Georg-Johann Lay <avr@gjlay.de>
21985
21986 PR target/54222
21987 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
21988 (umulsidi3_insn, mulsidi3_insn): New insns.
21989
a72d8780 219902013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
21991
21992 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
21993 (struct tune_params): Add vec_costs field.
21994 * config/arm/arm.c (arm_builtin_vectorization_cost)
21995 (arm_add_stmt_cost): New functions.
21996 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
21997 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
21998 (arm_default_vec_cost): New struct of type cpu_vec_costs.
21999 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22000 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
22001 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
22002 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
22003
43320568
RB
220042013-02-12 Richard Biener <rguenther@suse.de>
22005
22006 PR lto/56295
22007 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
22008 decls again if possible.
22009
a011aa39
RB
220102013-02-12 Richard Biener <rguenther@suse.de>
22011
22012 PR middle-end/56288
22013 * tree-ssa.c (verify_ssa_name): Fix check, move
22014 SSA_NAME_IN_FREE_LIST check up.
22015
6da26889
JJ
220162013-02-12 Jakub Jelinek <jakub@redhat.com>
22017 Steven Bosscher <steven@gcc.gnu.org>
22018
22019 PR rtl-optimization/56151
22020 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
22021 equal to op0 or op1, and last_insn pattern is CODE operation
22022 with MEM dest and one of the operands matches that MEM.
22023
f80e0faf
ST
220242013-02-11 Sriraman Tallam <tmsriramgoogle.com>
22025
22026 * doc/extend.texi: Document Function Multiversioning and "default"
22027 parameter string to target attribute.
22028 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
22029 target attribute parameter is "default".
22030 (ix86_compare_version_priority): Remove checks for target attribute.
22031 (ix86_mangle_function_version_assembler_name): Change error to sorry.
22032 Remove check for target attribute equal to NULL. Add assert.
22033 (ix86_generate_version_dispatcher_body): Change error to sorry.
22034
6c59ffd1
IS
220352013-02-11 Iain Sandoe <iain@codesourcery.com>
22036 Jack Howarth <howarth@bromo.med.uc.edu>
22037 Patrick Marlier <patrick.marlier@gmail.com>
22038
22039 PR libitm/55693
22040 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
22041 define ENDFILE_SPEC as TM_DESTRUCTOR.
22042 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
22043
a72d8780 220442013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
22045 Jack Howarth <howarth@bromo.med.uc.edu>
22046 Jakub Jelinek <jakub@redhat.com>
22047
22048 PR sanitizer/55617
22049 * config/darwin.c (cdtor_record): Rename ctor_record.
22050 (sort_cdtor_records): Rename sort_ctor_records.
22051 (finalize_dtors): New routine to sort destructors by
22052 priority before use in assemble_integer.
22053 (machopic_asm_out_destructor): Use finalize_dtors if needed.
22054
b63fe007
UB
220552013-02-11 Uros Bizjak <ubizjak@gmail.com>
22056
22057 PR rtl-optimization/56275
22058 * simplify-rtx.c (avoid_constant_pool_reference): Check that
22059 offset is non-negative and less than cmode size before
22060 calling simplify_subreg.
22061
8e89b5b5
RB
220622013-02-11 Richard Biener <rguenther@suse.de>
22063
22064 PR tree-optimization/56264
22065 * cfgloop.h (fix_loop_structure): Adjust prototype.
22066 * loop-init.c (fix_loop_structure): Return the number of
22067 newly discovered loops.
22068 * tree-cfgcleanup.c (repair_loop_structures): When new loops
22069 are discovered, do a full loop-closed SSA rewrite.
22070
b4a4b56d
RB
220712013-02-11 Richard Biener <rguenther@suse.de>
22072
22073 PR tree-optimization/56273
22074 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
22075 first VRP run.
22076 (check_array_ref): Fix missing newline in dumps.
22077 (search_for_addr_array): Likewise.
22078
0c885229
DE
220792013-02-09 David Edelsohn <dje.gcc@gmail.com>
22080
22081 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
22082
59ac9a55
JJ
220832013-02-09 Jakub Jelinek <jakub@redhat.com>
22084
22085 PR target/56256
22086 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
22087
25bb0bb5
VM
220882013-02-08 Vladimir Makarov <vmakarov@redhat.com>
22089
22090 PR rtl-optimization/56246
0c885229 22091 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
22092 reload pseudo.
22093 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
22094 constraints are satisfied.
22095
a698cc03
JL
220962013-02-08 Jeff Law <law@redhat.com>
22097
22098 PR debug/53948
22099 * emit-rtl.c (reg_is_parm_p): New function.
22100 * regs.h (reg_is_parm_p): New prototype.
22101 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
22102 callee-clobbered registers.
22103
e1122ddd
MM
221042013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
22105
22106 PR target/56043
22107 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
22108 If there is no implicit builtin declaration, just return NULL.
22109
19c5f6e6
UB
221102013-02-08 Uros Bizjak <ubizjak@gmail.com>
22111
22112 * config/i386/sse.md (FMAMODEM): New mode iterator.
22113 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
22114 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
22115
2480f2ca 221162013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 22117
2480f2ca
UB
22118 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
22119 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
22120 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
22121
221222013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
22123
22124 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
22125 (microblaze*-*-elf): Likewise.
22126 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
22127 LINK_SPEC.
22128 * config/microblaze/microblaze-c.c: Add builtin defines for
22129 _LITTLE_ENDIAN and _BIG_ENDIAN.
22130 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
22131 add to TARGET_DEFAULT flags.
76ef61fb 22132 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
22133 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
22134 * config/microblaze/microblaze.md: Update extendsidi2 and
22135 movdi_internal instructions to use low-order / high-order reg
22136 print_operands.
22137 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
22138 options and inversemask / mask of LITTLE_ENDIAN.
22139 * config/microblaze/t-microblaze: Expand multilib options to
22140 include mlittle-endian (le) and update exceptions patterns.
22141
600a5961
JJ
221422013-02-08 Jakub Jelinek <jakub@redhat.com>
22143
5df81313
JJ
22144 PR rtl-optimization/56195
22145 * lra-constraints.c (get_reload_reg): Don't reuse regs
22146 if they have smaller mode than requested, if they have
22147 wider mode than requested, try to return a SUBREG.
22148
600a5961
JJ
22149 PR tree-optimization/56250
22150 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
22151 if type is unsigned and code isn't MULT_EXPR.
22152
ff544649
GJL
221532013-02-08 Georg-Johann Lay <avr@gjlay.de>
22154
22155 PR tree-optimization/56064
22156 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
22157 bits according to mode.
22158 * fixed-value.h (fixed_from_double_int)
22159 (const_fixed_from_double_int): Adjust comments.
22160
e45cde98
RB
221612013-02-08 Richard Biener <rguenther@suse.de>
22162
22163 PR lto/56231
22164 * lto-streamer.h (struct data_in): Remove current_file, current_line
22165 and current_col members.
22166 * lto-streamer-out.c (lto_output_location): Stream changed bits
22167 en-block for efficiency.
22168 * lto-streamer-in.c (clear_line_info): Remove.
22169 (lto_input_location): Cache current file, line and column
22170 globally via local statics. Read changed bits en-block.
22171 (input_function): Do not call clear_line_info.
22172 (lto_read_body): Likewise.
22173 (lto_input_toplevel_asms): Likewise.
22174
c1ca73d8
MM
221752013-02-08 Michael Matz <matz@suse.de>
22176
22177 PR tree-optimization/52448
22178 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
22179 (nt_call_phase): New static.
22180 (add_or_mark_expr): Only mark accesses with newer phase than any
22181 call seen.
22182 (nonfreeing_call_p): New.
22183 (nt_init_block): Update nt_call_phase, mark blocks as visited.
22184 (nt_fini_block): Keep blocks marked as visited.
22185 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
22186
57548aa2
RB
221872013-02-08 Richard Biener <rguenther@suse.de>
22188
22189 * ira.c (ira): Free broken dominator information.
22190
8e10366f
UB
221912013-02-08 Uros Bizjak <ubizjak@gmail.com>
22192
22193 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
22194
f64fb0fa
MP
221952013-02-08 Marek Polacek <polacek@redhat.com>
22196
8e10366f 22197 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 22198
0375167b
RB
221992013-02-08 Richard Biener <rguenther@suse.de>
22200
22201 PR middle-end/56181
22202 * cfgloop.h (flow_loops_find): Adjust.
22203 (bb_loop_header_p): Declare.
22204 * cfgloop.c (bb_loop_header_p): New function split out from ...
22205 (flow_loops_find): ... here. Adjust function signature,
22206 support incremental loop structure update.
22207 (verify_loop_structure): Cleanup. Verify a loop is a loop.
22208 * cfgloopmanip.c (fix_loop_structure): Move ...
22209 * loop-init.c (fix_loop_structure): ... here.
22210 (apply_loop_flags): Split out from ...
22211 (loop_optimizer_init): ... here.
22212 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
22213 in incremental mode, only remove dead loops here.
22214
85d768f3
GJL
222152013-02-08 Georg-Johann Lay <avr@gjlay.de>
22216
22217 PR target/54222
22218 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
22219 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
22220 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
22221 (*round<mode>3.libgcc): New insns for fixed-modes.
22222 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
22223 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
22224 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
22225 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
22226 implementations. Define to __builtin_avr_absFX,
22227 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
22228 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
22229 __builtin_avr_countlsFX, respectively.
22230 * config/avr/avr-c.c (target.h): Include it.
22231 (enum avr_builtin_id): New enum.
22232 (avr_resolve_overloaded_builtin): New static function.
22233 (avr_register_target_pragmas): Use it to set
22234 targetm.resolve_overloaded_builtin.
22235 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
22236 tree nodes used by DEF_BUILTIN.
22237 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
22238 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
22239 <AVR_BUILTIN_xxBITS>: Same.
22240
661bc682
RB
222412013-02-08 Richard Biener <rguenther@suse.de>
22242
22243 * cfgloop.c (verify_loop_structure): Properly handle
22244 a loop exiting to another loop header.
22245 * ira-int.h (ira_loops): Remove.
22246 * ira.c (ira_loops): Remove.
22247 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
22248 (do_reload): Use loop_optimizer_finalize.
22249 * ira-build.c (create_loop_tree_nodes): Use get_loops and
22250 number_of_loops to access the loop tree.
22251 (more_one_region_p): Likewise.
22252 (finish_loop_tree_nodes): Likewise.
22253 (rebuild_regno_allocno_maps): Likewise.
22254 (mark_loops_for_removal): Likewise.
22255 (mark_all_loops_for_removal): Likewise.
22256 (remove_unnecessary_regions): Likewise.
22257 (ira_build): Likewise.
22258 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
22259
0d5049b2
RB
222602013-02-08 Richard Biener <rguenther@suse.de>
22261
22262 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
22263 * ipa-pure-const.c (analyze_function): Avoid calling
22264 mark_irreducible_loops twice.
8e10366f 22265 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 22266
499f32e8
DM
222672013-02-07 David S. Miller <davem@davemloft.net>
22268
22269 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
22270 on 'reg'.
22271 * var-tracking.c (vt_add_function_parameter): Test the presence of
22272 HAVE_window_save properly and do not remap argument registers when
22273 we have a leaf function.
22274
6edc3e32
UB
222752013-02-07 Uros Bizjak <ubizjak@gmail.com>
22276
22277 PR bootstrap/56227
22278 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
22279 instead of "ll".
22280 * config/i386/i386.c (ix86_print_operand): Ditto.
22281
5306401f
VM
222822013-02-07 Vladimir Makarov <vmakarov@redhat.com>
22283
6edc3e32 22284 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 22285
027ece11
VM
222862013-02-07 Vladimir Makarov <vmakarov@redhat.com>
22287
22288 PR rtl-optimization/56225
22289 * lra-constraints.c (process_alt_operands): Check that reload hard
22290 reg can hold value for strict_low_part.
22291
f980dfdb
JJ
222922013-02-07 Jakub Jelinek <jakub@redhat.com>
22293
22294 PR debug/56154
22295 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
22296 dwarf2out_end_function.
22297 (in_first_function_p, maybe_at_text_label_p,
22298 first_loclabel_num_not_at_text_label): New variables.
22299 (dwarf2out_var_location): In the first function find out
6edc3e32 22300 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
22301 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
22302 functions.
22303
73dd3123
EB
223042013-02-07 Eric Botcazou <ebotcazou@adacore.com>
22305
22306 PR rtl-optimization/56178
22307 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
22308 SUBREG of a register. Tidy up related block of code.
22309 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
22310 note if the source is a register or a SUBREG of a register.
22311
e3936f47
JJ
223122013-02-07 Jakub Jelinek <jakub@redhat.com>
22313
22314 PR target/56228
22315 * config/rs6000/rs6000.md (ptrm): New mode attr.
22316 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
22317 call_value_indirect_aix<pttrsize>,
22318 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
22319 m in constraints.
22320
d96d674b
MH
223212013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22322
22323 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
22324 if -bnortl. Convert to strcmp and strncmp.
22325
921f2dee
AM
223262013-02-07 Alan Modra <amodra@gmail.com>
22327
22328 PR target/54009
22329 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
22330 addresses won't wrap when offsetting.
22331 (rs6000_secondary_reload): Provide secondary reloads needed for
22332 wrapping LO_SUM addresses.
22333
d09c7dba
TS
223342013-02-06 Thomas Schwinge <thomas@codesourcery.com>
22335
22336 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
22337 MACH, just __MACH__.
22338
a44bbd48
RB
223392013-02-06 Richard Biener <rguenther@suse.de>
22340
22341 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
22342 instead of calling fix_loop_structure.
22343
6d840d99
JJ
223442013-02-06 Jakub Jelinek <jakub@redhat.com>
22345
22346 PR middle-end/56217
22347 * omp-low.c (use_pointer_for_field): Return false if
22348 lower_send_shared_vars doesn't generate any copy-out code.
22349
0f33baa9
TV
223502013-02-06 Tom de Vries <tom@codesourcery.com>
22351
22352 PR rtl-optimization/56131
22353 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
22354 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
22355 of the label is NULL. Add comment.
22356
11f1e3ab
JJ
223572013-02-05 Jakub Jelinek <jakub@redhat.com>
22358
31502f9f
JJ
22359 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
22360
a74db9bd
JJ
22361 PR sanitizer/55374
22362 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
22363 (STATIC_LIBTSAN_LIBS): Likewise.
22364 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
22365 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
22366 is defined, don't add anything else beyond that.
22367 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
22368 (LINK_COMMAND_SPEC): Use them.
22369
11f1e3ab
JJ
22370 PR tree-optimization/56205
22371 * tree-stdarg.c (check_all_va_list_escapes): Return true if
22372 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
22373 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
22374
14ac6aa2
RB
223752013-02-05 Richard Biener <rguenther@suse.de>
22376
22377 PR tree-optimization/53342
22378 PR tree-optimization/53185
22379 * tree-vectorizer.h (vect_check_strided_load): Remove.
22380 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
22381 not disallow peeling for vectorized strided loads.
22382 (vect_check_strided_load): Make static and simplify.
22383 (vect_analyze_data_refs): Adjust.
22384 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
22385 correctly when vectorizing strided loads.
22386
6f22445a
RB
223872013-02-05 Richard Biener <rguenther@suse.de>
22388
22389 * doc/install.texi: Refer to ISL, not PPL.
22390
39f9719e
JH
223912013-02-05 Jan Hubicka <jh@suse.cz>
22392
ec4224ac
JH
22393 PR tree-optimization/55789
22394 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
22395
223962013-02-05 Jan Hubicka <jh@suse.cz>
22397
22398 PR tree-optimization/55789
39f9719e
JH
22399 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
22400 the dead call anyway.
22401
956d3b33
EB
224022013-02-05 Eric Botcazou <ebotcazou@adacore.com>
22403
22404 PR sanitizer/55374
22405 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
22406
224072013-02-04 Alexander Potapenko <glider@google.com>
22408 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
22409 Jakub Jelinek <jakub@redhat.com>
22410
22411 PR sanitizer/55617
22412 * config/darwin.c (sort_ctor_records): Stabilized qsort
22413 on constructor priority by using original position.
22414 (finalize_ctors): New routine to sort constructors by
22415 priority before use in assemble_integer.
22416 (machopic_asm_out_constructor): Use finalize_ctors if needed.
22417
7ac3af38
JJ
224182013-02-04 Jakub Jelinek <jakub@redhat.com>
22419
22420 PR libstdc++/54314
22421 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
22422 about visibility on artificial decls.
22423 * config/sol2.c (solaris_assemble_visibility): Likewise.
22424
152689dc
KT
224252013-02-04 Kai Tietz <ktietz@redhat.com>
22426
22427 PR target/56186
22428 * config/i386/i386.c (function_value_ms_64): Add additional valtype
22429 argument and improve checking of return-argument types for 16-byte
22430 modes.
22431 (ix86_function_value_1): Add additional valtype argument on call
22432 of function_value_64.
22433 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
22434 handling infunction_value_64 function.
22435
2b5987b5
MGD
224362013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
22437
7ac3af38 22438 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 22439
14597080
RB
224402013-02-04 Richard Biener <rguenther@suse.de>
22441
22442 PR tree-optimization/56188
22443 * tree-ssa-structalias.c (label_visit): Consider case with
22444 initially non-empty points-to set.
22445 (perform_var_substitution): Dump node mapping and clean up.
22446
ed73881e
RG
224472013-02-04 Richard Guenther <rguenther@suse.de>
22448
22449 PR lto/56168
22450 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
22451 node prevail as last resort.
22452 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 22453 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 22454
139a0707
RB
224552013-02-04 Richard Biener <rguenther@suse.de>
22456
22457 PR tree-optimization/56113
22458 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
22459 Merge into ...
22460 (equiv_class_lookup_or_add): ... this.
22461 (label_visit): Adjust and fix error in previous patch.
22462 (perform_var_substitution): Adjust.
22463
50fe8924
OE
224642013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
22465
22466 * config/sh/divtab.c: Fix formatting and comments throughout the file.
22467 * config/sh/sh4-300.md: Likewise.
22468 * config/sh/sh4a.md: Likewise.
22469 * config/sh/constraints.md: Likewise.
22470 * config/sh/sh.md: Likewise.
22471 * config/sh/netbsd-elf.h: Likewise.
22472 * config/sh/predicates.md: Likewise.
22473 * config/sh/sh-protos.h: Likewise.
22474 * config/sh/ushmedia.h: Likewise.
22475 * config/sh/linux.h: Likewise.
22476 * config/sh/sh.c: Likewise.
22477 * config/sh/superh.h: Likewise.
22478 * config/sh/elf.h: Likewise.
22479 * config/sh/sh4.md: Likewise.
22480 * config/sh/sh.h: Likewise.
22481
1a04ac2b
JDA
224822013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22483
22484 * config/pa/constraints.md: Adjust unused letters. Change "T"
22485 constraint to match_test floating_point_store_memory_operand().
22486 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
22487 (base14_operand): New.
22488 (floating_point_store_memory_operand): New.
22489 (integer_store_memory_operand): Revise to use base14_operand and
22490 reg_plus_base_memory_operand.
22491 (move_dest_operand): Allow symbolic_memory_operands.
22492 (symbolic_memory_operand): Check for LO_SOM.
22493 (symbolic_operand): Change default case to break.
22494 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
22495 CONST_DOUBLE values to be reloaded by putting them into memory when
22496 the destination is a floating point register.
22497 (movdf): Remove code to handle CONST_DOUBLE.
22498 (movsf): Likewise.
22499 (reload_indf_r1): New.
22500 (reload_insf_r1): New.
22501 Consistently use "Q" and "T" constraints with integer and floating
22502 point move instructions, respectively.
22503 (movdi): Remove FAIL.
22504 Change predicate for source operand unamed DImode move from
22505 general_operand to move_src_operand.
22506 (umulsidi3): Change predicate for destination operand to
22507 register_operand.
22508 Likewise for similar unamed patterns.
22509 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
22510 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
22511 (hppa_legitimize_address): Simplify mask calculation.
22512 (pa_emit_move_sequence): Revised handling of secondary reloads from
22513 REG+D addresses for floating point loads and stores. Directly handle
22514 loading CONST0_RTX (mode) to a floating point register.
22515 (pa_secondary_reload): Handle reloading DF and SFmode constant values
22516 to floating point registers. Don't restrict secondary reloads to
22517 floating point registers to integer modes. Revise some comments and
22518 cleanup some code.
22519 (TARGET_LEGITIMATE_ADDRESS_P): Define.
22520 (pa_legitimate_address_p): New.
22521 (pa_legitimize_reload_address): New.
22522 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
22523 (STRICT_REG_OK_FOR_BASE_P): New.
22524 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
22525 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
22526
3bf65591
DE
225272013-02-03 David Edelsohn <dje.gcc@gmail.com>
22528 Andrew Dixie <andrewd@gentrack.com>
22529
22530 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
22531 flag set.
22532
c0a8a3e6
RS
225332013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
22534
22535 * expmed.c (extract_bit_field_1): Pass the full width of the
22536 structure to get_best_reg_extraction_insn.
22537
99113dff
DE
225382013-02-01 David Edelsohn <dje.gcc@gmail.com>
22539
22540 PR target/54601
22541 * configure.ac (use_cxa_atexit): Add AIX.
22542 * configure: Regenerate.
22543
22544 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
22545
ddd84654
JJ
225462013-02-01 Jakub Jelinek <jakub@redhat.com>
22547
22548 PR debug/54793
22549 * final.c (need_profile_function): New variable.
22550 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
22551 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
22552 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
22553 notes, targetm.asm_out.function_prologue doesn't emit anything,
22554 HAVE_prologue and profiler should be emitted before prologue,
22555 set need_profile_function instead of emitting it.
22556 (final_scan_insn): If need_profile_function, emit
22557 profile_function on the first NOTE_INSN_BASIC_BLOCK or
22558 NOTE_INSN_FUNCTION_BEG note.
22559
225602013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
22561
22562 * config/rs6000/rs6000.md (smulditi3): New.
22563 (umulditi3): New.
22564
ff2a9d88
RH
22565 * config/alpha/alpha.md (umulditi3): New.
22566
14d52b90
DE
225672013-02-01 David Edelsohn <dje.gcc@gmail.com>
22568
22569 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
22570 (ASM_OUTPUT_ALIGNED_LOCAL): New.
22571
8c7ca45c
RB
225722013-02-01 Richard Biener <rguenther@suse.de>
22573
22574 PR tree-optimization/56113
22575 * tree-ssa-structalias.c (label_visit): Reduce work for
22576 single-predecessor nodes.
22577
9f419393
EB
225782013-02-01 Eric Botcazou <ebotcazou@adacore.com>
22579
22580 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
22581 range isn't testing for zero.
22582
c5f4be84
SB
225832013-01-31 Steven Bosscher <steven@gcc.gnu.org>
22584
22585 PR middle-end/56113
22586 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
22587
dbdbd982
NC
225882013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
22589 Nick Clifton <nickc@redhat.com>
22590
22591 * config/v850/constraints.md (Q): Define as a memory constraint.
22592 * config/v850/predicates.md (label_ref_operand): New predicate.
22593 (e3v5_shift_operand): New predicate.
22594 (ior_operator): New predicate.
22595 * config/v850/t-v850: Add e3v5 multilib.
22596 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
22597 (v850_gen_movdi): Prototype.
22598 * config/v850/v850.c: Add support for e3v5 architecture.
22599 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
22600 TARGET_V850E_UP.
22601 (construct_save_jarl): Add e3v5 long JARL support.
22602 (v850_adjust_insn_length): New function. Adjust length of call
22603 insns when using e3v5 instructions.
22604 (v850_gen_movdi): New function: Generate instructions to move a
22605 DImode value.
22606 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
22607 (CPP_SPEC): Define __v850e3v5__ as appropriate.
22608 (TARGET_USE_FPU): Enable for e3v5.
22609 (CONST_OK_FOR_W): New macro.
22610 (ADJUST_INSN_LENGTH): Define.
22611 * config/v850/v850.md (UNSPEC_LOOP): Define.
22612 (attr cpu): Add v850e3v5.
22613 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
22614 (movdi): New pattern.
22615 (movdi_internal): New pattern.
22616 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
22617 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
22618 (cstoresf4): Likewise.
22619 (cstoredf4): Likewise.
22620 (insv): New pattern.
22621 (rotlso3_a): New pattern.
22622 (rotlsi3_b): New pattern
22623 (rotlsi3_v850e3v5): New pattern.
22624 (doloop_begin): New pattern.
22625 (fix_loop_counter): New pattern.
22626 (doloop_end): New pattern.
22627 (branch_normal): Add e3v5 long branch support.
22628 (branch_invert): Likewise.
22629 (branch_z_normal): Likewise.
22630 (branch_z_invert): Likewise.
22631 (branch_nz_normal): Likewise.
22632 (branch_nz_invert): Likewise.
22633 (call_internal_short): Add e3v5 register-indirect JARL support.
22634 (call_internal_long): Likewise.
22635 (call_value_internal_short): Likewise.
22636 (call_value_internal_long): Likewise.
22637 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
22638 (mloop): New option.
22639 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 22640 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 22641
73861a41
PK
226422013-01-31 Paul Koning <ni1d@arrl.net>
22643
22644 PR debug/55059
22645 PR debug/54508
22646 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
22647 children if parent is a class.
22648 (prune_unused_types_prune): Don't add DW_AT_declaration.
22649
e44978dc
RB
226502013-01-31 Richard Biener <rguenther@suse.de>
22651
22652 PR tree-optimization/56157
22653 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
22654 match up operand with SLP child.
22655
90b10dec
JM
226562013-01-31 Jason Merrill <jason@redhat.com>
22657
04d2dadd 22658 PR debug/54410
90b10dec
JM
22659 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
22660 parameters the first time.
22661 (gen_scheduled_generic_parms_dies): Check completeness here.
22662
6e616110
RB
226632013-01-31 Richard Biener <rguenther@suse.de>
22664
22665 PR middle-end/53073
22666 * common.opt (faggressive-loop-optimizations): New flag,
22667 enabled by default.
22668 * doc/invoke.texi (faggressive-loop-optimizations): Document.
22669 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
22670 infer_loop_bounds_from_undefined by it.
22671
636f59cf
RB
226722013-01-31 Richard Biener <rguenther@suse.de>
22673
22674 PR tree-optimization/56150
22675 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
22676 visit virtual operands.
22677 (find_uses_to_rename_bb): Likewise.
22678
226792013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
22680
22681 PR tree-optimization/56150
22682 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
22683 mixed store non-store stmts.
22684
32887460
JJ
226852013-01-30 Jakub Jelinek <jakub@redhat.com>
22686
e60e09a0
JJ
22687 PR sanitizer/55374
22688 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
22689 LIBASAN_EARLY_SPEC is defined.
22690 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
22691 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
22692 before %o.
22693 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
22694
32887460
JJ
22695 PR c++/55742
22696 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
22697 invalid args instead of ICEing on it.
22698 (ix86_valid_target_attribute_tree): Return error_mark_node if
22699 ix86_valid_target_attribute_inner_p failed.
22700 (ix86_valid_target_attribute_p): Return false only if
22701 ix86_valid_target_attribute_tree returned error_mark_node. Allow
22702 target("default") attribute.
22703 (sorted_attr_string): Change argument from const char * to tree,
22704 merge in all target attribute arguments rather than just one.
22705 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
22706 instead of free. Avoid using strcat.
22707 (ix86_mangle_function_version_assembler_name): Mangle
22708 target("default") as if no target attribute is present. Adjust
22709 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
22710 instead of xmalloc and XDELETEVEC instead of free.
22711 (ix86_function_versions): Don't return true if one of the decls
22712 doesn't have target attribute. If they don't and one of the decls
22713 is DECL_FUNCTION_VERSIONED, report an error. Adjust
22714 sorted_attr_string caller. Use XDELETEVEC instead of free.
22715 (ix86_supports_function_versions): Remove.
22716 (make_name): Fix up formatting.
22717 (make_dispatcher_decl): Remove resolver_name and its initialization.
22718 Avoid leaking memory.
22719 (is_function_default_version): Return true if there is
22720 target("default") attribute rather than no target attribute at all.
22721 (make_resolver_func): Avoid leaking memory.
22722 (ix86_generate_version_dispatcher_body): Likewise.
22723 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
22724 * target.def (supports_function_versions): Remove.
22725 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
22726 * doc/tm.texi: Regenerated.
22727
73cca0cc
VM
227282013-01-30 Vladimir Makarov <vmakarov@redhat.com>
22729
22730 PR rtl-optimization/56144
22731 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
22732 for values with side effects.
22733
11452e7b
RB
227342013-01-30 Richard Biener <rguenther@suse.de>
22735
22736 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
22737 (sparseset_pop): Likewise.
22738 * cfganal.c (compute_idf): Likewise. Increase work-stack size
22739 to be able to use quick_push in the worker loop.
22740
01cb1ef5
MP
227412013-01-30 Marek Polacek <polacek@redhat.com>
22742
22743 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
22744
e892936e
RB
227452013-01-30 Richard Biener <rguenther@suse.de>
22746
22747 PR lto/56147
6edc3e32 22748 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 22749
cc06c01d
GJL
227502013-01-30 Georg-Johann Lay <avr@gjlay.de>
22751
22752 PR tree-optimization/56064
22753 * fixed-value.c (fixed_from_double_int): New function.
22754 * fixed-value.h (fixed_from_double_int): New prototype.
22755 (const_fixed_from_double_int): New static inline function.
22756 * fold-const.c (native_interpret_fixed): New static function.
22757 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
22758 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
22759 (native_encode_fixed): New static function.
22760 (native_encode_expr) <FIXED_CST>: Use it.
22761 (native_interpret_int): Move double_int worker code to...
22762 * double-int.c (double_int::from_buffer): ...this new static method.
22763 * double-int.h (double_int::from_buffer): Prototype it.
22764
d394a308
RB
227652013-01-30 Richard Biener <rguenther@suse.de>
22766
22767 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
22768 New pointer-map and obstack.
22769 (init_alias_vars): Allocate pointer-map and obstack.
22770 (delete_points_to_sets): Free them.
22771 (find_what_var_points_to): Cache result.
22772 (find_what_p_points_to): Adjust for changed interface of
22773 find_what_var_points_to.
22774 (compute_points_to_sets): Likewise.
22775 (ipa_pta_execute): Likewise.
22776
20804d96
RO
227772013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22778
22779 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
22780 * configure: Regenerate.
22781 * config.in: Regenerate.
22782 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
22783 #nobits/#progbits if supported.
22784
a7ad88a2
OE
227852013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
22786
22787 PR target/56121
22788 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
22789 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
22790 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
22791
7af79f92
GY
227922013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
22793
91bfca59
OE
22794 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
22795 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 22796
753bcf7b
GY
227972013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
22798
91bfca59
OE
22799 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
22800 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 22801
8cbc2ea8
GY
228022013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
22803
91bfca59
OE
22804 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
22805 declaration.
22806 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
22807 * config/arm/cortex-a7.md: New bypasses using
22808 arm_mac_accumulator_is_result.
8cbc2ea8 22809
697a3325
GY
228102013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
22811
91bfca59 22812 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 22813 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
22814 (cortex_a7_fpfmad): New reservation.
22815 (cortex_a7_fpmacs): Use ffmas and update required units.
22816 (cortex_a7_fpmuld): Update required units and latency.
22817 (cortex_a7_fpmacd): Likewise.
22818 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
22819 (cortex_a7_neon). Likewise.
22820 (bypass) Update participating units.
697a3325 22821
29637783
GY
228222013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
22823
91bfca59
OE
22824 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
22825 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
22826 from fmac to ffma.
22827 * config/arm/vfp11.md (vfp_farith): Use ffmas.
22828 (vfp_fmul): Use ffmad.
22829 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
22830 (cortex_r4_fmacd): Use ffmad.
22831 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
22832 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
22833 (cortex_a9_fmacd): Use ffmad.
22834 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
22835 (cortex_a8_vfp_macd): Use ffmad.
22836 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
22837 (cortex_a5_fpmacd): Use ffmad.
22838 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
22839 (cortex_a15_vfp_macd): Use ffmad.
22840 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 22841
2ee8a2d5
JM
228422013-01-29 Jason Merrill <jason@redhat.com>
22843
22844 PR libstdc++/54314
22845 * varasm.c (default_assemble_visibility): Don't warn about
22846 visibility on artificial decls.
22847
78d087bc
RB
228482013-01-29 Richard Biener <rguenther@suse.de>
22849
22850 PR tree-optimization/56113
22851 * tree-ssa-structalias.c (equiv_class_lookup): Also return
22852 the bitmap leader.
22853 (label_visit): Free duplicate bitmaps and record the leader instead.
22854 (perform_var_substitution): Adjust.
22855
83ba4d6f
RB
228562013-01-29 Richard Biener <rguenther@suse.de>
22857
22858 PR tree-optimization/55270
22859 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
22860 the CFG, schedule loops for fixup.
22861
66dfe13f
NC
228622013-01-29 Nick Clifton <nickc@redhat.com>
22863
22864 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
22865 SP_REG.
22866
5a579c3b
LE
228672013-01-28 Leif Ekblad <leif@rdos.net>
22868
22869 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
22870 * config/i386/i386.h (TARGET_RDOS): New macro.
22871 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
22872 * config/i386/i386.c (ix86_option_override_internal): For 64bit
22873 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
22874 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
22875 DEFAULT_LARGE_SECTION_THRESHOLD.
22876 * config/i386/i386.md (R14_REG, R15_REG): New constants.
22877 * config/i386/rdos.h: New file.
22878 * config/i386/rdos64.h: New file.
22879
51e44392
BS
228802013-01-28 Bernd Schmidt <bernds@codesourcery.com>
22881
22882 PR other/54814
22883 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
22884 TEST_HARD_REG_BIT.
22885
db1fb332
JJ
228862013-01-28 Jakub Jelinek <jakub@redhat.com>
22887
22888 PR rtl-optimization/56117
22889 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
22890 call cselib_lookup_from_insn on the MEM before calling
22891 add_insn_mem_dependence.
22892
16917761
RB
228932013-01-28 Richard Biener <rguenther@suse.de>
22894
22895 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
22896 to a stmt that didn't have one.
22897 (copy_phis_for_bb): Likewise for PHI arguments.
22898 (copy_debug_stmt): Likewise for debug stmts.
22899
b9fc0497
RB
229002013-01-28 Richard Biener <rguenther@suse.de>
22901
22902 PR tree-optimization/56034
6edc3e32 22903 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
22904 (partition_builtin_p): Adjust.
22905 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
22906 it is the last partition.
22907 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
22908 up the vertex for the definition.
22909 (classify_partition): Classify whether a partition is a
22910 PKIND_REDUCTION, thus has uses outside of the loop.
22911 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
22912 Merge all PKIND_REDUCTION partitions into the last partition.
22913 (tree_loop_distribution): Seed partitions from reductions as well.
22914
aa710d25
JJ
229152013-01-28 Jakub Jelinek <jakub@redhat.com>
22916
0bfbca58
JJ
22917 PR tree-optimization/56125
22918 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
22919 pow(x,c) into sqrt(x) * powi(x, n/2) or
22920 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
22921 optimizing for size.
22922 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
22923 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
22924 integer.
22925
aa710d25
JJ
22926 PR tree-optimization/56094
22927 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
22928 to UNKNOWN_LOCATION while gimplifying expr.
22929
77dc5297
UB
229302013-01-27 Uros Bizjak <ubizjak@gmail.com>
22931
22932 PR target/56114
22933 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
22934 operand 0 in movabs insn template for -masm=intel asm alternative.
22935 (*movabs<mode>_2): Ditto for operand 1.
22936
0bfbca58 229372013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
22938
22939 PR target/54663
22940 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
22941 of microblaze-c.o
22942
0bfbca58 229432013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
22944
22945 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
22946 tm_file.
22947
0bfbca58 229482013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
22949
22950 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
22951 Undef to avoid warning.
22952
478f60f9
MH
229532013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22954
22955 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
22956 * configure: Regenerate.
22957
d7fa6ee2
JJ
229582013-01-25 Jakub Jelinek <jakub@redhat.com>
22959
22960 PR tree-optimization/56098
22961 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
22962 for stmts with volatile ops.
22963 (cond_store_replacement): Don't optimize if assign has volatile ops.
22964 (cond_if_else_store_replacement_1): Don't optimize if either
22965 then_assign or else_assign have volatile ops.
22966 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
22967 volatile ops.
22968
f8fe87bd
GJL
229692013-01-25 Georg-Johann Lay <avr@gjlay.de>
22970
22971 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
22972
28398d0d
GJL
229732013-01-25 Georg-Johann Lay <avr@gjlay.de>
22974
22975 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
22976 missing ':' in asm example.
22977
b7d7d917
TB
229782013-01-25 Tejas Belagod <tejas.belagod@arm.com>
22979
22980 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
22981 entries into lane and laneq entries.
77dc5297
UB
22982 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
22983 Remove AdvSIMD scalar modes.
b7d7d917
TB
22984 (aarch64_sq<r>dmulh_laneq<mode>): New.
22985 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
22986 modes.
22987 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
22988 builtin implementations to relfect changes in RTL in aarch64-simd.md.
22989 * config/aarch64/iterators.md (VCOND): New.
22990 (VCONQ): New.
22991
556f9906
GJL
229922013-01-25 Georg-Johann Lay <avr@gjlay.de>
22993
22994 PR target/54222
22995 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
22996 Add NULL LIBNAME argument to existing definitions.
22997 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
22998 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
22999 * config/avr/avr.c (DEF_BUILTIN): Same.
23000 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
23001 (avr_expand_builtin): Expand to a vanilla call if a libgcc
23002 implementation is available (DECL_ASSEMBLER_NAME is set).
23003 (avr_fold_absfx): New static function.
23004 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
23005 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
23006 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
23007 AVR_BUILTIN_ABSLLK.
23008 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
23009 (abshk, absk, abslk, absllk): Provide as static inline functions.
23010
1f546bbb
MP
230112013-01-25 Marek Polacek <polacek@redhat.com>
23012
23013 PR tree-optimization/56035
23014 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
23015
7e184bd7
UB
230162012-01-24 Uros Bizjak <ubizjak@gmail.com>
23017
23018 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
23019 (*movtf_internal_rex64): Add (!o,C) alternative
23020 (*movxf_internal_rex64): Ditto.
23021 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
23022
f5ba49ac
SM
230232013-01-24 Shenghou Ma <minux.ma@gmail.com>
23024
23025 * doc/invoke.texi: fix typo.
23026 * doc/objc.texi: fix typo.
23027
a6343728
RS
230282013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
23029
23030 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
23031 for the first two alternatives.
23032
cd030c07
DN
230332013-01-24 Diego Novillo <dnovillo@google.com>
23034
77dc5297 23035 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
23036 (ggc-zone.o): Remove.
23037 * configure.ac: Remove option --with-gc.
23038 * configure: Re-generate.
23039 * doc/install.texi: Remove documentation for --with-gc.
23040 * gengtype.c (write_enum_defn): Remove. Update all users.
23041 (write_Types_process_field): Remove generation of gt_e_* argument.
23042 (output_type_enum): Remove. Update all users.
23043 (write_enum_defn): Remove. Update all users.
23044 (enum alloc_zone): Remove. Update all users.
77dc5297 23045 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
23046 * ggc-common.c (ggc_splay_alloc): Remove first argument.
23047 Update all callers.
23048 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 23049 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
23050 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
23051 Update all users.
aaf1e810 23052 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
23053 (struct alloc_zone): Remove.
23054 (ggc_internal_alloc_zone_stat): Remove.
23055 (ggc_internal_cleared_alloc_zone_stat): Remove.
23056 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
23057 (ggc_pch_count_object): Remove last argument. Update all users.
23058 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
23059 (struct alloc_zone): Remove.
23060 * ggc-zone.c: Remove.
77dc5297 23061 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
23062 (struct alloc_zone): Remove.
23063 (ggc_alloc_typed_stat): Remove.
23064 (ggc_alloc_typed): Remove.
23065 (ggc_splay_alloc): Remove first argument.
23066 (rtl_zone): Remove. Update all users.
23067 (tree_zone): Remove. Update all users.
23068 (tree_id_zone): Remove. Update all users.
23069 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 23070 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 23071 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 23072 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 23073
a861ffa4
GJL
230742013-01-24 Georg-Johann Lay <avr@gjlay.de>
23075
23076 * config/avr/avr.c (avr_out_fract): Make register numbers that
23077 might be outside of source operand signed.
23078
593c0ddd
UB
230792013-01-24 Uros Bizjak <ubizjak@gmail.com>
23080
23081 * config/i386/constraints.md (Yf): New constraint.
23082 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
23083 of f constraint to conditionaly disable x87 register preferences.
23084 (*movdf_internal): Ditto.
23085 (*movsf_internal): Ditto.
23086
e86c0101
SB
230872013-01-24 Steven Bosscher <steven@gcc.gnu.org>
23088
23089 PR inline-asm/55934
23090 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
23091 that have operands with impossible constraints.
23092 Add a FIXME for a speed-up opportunity.
23093 * lra-constraints.c (process_alt_operands): Verify that a class
23094 selected from constraints on asms is valid for the operand mode.
23095 (curr_insn_transform): Remove incorrect comment.
23096
f6fee35f
DE
230972013-01-23 David Edelsohn <dje.gcc@gmail.com>
23098
23099 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
23100 TOC operand is a valid symbol ref in the constant pool.
23101
231022013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 23103
aaf1e810 23104 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 23105
dc62d7d1
GJL
231062013-01-23 Georg-Johann Lay <avr@gjlay.de>
23107
23108 PR target/54222
23109 * config/avr/stdfix.h: New file.
23110 * t-avr (stdfix-gcc.h): New rule to build it.
23111 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
23112
2660d12d
KS
231132013-01-23 Kostya Serebryany <kcc@google.com>
23114
77dc5297
UB
23115 * config/darwin.h: remove dependency on
23116 CoreFoundation (asan on Mac OS).
2660d12d 23117
a70418fc
JJ
231182013-01-23 Jakub Jelinek <jakub@redhat.com>
23119
23120 PR target/49069
23121 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
23122 instead of cmpdi_operand for first comparison operand.
23123 Don't assert that comparison operands aren't both constants.
23124
47876a2a
JW
231252013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
23126
23127 * doc/install.texi (Downloading the Source): Update references to
23128 downloading separate components.
23129
231302013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
23131
23132 * doc/extend.texi (__int128): Improve grammar.
23133
47876a2a 231342013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
23135
23136 PR target/56028
23137 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
23138 alternative to (o,r).
23139 (*movdi_internal_rex64): Remove (!o,n) alternative.
23140 (DImode immediate->memory splitter): Remove.
23141 (DImode immediate->memory peephole2): Remove.
23142 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
23143 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
23144 alternative to (!o,*r).
23145 (*movtf_internal_sse): New pattern.
23146 (*movxf_internal_rex64): New pattern.
23147 (*movxf_internal): Disable for TARGET_64BIT.
23148 (*movdf_internal_rex64): Remove (!o,F) alternative.
23149
3a984f10
JJ
231502013-01-22 Jakub Jelinek <jakub@redhat.com>
23151
502498d5
JJ
23152 PR middle-end/56074
23153 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
23154 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
23155 * tree-vect-loop-manip.c (find_loop_location): Also ignore
23156 stmt locations where LOCATION_LOCUS of the stmt location is
23157 UNKNOWN_LOCATION or BUILTINS_LOCATION.
23158
3a984f10
JJ
23159 PR target/55686
23160 * config/i386/i386.md (UNSPEC_STOS): New.
23161 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
23162 *strsetqi_1): Add UNSPEC_STOS.
23163
fa817f7f
PC
231642013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
23165
23166 PR c++/56067
23167 * doc/invoke.texi: Remove left over -Wsynth example.
23168
8f498c1b
JJ
231692013-01-21 Jakub Jelinek <jakub@redhat.com>
23170
23171 PR tree-optimization/56051
23172 * fold-const.c (fold_binary_loc): Don't fold
23173 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
23174 a narrowing conversion, or widening conversion from signed
23175 to unsigned.
23176
47876a2a 231772013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
23178
23179 PR rtl-optimization/56023
23180 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
23181 dependent on debug instruction.
23182
5b9db1bc
MJ
231832013-01-21 Martin Jambor <mjambor@suse.cz>
23184
23185 PR middle-end/56022
23186 * function.c (allocate_struct_function): Call
23187 invoke_set_current_function_hook earlier.
23188
e8bb7d68
JJ
231892013-01-21 Jakub Jelinek <jakub@redhat.com>
23190
23191 * reload1.c (init_reload): Only initialize reload_obstack
23192 during the first call.
23193
616a4e32
MP
231942013-01-21 Marek Polacek <polacek@redhat.com>
23195
23196 * cfgloop.c (verify_loop_structure): Fix up grammar.
23197
4401981b
YHH
231982013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
23199
23200 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
23201 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
23202
8e87740b
RR
232032013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23204
23205 PR target/56058
23206 * config/arm/marvell-pj4.md: Update copyright year.
23207 Fix up use of alu to alu_reg and simple_alu_imm.
23208
47876a2a 232092013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
23210
23211 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
23212
89d56d79
VM
232132013-01-20 Vladimir Makarov <vmakarov@redhat.com>
23214
23215 PR target/55433
23216 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 23217 insn for secondary memory move when memory mode should be different.
89d56d79 23218
fe603553
JDA
232192013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23220
23221 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
23222 atomic_storedi_1): New patterns.
23223
01284895
VK
232242013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
23225
23226 btver2 pipeline descriptions.
23227 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
23228 descriptions.
23229 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 23230 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
23231 type attributes.
23232 * config/i386/btver2.md: New file describing btver2 pipelines.
23233
5630e3e1
JL
232342013-01-19 Andrew Pinski <apinski@cavium.com>
23235
23236 PR tree-optimization/52631
23237 * tree-ssa-sccvn (visit_use): Before looking up the original
23238 statement, try looking up the simplified expression.
23239
650ae806
AG
232402013-01-19 Anthony Green <green@moxielogic.com>
23241
23242 * config/moxie/moxie.c (moxie_expand_prologue): Set
23243 current_function_static_stack_size.
23244
e300ec2d
JJ
232452013-01-18 Jakub Jelinek <jakub@redhat.com>
23246
23247 PR tree-optimization/56029
23248 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
23249 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
23250
a3d7af04
SS
232512013-01-18 Sharad Singhai <singhai@google.com>
23252
23253 PR tree-optimization/55995
23254 * dumpfile.c (dump_loc): Print location only if available.
23255 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
23256
66aa7879
VM
232572013-01-18 Vladimir Makarov <vmakarov@redhat.com>
23258
23259 PR target/55433
23260 * lra-constraints.c (curr_insn_transform): Reuse original insn for
23261 secondary memory move.
23262 (inherit_reload_reg): Use rclass instead of cl for
23263 check_secondary_memory_needed_p.
23264
3f0fee7b
JJ
232652013-01-18 Jakub Jelinek <jakub@redhat.com>
23266
23267 PR middle-end/56015
23268 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 23269 the case where writing real complex part of target modifies op1.
3f0fee7b 23270
70c67693
JG
232712013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
23272
23273 * config/aarch64/aarch64-simd.md
23274 (aarch64_vcond_internal<mode>): Handle unordered cases.
23275 * config/aarch64/iterators.md (v_cmp_result): New.
23276
df8de9b3
YHH
232772013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
23278 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23279
23280 * config/arm/marvell-pj4.md: New file.
23281 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
23282 * config/arm/arm.md (generic_sched): Add marvell_pj4.
23283 (generic_vfp): Likewise.
23284 * config/arm/arm-cores.def: Add marvell-pj4.
23285 * config/arm/arm-tune.md: Regenerate.
23286 * config/arm/arm-tables.opt: Regenerate.
23287 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
23288 * doc/invoke.texi: Document marvell-pj4.
23289
be30c356
TB
232902013-01-18 Tejas Belagod <tejas.belagod@arm.com>
23291
23292 * config/aarch64/arm_neon.h: Map scalar types to standard types.
23293
0bfbca58 232942013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
23295
23296 PR debug/54114
23297 PR debug/54402
23298 PR debug/49888
23299 * var-tracking.c (negative_power_of_two_p): New.
23300 (global_get_addr_cache, local_get_addr_cache): New.
23301 (get_addr_from_global_cache, get_addr_from_local_cache): New.
23302 (vt_canonicalize_addr): Rewrite using the above. Adjust the
23303 heading comment.
23304 (vt_stack_offset_p): Remove.
23305 (vt_canon_true_dep): Always canonicalize loc's address.
23306 (clobber_overlapping_mems): Make sure we have a MEM.
23307 (local_get_addr_clear_given_value): New.
23308 (val_reset): Clear local cached entries.
23309 (compute_bb_dataflow): Create and release the local cache.
23310 Disable duplicate MEMs clobbering.
23311 (emit_notes_in_bb): Clobber MEMs likewise.
23312 (vt_emit_notes): Create and release the local cache.
23313 (vt_initialize, vt_finalize): Create and release the global
23314 cache, respectively.
1f6bc337 23315 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 23316
0bfbca58 233172013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
23318
23319 PR libmudflap/53359
23320 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
23321 not found in the symtab.
23322
0bfbca58 233232013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 23324
c350ba53 23325 PR debug/56006
3aa03517
AO
23326 PR rtl-optimization/55547
23327 PR rtl-optimization/53827
23328 PR debug/53671
23329 PR debug/49888
23330 * alias.c (offset_overlap_p): New, factored out of...
23331 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
23332 the conservative special case for symbolic constants. Don't
23333 adjust zero sizes on alignment.
23334
c664546f
JL
233352013-01-18 Bernd Schmidt <bernds@codesourcery.com>
23336
23337 PR rtl-optimization/52573
23338 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
23339 REG_UNUSED for the same register.
23340
1bd3f750
MP
233412013-01-17 Richard Biener <rguenther@suse.de>
23342 Marek Polacek <polacek@redhat.com>
23343
23344 PR rtl-optimization/55833
23345 * loop-unswitch.c (unswitch_loops): Move loop verification...
23346 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
23347 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
23348 Set it to true when we're removing a loop from hierarchy tree in
23349 an irreducible region.
23350 (fix_bb_placements): Adjust caller.
23351 (fix_loop_placements): Likewise.
23352
e52a8b71
GJL
233532013-01-17 Georg-Johann Lay <avr@gjlay.de>
23354
23355 * config/avr/builtins.def (DEF_BUILTIN): Factor out
23356 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
23357 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
23358 Remove ID. Adjust comments.
23359 * config/avr/avr-c.c (avr_builtin_name): Remove.
23360 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
23361 * config/avr/avr.c (avr_tolower): New static function.
23362 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
23363 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
23364 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
23365 default expansion.
23366
8386a7ea
JH
233672013-01-17 Jan Hubicka <jh@suse.cz>
23368
610fb637 23369 PR tree-optimization/55273
8386a7ea
JH
23370 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
23371
47876a2a 233722013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
23373
23374 PR target/55981
23375 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
23376 store through atomic_store<mode>_1.
23377 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
23378
8222c37e
MJ
233792013-01-17 Martin Jambor <mjambor@suse.cz>
23380
23381 PR tree-optimizations/55264
23382 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
23383 for virtual methods.
23384 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
23385 virtual methods before inlining is over.
23386 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
23387 virtual functions.
23388 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
23389 non-virtual.
23390
79f01c76
VM
233912013-01-16 Vladimir Makarov <vmakarov@redhat.com>
23392
23393 PR rtl-optimization/56005
23394 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
23395 pending reads for prefetch.
23396
d0b6bb1b
IB
233972013-01-16 Ian Bolton <ian.bolton@arm.com>
23398
aaf1e810 23399 * config/aarch64/aarch64.md
d0b6bb1b
IB
23400 (*cstoresi_neg_uxtw): New pattern.
23401 (*cmovsi_insn_uxtw): New pattern.
23402 (*<optab>si3_uxtw): New pattern.
23403 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
23404 (*<optab>si3_insn_uxtw): New pattern.
23405 (*bswapsi2_uxtw): New pattern.
23406
cb9cf03b
RB
234072013-01-16 Richard Biener <rguenther@suse.de>
23408
23409 * tree-inline.c (tree_function_versioning): Remove set but
23410 never used variable.
23411
2cfc56b9
RB
234122013-01-16 Richard Biener <rguenther@suse.de>
23413
23414 PR tree-optimization/55964
23415 * tree-flow.h (rename_variables_in_loop): Remove.
23416 (rename_variables_in_bb): Likewise.
23417 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
23418 (copy_loop_before): Adjust and delete update-ssa status.
23419 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 23420 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
23421 (rename_variables_in_loop): Remove.
23422 (slpeel_update_phis_for_duplicate_loop): Likewise.
23423 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
23424 use available cfg machinery instead of duplicating it.
23425 Update PHI nodes and perform poor-mans SSA update here.
23426 (slpeel_tree_peel_loop_to_edge): Adjust.
23427
c25a0c60
RB
234282013-01-16 Richard Biener <rguenther@suse.de>
23429
23430 PR tree-optimization/54767
23431 PR tree-optimization/53465
23432 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
23433 (vrp_visit_phi_node): For PHI arguments coming via backedges
23434 drop all symbolical range information.
23435 (execute_vrp): Compute backedges.
23436
04b535af
RB
234372013-01-16 Richard Biener <rguenther@suse.de>
23438
23439 * doc/install.texi: Update CLooG and ISL requirements to
23440 0.18.0 and 0.11.1.
23441
8b0a1e0b
CB
234422013-01-16 Christian Bruel <christian.bruel@st.com>
23443
23444 PR target/55301
23445 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
23446 (broken_move): Handle UNSPECV_SP_SWITCH_B.
23447 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
23448
234492013-01-16 DJ Delorie <dj@redhat.com>
23450
23451 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
23452 (UNSPECV_SP_SWITCH_E): New.
23453 (sp_switch_1): Change to an unspec.
23454 (sp_switch_2): Change to an unspec. Don't use post-inc when we
23455 replace $r15.
23456
234572013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
23458
23459 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
23460 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
23461 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
23462 (expand_mem_thread_fence): Ditto.
23463 (expand_mem_signal_fence): Ditto.
23464 (expand_atomic_load): Ditto.
23465 (expand_atomic_store): Ditto.
23466
0bfbca58 234672013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
23468
23469 PR rtl-optimization/55547
23470 PR rtl-optimization/53827
23471 PR debug/53671
23472 PR debug/49888
23473 * alias.c (memrefs_conflict_p): Set sizes to negative after
23474 AND adjustments.
23475
305e3ac1
JJ
234762013-01-15 Jakub Jelinek <jakub@redhat.com>
23477
23478 PR target/55940
23479 * function.c (thread_prologue_and_epilogue_insns): Always
23480 add crtl->drap_reg to set_up_by_prologue.set, even if
23481 stack_realign_drap is false.
23482
f78ac4f2
JBG
234832013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
23484
23485 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
23486 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
23487 *call): Fix indention.
23488
a78a8cc4
TV
234892013-01-15 Tom de Vries <tom@codesourcery.com>
23490
23491 PR target/55876
23492 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
23493 Update comment.
23494
0e80383f
VM
234952013-01-15 Vladimir Makarov <vmakarov@redhat.com>
23496
305e3ac1 23497 PR rtl-optimization/55153
0e80383f
VM
23498 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
23499
207b5956
MJ
235002013-01-15 Martin Jambor <mjambor@suse.cz>
23501
23502 PR tree-optimization/55920
23503 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
23504 accesses as grp_to_be_debug_replaced.
23505
a7818b54
JJ
235062013-01-15 Jakub Jelinek <jakub@redhat.com>
23507
23508 PR tree-optimization/55920
23509 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
23510 there is non-useless type conversion needed from debug rhs to lhs,
23511 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
23512
b0fe107e
JM
235132013-01-15 Joseph Myers <joseph@codesourcery.com>
23514 Mikael Pettersson <mikpe@it.uu.se>
23515
23516 PR target/43961
23517 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
23518 Thumb.
23519 (ASM_OUTPUT_CASE_LABEL): Remove.
23520 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
23521 * final.c (shorten_branches): Update alignment of labels before
23522 jump tables if CASE_VECTOR_SHORTEN_MODE.
23523
34ab62ee
RB
235242013-01-15 Richard Biener <rguenther@suse.de>
23525
23526 PR bootstrap/55961
23527 * system.h: Do not include gmp.h for building host tools.
23528
783a3a05
RB
235292013-01-15 Richard Biener <rguenther@suse.de>
23530
23531 PR middle-end/55882
23532 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
23533 account for bitpos when computing alignment.
23534
3a579e09
VY
235352013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
23536
23537 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
23538 (ix86_target_macros_internal): Likewise.
23539
23540 * config/i386/i386.c (m_CORE2I7): Removed.
23541 (m_CORE_HASWELL): New macro.
23542 (m_CORE_ALL): Likewise.
23543 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
23544 (initial_ix86_arch_features): Likewise.
23545 (processor_target_table): Initializations for Core avx2.
23546 (cpu_names): New names "core-avx2".
23547 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
23548 PROCESSOR_CORE_HASWELL.
23549 (ix86_issue_rate): New case.
23550 (ia32_multipass_dfa_lookahead): Likewise.
23551 (ix86_sched_init_global): Likewise.
23552
23553 * config/i386/i386.h (TARGET_HASWELL): New macro.
23554 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
23555 (processor_type): New PROCESSOR_HASWELL.
23556
955f5a07
JJ
235572013-01-15 Jakub Jelinek <jakub@redhat.com>
23558
ff784829
JJ
23559 PR tree-optimization/55955
23560 * tree-vect-loop.c (vectorizable_reduction): Give up early on
23561 *SHIFT_EXPR and *ROTATE_EXPR codes.
23562
955f5a07
JJ
23563 PR tree-optimization/48766
23564 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
23565 -ftrapv disable -fwrapv.
23566
aeb8b4e9
GJL
235672013-01-14 Georg-Johann Lay <avr@gjlay.de>
23568
23569 PR target/55974
23570 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
23571 etc. to 1 and not to __flash.
23572 Use LL suffix for __INT24_MAX__ with -mint8.
23573 Use ULL suffix for __UINT24_MAX__ with -mint8.
23574
1c494c6a
GJL
235752013-01-14 Georg-Johann Lay <avr@gjlay.de>
23576
23577 * config/avr/avr-arch.h
23578 (struct base_arch_s): Use typedef avr_arch_t instead.
23579 (struct arch_info_s): Use typedef avr_arch_info_t instead.
23580 (struct mcu_type_s): Use typedef avr_mcu_t instead.
23581 * config/avr/avr.c: Same.
23582 * config/avr/avr-devices.c: Same.
23583 * config/avr/driver-avr.c: Same.
23584 * config/avr/gen-avr-mmcu-texi.c: Same.
23585 * config/avr/avr-mcus.def: Adjust comment.
23586
a50344cb
TB
235872013-01-14 Tejas Belagod <tejas.belagod@arm.com>
23588
88e784e6
UB
23589 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
23590 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 23591
47876a2a 235922013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
23593 Andi Kleen <ak@linux.intel.com>
23594
23595 PR target/55948
23596 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
23597 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
23598 memmodel flag.
23599
00892272
GJL
236002013-01-14 Georg-Johann Lay <avr@gjlay.de>
23601
23602 * config/avr/avr-stdint.h: Remove trailing blanks.
23603 * config/avr/avr-log.h: Same.
23604 * config/avr/avr-arch.h: Same.
23605 * config/avr/avr-devices.c: Same.
23606 * config/avr/avr-dimode.md: Same.
23607 * config/avr/predicates.md: Same.
23608 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 23609
00892272
GJL
23610 * config/avr/avr-protos.h: Same. And:
23611 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
23612 (init_cumulative_args): Rename to avr_init_cumulative_args.
23613 (expand_prologue): Rename to avr_expand_prologue.
23614 (expand_epilogue): Rename to avr_expand_epilogue.
23615 (adjust_insn_length): Rename to avr_adjust_insn_length.
23616 (notice_update_cc): Rename to avr_notice_update_cc.
23617 (final_prescan_insn): Rename to avr_final_prescan_insn.
23618 * config/avr/avr.c: Same.
23619 * config/avr/avr.h: Same.
23620 * config/avr/avr.md: Remove trailing blanks.
23621 (prologue): Use avr_expand_prologue.
23622 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
23623
7bb01996
RB
236242013-01-14 Richard Biener <rguenther@suse.de>
23625
23626 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
23627 verify_location, collect_subblocks): New functions.
23628 (verify_gimple_in_cfg): Verify that locations only reference
23629 BLOCKs in the functions BLOCK tree.
23630
2724573f
RB
236312013-01-14 Richard Biener <rguenther@suse.de>
23632
23633 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
23634 PHI argument.
23635 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
23636 unshare reference.
23637 (insert_out_of_ssa_copy_on_edge): Likewise.
23638 (rewrite_close_phi_out_of_ssa): Likewise.
23639 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
23640 debug expressions.
23641 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
23642 propagated constants.
23643 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
23644 can not be shared.
23645
9a0bbab6
GJL
236462013-01-14 Georg-Johann Lay <avr@gjlay.de>
23647
23648 * config/avr/avr-modes.def: Add GPL copyright notice.
23649
45805f17
UB
236502013-01-13 Uros Bizjak <ubizjak@gmail.com>
23651
23652 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
23653 MEMMODEL_MASK to determine memory model.
23654 (atomic_store<mode>): Ditto from operands[2].
23655 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
23656
9d60be38
JJ
236572013-01-13 Jakub Jelinek <jakub@redhat.com>
23658
23659 PR fortran/55935
45805f17 23660 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
23661 (fold_gimple_assign): Don't call unshare_expr here.
23662 (fold_ctor_reference): Call unshare_expr.
23663
e7f49d92
TG
236642013-01-13 Terry Guo <terry.guo@arm.com>
23665
aaf1e810
EB
23666 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
23667 * doc/fragments.texi: Document MULTILIB_REUSE.
23668 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 23669 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 23670 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
23671 (tmpmultilib4): Ditto.
23672 (multilib_reuse): New multilib argument.
23673
fbd03a27
RS
236742013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
23675
23676 * Makefile.in: Update copyright.
23677
b3681f13
TV
236782013-01-12 Tom de Vries <tom@codesourcery.com>
23679
23680 PR middle-end/55890
23681 * calls.c (expand_call): Check if arg_nr is valid.
23682
3f287e4b
MM
236832013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
23684
23685 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
23686 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
23687 documentation. Add missing '__' in front of
23688 __builtin_ia32_packssdw256.
3f287e4b 23689
1abcd5eb
AK
236902013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23691
23692 PR target/55719
23693 * config/s390/s390.c (s390_preferred_reload_class): Do not return
23694 NO_REGS for larl operands.
23695 (s390_reload_larl_operand): Use s390_load_address instead of
23696 emit_move_insn.
23697
980d0812
RB
236982013-01-11 Richard Biener <rguenther@suse.de>
23699
23700 * tree-cfg.c (verify_node_sharing_1): Split out from ...
23701 (verify_node_sharing): ... here.
23702 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
23703
7cb9fd07
EB
237042013-01-11 Eric Botcazou <ebotcazou@adacore.com>
23705
23706 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
23707 Substitute TREECHECKING.
23708 * configure: Regenerate.
23709 * Makefile.in (TREECHECKING): New.
23710
47876a2a 237112013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
23712
23713 PR tree-optimization/44061
23714 * tree-vrp.c (extract_range_basic): Compute zero as
23715 value-range for __builtin_constant_p of function parameters.
23716
d1e082c2
RS
237172013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
23718
45805f17 23719 Update copyright years.
d1e082c2 23720
f85021b0
VM
237212013-01-10 Vladimir Makarov <vmakarov@redhat.com>
23722
9d60be38 23723 PR rtl-optimization/55672
0160442c
VM
23724 * lra-eliminations.c (mark_not_eliminable): Permit addition with
23725 const to be eliminable.
f85021b0 23726
7a8b1ec4
DE
237272013-01-10 David Edelsohn <dje.gcc@gmail.com>
23728
23729 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
23730 * configure: Regenerate.
23731
ad2e5b71
RB
237322013-01-10 Richard Biener <rguenther@suse.de>
23733
ddf9322d 23734 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 23735
ffc5b2bb
RB
237362013-01-10 Richard Biener <rguenther@suse.de>
23737
23738 PR bootstrap/55792
23739 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
23740 locations for virtual PHI arguments.
23741 (rewrite_update_phi_arguments): Likewise.
23742
e1f674e4
JS
237432013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
23744
23745 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
23746 on to assembler.
23747
a57fc743
JJ
237482013-01-10 Jakub Jelinek <jakub@redhat.com>
23749
23750 PR tree-optimization/55921
23751 * tree-complex.c (expand_complex_asm): New function.
23752 (expand_complex_operations_1): Call it for GIMPLE_ASM.
23753
0ff4390d
AK
237542013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23755
23756 PR target/55718
23757 * config/s390/s390.c (s390_symref_operand_p)
23758 (s390_loadrelative_operand_p): Merge the two functions.
23759 (s390_check_qrst_address, print_operand_address): Add parameters
23760 to s390_loadrelative_operand_p invokation.
23761 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
23762 (s390_reload_larl_operand, s390_secondary_reload): Use
23763 s390_loadrelative_operand_p instead of s390_symref_operand_p.
23764 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
23765
6f557e0e
MS
237662013-01-09 Mike Stump <mikestump@comcast.net>
23767
23768 * dse.c (record_store): Remove unnecessary assert.
23769
7770c9e9
JH
237702013-01-09 Jan Hubicka <jh@suse.cz>
23771
23772 PR tree-optimization/55569
23773 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
23774 * cfgloop.h (scale_loop_profile): Likewise.
23775
a19b1432
JH
237762013-01-09 Jan Hubicka <jh@suse.cz>
23777
23778 PR lto/45375
ddf9322d
UB
23779 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
23780 functions.
a19b1432
JH
23781 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
23782
9a002da8
RS
237832013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
23784
23785 PR middle-end/55114
23786 * expr.h (maybe_emit_group_store): Declare.
23787 * expr.c (maybe_emit_group_store): New function.
23788 * builtins.c (expand_builtin_int_roundingfn): Call it.
23789 (expand_builtin_int_roundingfn_2): Likewise.
23790
511dcace
VM
237912013-01-09 Vladimir Makarov <vmakarov@redhat.com>
23792
e1f2b729 23793 PR rtl-optimization/55829
511dcace
VM
23794 * lra-constraints.c (match_reload): Add code for absent output.
23795 (curr_insn_transform): Add code for reloads of matched inputs
23796 without output.
23797
7b0fe4f4
UB
237982013-01-09 Uros Bizjak <ubizjak@gmail.com>
23799
23800 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
23801 attribute of movddup insn to DF.
23802 (*vec_interleave_lowv2df): Ditto.
23803 (vec_dupv2df): Ditto.
23804
870ca331
JH
238052013-01-09 Jan Hubicka <jh@suse.cz>
23806
23807 PR tree-optimiation/55875
23808 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
23809 EVERY_ITERATION parameter.
7b0fe4f4 23810 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
23811 (idx_infer_loop_bounds): Similarly here.
23812 (n_of_executions_at_most): Simplify
23813 to only test for cases where statement is dominated by the
7b0fe4f4 23814 particular bound; handle correctly the "postdominance" test.
870ca331
JH
23815 (scev_probably_wraps_p): Use max loop iterations info
23816 as a global bound first.
23817
6f575fe4 238182013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
23819 Nick Clifton <nickc@redhat.com>
23820
23821 * config/v850/v850.md (cbranchsf4): New pattern.
23822 (cstoresf4): New pattern.
23823 (cbranchdf4): New pattern.
23824 (cstoredf4): New pattern.
23825 (movsicc): Disallow floating point comparisons.
23826 (cmpsf_le_insn): Fix order of operators.
23827 (cmpsf_lt_insn): Likewise.
23828 (cmpsf_eq_insn): Likewise.
23829 (cmpdf_le_insn): Likewise.
23830 (cmpdf_lt_insn): Likewise.
23831 (cmpdf_eq_insn): Likewise.
23832 (cmpsf_ge_insn): Use LE comparison.
23833 (cmpdf_ge_insn): Likewise.
23834 (cmpsf_gt_insn): Use LT comparison.
23835 (cmpdf_gt_insn): Likewise.
23836 (cmpsf_ne_insn): Delete pattern.
23837 (cmpdf_ne_insn): Delete pattern.
23838 * config/v850/v850.c (v850_gen_float_compare): Use
23839 gen_cmpdf_eq_insn for NE comparison.
23840 (v850_float_z_comparison_operator)
23841 (v850_float_nz_comparison_operator): Move from here ...
23842 * config/v850/predicates.md: ... to here. Move GT and GE
23843 comparisons into v850_float_z_comparison_operator.
23844 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
23845 Delete prototype.
23846 (v850_float_nz_comparison_operator): Likewise.
23847
f0d54148
JDA
238482013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23849
23850 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
23851 with calls to gen_insvsi/gen_insvdi.
23852
8f01beca
VK
238532013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
23854
23855 * config/i386/i386.c (initial_ix86_tune_features): Set up
23856 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
23857
2aa579ad
JJ
238582013-01-09 Steven Bosscher <steven@gcc.gnu.org>
23859 Jakub Jelinek <jakub@redhat.com>
23860
23861 PR tree-optimization/48189
23862 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
23863 If nitercst is 0, don't predict the exit edge.
23864
6edc3e32 238652013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
23866
23867 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
23868 in asm_fprintf with reg_names.
23869 (aarch64_print_operand_address): Likewise.
23870 (aarch64_return_addr): Likewise.
23871 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
23872
f6f94d94
JDA
238732013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23874
23875 * config/pa/pa.h (VAL_U6_BITS_P): Define.
23876 (INT_U6_BITS): Likewise.
23877 * config/pa/predicates.md (uint6_operand): New predicate.
23878 (shift5_operand, shift6_operand): Likewise.
23879 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
23880 arith32_operand.
23881 (lshrdi3): Use shift6_operand.
23882 (shrpsi4, shrpdi4): New insn patterns.
23883 (extzv): Delete expander.
23884 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
23885 predicates in unamed zero extract patterns. Tighten common constraint.
23886 (extv): Delete expander.
23887 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
23888 predicates in unamed sign extract patterns. Tighten common constraint.
23889 (insv): Delete expander.
23890 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
23891 predicates in unamed insert patterns. Tighten common constraint.
23892 Change uint32_operand predicate to uint6_operand predicate in unamed
23893 DImode pattern to insert constant values of type 1...1xxxx.
23894
36b72910
JH
238952013-01-04 Jan Hubicka <jh@suse.cz>
23896
23897 PR tree-optimization/55823
7b0fe4f4
UB
23898 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
23899 issue.
36b72910 23900
47876a2a 239012013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
23902 Uros Bizjak <ubizjak@gmail.com>
23903
23904 PR rtl-optimization/55845
23905 * df-problems.c (can_move_insns_across): Stop scanning at
23906 volatile_insn_p source instruction or give up if
23907 across_from .. across_to range contains any volatile_insn_p
23908 instructions.
23909
4369c11e
TB
239102013-01-08 Tejas Belagod <tejas.belagod@arm.com>
23911
7b0fe4f4
UB
23912 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
23913 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
23914 Declare.
4369c11e 23915 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 23916 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 23917
aeb7e7c1
JJ
239182013-01-08 Jakub Jelinek <jakub@redhat.com>
23919
23920 PR fortran/55341
23921 * asan.c (asan_clear_shadow): New function.
23922 (asan_emit_stack_protection): Use it.
23923
a02ad1aa
TB
239242013-01-08 Tejas Belagod <tejas.belagod@arm.com>
23925
23926 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
23927 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
23928 with tab instead of space.
23929
f90d87f5
NC
239302013-01-08 Nick Clifton <nickc@redhat.com>
23931
23932 * config/rl78/rl78.c (rl78_expand_prologue): Always select
23933 register bank 0 at the start of an interrupt handler.
83ffd964
NC
23934 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
23935 MDBH registers.
f90d87f5 23936
385eb93d
JG
239372013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
23938
23939 * config/aarch64/aarch64-simd.md
23940 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
23941 (aarch64_simd_bsl): Likewise.
23942 (aarch64_vcond_internal<mode>): Likewise.
23943 (vcond<mode><mode>): Likewise.
23944 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
23945 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
23946
4dcd1054
JG
239472013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
23948
23949 * config/aarch64/aarch64-builtins.c
23950 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
23951
4267a4a6
MJ
239522013-01-08 Martin Jambor <mjambor@suse.cz>
23953
23954 PR debug/55579
23955 * tree-sra.c (analyze_access_subtree): Return true also after
23956 potentially creating a debug-only replacement.
23957
5f4e6de3
JJ
239582013-01-08 Jakub Jelinek <jakub@redhat.com>
23959
3138f224
JJ
23960 PR middle-end/55890
23961 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
23962
5f4e6de3
JJ
23963 PR tree-optimization/54120
23964 * tree-vrp.c (range_fits_type_p): Don't allow
23965 src_precision < precision from signed vr to unsigned_p
23966 if vr->min or vr->max is negative.
23967 (simplify_float_conversion_using_ranges): Test can_float_p
23968 against CODE_FOR_nothing.
23969
f3ef18ff
JJ
239702013-01-08 Jakub Jelinek <jakub@redhat.com>
23971 Richard Biener <rguenther@suse.de>
23972
23973 PR middle-end/55851
23974 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
23975 types instead of just INTEGER_TYPE types.
23976
25c210f9
MK
239772013-01-07 Mark Kettenis <kettenis@openbsd.org>
23978
23979 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
23980 TF_SIZE): Define.
f90d87f5 23981
81826a7b
SE
239822013-01-07 Steve Ellcey <sellcey@mips.com>
23983
23984 PR target/42661
23985 * config/mips/mips.opt: Change mad to mmad to match documentation.
23986
35678514
GJL
239872013-01-07 Georg-Johann Lay <avr@gjlay.de>
23988
23989 PR target/55897
23990 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
23991 .progmemx.data now.
23992
e5669488
GJL
239932013-01-07 Georg-Johann Lay <avr@gjlay.de>
23994
23995 PR target/55897
23996 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
23997 (avr_addrspace_t): Add .section_name field.
23998 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
23999 array size.
24000 (avr_addrspace): Same. Initialize .section_name. Remove last
24001 NULL entry. Put __memx into .progmemx.data.
24002 (progmem_section_prefix): Remove.
24003 (avr_asm_init_sections): No need to initialize progmem_section.
24004 (avr_asm_named_section): Use avr_addrspace[].section_name to get
24005 section name prefix.
24006 (avr_asm_select_section): Ditto. And use get_unnamed_section to
24007 retrieve the progmem section.
24008 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
24009 boundary to run over avr_addrspace[].
24010 (avr_register_target_pragmas): Ditto.
24011
656e6f37
JJ
240122013-01-06 Jakub Jelinek <jakub@redhat.com>
24013
24014 * varasm.c (output_constant_def_contents): For asan_protect_global
24015 protected strings, adjust DECL_ALIGN if needed, before testing for
24016 anchored symbols.
24017 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
24018 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
24019 normal decls.
24020 (output_object_block): For asan protected decls, emit asan padding
24021 after their contents.
24022 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
24023 (asan_finish_file): Test it here instead.
24024
6edc3e32
UB
240252013-01-07 Nick Clifton <nickc@redhat.com>
24026 Matthias Klose <doko@debian.org>
24027 Doug Kwan <dougkwan@google.com>
24028 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
24029
24030 PR driver/55470
24031 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
24032
24033 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
24034
24035 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
24036
7b0fe4f4 24037 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
24038
24039 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
24040
2a095093
GJL
240412013-01-07 Georg-Johann Lay <avr@gjlay.de>
24042
f3b503f4 24043 PR target/54461
2a095093
GJL
24044 * doc/install.texi (Cross-Compiler-Specific Options): Document
24045 --with-avrlibc.
24046
383f9b34
TB
240472013-01-07 Tejas Belagod <tejas.belagod@arm.com>
24048
24049 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
24050 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
24051 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
24052 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
24053 vqmovun_high_s64): Fix source operand number and update copyright.
24054
3626621a
RB
240552013-01-07 Richard Biener <rguenther@suse.de>
24056
24057 PR middle-end/55890
24058 * gimple.h (gimple_call_builtin_p): New overload.
24059 * gimple.c (validate_call): New function.
24060 (gimple_call_builtin_p): Likewise.
24061 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24062 Use gimple_call_builtin_p.
24063 (find_func_clobbers): Likewise.
24064 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
24065 (strlen_optimize_stmt): Likewise.
24066
8b2ea410
JG
240672013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
24068
24069 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
24070 (vld1q_dup_*): Likewise.
24071 (vld1_*): Likewise.
24072 (vld1q_*): Likewise.
24073 (vld1_lane_*): Likewise.
24074 (vld1q_lane_*): Likewise.
24075
9713d329
RB
240762013-01-07 Richard Biener <rguenther@suse.de>
24077
24078 * lto-streamer.h (LTO_minor_version): Bump to 2.
24079
3520f7cc
JG
240802013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
24081
24082 * config/aarch64/aarch64-protos.h
24083 (aarch64_const_double_zero_rtx_p): Rename to...
24084 (aarch64_float_const_zero_rtx_p): ...this.
24085 (aarch64_float_const_representable_p): New.
24086 (aarch64_output_simd_mov_immediate): Likewise.
24087 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
24088 move immediate case.
24089 * config/aarch64/aarch64.c
24090 (aarch64_const_double_zero_rtx_p): Rename to...
24091 (aarch64_float_const_zero_rtx_p): ...this.
24092 (aarch64_print_operand): Allow printing of new constants.
24093 (aarch64_valid_floating_const): New.
24094 (aarch64_legitimate_constant_p): Check for valid floating-point
24095 constants.
24096 (aarch64_simd_valid_immediate): Likewise.
24097 (aarch64_vect_float_const_representable_p): New.
24098 (aarch64_float_const_representable_p): Likewise.
24099 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
24100 (aarch64_output_simd_mov_immediate): New.
24101 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
24102 (*movdf_aarch64): Likewise.
24103 * config/aarch64/constraints.md (Ufc): New.
24104 (Y): call aarch64_float_const_zero_rtx.
24105 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
24106
e167c04d
RB
241072013-01-07 Richard Biener <rguenther@suse.de>
24108
24109 PR tree-optimization/55888
24110 PR tree-optimization/55862
24111 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
24112 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
24113 not if it is contained therein.
24114
0139aaab
GJL
241152013-01-07 Georg-Johann Lay <avr@gjlay.de>
24116
24117 * config/avr/t-avr: Typo.
24118
4a176b23
GJL
241192013-01-07 Georg-Johann Lay <avr@gjlay.de>
24120
24121 PR55243
24122 * config/avr/t-avr: Don't automatically rebuild
24123 $(srcdir)/config/avr/t-multilib
24124 $(srcdir)/config/avr/avr-tables.opt
24125 $(srcdir)/doc/avr-mmcu.texi
24126 (avr-mcus): New phony target to build them on request.
24127 (s-avr-mlib, s-avr-mmcu-texi): Remove.
24128 * avr/avr-mcus.def: Adjust comments.
24129
c7afdc98
UB
241302013-01-07 Uros Bizjak <ubizjak@gmail.com>
24131
24132 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
24133
1ab05c31
RS
241342013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24135
24136 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
24137
488e3acc
RS
241382013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
24139
24140 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
24141
a89599d2
DE
241422013-01-05 David Edelsohn <dje.gcc@gmail.com>
24143
24144 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
24145 to generate profiling.
24146 * config/rs6000/aix64.h (LIB_SPEC): Same.
24147
70f09188
AP
241482013-01-04 Andrew Pinski <apinski@cavium.com>
24149
24150 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
24151 New function.
24152 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
24153
918d445f
UB
241542013-01-04 Uros Bizjak <ubizjak@gmail.com>
24155
24156 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
24157 unconditionally.
24158 (ix86_expand_move): Ditto.
24159 (ix86_zero_extend_to_Pmode): Ditto.
24160 (ix86_expand_call): Ditto.
24161 (ix86_expand_special_args_builtin): Ditto.
24162 (ix86_expand_builtin): Ditto.
24163
361618ec
RB
241642013-01-04 Richard Biener <rguenther@suse.de>
24165
24166 PR tree-optimization/55862
24167 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
24168 translating them through PHI nodes.
24169
87eab554
MJ
241702013-01-04 Martin Jambor <mjambor@suse.cz>
24171
24172 PR tree-optimization/55755
24173 * tree-sra.c (sra_modify_assign): Do not check that an access has no
24174 children when trying to avoid producing a VIEW_CONVERT_EXPR.
24175
33879b9f
MP
241762013-01-04 Marek Polacek <polacek@redhat.com>
24177
24178 PR middle-end/55859
24179 * opts.c (default_options_optimization): Clarify error message.
24180
3068819a
RB
241812013-01-04 Richard Biener <rguenther@suse.de>
24182
24183 PR middle-end/55863
24184 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
24185 reassociation.
24186
0e4ae794
JDA
241872013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24188
24189 PR target/53789
24190 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
24191 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
24192 references.
0e4ae794 24193
65c88cef
RH
241942013-01-03 Richard Henderson <rth@redhat.com>
24195
24196 * config/i386/i386.c (ix86_expand_move): Always assign to op1
24197 after eliminating TLS symbols.
24198
8ac16127
MG
241992013-01-03 Marc Glisse <marc.glisse@inria.fr>
24200
24201 PR bootstrap/50167
24202 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
24203 * graphite-poly.c (debug_gmp_value): Likewise.
24204
bb664f09
UB
242052013-01-03 Uros Bizjak <ubizjak@gmail.com>
24206
24207 PR target/55712
24208 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
24209 selected code model, define __code_mode_small__, __code_model_medium__,
24210 __code_model_large__, __code_model_32__ or __code_model_kernel__.
24211 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
24212 xchg temporary register with %k. Declare temporary register as
24213 early clobbered.
24214 [__x86_64__]: For medium and large code models, preserve %rbx register.
24215
bcf1ef00
RB
242162013-01-03 Richard Biener <rguenther@suse.de>
24217
0506634a 24218 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
24219 (dump_subscript): Adjust.
24220 (finalize_ddr_dependent): Do not dump redundant info.
24221 (analyze_siv_subscript): Adjust.
24222 (subscript_dependence_tester): Likewise.
24223 (compute_affine_dependence): Likewise.
24224
59fd17e3
RB
242252013-01-03 Richard Biener <rguenther@suse.de>
24226
24227 Revert
24228 2013-01-03 Richard Biener <rguenther@suse.de>
24229
24230 PR tree-optimization/55857
24231 * tree-vect-stmts.c (vectorizable_load): Do not setup
24232 re-alignment for invariant loads.
24233
24234 2013-01-02 Richard Biener <rguenther@suse.de>
24235
24236 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 24237 invariant load do not generate a vector load from the scalar location.
59fd17e3 24238
595c2679
RB
242392013-01-03 Richard Biener <rguenther@suse.de>
24240
24241 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
24242 for not vectorizing.
24243 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
24244 not build INDIRECT_REFs, call get_name once only.
24245 (vect_create_data_ref_ptr): Likewise. Dump base object kind
24246 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
24247
90bb7d7a
RB
242482013-01-03 Richard Biener <rguenther@suse.de>
24249
24250 PR tree-optimization/55857
24251 * tree-vect-stmts.c (vectorizable_load): Do not setup
24252 re-alignment for invariant loads.
24253
f09b77ca
RB
242542013-01-03 Richard Biener <rguenther@suse.de>
24255
24256 PR lto/55848
24257 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
24258 prefer a built-in decl.
24259
3461a16e
JJ
242602013-01-03 Jakub Jelinek <jakub@redhat.com>
24261
df8e2b4f
JJ
24262 * gcc.c (process_command): Update copyright notice dates.
24263 * gcov.c (print_version): Likewise.
24264 * gcov-dump.c (print_version): Likewise.
24265
3461a16e
JJ
24266 PR rtl-optimization/55838
24267 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
24268 iv0.step, iv1.step and step.
24269
8b5546d6
JJ
242702013-01-03 Jakub Jelinek <jakub@redhat.com>
24271 Marc Glisse <marc.glisse@inria.fr>
24272
24273 PR tree-optimization/55832
24274 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
24275 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
24276 integer_{one,zero}_node.
24277
8ab1d2e9
JJ
242782013-01-03 Jakub Jelinek <jakub@redhat.com>
24279
24280 PR debug/54402
24281 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
24282 * var-tracking.c (reverse_op): Don't add reverse ops to
24283 VALUEs that have already
0506634a 24284 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 24285
5b9ad1d4
GP
242862013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
24287
24288 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
24289
e25a6711
TJ
242902013-01-02 Teresa Johnson <tejohnson@google.com>
24291
24292 * dumpfile.c (dump_loc): Print filename with location.
24293 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
24294 new location_t parameter to emit complete unroll message with
24295 new dump framework.
24296 (canonicalize_loop_induction_variables): Compute loops location
24297 and pass to try_unroll_loop_completely.
24298 * loop-unroll.c (report_unroll_peel): New function.
24299 (peel_loops_completely): Use new dump format with location
24300 for main dumpfile message, and invoke report_unroll_peel on success.
24301 (decide_unrolling_and_peeling): Ditto.
24302 (decide_peel_once_rolling): Remove old dumpfile message subsumed
24303 by report_unroll_peel.
24304 (decide_peel_completely): Ditto.
24305 (decide_unroll_constant_iterations): Ditto.
24306 (decide_unroll_runtime_iterations): Ditto.
24307 (decide_peel_simple): Ditto.
24308 (decide_unroll_stupid): Ditto.
24309 * cfgloop.c (get_loop_location): New function.
24310 * cfgloop.h (get_loop_location): Declare.
24311
77878621
ST
243122013-01-02 Sriraman Tallam <tmsriram@google.com>
24313
24314 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
24315 NULL.
24316
9e65d03e
JDA
243172013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24318
24319 PR middle-end/55198
24320 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
24321 BLKmode objects when EXPAND_MEMORY is specified.
24322
6a7da30f
ST
243232013-01-02 Sriraman Tallam <tmsriram@google.com>
24324
24325 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
24326 in loop predicate.
24327 (fold_builtin_cpu): Do not share cpu model decls across statements.
24328
e78167f2
JM
243292013-01-02 Jason Merrill <jason@redhat.com>
24330
24331 PR c++/55804
24332 * tree.c (build_array_type_1): Revert earlier change.
24333
8c075fb4
YZ
243342013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
24335
24336 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
24337 "cortex-a57".
24338 * config/aarch64/aarch64-tune.md: Re-generate.
24339
0682ed3e
RB
243402013-01-02 Richard Biener <rguenther@suse.de>
24341
24342 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 24343 invariant load do not generate a vector load from the scalar location.
0682ed3e 24344
b8f6a302
RB
243452013-01-02 Richard Biener <rguenther@suse.de>
24346
24347 PR bootstrap/55784
24348 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
24349 * configure: Regenerate.
24350
04b80dbb
RS
243512013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
24352
24353 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
24354 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
24355 (expand_builtin_int_roundingfn_2): Keep the original target around
24356 for the fallback case.
24357
635b0b0c
RS
243582013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
24359
24360 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
24361 to be clear for sign changes.
24362
42d57399
JH
243632013-01-01 Jan Hubicka <jh@suse.cz>
24364
24365 * ipa-inline-analysis.c: Fix formatting.
24366
5bb6669d
JJ
243672013-01-01 Jakub Jelinek <jakub@redhat.com>
24368
24369 PR tree-optimization/55831
24370 * tree-vect-loop.c (get_initial_def_for_induction): Use
24371 gsi_after_labels instead of gsi_start_bb.
ad41bd84 24372\f
86a2db33 24373Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
24374
24375Copying and distribution of this file, with or without modification,
24376are permitted in any medium without royalty provided the copyright
24377notice and this notice are preserved.