re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call)
[gcc.git] / gcc / ChangeLog
1 2014-06-20 Martin Jambor <mjambor@suse.cz>
2
3 PR ipa/61540
4 * ipa-prop.c (impossible_devirt_target): New function.
5 (try_make_edge_direct_virtual_call): Use it, also instead of
6 asserting.
7
8 2014-06-20 Yury Gribov <y.gribov@samsung.com>
9 Max Ostapenko <m.ostapenko@partner.samsung.com>
10
11 PR sanitizer/61530
12 * asan.c (build_check_stmt): Add condition.
13
14 2014-06-20 Martin Jambor <mjambor@suse.cz>
15
16 PR ipa/61211
17 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
18 expanded clones.
19
20 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21
22 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
23 Update comments.
24 (VCONQ): Make comment more helpful.
25 (VCON): Delete.
26 * config/aarch64/aarch64-simd.md
27 (aarch64_sqdmulh_lane<mode>):
28 Use VCOND for operands 2. Update lane checking and flipping logic.
29 (aarch64_sqrdmulh_lane<mode>): Likewise.
30 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
31 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
33 attribute of operand 3 to VCOND.
34 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
35 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
36 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
37 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
38 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
39 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
40 define_insn.
41 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
42 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
43 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
44 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
45 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
46 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
47 operand to VCOND. Update lane flipping and bounds checking logic.
48 (aarch64_sqdmlal2_lane<mode>): Likewise.
49 (aarch64_sqdmlsl_lane<mode>): Likewise.
50 (aarch64_sqdmull_lane<mode>): Likewise.
51 (aarch64_sqdmull2_lane<mode>): Likewise.
52 (aarch64_sqdmlal_laneq<mode>):
53 Replace VCON usage with VCONQ.
54 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
55 (aarch64_sqdmlal2_laneq<mode>): Emit
56 aarch64_sqdmlal2_laneq<mode>_internal insn.
57 Replace VCON with VCONQ.
58 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
59 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
60 (aarch64_sqdmull_laneq<mode>): Emit
61 aarch64_sqdmull_laneq<mode>_internal insn.
62 Replace VCON with VCONQ.
63 (aarch64_sqdmull2_laneq<mode>): Emit
64 aarch64_sqdmull2_laneq<mode>_internal insn.
65 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
66 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
67 of 3rd argument to int16x4_t.
68 (vqdmlalh_lane_s16): Likewise.
69 (vqdmlslh_lane_s16): Likewise.
70 (vqdmull_high_lane_s16): Likewise.
71 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
72 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
73 (vqdmlsl_lane_s16): Likewise.
74 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
75 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
76 (vqdmlals_lane_s32): Likewise.
77 (vqdmlsls_lane_s32): Likewise.
78 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
79 (vqdmulls_lane_s32): Likewise.
80 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
81 (vqdmlsl_lane_s32): Likewise.
82 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
83 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
84 (vqrdmulhh_lane_s16): Likewise.
85 (vqdmlsl_high_lane_s16): Likewise.
86 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
87 (vqdmlsl_high_lane_s32): Likewise.
88 (vqrdmulhs_lane_s32): Likewise.
89
90 2014-06-20 Tom de Vries <tom@codesourcery.com>
91
92 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
93 get_call_reg_set_usage.
94
95 2014-06-20 Tom de Vries <tom@codesourcery.com>
96
97 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
98 it contains all call_used_regs.
99
100 2014-06-20 Tom de Vries <tom@codesourcery.com>
101
102 * final.c (collect_fn_hard_reg_usage): Add and use variable
103 function_used_regs.
104
105 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
106
107 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
108 (set_init_priority, get_init_priority, set_fini_priority,
109 get_fini_priority): New methods.
110 * tree.c (init_priority_for_decl): Remove.
111 (init_ttree): Do not initialize init priority.
112 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
113 (decl_priority_info): Remove.
114 (decl_init_priority_insert): Rewrite.
115 (decl_fini_priority_insert): Rewrite.
116 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
117 tree_priority_map_marked_p): Remove.
118 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
119 * lto-streamer-out.c (hash_tree): Do not hash priorities.
120 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
121 not output priorities.
122 (pack_ts_function_decl_value_fields): Likewise.
123 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
124 not input priorities.
125 (unpack_ts_function_decl_value_fields): Likewise.
126 * symtab.c (symbol_priority_map): Declare.
127 (init_priority_hash): Declare.
128 (symtab_unregister_node): Unregister from priority hash, too.
129 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
130 New methods.
131 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
132 (symbol_priority_info): New function.
133 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
134 New methods.
135 * tree-core.h (tree_priority_map): Remove.
136
137 2014-06-20 Jakub Jelinek <jakub@redhat.com>
138
139 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
140 0xff to uint64_t before shifting it up.
141
142 2014-06-20 Julian Brown <julian@codesourcery.com>
143 Chung-Lin Tang <cltang@codesourcery.com>
144
145 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
146 TARGET_THUMB1_ONLY. Add comments.
147
148 2014-06-19 Tom de Vries <tom@codesourcery.com>
149
150 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
151 return type to void.
152 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
153
154 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
155
156 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
157 as "move", from depends_on.
158
159 2014-06-19 Terry Guo <terry.guo@arm.com>
160
161 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
162 stage.
163
164 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
165
166 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
167 Remove cr5.
168 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
169
170 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
171
172 PR target/61550
173 * config/sh/sh.c (prepare_move_operands): Don't process TLS
174 addresses here if reload in progress or completed.
175
176 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
177
178 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
179 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
180 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
181 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
182 (mips_register_priority): New function that implements the target
183 hook TARGET_REGISTER_PRIORITY.
184 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
185 (mips_lra_p): Likewise for TARGET_LRA_P.
186 (TARGET_REGISTER_PRIORITY): Define macro.
187 (TARGET_SPILL_CLASS): Likewise.
188 (TARGET_LRA_P): Likewise.
189 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
190 classes.
191 (REG_CLASS_NAMES): Likewise.
192 (REG_CLASS_CONTENTS): Likewise.
193 (BASE_REG_CLASS): Use M16_SP_REGS.
194 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
195 New set attribute to enable alternatives depending on the register
196 allocator used.
197 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
198 (*lea64): Disable pattern for MIPS16.
199 * config/mips/mips.opt (mlra): New option.
200
201 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
202
203 * lra-constraints.c (base_to_reg): New function.
204 (process_address): Use new function.
205
206 2014-06-18 Tom de Vries <tom@codesourcery.com>
207
208 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
209 * config/aarch64/aarch64.c
210 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
211 (aarch64_emit_call_insn): New function.
212 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
213 of emit_call_insn.
214 * config/aarch64/aarch64.md (define_expand "call_internal")
215 (define_expand "call_value_internal", define_expand "sibcall_internal")
216 (define_expand "sibcall_value_internal"): New.
217 (define_expand "call", define_expand "call_value")
218 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
219 expand variant and aarch64_emit_call_insn.
220
221 2014-06-18 Radovan Obradovic <robradovic@mips.com>
222 Tom de Vries <tom@codesourcery.com>
223
224 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
225 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
226 Redefine to true.
227 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
228 clobbers to CALL_INSN_FUNCTION_USAGE.
229 (define_expand "sibcall_internal")
230 (define_expand "sibcall_value_internal"): New.
231 (define_expand "call", define_expand "call_value"): Add argument to
232 arm_emit_call_insn.
233 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
234 (define_expand "sibcall_value"): Use sibcall_value_internal and
235 arm_emit_call_insn.
236
237 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
238
239 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
240
241 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
242
243 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
244 __udivmoddi4.
245
246 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
247
248 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
249 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
250 annotations. Fix DWARF information.
251
252 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
253
254 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
255 __udivmoddi4, and fixups for negative operands.
256
257 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
258
259 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
260
261 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
262
263 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
264 to __udivmoddi4.
265
266 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
267
268 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
269 manipulation.
270
271 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
272
273 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
274 describing register usage on function entry and exit.
275
276 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
277
278 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
279 (__aeabi_ldivmod): Fix whitespace.
280
281 2014-06-18 Andreas Schwab <schwab@suse.de>
282
283 * doc/md.texi (Standard Names): Use @itemx for grouped items.
284 Remove blank line after @item.
285
286 2014-06-18 Richard Henderson <rth@redhat.com>
287
288 PR target/61545
289 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
290
291 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
292
293 * config/arm/arm.c (neon_vector_mem_operand): Allow register
294 POST_MODIFY for neon loads and stores.
295 (arm_print_operand): Output post-index register for neon loads and
296 stores.
297
298 2014-06-18 Richard Biener <rguenther@suse.de>
299
300 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
301
302 2014-06-18 Richard Biener <rguenther@suse.de>
303
304 * tree-pass.h (make_pass_dce_loop): Remove.
305 * passes.def: Replace pass_dce_loop with pass_dce.
306 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
307 changed free niter estimates and reset the scev cache.
308 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
309 make_pass_dce_loop): Remove.
310 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
311 (fini_copy_prop): Return whether something changed. Always
312 let substitute_and_fold perform DCE and free niter estimates
313 and reset the scev cache if so.
314 (execute_copy_prop): If sth changed schedule cleanup-cfg.
315 (pass_data_copy_prop): Do not unconditionally schedule
316 cleanup-cfg or update-ssa.
317
318 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
319
320 PR tree-optimization/61518
321 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
322 reduction var is used in reduction stmt or phi-function only.
323
324 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
325
326 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
327
328 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
329
330 PR tree-optimization/61517
331 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
332 whose rhs's first tree is the source expression instead of the
333 expression itself.
334 (find_bswap_or_nop): Likewise.
335 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
336 gimple stmt whose rhs's first tree is the source. In the memory source
337 case, move the stmt to be replaced close to one of the original load to
338 avoid the problem of a store between the load and the stmt's original
339 location.
340 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
341 signature.
342
343 2014-06-18 Andreas Schwab <schwab@suse.de>
344
345 PR rtl-optimization/54555
346 * postreload.c (move2add_use_add2_insn): Substitute
347 STRICT_LOW_PART only if it is cheaper.
348
349 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
350
351 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
352 Do not use unspec as call operand. Use memory_operand instead of
353 memory_nox32_operand and add "m" operand constraint. Disable
354 pattern for TARGET_X32.
355 (*sibcall_pop_memory): Ditto.
356 (*sibcall_value_memory): Ditto.
357 (*sibcall_value_pop_memory): Ditto.
358 (sibcall peepholes): Merge SImode and DImode patterns using
359 W mode iterator. Use memory_operand instead of memory_nox32_operand.
360 Disable pattern for TARGET_X32. Check if eliminated register is
361 really dead after call insn. Generate call RTX without unspec operand.
362 (sibcall_value peepholes): Ditto.
363 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
364 instead of memory_nox32_operand. Check if eliminated register is
365 really dead after call insn. Generate call RTX without unspec operand.
366 (sibcall_value_pop peepholes): Ditto.
367 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
368
369 2014-06-18 Terry Guo <terry.guo@arm.com>
370
371 PR target/61544
372 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
373 reach the head.
374
375 2014-06-18 Richard Biener <rguenther@suse.de>
376
377 * common.opt (fssa-phiopt): New option.
378 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
379 but not with -Og.
380 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
381 * doc/invoke.texi (-fssa-phiopt): Document.
382
383 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
384
385 * genattrtab.c (n_bypassed): New variable.
386 (process_bypasses): Initialise n_bypassed.
387 Count number of bypassed reservations.
388 (make_automaton_attrs): Allocate space for bypassed reservations
389 rather than number of bypasses.
390
391 2014-06-18 Richard Biener <rguenther@suse.de>
392
393 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
394 we propagated anything.
395 (substitute_and_fold_dom_walker::before_dom_children): Something
396 changed if we propagated into PHI arguments.
397 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
398 we removed a stmt.
399
400 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
401
402 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
403 vector case.
404 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
405 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
406 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
407 Introduces alternative way of loads group permutaions.
408 (vect_transform_grouped_load): Try alternative way of permutations.
409
410 2014-06-18 Jakub Jelinek <jakub@redhat.com>
411
412 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
413 changed in ORT_TARGET region, don't jump to do_outer.
414 (struct gimplify_adjust_omp_clauses_data): New type.
415 (gimplify_adjust_omp_clauses_1): Adjust for data being
416 a struct gimplify_adjust_omp_clauses_data pointer instead
417 of tree *. Pass pre_p as a new argument to
418 lang_hooks.decls.omp_finish_clause hook.
419 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
420 splay_tree_foreach to pass both list_p and pre_p.
421 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
422 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
423 gimplify_adjust_omp_clauses callers.
424 * langhooks.c (lhd_omp_finish_clause): New function.
425 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
426 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
427 * langhooks.h (struct lang_hooks_for_decls): Add a new
428 gimple_seq * argument to omp_finish_clause hook.
429 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
430 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
431 (scan_omp_parallel, lower_omp_for): When adding
432 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
433 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
434 * tree-nested.c (convert_nonlocal_omp_clauses,
435 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
436 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
437
438 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
439
440 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
441 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
442
443 2014-06-17 Xinliang David Li <davidxl@google.com>
444
445 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
446 * passes.c (pass_init_dump_file): Do not set initialize
447 flag to false unconditionally.
448
449 2014-06-17 Richard Biener <rguenther@suse.de>
450
451 * genopinit.c (main): Use vec<>::qsort method.
452 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
453 Likewise.
454 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
455
456 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
457
458 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
459 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
460 (mips_move_to_gpr_cost): Remove ST_REGS case.
461 (mips_move_from_gpr_cost): Likewise.
462 (mips_register_move_cost): Likewise.
463 (mips_secondary_reload_class): Likewise.
464
465 2014-06-17 Richard Biener <rguenther@suse.de>
466
467 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
468 (pass_all_optimizations): Move 3rd copy-prop pass from after
469 fre to before ifcombine/phiopt.
470
471 2014-06-17 Richard Biener <rguenther@suse.de>
472
473 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
474 and allow all blocks to be forwarders.
475
476 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
477
478 PR target/61483
479 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
480 variable 'size'; calculate 'size' right in the front; use
481 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
482 pcum->aapcs_stack_words.
483
484 2014-06-17 Nick Clifton <nickc@redhat.com>
485
486 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
487 (umulhi3, mulsidi3, umulsidi3): Likewise.
488
489 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
490
491 PR middle-end/61508
492 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
493 check for section name.
494
495 2014-06-17 Richard Biener <rguenther@suse.de>
496
497 * tree-ssa-propagate.c: Include domwalk.h.
498 (substitute_and_fold): Outline main worker into a domwalker ...
499 (substitute_and_fold_dom_walker::before_dom_children): ... here.
500 Schedule stmts we can fully propagate for removal. Remove
501 poor-mans DCE.
502 (substitute_and_fold): Apply a dominator walk to perform
503 substitution. Process stmts scheduled for removal here.
504
505 2014-06-17 Richard Biener <rguenther@suse.de>
506
507 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
508 of PHI node moving.
509
510 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
511
512 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
513 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
514 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
515 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
516 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
517 TARGET_HARD_FLOAT.
518 (get_fpscr) : Likewise.
519
520 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
521
522 PR rtl-optimization/61325
523 * lra-constraints.c (valid_address_p): Add forward declaration.
524 (simplify_operand_subreg): Check address validity before and after
525 alter_reg of memory subreg.
526
527 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
528
529 * config/i386/i386.c (decide_alg): Correctly handle
530 maximum size of stringop algorithm.
531
532 2014-06-16 Yury Gribov <y.gribov@samsung.com>
533
534 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
535
536 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
537
538 PR rtl-optimization/61522
539 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
540
541 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
542
543 Revert:
544 * symtab.c (symtab_node::reset_section): New method.
545 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
546 for localization.
547 * cgraph.h (reset_section): Declare.
548 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
549 do not consider comdat locals.
550 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
551 for new symbol.
552 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
553 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
554 reset sections of symbols dragged out of the comdats.
555 (function_and_variable_visibility): Reset sections of
556 localized symbols.
557
558 2014-06-16 Richard Biener <rguenther@suse.de>
559
560 PR tree-optimization/61482
561 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
562 [-INF(OVF), +INF(OVF)] range.
563
564 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
565
566 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
567 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
568 handling 32-bit multiplication.
569
570 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
571
572 PR middle-end/61430
573 * lra-lives.c (process_bb_lives): Skip creating copy during
574 insn scan when src/dest has constrained to same regno.
575
576 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
577
578 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
579 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
580
581 2014-06-16 Yury Gribov <y.gribov@samsung.com>
582
583 * asan.c (check_func): New function.
584 (maybe_create_ssa_name): Likewise.
585 (build_check_stmt_with_calls): Likewise.
586 (use_calls_p): Likewise.
587 (report_error_func): Change interface.
588 (build_check_stmt): Allow non-integer lengths; add support
589 for new parameter.
590 (asan_instrument): Likewise.
591 (instrument_mem_region_access): Moved code to build_check_stmt.
592 (instrument_derefs): Likewise.
593 (instrument_strlen_call): Likewise.
594 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
595 * doc/invoke.texi: Describe new parameter.
596 * params.def: Define new parameter.
597 * params.h: Likewise.
598 * sanitizer.def: Describe new builtins.
599
600 2014-06-16 Richard Biener <rguenther@suse.de>
601
602 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
603 Make all defs available at the end.
604 (eliminate): If we remove a PHI node schedule cfg-cleanup.
605
606 2014-06-18 Jakub Jelinek <jakub@redhat.com>
607
608 PR plugins/45078
609 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
610
611 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
612
613 PR bootstrap/61516
614 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
615 initialization. Replace remaining use of uid.
616
617 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
618
619 * c-family/c-common.c (handle_tls_model_attribute): Use
620 set_decl_tls_model.
621 * c-family/c-common.c (handle_tls_model_attribute): Use
622 set_decl_tls_model.
623 * cgraph.h (struct varpool_node): Add tls_model.
624 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
625 * tree.h (DECL_TLS_MODEL): Update.
626 (DECL_THREAD_LOCAL_P): Check that variable is static.
627 (decl_tls_model): Declare.
628 (set_decl_tls_model): Declare.
629 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
630 set symbol prorperties.
631 (get_emutls_init_templ_addr): Cleanup.
632 (new_emutls_decl): Update.
633 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
634 (lto_input_varpool_node): Likewise.
635 * lto-streamer-out.c (hash_tree): Likewise.
636 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
637 not stream DECL_TLS_MODEL.
638 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
639 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
640
641 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
642
643 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
644
645 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
646
647 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
648 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
649 lists.
650 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
651 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
652 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
653 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
654 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
655 (df_get_artificial_defs, df_get_artificial_uses)
656 (df_single_def, df_single_use): Update accordingly.
657 (df_refs_chain_dump): Take the first element in a linked list as
658 parameter, rather than a pointer to an array of pointers.
659 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
660 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
661 (df_chain_create_bb_process_use): Likewise.
662 (df_md_bb_local_compute_process_def): Likewise.
663 * fwprop.c (process_defs, process_uses): Likewise.
664 (register_active_defs, update_uses): Likewise.
665 (forward_propagate_asm): Update for new df_ref linking.
666 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
667 (df_null_ref_rec, df_null_mw_rec): Likewise.
668 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
669 explicitly.
670 (df_scan_free_bb_info): Remove check for null artificial_defs.
671 (df_install_ref_incremental): Adjust for new df_ref linking.
672 Use a single-element insertion rather than a full sort.
673 (df_ref_chain_delete_du_chain): Take the first element
674 in a linked list as parameter, rather than a pointer to an array of
675 pointers.
676 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
677 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
678 (df_insn_info_delete): Remove check for null defs and call to
679 df_scan_free_mws_vec.
680 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
681 null rather than df_null_*_rec.
682 (df_insn_rescan_debug_internal): Likewise, and update null
683 checks in the same way. Remove check for null defs.
684 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
685 Move a single element rather doing a full sort.
686 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
687 linking.
688 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
689 Initialize df_ref and df_mw_hardreg lists to null rather than
690 df_null_*_rec.
691 (df_ref_compare): Take df_refs as parameter, transferring the
692 old interface to...
693 (df_ref_ptr_compare): ...this new function.
694 (df_sort_and_compress_refs): Update accordingly.
695 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
696 old interface to...
697 (df_mw_ptr_compare): ...this new function.
698 (df_sort_and_compress_mws): Update accordingly.
699 (df_install_refs, df_install_mws): Return a linked list rather than
700 an array of pointers.
701 (df_refs_add_to_chains): Assert that old lists are empty rather
702 than freeing them.
703 (df_insn_refs_verify): Don't handle null defs speciailly.
704 * web.c (union_match_dups): Update for new df_ref linking.
705
706 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
707
708 * df.h (df_ref_create, df_ref_remove): Delete.
709 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
710 (df_ref_remove): Likewise.
711
712 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
713
714 * df.h (df_single_def, df_single_use): New functions.
715 * ira.c (find_moveable_pseudos): Use them.
716
717 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
718
719 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
720 * df-problems.c (df_note_bb_compute): Use it.
721 * regstat.c (regstat_bb_compute_ri): Likewise.
722
723 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
724
725 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
726 * cse.c (cse_extended_basic_block): Use them.
727 * dce.c (mark_artificial_use): Likewise.
728 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
729 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
730 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
731 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
732 (df_simulate_initialize_backwards): Likewise.
733 (df_simulate_finalize_backwards): Likewise.
734 (df_simulate_initialize_forwards): Likewise.
735 (df_md_simulate_artificial_defs_at_top): Likewise.
736 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
737 * regrename.c (init_rename_info): Likewise.
738 * regstat.c (regstat_bb_compute_ri): Likewise.
739 (regstat_bb_compute_calls_crossed): Likewise.
740
741 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
742
743 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
744 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
745 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
746 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
747 * combine.c (create_log_links): Likewise.
748 * compare-elim.c (find_flags_uses_in_insn): Likewise.
749 (try_eliminate_compare): Likewise.
750 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
751 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
752 (remove_reg_equal_equiv_notes_for_defs): Likewise.
753 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
754 (word_dce_process_block, dce_process_block): Likewise.
755 * ddg.c (def_has_ccmode_p): Likewise.
756 * df-core.c (df_bb_regno_first_def_find): Likewise.
757 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
758 * df-problems.c (df_rd_simulate_one_insn): Likewise.
759 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
760 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
761 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
762 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
763 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
764 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
765 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
766 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
767 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
768 * fwprop.c (local_ref_killed_between_p): Likewise.
769 (all_uses_available_at, free_load_extend): Likewise.
770 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
771 * hw-doloop.c (scan_loop): Likewise.
772 * ifcvt.c (dead_or_predicable): Likewise.
773 * init-regs.c (initialize_uninitialized_regs): Likewise.
774 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
775 (process_bb_node_lives): Likewise.
776 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
777 (find_moveable_pseudos): Likewise.
778 * loop-invariant.c (check_dependencies, record_uses): Likewise.
779 * recog.c (peep2_find_free_register): Likewise.
780 * ree.c (get_defs): Likewise.
781 * regstat.c (regstat_bb_compute_ri): Likewise.
782 (regstat_bb_compute_calls_crossed): Likewise.
783 * sched-deps.c (find_inc, find_mem): Likewise.
784 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
785 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
786 * shrink-wrap.c (requires_stack_frame_p): Likewise.
787 (prepare_shrink_wrap): Likewise.
788 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
789 * web.c (union_defs, pass_web::execute): Likewise.
790 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
791 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
792
793 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
794
795 * lra-assign.c (assign_by_spills): Add code to assign vector regs
796 to inheritance pseudos.
797 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
798
799 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
800
801 PR target/61415
802 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
803 (BU_MISC_2): Rename to ...
804 (BU_LDBL128_2): ... this.
805 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
806 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
807 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
808 RS6000_BTM_LDBL128.
809 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
810 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
811 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
812 (unpacktf_1): Likewise.
813 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
814 (__builtin_longdouble_dw1): Likewise.
815 * doc/sourcebuild.texi (longdouble128): Document.
816
817 2014-06-13 Jeff Law <law@redhat.com>
818
819 PR rtl-optimization/61094
820 PR rtl-optimization/61446
821 * ree.c (combine_reaching_defs): Get the mode for the copy from
822 the extension insn rather than the defining insn.
823
824 2014-06-13 Dehao Chen <dehao@google.com>
825
826 * dwarf2out.c (add_linkage_name): Emit more linkage name.
827
828 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
829
830 * doc/install.texi (--enable-linker-plugin-configure-flags)
831 (--enable-linker-plugin-flags): Document new flags.
832
833 2014-06-13 Martin Jambor <mjambor@suse.cz>
834
835 PR ipa/61186
836 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
837 cache_token if returning early.
838
839 2014-06-13 Nick Clifton <nickc@redhat.com>
840
841 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
842 requested alignment is active.
843 (LABEL_ALIGN): Likewise.
844 (LOOP_ALIGN): Likewise.
845
846 2014-06-13 Richard Biener <rguenther@suse.de>
847
848 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
849 Rewrite to propagate the VN result into all uses where
850 possible and to remove stmts becoming dead because of that.
851 (eliminate): Generalize stmt removal handling, remove in
852 reverse dominator order to support proper debug stmt
853 generation. Update stmts before removing stmts.
854 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
855
856 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
857
858 PR tree-optimization/61375
859 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
860 symbolic number cannot be represented in an uint64_t.
861 (find_bswap_or_nop_1): Likewise.
862
863 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
864
865 * symtab.c (symtab_node::reset_section): New method.
866 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
867 for localization.
868 * cgraph.h (reset_section): Declare.
869 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
870 do not consider comdat locals.
871 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
872 for new symbol.
873 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
874 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
875 reset sections of symbols dragged out of the comdats.
876 (function_and_variable_visibility): Reset sections of
877 localized symbols.
878
879 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
880
881 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
882 to use symtab and decl_binds_to_current_def_p
883 * tree-vectorizer.c (increase_alignment): Increase alignment
884 of alias target, too.
885
886 2014-06-12 Jakub Jelinek <jakub@redhat.com>
887
888 PR middle-end/61486
889 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
890 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
891 if outer combined construct is distribute.
892 (gimplify_omp_for): For OMP_DISTRIBUTE set
893 gimplify_omp_ctxp->distribute.
894 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
895 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
896 mapping into decl map.
897
898 2014-06-12 Jason Merrill <jason@redhat.com>
899
900 * common.opt (fabi-version): Change default to 0.
901
902 2014-06-12 Jason Merrill <jason@redhat.com>
903
904 * toplev.c (process_options): Reject -fabi-version=1.
905
906 2014-06-12 Jeff Law <law@redhat.com>
907
908 PR tree-optimization/61009
909 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
910 value when we stop processing a block due to problematic PHIs.
911
912 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
913
914 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
915 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
916 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
917 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
918 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
919 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
920 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
921 are not in the spec.
922
923 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
924
925 PR target/59843
926 * config/aarch64/aarch64-modes.def: Add V1DFmode.
927 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
928 Support V1DFmode.
929
930 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
931
932 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
933
934 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
935
936 PR target/61443
937 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
938 loading from address spaces.
939
940 2014-06-12 Martin Liska <mliska@suse.cz>
941
942 PR ipa/61462
943 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
944 statement is reachable.
945
946 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
947
948 * symtab.c (section_hash): New hash.
949 (symtab_unregister_node): Clear section before freeing.
950 (hash_section_hash_entry): New haser.
951 (eq_sections): New function.
952 (symtab_node::set_section_for_node): New method.
953 (set_section_1): Update.
954 (symtab_node::set_section): Take string instead of tree as parameter.
955 (symtab_resolve_alias): Update.
956 * cgraph.h (section_hash_entry_d): New structure.
957 (section_hash_entry): New typedef.
958 (cgraph_node): Change comdat_group_ to x_comdat_group,
959 change section_ to x_section and turn into section_hash_entry;
960 update accestors; put set_section_for_node offline.
961 * tree.c (decl_section_name): Turn into string.
962 (set_decl_section_name): Change parameter to be string.
963 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
964 * sdbout.c (sdbout_one_type): Update.
965 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
966 * varasm.c (IN_NAMED_SECTION, get_named_section,
967 resolve_unique_section, hot_function_section, get_named_text_section,
968 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
969 make_decl_rtl, default_unique_section): Update.
970 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
971 (c6x_elf_unique_section): Update.
972 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
973 * config/pa/pa.c (pa_function_section): Update.
974 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
975 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
976 * config/arc/arc.c (arc_in_small_data_p): Update.
977 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
978 * config/mcore/mcore.c (mcore_unique_section): Update.
979 * config/mips/mips.c (mips16_build_function_stub): Update.
980 (mips16_build_call_stub): Update.
981 (mips_function_rodata_section): Update.
982 (mips_in_small_data_p): Update.
983 * config/score/score.c (score_in_small_data_p): Update.
984 * config/rx/rx.c (rx_in_small_data): Update.
985 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
986 (rs6000_xcoff_asm_named_section): Update.
987 (rs6000_xcoff_unique_section): Update.
988 * config/frv/frv.c (frv_string_begins_with): Update.
989 (frv_in_small_data_p): Update.
990 * config/v850/v850.c (v850_encode_data_area): Update.
991 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
992 (bfin_handle_l1_data_attribute): Update.
993 (bfin_handle_l2_attribute): Update.
994 * config/mep/mep.c (mep_unique_section): Update.
995 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
996 Update.
997 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
998 (h8300_handle_tiny_data_attribute): Update.
999 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
1000 (m32r_in_small_data_p): Update.
1001 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
1002 * config/i386/i386.c (ix86_in_large_data_p): Update.
1003 * config/i386/winnt.c (i386_pe_unique_section): Update.
1004 * config/darwin.c (darwin_function_section): Update.
1005 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
1006 * tree-emutls.c (get_emutls_init_templ_addr): Update.
1007 (new_emutls_decl): Update.
1008 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
1009 input_varpool_node): Update.
1010 (ead_string_cst): Turn to ...
1011 (read_string): ... this one.
1012 * dwarf2out.c (secname_for_decl): Update.
1013 * asan.c (asan_protect_global): Update.
1014
1015 2014-06-11 DJ Delorie <dj@redhat.com>
1016
1017 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
1018 cache lines.
1019 * config/rx/rx.c (rx_option_override): Likewise.
1020 (rx_align_for_label): Likewise.
1021
1022 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
1023
1024 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
1025
1026 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
1027 prototype.
1028
1029 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1030
1031 * common.md: New file.
1032 * doc/md.texi: Update description of generic, machine-independent
1033 constraints.
1034 * config/s390/constraints.md (e): Delete.
1035 * Makefile.in (md_file): Include common.md.
1036 * config/m32c/t-m32c (md_file): Likewise.
1037 * genpreds.c (general_mem): New array.
1038 (generic_constraint_letters): Remove constraints now defined by
1039 common.md.
1040 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
1041 Allow the first character to be '<' or '>' as well.
1042 * genoutput.c (general_mem): New array.
1043 (indep_constraints): Remove constraints now defined by common.md.
1044 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
1045 Remove special handling of 'm'.
1046 * ira-costs.c (record_reg_classes): Remove special handling of
1047 constraints now defined by common.md.
1048 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
1049 * ira-lives.c (single_reg_class): Likewise.
1050 (ira_implicitly_set_insn_hard_regs): Likewise.
1051 * lra-constraints.c (reg_class_from_constraints): Likewise.
1052 (process_alt_operands, process_address, curr_insn_transform): Likewise.
1053 * postreload.c (reload_cse_simplify_operands): Likewise.
1054 * reload.c (push_secondary_reload, scratch_reload_class)
1055 (find_reloads, alternative_allows_const_pool_ref): Likewise.
1056 * reload1.c (maybe_fix_stack_asms): Likewise.
1057 * targhooks.c (default_secondary_reload): Likewise.
1058 * stmt.c (parse_output_constraint): Likewise.
1059 * recog.c (preprocess_constraints): Likewise.
1060 (constrain_operands, peep2_find_free_register): Likewise.
1061 (asm_operand_ok): Likewise, but add a comment saying why 'o'
1062 must be handled specially.
1063
1064 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1065
1066 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
1067 * genpreds.c (have_const_dbl_constraints): Delete.
1068 (add_constraint): Don't set it.
1069 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
1070 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
1071 constraints using the lookup_constraint logic.
1072 * ira-lives.c (single_reg_class): Likewise.
1073 * ira.c (ira_setup_alts): Likewise.
1074 * lra-constraints.c (process_alt_operands): Likewise.
1075 * recog.c (asm_operand_ok, constrain_operands): Likewise.
1076 * reload.c (find_reloads): Likewise.
1077
1078 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1079
1080 * genpreds.c (const_int_start, const_int_end): New variables.
1081 (choose_enum_order): Output CONST_INT constraints before memory
1082 constraints.
1083 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
1084 Add CT_CONST_INT.
1085 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
1086 * ira.c (ira_setup_alts): Likewise.
1087 * lra-constraints.c (process_alt_operands): Likewise.
1088 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
1089 * reload.c (find_reloads): Likewise.
1090
1091 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1092
1093 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
1094 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
1095 * recog.c (preprocess_constraints): Update accordingly.
1096
1097 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1098
1099 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
1100 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
1101 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
1102 * genpreds.c (print_type_tree): New function.
1103 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
1104 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
1105 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
1106 Write out enum constraint_type and get_constraint_type.
1107 * lra-constraints.c (satisfies_memory_constraint_p): Take a
1108 constraint_num rather than a constraint string.
1109 (satisfies_address_constraint_p): Likewise.
1110 (reg_class_from_constraints): Avoid old constraint macros.
1111 (process_alt_operands, process_address_1): Likewise.
1112 (curr_insn_transform): Likewise.
1113 * ira-costs.c (record_reg_classes): Likewise.
1114 (record_operand_costs): Likewise.
1115 * ira-lives.c (single_reg_class): Likewise.
1116 (ira_implicitly_set_insn_hard_regs): Likewise.
1117 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
1118 * postreload.c (reload_cse_simplify_operands): Likewise.
1119 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
1120 (constrain_operands, peep2_find_free_register): Likewise.
1121 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
1122 (find_reloads, alternative_allows_const_pool_ref): Likewise.
1123 * reload1.c (maybe_fix_stack_asms): Likewise.
1124 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1125 * targhooks.c (default_secondary_reload): Likewise.
1126 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
1127 to EXTRA_CONSTRAINT_STR.
1128 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
1129
1130 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1131
1132 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
1133 (write_constraint_satisfied_p_array): ...this new function.
1134 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
1135 an array.
1136 (write_insn_preds_c): Update accordingly.
1137
1138 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1139
1140 * genpreds.c (write_lookup_constraint): Rename to...
1141 (write_lookup_constraint_1): ...this.
1142 (write_lookup_constraint_array): New function.
1143 (write_tm_preds_h): Define lookup_constraint as an inline function
1144 that uses write_lookup_constraint_array where possible.
1145 (write_insn_preds_c): Update for the changes above.
1146
1147 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
1148
1149 * doc/md.texi (regclass_for_constraint): Rename to...
1150 (reg_class_for_constraint): ...this.
1151 * genpreds.c (num_constraints, enum_order, register_start)
1152 (register_end, satisfied_start, memory_start, memory_end)
1153 (address_start, address_end): New variables.
1154 (add_constraint): Count the number of constraints.
1155 (choose_enum_order): New function.
1156 (write_enum_constraint_num): Iterate over enum_order.
1157 (write_regclass_for_constraint): Rename to...
1158 (write_reg_class_for_constraint_1): ...this and update output
1159 accordingly.
1160 (write_constraint_satisfied_p): Rename to...
1161 (write_constraint_satisfied_p_1): ...this and update output
1162 accordingly. Do nothing if all extra constraints are register
1163 constraints.
1164 (write_insn_extra_memory_constraint): Delete.
1165 (write_insn_extra_address_constraint): Delete.
1166 (write_range_function): New function.
1167 (write_tm_preds_h): Define constraint_satisfied_p and
1168 reg_class_for_constraint as inline functions that do a range check
1169 before calling the out-of-line function. Use write_range_function
1170 to implement insn_extra_{register,memory,address}_constraint,
1171 the first of which is new.
1172 (write_insn_preds_c): Update after above changes to write_* functions.
1173 (main): Call choose_enum_order.
1174
1175 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
1176
1177 PR tree-optimization/61306
1178 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
1179 expression instead of its size.
1180 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
1181 false to prevent optimization when the result is unpredictable due to
1182 arithmetic right shift of signed type with highest byte is set.
1183 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
1184 (init_symbolic_number): Likewise.
1185 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
1186 when the result is unpredictable due to sign extension.
1187
1188 2014-06-11 Terry Guo <terry.guo@arm.com>
1189
1190 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
1191 (*thumb1_addsi3): Ditto.
1192 (*thumb_subdi3): Ditto.
1193 (thumb1_subsi3_insn): Ditto.
1194 (*thumb_mulsi3): Ditto.
1195 (*thumb_mulsi3_v6): Ditto.
1196 (*thumb1_andsi3_insn): Ditto.
1197 (thumb1_bicsi3): Ditto.
1198 (*thumb1_iorsi3_insn): Ditto.
1199 (*thumb1_xorsi3_insn): Ditto.
1200 (*thumb1_ashlsi3): Ditto.
1201 (*thumb1_ashrsi3): Ditto.
1202 (*thumb1_lshrsi3): Ditto.
1203 (*thumb1_rotrsi3): Ditto.
1204 (*thumb1_negdi2): Ditto.
1205 (*thumb1_negsi2): Ditto.
1206 (*thumb1_abssi2): Ditto.
1207 (*thumb1_neg_abssi2): Ditto.
1208 (*thumb1_one_cmplsi2): Ditto.
1209 (*thumb1_zero_extendhisi2): Ditto.
1210 (*thumb1_zero_extendqisi2): Ditto.
1211 (*thumb1_zero_extendqisi2_v6): Ditto.
1212 (thumb1_extendhisi2): Ditto.
1213 (thumb1_extendqisi2): Ditto.
1214 (*thumb1_movdi_insn): Ditto.
1215 (*thumb1_movsi_insn): Ditto.
1216 (*thumb1_movhi_insn): Ditto.
1217 (thumb_movhi_clobber): Ditto.
1218 (*thumb1_movqi_insn): Ditto.
1219 (*thumb1_movhf): Ditto.
1220 (*thumb1_movsf_insn): Ditto.
1221 (*thumb_movdf_insn): Ditto.
1222 (movmem12b): Ditto.
1223 (movmem8b): Ditto.
1224 (cbranchqi4): Ditto.
1225 (cbranchsi4_insn): Ditto.
1226 (cbranchsi4_scratch): Ditto.
1227 (*negated_cbranchsi4): Ditto.
1228 (*tbit_cbranch): Ditto.
1229 (*tlobits_cbranch): Ditto.
1230 (*tstsi3_cbranch): Ditto.
1231 (*cbranchne_decr1): Ditto.
1232 (*addsi3_cbranch): Ditto.
1233 (*addsi3_cbranch_scratch): Ditto.
1234 (*thumb_cmpdi_zero): Ditto.
1235 (cstoresi_eq0_thumb1): Ditto.
1236 (cstoresi_ne0_thumb1): Ditto.
1237 (*cstoresi_eq0_thumb1_insn): Ditto.
1238 (*cstoresi_ne0_thumb1_insn): Ditto.
1239 (cstoresi_nltu_thumb1): Ditto.
1240 (cstoresi_ltu_thumb1): Ditto.
1241 (thumb1_addsi3_addgeu): Ditto.
1242 (*thumb_jump): Ditto.
1243 (*call_reg_thumb1_v5): Ditto.
1244 (*call_reg_thumb1): Ditto.
1245 (*call_value_reg_thumb1_v5): Ditto.
1246 (*call_value_reg_thumb1): Ditto.
1247 (*call_insn): Ditto.
1248 (*call_value_insn): Ditto.
1249 (thumb1_casesi_internal_pic): Ditto.
1250 (thumb1_casesi_dispatch): Ditto.
1251 (*thumb1_indirect_jump): Ditto.
1252 (prologue_thumb1_interwork): Ditto.
1253 (*epilogue_insns): Ditto.
1254 (consttable_1): Ditto.
1255 (consttable_2): Ditto.
1256 (tablejump): Ditto.
1257 (*thumb1_tablejump): Ditto.
1258 (thumb_eh_return): Ditto.
1259 (define_peephole2): Two of them are thumb1 only and got moved into
1260 new file thumb1.md.
1261 (define_split): Six of them are thumb1 only and got moved into new
1262 file thumb1.md.
1263 * config/arm/thumb1.md: New file comprised of above thumb1 only
1264 patterns.
1265
1266 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1267
1268 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
1269 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
1270 dependencies.
1271 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
1272 (aarch64_crc_builtin_datum): New struct.
1273 (aarch64_crc_builtin_data): New.
1274 (aarch64_init_crc32_builtins): New function.
1275 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
1276 (aarch64_crc32_expand_builtin): New.
1277 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
1278 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1279 __ARM_FEATURE_CRC32 when appropriate.
1280 (TARGET_CRC32): Define.
1281 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
1282 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
1283 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
1284 (aarch64_<crc_variant>): New pattern.
1285 * config/aarch64/arm_acle.h: New file.
1286 * config/aarch64/iterators.md (CRC): New int iterator.
1287 (crc_variant, crc_mode): New int attributes.
1288 * doc/aarch64-acle-intrinsics.texi: New file.
1289 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
1290 Include aarch64-acle-intrinsics.texi.
1291
1292 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
1293
1294 * tree-vect-data-refs.c (vect_grouped_store_supported): New
1295 check for stores group of length 3.
1296 (vect_permute_store_chain): New permutations for stores group of
1297 length 3.
1298 * tree-vect-stmts.c (vect_model_store_cost): Change cost
1299 of vec_perm_shuffle for the new permutations.
1300
1301 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
1302
1303 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
1304 table rewriting temporarily on targets not supporting ONE_ONLY.
1305
1306 2014-06-11 Richard Biener <rguenther@suse.de>
1307
1308 PR middle-end/61437
1309 Revert
1310 2014-06-04 Richard Biener <rguenther@suse.de>
1311
1312 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
1313 TREE_PUBLIC and DECL_EXTERNAL decls.
1314
1315 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
1316
1317 * varasm.c (set_implicit_section): New function.
1318 (resolve_unique_section): Use it to set implicit section
1319 for aliases, too.
1320 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
1321 (default_function_section): Likewise.
1322 (decl_binds_to_current_def_p): Constify argument.
1323 * varasm.h (decl_binds_to_current_def_p): Update prototype.
1324 * asan.c (asan_protect_global): Use
1325 symtab_get_node (decl)->implicit_section.
1326 * symtab.c (dump_symtab_base): Dump implicit sections.
1327 (verify_symtab_base): Verify sanity of sectoins and comdats.
1328 (symtab_resolve_alias): Alias share the section of its target.
1329 (set_section_1): New function.
1330 (symtab_node::set_section): Move here, recurse to aliases.
1331 (verify_symtab): Check for duplicated symtab lists.
1332 * tree-core.h (implicit_section_name_p): Remove.
1333 * tree-vect-data-refs.c: Include varasm.h.
1334 (vect_can_force_dr_alignment_p): Fix conditional on when
1335 decl bints to current definition; use
1336 symtab_get_node (decl)->implicit_section.
1337 * cgraph.c (cgraph_make_node_local_1): Fix section set.
1338 * cgraph.h (struct symtab_node): Add implicit_section.
1339 (set_section): Rename to ...
1340 (set_section_for_node): ... this one.
1341 (set_section): Declare.
1342 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
1343 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
1344 input_overwrite_node, input_varpool_node): Stream implicit_section.
1345 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
1346 removal; it will fail in LTO.
1347
1348 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1349
1350 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
1351 Change second alternative type to f_mcr.
1352 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
1353 and 12th alternatives' types to f_mcr and f_mrc.
1354 (*movdi_aarch64): Same for 12th and 13th alternatives.
1355 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
1356 (aarch64_movtilow_tilow): Change type to fmov.
1357
1358 2014-06-10 Jiong Wang <jiong.wang@arm.com>
1359
1360 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
1361 (aarch64_save_or_restore_callee_save_registers): Fix layout.
1362
1363 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1364
1365 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
1366 New expander.
1367 (aarch64_sqrdmulh_lane<mode>): Likewise.
1368 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
1369 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
1370 (aarch64_sqdmulh_laneq<mode>): New expander.
1371 (aarch64_sqrdmulh_laneq<mode>): Likewise.
1372 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
1373 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
1374 (aarch64_sqdmulh_lane<mode>): New expander.
1375 (aarch64_sqrdmulh_lane<mode>): Likewise.
1376 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
1377 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
1378 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
1379 (aarch64_sqdmlal_laneq<mode>): Likewise.
1380 (aarch64_sqdmlsl_lane<mode>): Likewise.
1381 (aarch64_sqdmlsl_laneq<mode>): Likewise.
1382 (aarch64_sqdmlal2_lane<mode>): Likewise.
1383 (aarch64_sqdmlal2_laneq<mode>): Likewise.
1384 (aarch64_sqdmlsl2_lane<mode>): Likewise.
1385 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
1386 (aarch64_sqdmull_lane<mode>): Likewise.
1387 (aarch64_sqdmull_laneq<mode>): Likewise.
1388 (aarch64_sqdmull2_lane<mode>): Likewise.
1389 (aarch64_sqdmull2_laneq<mode>): Likewise.
1390
1391 2014-06-10 Richard Biener <rguenther@suse.de>
1392
1393 PR tree-optimization/61438
1394 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
1395 (eliminate_dom_walker::before_dom_children): Only try to inhibit
1396 insertion of IVs if running PRE.
1397 (eliminate): Adjust.
1398 (pass_pre::execute): Likewise.
1399 (pass_fre::execute): Likewise.
1400
1401 2014-06-10 Richard Biener <rguenther@suse.de>
1402
1403 PR middle-end/61456
1404 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1405 Do not use the main variant for the type comparison.
1406 (ncr_compar): Likewise.
1407 (nonoverlapping_component_refs_p): Likewise.
1408
1409 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
1410
1411 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
1412 REG_CFA_RESTORE mode.
1413
1414 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
1415
1416 * config/i386/i386.c (expand_vec_perm_pblendv): New.
1417 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
1418 expand_vec_perm_pblendv.
1419
1420 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1421
1422 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
1423 available.
1424 Simplify description of __crc32d and __crc32cd intrinsics.
1425 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
1426 availability.
1427
1428 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
1429
1430 PR lto/61334
1431 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
1432 * config.in: Regenerate.
1433 * configure: Likewise.
1434
1435 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
1436
1437 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
1438 and public vars.
1439 (intersect_static_var_sets): Remove.
1440 (propagate): Do not prune local statics.
1441
1442 2014-06-10 Jakub Jelinek <jakub@redhat.com>
1443
1444 PR fortran/60928
1445 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
1446 Set lastprivate_firstprivate even if omp_private_outer_ref
1447 langhook returns true.
1448 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
1449 langhook, call unshare_expr on new_var and call
1450 build_outer_var_ref to get the last argument.
1451
1452 2014-06-10 Marek Polacek <polacek@redhat.com>
1453
1454 PR c/60988
1455 * doc/extend.texi: Add cindex for transparent_union.
1456
1457 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
1458
1459 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
1460 init_symbolic_number ().
1461
1462 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
1463
1464 PR middle-end/61141
1465 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
1466 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
1467 (verify_rtl_sharing): Likewise.
1468
1469 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
1470
1471 PR c++/54442
1472 * tree.c (build_qualified_type): Use a canonical type for
1473 TYPE_CANONICAL.
1474
1475 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1476
1477 * config/arm/arm-modes.def: Remove XFmode.
1478
1479 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
1480
1481 PR target/61062
1482 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
1483 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
1484 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
1485 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
1486 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
1487 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
1488 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
1489 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
1490 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
1491
1492 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
1493
1494 * tree-core.h (tree_decl_with_vis): Remove section_name.
1495
1496 2014-06-09 Kito Cheng <kito@0xlab.org>
1497
1498 * ira.c (ira): Don't call init_caller_save if LRA enabled
1499 since LRA use its own infrastructure to handle that.
1500
1501 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1502
1503 * symtab.c (dump_symtab_base): Update dumping.
1504 (symtab_make_decl_local): Clear only DECL_COMDAT.
1505 * tree-vect-data-refs.c (Check that variable is static before
1506 tampering with sections.
1507 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
1508 (cgraph_create_virtual_clone): Likewise.
1509 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
1510 (decl_section_name, set_decl_section_name): New accessors.
1511 (find_decls_types_r): Do not walk section name
1512 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
1513 (decl_comdat_group, decl_comdat_group_id): Constify.
1514 (decl_section_name, set_decl_section_name): Update.
1515 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
1516 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
1517 (cgraph_make_node_local_1): Clear section and comdat group.
1518 * cgraph.h (set_comdat_group): Sanity check.
1519 (get_section, set_section): New.
1520 * ipa-comdats.c (ipa_comdats): Use get_section.
1521 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
1522 * lto-streamer-out.c: Do not follow section names.
1523 * c-family/c-common.c (handle_section_attribute): Update.
1524 * lto-cgraph.c (lto_output_node): Output section.
1525 (lto_output_varpool_node): Likewise.
1526 (read_comdat_group): Rename to ...
1527 (read_identifier): ... this one.
1528 (read_string_cst): New function.
1529 (input_node, input_varpool_node): Input section names.
1530 * tree-emutls.c (get_emutls_init_templ_addr): Update.
1531 (new_emutls_decl): Update.
1532 (secname_for_decl): Check section names only of static vars.
1533 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
1534 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
1535 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
1536 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
1537 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
1538 * config/mcore/mcore.c (mcore_unique_section): Likewise.
1539 * config/mips/mips.c (mips16_build_function_stub): Likewise.
1540 * config/v850/v850.c (v850_insert_attributes): Likewise.
1541 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
1542 Likewise.
1543 (h8300_handle_tiny_data_attribute): Likewise.
1544 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
1545 (bfin_handle_l2_attribute): Likewise.
1546
1547 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1548
1549 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
1550 remove static initializer.
1551
1552 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1553
1554 * varasm.c (use_blocks_for_decl_p): Check symbol table
1555 instead of alias attribute.
1556 (place_block_symbol): Recurse on aliases.
1557
1558 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1559
1560 * ipa-visibility.c: Include varasm.h
1561 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
1562
1563 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
1564
1565 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
1566 outputting aliases.
1567
1568 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
1569
1570 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
1571 from test_insn into GGC space escape via SET_SRC.
1572
1573 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
1574
1575 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
1576 call statement, if any.
1577 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
1578 statements, if any. Tidy up.
1579
1580 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1581
1582 PR target/61431
1583 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
1584 iterators, VSX_D that handles 64-bit types, and VSX_LE that
1585 handles swapping the two 64-bit double words on little endian
1586 systems. Include V1TImode and optionally TImode in VSX_LE so that
1587 these types are properly swapped. Change all of the insns and
1588 splits that do the 64-bit swaps to use VSX_LE.
1589 (vsx_le_perm_load_<mode>): Likewise.
1590 (vsx_le_perm_store_<mode>): Likewise.
1591 (splitters for little endian memory operations): Likewise.
1592 (vsx_xxpermdi2_le_<mode>): Likewise.
1593 (vsx_lxvd2x2_le_<mode>): Likewise.
1594 (vsx_stxvd2x2_le_<mode>): Likewise.
1595
1596 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
1597
1598 PR target/61423
1599 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
1600 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
1601 and corresponding splitters. Zero extend general register
1602 or memory input operand to XMM temporary. Enable for
1603 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
1604 (floatunssi<mode>2): Update expander predicate.
1605
1606 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
1607
1608 PR rtl-optimization/61325
1609 * lra-constraints.c (process_address_1): Check scale equal to one
1610 to prevent transformation: base + scale * index => base + new_reg.
1611
1612 2014-06-06 Richard Biener <rguenther@suse.de>
1613
1614 PR tree-optimization/59299
1615 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
1616 a def operand.
1617 (nearest_common_dominator_of_uses): Likewise.
1618 (statement_sink_location): Adjust. Support sinking loads.
1619
1620 2014-06-06 Martin Jambor <mjambor@suse.cz>
1621
1622 * ipa-prop.c (get_place_in_agg_contents_list): New function.
1623 (build_agg_jump_func_from_list): Likewise.
1624 (determine_known_aggregate_parts): Renamed to
1625 determine_locally_known_aggregate_parts. Moved some functionality
1626 to the two functions above, removed bound checks.
1627
1628 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
1629
1630 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
1631 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
1632 (aarch64_progress_pointer): Likewise.
1633 (aarch64_copy_one_part_and_move_pointers): Likewise.
1634 (aarch64_expand_movmen): Likewise.
1635 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
1636 * config/aarch64/aarch64.md (movmem<mode>): New.
1637
1638 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
1639
1640 * targhooks.c (default_add_stmt_cost): Call target specific
1641 hook instead of default one.
1642
1643 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
1644
1645 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
1646 endianness instead of host endianness.
1647 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
1648 comments.
1649
1650 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1651
1652 PR debug/53927
1653 * function.c (instantiate_decls): Process the saved static chain.
1654 (expand_function_start): If not optimizing, save the static chain
1655 onto the stack.
1656 * tree-nested.c (convert_all_function_calls): Always create the static
1657 chain for nested functions if not optimizing.
1658
1659 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1660
1661 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
1662
1663 2014-06-06 Richard Biener <rguenther@suse.de>
1664
1665 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
1666 (construct_init_block): Likewise.
1667 (construct_exit_block): Likewise.
1668 (pass_expand::execute): Likewise.
1669 * graphite.c (graphite_transforms): Replace check for current_loops
1670 with a check for > 1 loops.
1671 (pass_graphite_transforms::execute): Adjust.
1672 * ipa-split.c (split_function): Remove check for current_loops.
1673 * omp-low.c (expand_parallel_call): Likewise.
1674 (expand_omp_for_init_counts): Likewise.
1675 (extract_omp_for_update_vars): Likewise.
1676 (expand_omp_for_generic): Likewise.
1677 (expand_omp_sections): Likewise.
1678 (expand_omp_target): Likewise.
1679 * tracer.c (tail_duplicate): Likewise.
1680 (pass_tracer::execute): Likewise.
1681 * trans-mem.c (expand_transaction): Likewise.
1682 * tree-complex.c (expand_complex_div_wide): Likewise.
1683 * tree-eh.c (lower_resx): Likewise.
1684 (cleanup_empty_eh_merge_phis): Likewise.
1685 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
1686 current_loops with a check for > 1 loops.
1687 (pass_predcom::execute): Adjust.
1688 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
1689 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
1690 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
1691 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
1692 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1693 * tree-switch-conversion.c (process_switch): Likewise.
1694 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1695 * tree-vrp.c (vrp_visit_phi_node): Likewise.
1696 (execute_vrp): Likewise.
1697 * ubsan.c (ubsan_expand_null_ifn): Likewise.
1698
1699 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
1700
1701 * rtl.h (insn_location): Declare.
1702 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
1703 with UNKNOWN_LOCATION.
1704 * emit-rtl.c (insn_location): New function.
1705 * final.c (notice_source_line): Check that the instruction has a
1706 location before retrieving it and use insn_location.
1707 * modulo-sched.c (loop_single_full_bb_p): Likewise.
1708 * print-rtl.c (print_rtx): Likewise.
1709
1710 2014-06-06 Richard Biener <rguenther@suse.de>
1711
1712 * passes.def: Move 2nd VRP pass before phi-only-cprop.
1713
1714 2014-06-06 Christian Bruel <christian.bruel@st.com>
1715
1716 PR tree-optimization/43934
1717 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
1718 cost.
1719
1720 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
1721
1722 * ira-lives.c (single_reg_class): Add missing break. Explicitly
1723 return NO_REGS for extra address and memory constraints. Handle
1724 operands that match (or are equivalent to something that matches)
1725 extra constant constraints. Ignore other non-register operands.
1726
1727 2014-06-06 Alan Modra <amodra@gmail.com>
1728
1729 PR target/61300
1730 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
1731 * doc/tm.texi: Regenerate.
1732 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
1733 Use throughout in place of REG_PARM_STACK_SPACE.
1734 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
1735 "incoming" param. Pass to rs6000_function_parms_need_stack.
1736 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
1737 prototype_p when incoming. Use function decl when incoming
1738 to handle K&R style functions.
1739 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
1740 (INCOMING_REG_PARM_STACK_SPACE): Define.
1741
1742 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1743
1744 PR target/52472
1745 * cfgexpand.c (expand_debug_expr): Use address space of nested
1746 TREE_TYPE for ADDR_EXPR and MEM_REF.
1747
1748 2014-06-05 Jeff Law <law@redhat.com>
1749
1750 PR tree-optimization/61289
1751 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
1752 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
1753 looking for those which match LHS. All callers changed.
1754 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
1755 parameters and code which manipulated them. All callers changed.
1756 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
1757 and DST_MAP parameters. Simplify invalidation code by just calling
1758 invalidate_equivalences. All callers changed.
1759 (thread_across_edge): Simplify now that we don't need to maintain
1760 the map of equivalences to invalidate.
1761
1762 2014-06-05 Kai Tietz <ktietz@redhat.com>
1763 Richard Henderson <rth@redhat.com>
1764
1765 PR target/46219
1766 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
1767 checking for !TARGET_X32.
1768 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
1769 (sibcall_intern): New define_insn, plus required peepholes.
1770 (sibcall_pop_intern): Likewise.
1771 (sibcall_value_intern): Likewise.
1772 (sibcall_value_pop_intern): Likewise.
1773
1774 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
1775
1776 * tree-inline.c (tree_function_versioning): Check DF info existence
1777 before accessing it.
1778
1779 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1780
1781 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
1782 frame_size.
1783 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
1784 aarch64_frame hard_fp_offset and frame_size.
1785 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
1786 frame_size; remove original_frame_size.
1787 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
1788 (aarch64_initial_elimination_offset): Remove frame_size and
1789 offset. Use aarch64_frame frame_size.
1790
1791 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1792 Jiong Wang <jiong.wang@arm.com>
1793 Renlin <renlin.li@arm.com>
1794
1795 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
1796 initialization of R30 offset. Update offset. Iterate core
1797 regisers upto X30. Remove X29, X30 specific code.
1798
1799 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1800 Jiong Wang <jiong.wang@arm.com>
1801
1802 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
1803 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
1804 (aarch64_register_saved_on_entry): Adjust test.
1805
1806 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1807
1808 * config/aarch64/aarch64.h (machine_function): Move
1809 saved_varargs_size from here...
1810 (aarch64_frame): ... to here.
1811
1812 * config/aarch64/aarch64.c (aarch64_expand_prologue)
1813 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
1814 (aarch64_initial_elimination_offset)
1815 (aarch64_setup_incoming_varargs): Adjust location of
1816 saved_varargs_size.
1817
1818 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1819
1820 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
1821 layout comment.
1822
1823 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
1824 Prachi Godbole <Prachi.Godbole@imgtec.com>
1825
1826 * config/mips/mips-cpus.def: Add definition for p5600. Updated
1827 mips32r5 entry to use PROCESSOR_P5600.
1828 * config/mips/mips-tables.opt: Regenerate.
1829 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
1830 * config/mips/mips.c (mips_fmadd_bypass): New function.
1831 (mips_rtx_cost_data): Add costs for p5600.
1832 (mips_issue_rate): Add support for p5600.
1833 (mips_multipass_dfa_lookahead): Likewise.
1834 * config/mips/mips.h (TUNE_P5600): New define.
1835 (TUNE_MACC_CHAINS): Add TUNE_P5600.
1836 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
1837 * config/mips/mips.md: Include p5600.md.
1838 (processor): Add p5600.
1839 * config/mips/p5600.md: New file.
1840
1841 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
1842
1843 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
1844 * config/i386/predicates.md (palignr_operand): New.
1845 Indicates if permutation is suitable for palignr instruction.
1846
1847 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
1848
1849 PR tree-optimization/61319
1850 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
1851 stmt belongs to loop.
1852
1853 2014-06-05 Richard Biener <rguenther@suse.de>
1854
1855 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
1856 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
1857 (lookup_tmp_var): Adjust.
1858 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
1859
1860 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1861
1862 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
1863
1864 2014-06-05 Marek Polacek <polacek@redhat.com>
1865
1866 PR c/49706
1867 * doc/invoke.texi: Document -Wlogical-not-parentheses.
1868
1869 2014-06-04 Tom de Vries <tom@codesourcery.com>
1870
1871 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
1872 CONST_INT.
1873
1874 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
1875
1876 PR tree-optimization/61385
1877 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
1878
1879 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
1880
1881 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
1882 changed to use fatal_error.
1883 (main): Ensure lto_wrapper_cleanup is run atexit.
1884
1885 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1886
1887 * lra-constraints.c (valid_address_p): Move earlier in file.
1888 (address_eliminator): New structure.
1889 (satisfies_memory_constraint_p): New function.
1890 (satisfies_address_constraint_p): Likewise.
1891 (process_alt_operands, process_address, curr_insn_transform): Use them.
1892
1893 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1894
1895 * lra-int.h (lra_static_insn_data): Make operand_alternative a
1896 const pointer.
1897 (target_lra_int, default_target_lra_int, this_target_lra_int)
1898 (op_alt_data): Delete.
1899 * lra.h (lra_init): Delete.
1900 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
1901 (init_insn_code_data_once): Remove op_alt_data handling.
1902 (finish_insn_code_data_once): Likewise.
1903 (init_op_alt_data): Delete.
1904 (get_static_insn_data): Initialize operand_alternative to null.
1905 (free_insn_recog_data): Cast operand_alternative before freeing it.
1906 (setup_operand_alternative): Take the operand_alternative as
1907 parameter and assume it isn't already cached in the static
1908 insn data.
1909 (lra_set_insn_recog_data): Update accordingly.
1910 (lra_init): Delete.
1911 * ira.c (ira_init): Don't call lra_init.
1912 * target-globals.h (this_target_lra_int): Declare.
1913 (target_globals): Remove lra_int.
1914 (restore_target_globals): Update accordingly.
1915 * target-globals.c: Don't include lra-int.h.
1916 (default_target_globals, save_target_globals): Remove lra_int.
1917
1918 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1919
1920 * recog.h (operand_alternative): Convert reg_class, reject,
1921 matched and matches into bitfields.
1922 (preprocess_constraints): New overload.
1923 (preprocess_insn_constraints): New function.
1924 (preprocess_constraints): Take the insn as parameter.
1925 (recog_op_alt): Change into a pointer.
1926 (target_recog): Add x_op_alt.
1927 * recog.c (asm_op_alt): New variable.
1928 (recog_op_alt): Change into a pointer.
1929 (preprocess_constraints): New overload, replacing the old function
1930 definition with one that doesn't use global state.
1931 (preprocess_insn_constraints): New function.
1932 (preprocess_constraints): Use them. Take the insn as parameter.
1933 Use asm_op_alt for asms.
1934 (recog_init): Free existing x_op_alt entries.
1935 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
1936 pointer const.
1937 (make_early_clobber_and_input_conflicts): Likewise.
1938 (process_bb_node_lives): Pass the insn to process_constraints.
1939 * reg-stack.c (check_asm_stack_operands): Likewise.
1940 (subst_asm_stack_regs): Likewise.
1941 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1942 * regrename.c (build_def_use): Likewise.
1943 * sched-deps.c (sched_analyze_insn): Likewise.
1944 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
1945 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
1946 (note_invalid_constants): Likewise.
1947 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1948 (ix86_legitimate_combined_insn): Make operand_alternative pointer
1949 const.
1950
1951 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1952
1953 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
1954 * ira-lives.c (check_and_make_def_conflict): Check for disabled
1955 alternatives.
1956 (make_early_clobber_and_input_conflicts): Likewise.
1957 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1958
1959 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1960
1961 * recog.h (alternative_class): New function.
1962 (which_op_alt): Return a const recog_op_alt.
1963 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
1964 (subst_asm_stack_regs): Likewise.
1965 * config/arm/arm.c (note_invalid_constants): Likewise.
1966 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
1967 the operand_alternative; use alternative class instead.
1968 * sel-sched.c (get_reg_class): Likewise.
1969 * regrename.c (build_def_use): Likewise.
1970 (hide_operands, restore_operands, record_out_operands): Update type
1971 accordingly.
1972
1973 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
1974
1975 * recog.h (recog_op_alt): Convert to a flat array.
1976 (which_op_alt): New function.
1977 * recog.c (recog_op_alt): Convert to a flat array.
1978 (preprocess_constraints): Update accordingly, grouping all
1979 operands of the same alternative together, rather than the
1980 other way around.
1981 * ira-lives.c (check_and_make_def_conflict): Likewise.
1982 (make_early_clobber_and_input_conflicts): Likewise.
1983 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1984 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
1985 (subst_asm_stack_regs): Likewise.
1986 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1987 * regrename.c (hide_operands, record_out_operands): Likewise.
1988 (build_def_use): Likewise.
1989 * sel-sched.c (get_reg_class): Likewise.
1990 * config/arm/arm.c (note_invalid_constants): Likewise.
1991
1992 2014-06-04 Jason Merrill <jason@redhat.com>
1993
1994 PR c++/51253
1995 PR c++/61382
1996 * gimplify.c (gimplify_arg): Non-static.
1997 * gimplify.h: Declare it.
1998
1999 2014-06-04 Richard Biener <rguenther@suse.de>
2000
2001 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
2002 TREE_PUBLIC and DECL_EXTERNAL decls.
2003
2004 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
2005
2006 * regcprop.c (copyprop_hardreg_forward_1): Account for
2007 HARD_REGNO_CALL_PART_CLOBBERED.
2008
2009 2014-06-04 Richard Biener <rguenther@suse.de>
2010
2011 * configure.ac: Check whether the underlying type of int64_t
2012 is long or long long.
2013 * configure: Regenerate.
2014 * config.in: Likewise.
2015 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
2016 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2017
2018 2014-06-04 Richard Biener <rguenther@suse.de>
2019
2020 PR tree-optimization/60098
2021 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
2022 we hit a kill.
2023 (dse_optimize_stmt): Simplify, now that we found a kill
2024 earlier.
2025
2026 2014-06-04 Richard Biener <rguenther@suse.de>
2027
2028 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
2029 of accesses with non-invariant address.
2030
2031 2014-06-04 Martin Liska <mliska@suse.cz>
2032
2033 * cgraph.h (cgraph_make_wrapper): New function introduced.
2034 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
2035 * ipa-inline.h (inline_analyze_function): The function is global.
2036 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
2037
2038 2014-06-04 Martin Liska <mliska@suse.cz>
2039
2040 * tree.h (private_lookup_attribute_starting): New function.
2041 (lookup_attribute_starting): Likewise.
2042 * tree.c (private_lookup_attribute_starting): Likewise.
2043
2044 2014-06-04 Martin Liska <mliska@suse.cz>
2045
2046 * cgraph.h (expand_thunk): New argument added.
2047 (address_taken_from_non_vtable_p): New global function.
2048 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
2049 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
2050 * cgraphunit.c (analyze_function): Likewise.
2051 (assemble_thunks_and_aliases): Argument added to call.
2052 (expand_thunk): New argument forces to produce GIMPLE thunk.
2053
2054 2014-06-04 Martin Liska <mliska@suse.cz>
2055
2056 * coverage.h (coverage_compute_cfg_checksum): Argument added.
2057 * coverage.c (coverage_compute_cfg_checksum): Likewise.
2058 * profile.c (branch_prob): Likewise.
2059
2060 2014-06-04 Martin Jambor <mjambor@suse.cz>
2061
2062 PR ipa/61340
2063 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
2064 handler for switch on an ipa_ref_use enum.
2065 * ipa-reference.c (analyze_function): Likewise.
2066
2067 2014-06-04 Kai Tietz <ktietz@redhat.com>
2068
2069 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
2070 from old call-instruction.
2071
2072 2014-06-04 Bin Cheng <bin.cheng@arm.com>
2073
2074 * config/aarch64/aarch64.c (aarch64_classify_address)
2075 (aarch64_legitimize_reload_address): Support full addressing modes
2076 for vector modes.
2077 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
2078 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
2079
2080 2014-06-03 Andrew Pinski <apinski@cavium.com>
2081
2082 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
2083 for OP0.
2084
2085 2014-06-03 Andrew Pinski <apinski@cavium.com>
2086
2087 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
2088 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
2089
2090 2014-06-03 Kai Tietz <ktietz@redhat.com>
2091
2092 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
2093 for 64-bit ms-abi.
2094
2095 2014-06-03 Dehao Chen <dehao@google.com>
2096
2097 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
2098 the same loop.
2099
2100 2014-06-03 Marek Polacek <polacek@redhat.com>
2101
2102 PR c/60439
2103 * doc/invoke.texi: Document -Wswitch-bool.
2104 * function.c (stack_protect_epilogue): Cast controlling expression of
2105 the switch to int.
2106 * gengtype.c (walk_type): Generate switch expression with its
2107 controlling expression cast to int.
2108
2109 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
2110
2111 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
2112 and attiny841.
2113 * config/avr/avr-tables.opt: Regenerate.
2114 * config/avr/t-multilib: Regenerate.
2115 * doc/avr-mmcu.texi: Regenerate.
2116
2117 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
2118 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2119
2120 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
2121 (ata6617c, ata664251): Add new avr35 devices.
2122 (ata6612c): Add new avr4 device.
2123 (ata6613c, ata6614q): Add new avr5 devices.
2124 * config/avr/avr-tables.opt: Regenerate.
2125 * config/avr/t-multilib: Regenerate.
2126 * doc/avr-mmcu.texi: Regenerate.
2127
2128 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2129
2130 * gcc/config/aarch64/aarch64-builtins.c
2131 (aarch64_types_binop_ssu_qualifiers): New static data.
2132 (TYPES_BINOP_SSU): Define.
2133 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
2134 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
2135 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
2136 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
2137 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
2138 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
2139 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
2140 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
2141 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
2142 suffix to builtin function name, remove cast.
2143 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
2144 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
2145 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
2146
2147 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2148
2149 * gcc/config/aarch64/aarch64-builtins.c
2150 (aarch64_types_binop_uus_qualifiers,
2151 aarch64_types_shift_to_unsigned_qualifiers,
2152 aarch64_types_unsigned_shiftacc_qualifiers): Define.
2153 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
2154 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
2155 sqshlu_n, uqshl_n): Update qualifiers.
2156 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
2157 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
2158 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
2159 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
2160 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
2161 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
2162 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
2163 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
2164 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
2165 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
2166 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
2167 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
2168 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
2169 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
2170 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
2171 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
2172 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
2173 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
2174 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
2175 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
2176 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
2177 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
2178 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
2179 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
2180 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
2181 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
2182 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
2183
2184 2014-06-03 Teresa Johnson <tejohnson@google.com>
2185
2186 * tree-sra.c (modify_function): Record caller nodes after rebuild.
2187
2188 2014-06-02 Jason Merrill <jason@redhat.com>
2189
2190 PR c++/61020
2191 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
2192
2193 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2194
2195 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
2196 location == 0.
2197
2198 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2199
2200 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
2201 New pattern.
2202 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
2203 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
2204 * config/aarch64/iterators.md (REVERSE): New iterator.
2205 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
2206 (rev_op): New int_attribute.
2207 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
2208 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
2209 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
2210 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
2211 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
2212 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
2213 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
2214 Replace temporary __asm__ with __builtin_shuffle.
2215
2216 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
2217
2218 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
2219 mips64r5.
2220 * config/mips/mips-tables.opt: Regenerate.
2221 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
2222 to use mips_isa_rev rather than ISA_MIPS32R2.
2223 * config/mips/mips.h (ISA_MIPS32R3): New define.
2224 (ISA_MIPS32R5): New define.
2225 (ISA_MIPS64R3): New define.
2226 (ISA_MIPS64R5): New define.
2227 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
2228 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
2229 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
2230 and mips64r5.
2231 (MIPS_ISA_SYNCI_SPEC): Likewise.
2232 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
2233 (LINK_SPEC): Added mips32r3 and mips32r5.
2234 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
2235 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
2236 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
2237 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
2238 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
2239 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
2240 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
2241
2242 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
2243
2244 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
2245 options.
2246 * config/mips/mips.opt (mxpa): New option.
2247 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
2248 assembler.
2249
2250 2014-06-03 Martin Jambor <mjambor@suse.cz>
2251
2252 PR ipa/61160
2253 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
2254 thunks.
2255
2256 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
2257
2258 PR tree-optimization/61328
2259 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
2260 initialization from find_bswap_or_nop_1.
2261 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
2262 in source_expr2 before using the size value the function sets. Also
2263 make use of init_symbolic_number () in both the old place and
2264 find_bswap_or_nop_load () to avoid reading uninitialized memory when
2265 doing recursion in the GIMPLE_BINARY_RHS case.
2266
2267 2014-06-03 Richard Biener <rguenther@suse.de>
2268
2269 PR tree-optimization/61383
2270 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
2271 stmts can't trap.
2272
2273 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
2274
2275 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
2276 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
2277 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
2278 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
2279 in this file.
2280 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
2281 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
2282 * system.h: ...here and make it unconditional.
2283 * target.def (conditional_register_usage): Mention
2284 define_register_constraint instead of old-style constraint macros.
2285 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
2286 * doc/tm.texi: Regenerate.
2287 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
2288 protected by !USE_MD_CONSTRAINTS.
2289 * config/frv/frv.md: Remove quote from old version of documentation.
2290 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
2291 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
2292 CONST_DOUBLE_OK_FOR_LETTER.
2293 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
2294
2295 2014-06-02 Andrew Pinski <apinski@cavium.com>
2296
2297 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
2298 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
2299 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
2300 file whose name depends on -mabi= and -mbig-endian.
2301 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
2302 Handle LP64 better and handle ilp32 too.
2303 (MULTILIB_OPTIONS): Delete.
2304 (MULTILIB_DIRNAMES): Delete.
2305
2306 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
2307
2308 * expr.h: Remove prototypes of functions defined in builtins.c.
2309 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
2310 Remove prototypes of functions defined in builtins.c.
2311 * builtins.h: Update prototype list to include all exported functions.
2312 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
2313 no_c99_libc_has_function): Move to targhooks.c
2314 (build_string_literal, build_call_expr_loc_array,
2315 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
2316 to tree.c.
2317 (expand_builtin_object_size, fold_builtin_object_size): Make static.
2318 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
2319 no_c99_libc_has_function): Relocate from builtins.c.
2320 * tree.c: Include builtins.h.
2321 (build_call_expr_loc_array, build_call_expr_loc_vec,
2322 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
2323 from builtins.c.
2324 * fold-const.h (fold_fma): Move prototype to builtins.h.
2325 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
2326 * asan.c: Include builtins.h.
2327 * cfgexpand.c: Likewise.
2328 * convert.c: Likewise.
2329 * emit-rtl.c: Likewise.
2330 * except.c: Likewise.
2331 * expr.c: Likewise.
2332 * fold-const.c: Likewise.
2333 * gimple-fold.c: Likewise.
2334 * gimple-ssa-strength-reduction.c: Likewise.
2335 * gimplify.c: Likewise.
2336 * ipa-inline.c: Likewise.
2337 * ipa-prop.c: Likewise.
2338 * lto-streamer-out.c: Likewise.
2339 * stmt.c: Likewise.
2340 * tree-inline.c: Likewise.
2341 * tree-object-size.c: Likewise.
2342 * tree-sra.c: Likewise.
2343 * tree-ssa-ccp.c: Likewise.
2344 * tree-ssa-forwprop.c: Likewise.
2345 * tree-ssa-loop-ivcanon.c: Likewise.
2346 * tree-ssa-loop-ivopts.c: Likewise.
2347 * tree-ssa-math-opts.c: Likewise.
2348 * tree-ssa-reassoc.c: Likewise.
2349 * tree-ssa-threadedge.c: Likewise.
2350 * tree-streamer-in.c: Likewise.
2351 * tree-vect-data-refs.c: Likewise.
2352 * tree-vect-patterns.c: Likewise.
2353 * tree-vect-stmts.c: Likewise.
2354 * config/aarch64/aarch64.c: Likewise.
2355 * config/alpha/alpha.c: Likewise.
2356 * config/arc/arc.c: Likewise.
2357 * config/arm/arm.c: Likewise.
2358 * config/avr/avr.c: Likewise.
2359 * config/bfin/bfin.c: Likewise.
2360 * config/c6x/c6x.c: Likewise.
2361 * config/cr16/cr16.c: Likewise.
2362 * config/cris/cris.c: Likewise.
2363 * config/epiphany/epiphany.c: Likewise.
2364 * config/fr30/fr30.c: Likewise.
2365 * config/frv/frv.c: Likewise.
2366 * config/h8300/h8300.c: Likewise.
2367 * config/i386/i386.c: Likewise.
2368 * config/i386/winnt.c: Likewise.
2369 * config/ia64/ia64.c: Likewise.
2370 * config/iq2000/iq2000.c: Likewise.
2371 * config/lm32/lm32.c: Likewise.
2372 * config/m32c/m32c.c: Likewise.
2373 * config/m32r/m32r.c: Likewise.
2374 * config/m68k/m68k.c: Likewise.
2375 * config/mcore/mcore.c: Likewise.
2376 * config/mep/mep.c: Likewise.
2377 * config/microblaze/microblaze.c: Likewise.
2378 * config/mips/mips.c: Likewise.
2379 * config/mmix/mmix.c: Likewise.
2380 * config/mn10300/mn10300.c: Likewise.
2381 * config/moxie/moxie.c: Likewise.
2382 * config/msp430/msp430.c: Likewise.
2383 * config/nds32/nds32.c: Likewise.
2384 * config/pa/pa.c: Likewise.
2385 * config/pdp11/pdp11.c: Likewise.
2386 * config/picochip/picochip.c: Likewise.
2387 * config/rl78/rl78.c: Likewise.
2388 * config/rs6000/rs6000.c: Likewise.
2389 * config/rx/rx.c: Likewise.
2390 * config/s390/s390.c: Likewise.
2391 * config/score/score.c: Likewise.
2392 * config/sh/sh.c: Likewise.
2393 * config/sparc/sparc.c: Likewise.
2394 * config/spu/spu.c: Likewise.
2395 * config/stormy16/stormy16.c: Likewise.
2396 * config/tilegx/tilegx.c: Likewise.
2397 * config/tilepro/tilepro.c: Likewise.
2398 * config/v850/v850.c: Likewise.
2399 * config/vax/vax.c: Likewise.
2400 * config/xtensa/xtensa.c: Likewise.
2401
2402 2014-06-02 Jeff Law <law@redhat.com>
2403
2404 PR rtl-optimization/61094
2405 * ree.c (combine_reaching_defs): Do not reextend an insn if it
2406 was marked as do_no_reextend. If a copy is needed to eliminate
2407 an extension, then mark it as do_not_reextend.
2408
2409 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
2410
2411 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
2412
2413 2014-06-02 Richard Henderson <rth@redhat.com>
2414
2415 PR target/61336
2416 * config/alpha/alpha.c (print_operand_address): Allow symbolic
2417 addresses inside asms. Use output_operand_lossage instead of
2418 gcc_unreachable.
2419
2420 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
2421
2422 PR target/61239
2423 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
2424 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
2425
2426 2014-06-02 Tom de Vries <tom@codesourcery.com>
2427
2428 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
2429 case that x has VOIDmode.
2430
2431 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
2432
2433 * varasm.c (copy_constant): Delete function.
2434 (build_constant_desc): Don't call it.
2435
2436 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2437
2438 PR target/61154
2439 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
2440 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
2441 with immediate_operand.
2442
2443 2014-06-02 Andreas Schwab <schwab@suse.de>
2444
2445 * config/ia64/ia64.c
2446 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
2447 pending_data_specs first.
2448
2449 2014-06-02 Richard Biener <rguenther@suse.de>
2450
2451 PR tree-optimization/61378
2452 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
2453 valueized_anything.
2454
2455 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
2456
2457 * config/i386/constraints.md (Bw): Rename from 'w'.
2458 (Bz): Rename from 'z'.
2459 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
2460
2461 2014-06-01 Kai Tietz <ktietz@redhat.com>
2462
2463 PR target/61377
2464 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
2465 * config/i386/i386.md (sibcall_insn_operand): Use Bs
2466 instead of m constraint.
2467
2468 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
2469
2470 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
2471 a separate alternative where the scratch operand 2 is marked as
2472 early clobber.
2473
2474 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
2475
2476 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
2477 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
2478 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
2479 and __builtins_arm_get_fpscr.
2480 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
2481 __builtins_arm_get_fpscr.
2482 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
2483 __builtins_arm_ldfpscr.
2484 (arm_atomic_assign_expand_fenv): New function.
2485 * config/arm/vfp.md (set_fpscr): New pattern.
2486 (get_fpscr) : Likewise.
2487 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
2488 VUNSPEC_SET_FPSCR.
2489 * doc/extend.texi (AARCH64 Built-in Functions) : Document
2490 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
2491
2492 2014-05-30 Jakub Jelinek <jakub@redhat.com>
2493
2494 * asan.c (report_error_func): Add SLOW_P argument, use
2495 BUILT_IN_ASAN_*_N if set.
2496 (build_check_stmt): Likewise.
2497 (instrument_derefs): If T has insufficient alignment,
2498 force same handling as for odd sizes.
2499
2500 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
2501 BUILT_IN_ASAN_REPORT_STORE_N): New.
2502 * asan.c (struct asan_mem_ref): Change access_size type to
2503 HOST_WIDE_INT.
2504 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
2505 update_mem_ref_hash_table): Likewise.
2506 (asan_mem_ref_hasher::hash): Hash in a HWI.
2507 (report_error_func): Change size_in_bytes argument to HWI.
2508 Use *_N builtins if size_in_bytes is larger than 16 or not power of
2509 two.
2510 (build_shadow_mem_access): New function.
2511 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
2512 Handle size_in_bytes not power of two or larger than 16.
2513 (instrument_derefs): Don't give up if size_in_bytes is not
2514 power of two or is larger than 16.
2515
2516 2014-05-30 Kai Tietz <ktietz@redhat.com>
2517
2518 PR target/60104
2519 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
2520 for sibling-tail-calls.
2521 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
2522 to its use.
2523 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
2524 (sibcall_insn_operand): Add check for sibcall_memory_operand.
2525
2526 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2527
2528 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
2529 * config/avr/avr-tables.opt: Regenerate.
2530 * config/avr/t-multilib: Regenerate.
2531 * doc/avr-mmcu.texi: Regenerate.
2532
2533 2014-05-30 Ian Lance Taylor <iant@google.com>
2534
2535 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
2536 target("sse").
2537
2538 2014-05-30 Tom de Vries <tom@codesourcery.com>
2539
2540 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
2541 Redefine as true.
2542
2543 2014-05-30 Tom de Vries <tom@codesourcery.com>
2544
2545 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2546 * lra.c (initialize_lra_reg_info_element): Add init of
2547 actual_call_used_reg_set field.
2548 (lra): Call lra_create_live_ranges before lra_inheritance for
2549 -fuse-caller-save.
2550 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2551 -fuse-caller-save.
2552 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
2553 instead of call_used_reg_set for -fuse-caller-save.
2554 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2555
2556 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2557
2558 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
2559 to mov_imm.
2560 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
2561
2562 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
2563
2564 * ira.c (ira_get_dup_out_num): Check for output operands at
2565 the start of the loop. Handle cases where an included alternative
2566 follows an excluded one.
2567
2568 2014-05-29 Mike Stump <mikestump@comcast.net>
2569
2570 PR debug/61352
2571 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
2572 post ld passes when lto is used.
2573
2574 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
2575
2576 PR rtl-optimization/61325
2577 * lra-constraints.c (process_address): Rename to process_address_1.
2578 (process_address): New function.
2579
2580 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
2581
2582 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
2583 TYPES_BINOPV): New static data.
2584 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
2585 New builtin.
2586 * config/aarch64/aarch64-simd.md (aarch64_ext,
2587 aarch64_im_lane_boundsi): New patterns.
2588 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
2589 patterns for EXT.
2590 (aarch64_evpc_ext): New function.
2591
2592 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
2593
2594 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
2595 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
2596 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
2597 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
2598 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
2599
2600 2014-05-29 Tom de Vries <tom@codesourcery.com>
2601
2602 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
2603
2604 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
2605 Richard Sandiford <rdsandiford@googlemail.com>
2606
2607 * arm/iterators.md (shiftable_ops): New code iterator.
2608 (t2_binop0, arith_shift_insn): New code attributes.
2609 * arm/predicates.md (shift_nomul_operator): New predicate.
2610 * arm/arm.md (insn_enabled): Delete.
2611 (enabled): Remove insn_enabled test.
2612 (*arith_shiftsi): Delete. Replace with ...
2613 (*<arith_shift_insn>_multsi): ... new pattern.
2614 (*<arith_shift_insn>_shiftsi): ... new pattern.
2615 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
2616
2617 2014-05-29 Radovan Obradovic <robradovic@mips.com>
2618 Tom de Vries <tom@codesourcery.com>
2619
2620 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
2621 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
2622 clobber.
2623 (mips_split_call): Use POST_CALL_TMP_REG.
2624 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
2625
2626 2014-05-29 Tom de Vries <tom@codesourcery.com>
2627
2628 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
2629 with #ifdef STACK_REGS.
2630
2631 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
2632
2633 * varasm.c (get_variable_section): Walk aliases.
2634 (place_block_symbol): Walk aliases.
2635
2636 2014-05-28 Tom de Vries <tom@codesourcery.com>
2637
2638 Revert:
2639 2014-05-28 Tom de Vries <tom@codesourcery.com>
2640
2641 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2642 * lra.c (initialize_lra_reg_info_element): Add init of
2643 actual_call_used_reg_set field.
2644 (lra): Call lra_create_live_ranges before lra_inheritance for
2645 -fuse-caller-save.
2646 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2647 -fuse-caller-save.
2648 * lra-constraints.c (need_for_call_save_p): Use
2649 actual_call_used_reg_set instead of call_used_reg_set for
2650 -fuse-caller-save.
2651 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2652
2653 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2654
2655 * doc/md.texi: Document that the % constraint character must
2656 be at the beginning of the string.
2657 * genoutput.c (validate_insn_alternatives): Check that '=',
2658 '+' and '%' only appear at the beginning of a constraint.
2659 * ira.c (commutative_constraint_p): Delete.
2660 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
2661 at the start of the string.
2662 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
2663 duplicate '='s.
2664 * config/arm/neon.md (bicdi3_neon): Likewise.
2665 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
2666 (slt_si, sltu_si): Likewise.
2667 * config/vax/vax.md (sbcdi3): Likewise.
2668 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
2669 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
2670 (mul64): Move '%' to beginning of constraint.
2671 * config/arm/arm.md (*xordi3_insn): Likewise.
2672 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
2673 (xorsi3): Likewise.
2674
2675 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
2676
2677 * doc/md.texi: Document the restrictions on the "enabled" attribute.
2678
2679 2014-05-28 Jason Merrill <jason@redhat.com>
2680
2681 PR c++/47202
2682 * cgraph.h (symtab_node::get_comdat_group_id): New.
2683 * cgraphunit.c (analyze_functions): Call it.
2684 * symtab.c (dump_symtab_node): Likewise.
2685 * tree.c (decl_comdat_group_id): New.
2686 * tree.h: Declare it.
2687 * lto-streamer-out.c (write_symbol): Use it.
2688 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
2689
2690 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2691
2692 PR bootstrap/PR61146
2693 * wide-int.cc: Do not include longlong.h when compiling with clang.
2694
2695 2014-05-28 Richard Biener <rguenther@suse.de>
2696
2697 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
2698 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
2699 (vrp_visit_assignment_or_call): Print less vertical space.
2700 (vrp_visit_stmt): Likewise.
2701 (vrp_visit_phi_node): Likewise. For a PHI argument with
2702 VR_VARYING range consider recording it as copy.
2703
2704 2014-05-28 Richard Biener <rguenther@suse.de>
2705
2706 Revert
2707 2014-05-28 Richard Biener <rguenther@suse.de>
2708
2709 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2710
2711 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
2712
2713 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
2714 sufficiently aligned and an offset is used at the same time.
2715 (expand_expr_real_1): Likewise.
2716
2717 2014-05-28 Richard Biener <rguenther@suse.de>
2718
2719 PR middle-end/61045
2720 * fold-const.c (fold_comparison): When folding
2721 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
2722 the sign of the remaining constant operand stays the same.
2723
2724 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
2725
2726 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
2727 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
2728 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
2729 to the assembler.
2730 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
2731 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
2732 (m32bit-doubles) Likewise.
2733 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
2734 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
2735 option for RL78.
2736
2737 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2738
2739 * configure.ac ($gcc_cv_ld_clearcap): New test.
2740 * configure: Regenerate.
2741 * config.in: Regenerate.
2742 * config/sol2.opt (mclear-hwcap): New option.
2743 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
2744 * config/sol2-clearcap.map: Moved here from
2745 testsuite/gcc.target/i386/clearcap.map.
2746 * config/sol2-clearcapv2.map: Move here from
2747 gcc.target/i386/clearcapv2.map.
2748 * config/t-sol2 (install): Depend on install-clearcap-map.
2749 (install-clearcap-map): New target.
2750 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
2751 -mclear-hwcap.
2752
2753 2014-05-28 Richard Biener <rguenther@suse.de>
2754
2755 * hwint.h (*_HALF_WIDE_INT*): Move to ...
2756 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
2757 ... here and remove the rest.
2758 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
2759
2760 2014-05-28 Richard Biener <rguenther@suse.de>
2761
2762 PR tree-optimization/61335
2763 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
2764 new range fails, drop to varying.
2765
2766 2014-05-28 Tom de Vries <tom@codesourcery.com>
2767
2768 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
2769 * lra.c (initialize_lra_reg_info_element): Add init of
2770 actual_call_used_reg_set field.
2771 (lra): Call lra_create_live_ranges before lra_inheritance for
2772 -fuse-caller-save.
2773 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
2774 -fuse-caller-save.
2775 * lra-constraints.c (need_for_call_save_p): Use
2776 actual_call_used_reg_set instead of call_used_reg_set for
2777 -fuse-caller-save.
2778 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
2779
2780 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2781 Tom de Vries <tom@codesourcery.com>
2782
2783 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
2784 to gccoptlist.
2785 (@item -fuse-caller-save): New item.
2786
2787 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2788 Tom de Vries <tom@codesourcery.com>
2789
2790 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
2791 OPT_fuse_caller_save.
2792
2793 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2794 Tom de Vries <tom@codesourcery.com>
2795
2796 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
2797 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
2798 get_call_reg_set_usage.
2799 * resource.c (mark_set_resources, mark_target_live_regs): Use
2800 get_call_reg_set_usage.
2801 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
2802 field.
2803 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
2804 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
2805 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2806 * ira-build.c (ira_create_allocno): Init
2807 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2808 (create_cap_allocno, propagate_allocno_info)
2809 (propagate_some_info_from_allocno)
2810 (copy_info_to_removed_store_destinations): Handle
2811 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2812 * ira-costs.c (ira_tune_allocno_costs): Use
2813 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
2814
2815 2014-05-28 Radovan Obradovic <robradovic@mips.com>
2816 Tom de Vries <tom@codesourcery.com>
2817
2818 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
2819 and function_used_regs_valid fields.
2820 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
2821 find_all_hard_reg_sets.
2822 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
2823 (get_call_reg_set_usage): New function.
2824 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
2825 * regs.h (get_call_reg_set_usage): Declare.
2826
2827 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
2828
2829 PR libgcc/61152
2830 * config/dbx.h (License): Add Runtime Library Exception.
2831 * config/newlib-stdint.h (License): Same.
2832 * config/rtems.h (License): Same
2833 * config/initfini-array.h (License): Same
2834 * config/v850/v850.h (License): Same.
2835 * config/v850/v850-opts.h (License): Same
2836 * config/v850/rtems.h (License): Same.
2837
2838 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
2839
2840 PR target/61044
2841 * doc/extend.texi (Local Labels): Note that label differences are
2842 not supported for AVR.
2843
2844 2014-05-27 Andrew Pinski <apinski@cavium.com>
2845
2846 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
2847 Use <w> for the register in assembly template.
2848 (stack_protect_test): Use the mode of operands[0] for the result.
2849 (stack_protect_test_<mode>): Use <w> for the register
2850 in assembly template.
2851
2852 2014-05-27 DJ Delorie <dj@redhat.com>
2853
2854 * config/rx/rx.c (add_vector_labels): New.
2855 (rx_output_function_prologue): Call it.
2856 (rx_handle_func_attribute): Don't require empty arguments.
2857 (rx_handle_vector_attribute): New.
2858 (rx_attribute_table): Add "vector" attribute.
2859 * doc/extend.texi (interrupt, vector): Document new/changed
2860 RX-specific attributes.
2861
2862 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
2863
2864 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
2865
2866 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
2867 predicate to detect a negative quotient.
2868
2869 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
2870
2871 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
2872 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
2873 Add X - Y CMP 0 to X CMP Y transformation.
2874 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
2875
2876 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
2877
2878 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
2879 before printing.
2880
2881 2014-05-27 Steve Ellcey <sellcey@mips.com>
2882
2883 * config/mips/mips.c: Add include of cgraph.h.
2884
2885 2014-05-27 Richard Biener <rguenther@suse.de>
2886
2887 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
2888
2889 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
2890
2891 PR libgcc/61152
2892 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
2893 * config/arm/arm-cores.def (License): Same.
2894 * config/arm/arm-opts.h (License): Same.
2895 * config/arm/aout.h (License): Same.
2896 * config/arm/bpabi.h (License): Same.
2897 * config/arm/elf.h (License): Same.
2898 * config/arm/linux-elf.h (License): Same.
2899 * config/arm/linux-gas.h (License): Same.
2900 * config/arm/netbsd-elf.h (License): Same.
2901 * config/arm/uclinux-eabi.h (License): Same.
2902 * config/arm/uclinux-elf.h (License): Same.
2903 * config/arm/vxworks.h (License): Same.
2904
2905 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2906
2907 * config/arm/neon.md (neon_bswap<mode>): New pattern.
2908 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
2909 (arm_init_neon_builtins): Handle NEON_BSWAP.
2910 Define required type nodes.
2911 (arm_expand_neon_builtin): Handle NEON_BSWAP.
2912 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
2913 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
2914 * config/arm/iterators.md (VDQHSD): New mode iterator.
2915
2916 2014-05-27 Richard Biener <rguenther@suse.de>
2917
2918 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2919 Try using literal operands when comparing value-ranges failed.
2920
2921 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2922
2923 * ira.c (commutative_operand): Adjust for change to recog_data.
2924 [Missing from previous commit.]
2925
2926 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2927
2928 * system.h (TEST_BIT): New macro.
2929 * recog.h (alternative_mask): New type.
2930 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
2931 (recog_data_d): Replace alternative_enabled_p array with
2932 enabled_alternatives.
2933 (target_recog): New structure.
2934 (default_target_recog, this_target_recog): Declare.
2935 (get_enabled_alternatives, recog_init): Likewise.
2936 * recog.c (default_target_recog, this_target_recog): New variables.
2937 (get_enabled_alternatives): New function.
2938 (extract_insn): Use it.
2939 (recog_init): New function.
2940 (preprocess_constraints, constrain_operands): Adjust for change to
2941 recog_data.
2942 * postreload.c (reload_cse_simplify_operands): Likewise.
2943 * reload.c (find_reloads): Likewise.
2944 * ira-costs.c (record_reg_classes): Likewise.
2945 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
2946 all alternatives after a disabled one would be skipped.
2947 (ira_implicitly_set_insn_hard_regs): Likewise.
2948 * ira.c (ira_setup_alts): Adjust for change to recog_data.
2949 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
2950 with enabled_alternatives.
2951 * lra.c (free_insn_recog_data): Update accordingly.
2952 (lra_update_insn_recog_data): Likewise.
2953 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
2954 * lra-constraints.c (process_alt_operands): Likewise. Handle
2955 only_alternative as part of the enabled mask.
2956 * target-globals.h (this_target_recog): Declare.
2957 (target_globals): Add a recog field.
2958 (restore_target_globals): Restore this_target_recog.
2959 * target-globals.c: Include recog.h.
2960 (default_target_globals): Initialize recog field.
2961 (save_target_globals): Likewise.
2962 * reginfo.c (reinit_regs): Call recog_init.
2963 * toplev.c (backend_init_target): Likewise.
2964
2965 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
2966
2967 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
2968 rather than any named insn's code.
2969
2970 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
2971
2972 PR libgcc/61152
2973 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
2974 * config/arm/arm-cores.def (License): Same.
2975
2976 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
2977
2978 * tree.h (decl_comdat_group): Declare.
2979 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
2980 * tree.c (decl_comdat_group): Here.
2981
2982 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
2983
2984 PR rtl-optimization/61222
2985 * combine.c (simplify_shift_const_1): When moving a PLUS outside
2986 the shift, truncate the PLUS operand to the result mode.
2987
2988 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
2989
2990 PR target/61271
2991 * config/i386/i386.c (ix86_rtx_costs)
2992 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
2993 Fix condition.
2994
2995 2014-05-26 Martin Jambor <mjambor@suse.cz>
2996
2997 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
2998 subreg uses.
2999
3000 2014-05-26 Richard Biener <rguenther@suse.de>
3001
3002 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
3003 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
3004 Provide specializations.
3005 (wi::int_traits <HOST_WIDE_INT>,
3006 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
3007
3008 2014-05-26 Alan Modra <amodra@gmail.com>
3009
3010 PR target/61098
3011 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
3012 params and return a bool. Remove dead code. Update comment.
3013 Assert we have a const_int source. Remove bogus code from
3014 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
3015 handling of constants > 2G and reg_equal note, from..
3016 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
3017 return value. Update comment. If we can, use a new pseudo
3018 for intermediate calculations.
3019 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
3020 prototype.
3021 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
3022 call to rs6000_emit_set_const in splitter.
3023 (movdi_internal64+2, +3): Likewise.
3024
3025 2014-05-26 Richard Biener <rguenther@suse.de>
3026
3027 * system.h: Define __STDC_FORMAT_MACROS before
3028 including inttypes.h.
3029 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
3030 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
3031 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
3032 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
3033 HOST_WIDEST_INT_C): Remove.
3034 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
3035 if C99 inttypes.h is not available.
3036 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
3037 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
3038 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
3039 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
3040 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
3041 (struct output_info): Likewise.
3042 (print_statistics): Adjust.
3043 (dump_bitmap_statistics): Likewise.
3044 * bt-load.c (migrate_btr_defs): Print with PRId64.
3045 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
3046 (MAX_SAFE_MULTIPLIER): Adjust.
3047 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
3048 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
3049 dump_cgraph_node): Likewise.
3050 * final.c (dump_basic_block_info): Likewise.
3051 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
3052 * gcov.c (format_gcov): Likewise.
3053 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
3054 for calculation.
3055 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
3056 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
3057 (inline_small_functions, dump_overall_stats, dump_inline_stats):
3058 Use PRId64 for dumping.
3059 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
3060 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
3061 (add_allocno_hard_regs): Adjust.
3062 * loop-doloop.c (doloop_modify): Print using PRId64.
3063 * loop-iv.c (inverse): Compute in uint64_t.
3064 (determine_max_iter, iv_number_of_iterations): Likewise.
3065 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
3066 Print using PRId64.
3067 * lto-streamer-out.c (write_symbol): Use uint64_t.
3068 * mcf.c (CAP_INFINITY): Use int64_t maximum.
3069 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
3070 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
3071 * modulo-sched.c (const_iteration_count): Use int64_t.
3072 (sms_schedule): Dump using PRId64.
3073 * predict.c (dump_prediction): Likewise.
3074 * pretty-print.h (pp_widest_integer): Remove.
3075 * profile.c (get_working_sets, is_edge_inconsistent,
3076 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
3077 * tree-pretty-print.c (pp_double_int): Remove case handling
3078 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
3079 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
3080 and adjust users.
3081 (pass_optimize_bswap::execute): Remove restriction on hosts.
3082 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
3083 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
3084 * tree.c (widest_int_cst_value): Remove.
3085 * tree.h (widest_int_cst_value): Likewise.
3086 * value-prof.c (dump_histogram_value): Print using PRId64.
3087 * gengtype.c (main): Also inject int64_t.
3088 * ggc-page.c (struct max_alignment): Use int64_t.
3089 * alloc-pool.c (struct allocation_object_def): Likewise.
3090 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
3091 for computation.
3092 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
3093 * doc/tm.texi: Regenerated.
3094 * gengtype-lex.l (IWORD): Handle [u]int64_t.
3095 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
3096 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
3097 mmix_output_register_setting): Use [u]int64_t in prototypes.
3098 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
3099 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
3100 mmix_output_octa, mmix_output_shifted_value): Adjust.
3101 (mmix_intval): Adjust. Remove unreachable case.
3102 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
3103
3104 2014-05-26 Richard Biener <rguenther@suse.de>
3105
3106 * configure.ac: Drop __int64 type check. Insist that we
3107 found uint64_t and int64_t.
3108 * hwint.h (HOST_BITS_PER___INT64): Remove.
3109 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
3110 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
3111 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
3112 (HOST_WIDEST_FAST_INT): Remove __int64 case.
3113 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
3114 for dst_q_src_df_rms_cdt.
3115 * configure: Regenerate.
3116 * config.in: Likewise.
3117
3118 2014-05-26 Michael Tautschnig <mt@debian.org>
3119
3120 PR target/61249
3121 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3122 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
3123
3124 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3125
3126 PR rtl-optimization/61278
3127 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
3128
3129 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3130
3131 PR rtl-optimization/61220
3132 Part of PR rtl-optimization/61225
3133 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
3134 insn; skip split_edge for a block with only one successor.
3135
3136 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3137
3138 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
3139 for variables.
3140
3141 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3142
3143 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
3144 (update_vtable_references): New function.
3145 (function_and_variable_visibility): Rewrite also vtable initializers.
3146 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
3147
3148 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3149
3150 * ggc.h (ggc_grow): New function.
3151 * ggc-none.c (ggc_grow): New function.
3152 * ggc-page.c (ggc_grow): Likewise.
3153
3154 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3155
3156 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
3157 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
3158 comdat_can_be_unshared_p, cgraph_externally_visible_p,
3159 varpool_externally_visible_p, can_replace_by_local_alias,
3160 update_visibility_by_resolution_info, function_and_variable_visibility,
3161 pass_data_ipa_function_and_variable_visibility,
3162 make_pass_ipa_function_and_variable_visibility,
3163 whole_program_function_and_variable_visibility,
3164 pass_data_ipa_whole_program_visibility,
3165 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
3166 * cgraph.h (cgraph_local_node_p): Declare.
3167 * ipa-visibility.c: New file.
3168 * Makefile.in (OBJS): Add ipa-visiblity.o
3169
3170 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3171
3172 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
3173 that var decl is available.
3174
3175 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3176
3177 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
3178 symtab_node pointer.
3179 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
3180 (find_decls_types_r): Do not walk COMDAT_GROUP.
3181 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
3182 * varasm.c (make_decl_one_only): Use set_comdat_group;
3183 create node if needed.
3184 * ipa-inline-transform.c (save_inline_function_body): Update
3185 way we decl->symtab mapping.
3186 * symtab.c (symtab_hash, hash_node, eq_node
3187 symtab_insert_node_to_hashtable): Remove.
3188 (symtab_register_node): Update.
3189 (symtab_unregister_node): Update.
3190 (symtab_get_node): Reimplement as inline function.
3191 (symtab_add_to_same_comdat_group): Update.
3192 (symtab_dissolve_same_comdat_group_list): Update.
3193 (dump_symtab_base): Update.
3194 (verify_symtab_base): Update.
3195 (symtab_make_decl_local): Update.
3196 (fixup_same_cpp_alias_visibility): Update.
3197 (symtab_nonoverwritable_alias): Update.
3198 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
3199 * ipa.c (update_visibility_by_resolution_info): UPdate.
3200 * bb-reorder.c: Include cgraph.h
3201 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
3202 with comdat groups.
3203 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
3204 * cgraph.c (cgraph_get_create_node): Update.
3205 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
3206 and comdat_group_.
3207 (symtab_get_node): Make inline.
3208 (symtab_insert_node_to_hashtable): Remove.
3209 (symtab_can_be_discarded): Update.
3210 (decl_comdat_group): New function.
3211 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
3212 Update.
3213 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
3214 comdat group name.
3215 (read_comdat_group): New function.
3216 (input_node, input_varpool_node): Use it.
3217 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
3218 comdat groups.
3219 * mips.c (mips_start_unique_function): Likewise.
3220 (ix86_code_end): Likewise.
3221 (rs6000_code_end): Likweise.
3222 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
3223
3224 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3225
3226 * gengtype-state.c (fatal_reading_state): Bring offline.
3227 * optabs.c (widening_optab_handler): Bring offline.
3228 * optabs.h (widening_optab_handler): Likewise.
3229 * final.c (get_attr_length_1): Likewise.
3230
3231 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
3232
3233 * sched-int.h (sd_iterator_cond): Manually tail recurse.
3234
3235 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3236
3237 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
3238 (ppc440-compare): Include shift with dot.
3239 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
3240 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
3241 without dot.
3242 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
3243 without dot.
3244 (e6500_sfx2): Include it.
3245 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
3246 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
3247 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
3248 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
3249 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
3250 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
3251 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
3252 *lshiftrt_internal1le, *lshiftrt_internal1be,
3253 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
3254 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
3255 *rotldi3_internal10le, *rotldi3_internal10be,
3256 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
3257 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
3258 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
3259 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
3260 define_insns): Use type "shift" in the appropriate alternatives.
3261
3262 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3263
3264 * config/rs6000/rs6000.md (type): Add "logical". Delete
3265 "fast_compare".
3266 (dot): Adjust comment.
3267 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
3268 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
3269 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
3270 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
3271 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
3272 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
3273 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
3274 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
3275
3276 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
3277 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
3278 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
3279 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
3280 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
3281 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
3282 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
3283 * config/rs6000/8540.md (ppc8540_su): Adjust.
3284 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
3285 cell-cmp-microcoded): Adjust.
3286 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
3287 * config/rs6000/e500mc.md (e500mc_su): Adjust.
3288 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
3289 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
3290 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
3291 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
3292 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
3293 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
3294 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
3295 Adjust.
3296 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
3297 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
3298 Adjust. Adjust comment.
3299 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
3300 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
3301
3302 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3303
3304 * config/rs6000/rs6000.md (type): Add "add".
3305 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
3306 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
3307 define_insns): Use it.
3308 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
3309
3310 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
3311 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
3312 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
3313 * config/rs6000/601.md (ppc601-integer): Adjust.
3314 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
3315 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
3316 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
3317 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
3318 * config/rs6000/8540.md (ppc8540_su): Adjust.
3319 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
3320 cell-cmp-microcoded): Adjust.
3321 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
3322 * config/rs6000/e500mc.md (e500mc_su): Adjust.
3323 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
3324 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
3325 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
3326 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
3327 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
3328 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
3329 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
3330 Adjust.
3331 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
3332 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
3333 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
3334 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
3335
3336 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3337
3338 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
3339 "delayed_compare", "var_delayed_compare".
3340 (var_shift): New attribute.
3341 (cell_micro): Adjust.
3342 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
3343 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
3344 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
3345 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
3346 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
3347 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
3348 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
3349 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
3350 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
3351 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
3352 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
3353 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
3354 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
3355 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
3356 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
3357 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
3358 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
3359 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
3360 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
3361 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
3362 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
3363 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
3364 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
3365 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
3366 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
3367
3368 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
3369 * config/rs6000/440.md (ppc440-integer): Adjust.
3370 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
3371 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
3372 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
3373 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
3374 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
3375 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
3376 * config/rs6000/8540.md (ppc8540_su): Adjust.
3377 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
3378 cell-cmp-microcoded): Adjust.
3379 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
3380 * config/rs6000/e500mc.md (e500mc_su): Adjust.
3381 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
3382 e500mc64_delayed): Adjust.
3383 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
3384 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
3385 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
3386 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
3387 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
3388 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
3389 power6-delayed-compare, power6-var-delayed-compare): Adjust.
3390 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
3391 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
3392 Adjust comment.
3393 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
3394 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
3395
3396 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3397
3398 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
3399 (bits): New mode_attr.
3400 (idiv_ldiv): Delete mode_attr.
3401 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
3402 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
3403 rs6000_adjust_priority, is_nonpipeline_insn,
3404 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
3405
3406 * config/rs6000/40x.md (ppc403-idiv): Adjust.
3407 * config/rs6000/440.md (ppc440-idiv): Adjust.
3408 * config/rs6000/476.md (ppc476-idiv): Adjust.
3409 * config/rs6000/601.md (ppc601-idiv): Adjust.
3410 * config/rs6000/603.md (ppc603-idiv): Adjust.
3411 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
3412 ppc620-ldiv): Adjust.
3413 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
3414 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
3415 * config/rs6000/8540.md (ppc8540_divide): Adjust.
3416 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
3417 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
3418 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
3419 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
3420 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
3421 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
3422 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
3423 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
3424 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
3425 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
3426 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
3427 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
3428 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
3429 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
3430 * config/rs6000/titan.md (titan_fxu_div): Adjust.
3431
3432 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3433
3434 * config/rs6000/rs6000.md (type): Delete "insert_word",
3435 "insert_dword". Add "insert".
3436 (size): Update comment.
3437 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
3438 insn_must_be_first_in_group): Adjust.
3439 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
3440 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
3441 *insvsi_internal6, insvdi_internal): Adjust.
3442
3443 * config/rs6000/40x.md (ppc403-integer): Adjust.
3444 * config/rs6000/440.md (ppc440-integer): Adjust.
3445 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
3446 * config/rs6000/601.md (ppc601-integer): Adjust.
3447 * config/rs6000/603.md (ppc603-integer): Adjust.
3448 * config/rs6000/6xx.md (ppc604-integer): Adjust.
3449 * config/rs6000/7450.md (ppc7450-integer): Adjust.
3450 * config/rs6000/7xx.md (ppc750-integer): Adjust.
3451 * config/rs6000/8540.md (ppc8540_su): Adjust.
3452 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
3453 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
3454 * config/rs6000/e500mc.md (e500mc_su): Adjust.
3455 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
3456 * config/rs6000/e5500.md (e5500_sfx): Adjust.
3457 * config/rs6000/e6500.md (e6500_sfx): Adjust.
3458 * config/rs6000/mpc.md (mpccore-integer): Adjust.
3459 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
3460 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
3461 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
3462 * config/rs6000/power7.md (power7-integer): Adjust.
3463 * config/rs6000/power8.md (power8-1cyc): Adjust.
3464 * config/rs6000/rs64.md (rs64a-integer): Adjust.
3465 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
3466
3467 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3468
3469 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
3470 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
3471 (size): New attribute.
3472 (dot): New attribute.
3473 (cell_micro): Adjust.
3474 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
3475 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
3476 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
3477 umuldi3_highpart): Adjust.
3478 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
3479 rs6000_adjust_priority, is_nonpipeline_insn,
3480 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
3481
3482 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
3483 ppc405-imul3): Adjust.
3484 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
3485 * config/rs6000/476.md (ppc476-imul): Adjust.
3486 * config/rs6000/601.md (ppc601-imul): Adjust.
3487 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
3488 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
3489 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
3490 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
3491 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
3492 Adjust.
3493 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
3494 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
3495 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
3496 cell-imul): Adjust.
3497 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
3498 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
3499 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
3500 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
3501 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
3502 * config/rs6000/mpc.md (mpccore-imul): Adjust.
3503 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
3504 power4-lmul, power4-imul, power4-imul3): Adjust.
3505 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
3506 power5-lmul, power5-imul, power5-imul3): Adjust.
3507 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
3508 power6-lmul, power6-imul, power6-imul3): Adjust.
3509 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
3510 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
3511
3512 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
3513 rs64a-lmul): Adjust.
3514 * config/rs6000/titan.md (titan_imul): Adjust.
3515
3516 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3517
3518 * config/rs6000/rs6000.md (type): Add new value "halfmul".
3519 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
3520 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
3521 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
3522 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
3523 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
3524 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
3525 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
3526 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
3527 * config/rs6000/titan.md: Delete nonsensical comment.
3528 (titan_imul): Add type imul3.
3529 (titan_mulhw): Remove type imul3; add type halfmul.
3530
3531 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
3532
3533 * config/rs6000/rs6000.md (type): Reorder, reformat.
3534
3535 2014-05-23 Martin Jambor <mjambor@suse.cz>
3536
3537 PR tree-optimization/53787
3538 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
3539 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
3540 analysis_done, update all uses.
3541 * ipa-prop.c: Include domwalk.h
3542 (param_analysis_info): Removed.
3543 (param_aa_status): New type.
3544 (ipa_bb_info): Likewise.
3545 (func_body_info): Likewise.
3546 (ipa_get_bb_info): New function.
3547 (aa_overwalked): Likewise.
3548 (find_dominating_aa_status): Likewise.
3549 (parm_bb_aa_status_for_bb): Likewise.
3550 (parm_preserved_before_stmt_p): Changed to use new param AA info.
3551 (load_from_unmodified_param): Accept func_body_info as a parameter
3552 instead of parms_ainfo.
3553 (parm_ref_data_preserved_p): Changed to use new param AA info.
3554 (parm_ref_data_pass_through_p): Likewise.
3555 (ipa_load_from_parm_agg_1): Likewise. Update callers.
3556 (compute_complex_assign_jump_func): Changed to use new param AA info.
3557 (compute_complex_ancestor_jump_func): Likewise.
3558 (ipa_compute_jump_functions_for_edge): Likewise.
3559 (ipa_compute_jump_functions): Removed.
3560 (ipa_compute_jump_functions_for_bb): New function.
3561 (ipa_analyze_indirect_call_uses): Likewise, moved variable
3562 declarations down.
3563 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
3564 and info, moved variable declarations down.
3565 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
3566 node and info.
3567 (ipa_analyze_stmt_uses): Likewise.
3568 (ipa_analyze_params_uses): Removed.
3569 (ipa_analyze_params_uses_in_bb): New function.
3570 (ipa_analyze_controlled_uses): Likewise.
3571 (free_ipa_bb_info): Likewise.
3572 (analysis_dom_walker): New class.
3573 (ipa_analyze_node): Handle node-specific forbidden analysis,
3574 initialize and free func_body_info, use dominator walker.
3575 (ipcp_modif_dom_walker): New class.
3576 (ipcp_transform_function): Create and free func_body_info, use
3577 ipcp_modif_dom_walker, moved a lot of functionality there.
3578
3579 2014-05-23 Marek Polacek <polacek@redhat.com>
3580 Jakub Jelinek <jakub@redhat.com>
3581
3582 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
3583 * gcc.c (sanitize_spec_function): Likewise.
3584 * convert.c (convert_to_integer): Include "ubsan.h". Add
3585 floating-point to integer instrumentation.
3586 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
3587 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
3588 SANITIZE_NONDEFAULT.
3589 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
3590 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
3591 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
3592 * ubsan.c: Include "realmpfr.h" and "dfp.h".
3593 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
3594 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
3595 float/double/long double.
3596 (ubsan_instrument_float_cast): New function.
3597 * ubsan.h (ubsan_instrument_float_cast): Declare.
3598
3599 2014-05-23 Jiong Wang <jiong.wang@arm.com>
3600
3601 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
3602 predicate.
3603 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
3604 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
3605 Adjust for tailcalling through registers.
3606 * config/aarch64/aarch64.h (enum reg_class): New caller save
3607 register class.
3608 (REG_CLASS_NAMES): Likewise.
3609 (REG_CLASS_CONTENTS): Likewise.
3610 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
3611 Allow tailcalling without decls.
3612
3613 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
3614
3615 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
3616 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
3617
3618 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
3619 gsi, and variables v_* to v*.
3620
3621 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
3622
3623 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
3624
3625 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
3626
3627 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
3628 * omp-low.c: Update accordingly.
3629
3630 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
3631 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
3632 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
3633 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
3634 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
3635 GF_OMP_TARGET_KIND_UPDATE.
3636
3637 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
3638 Explicitly enumerate the expected region types.
3639
3640 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
3641
3642 PR other/56955
3643 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
3644 documentation; the old documentation didn't clearly state the
3645 constraints on the contents of the pointed-to storage.
3646
3647 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3648
3649 Fix bootstrap error on ia64
3650 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
3651 Return default value.
3652
3653 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
3654
3655 PR tree-optimization/54733
3656 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
3657 (CMPNOP): Define.
3658 (find_bswap_or_nop_load): New.
3659 (find_bswap_1): Renamed to ...
3660 (find_bswap_or_nop_1): This. Also add support for memory source.
3661 (find_bswap): Renamed to ...
3662 (find_bswap_or_nop): This. Also add support for memory source and
3663 detection of bitwise operations equivalent to load in target
3664 endianness.
3665 (execute_optimize_bswap): Likewise. Also move its leading comment back
3666 in place and split statement transformation into ...
3667 (bswap_replace): This.
3668
3669 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3670
3671 PR rtl-optimization/61215
3672 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3673 simplify_gen_subreg until final substitution.
3674
3675 2014-05-23 Alan Modra <amodra@gmail.com>
3676
3677 PR target/61231
3678 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3679 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3680 Use "Y" constraint rather than "m".
3681
3682 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
3683
3684 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
3685 define.
3686 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
3687 New function declaration.
3688 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
3689 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
3690 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
3691 (aarch64_init_builtins) : Initialize builtins
3692 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
3693 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
3694 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
3695 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
3696 and __builtins_aarch64_set_fpsr.
3697 (aarch64_atomic_assign_expand_fenv): New function.
3698 * config/aarch64/aarch64.md (set_fpcr): New pattern.
3699 (get_fpcr) : Likewise.
3700 (set_fpsr) : Likewise.
3701 (get_fpsr) : Likewise.
3702 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
3703 and UNSPECV_SET_FPSR.
3704 * doc/extend.texi (AARCH64 Built-in Functions) : Document
3705 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
3706 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
3707
3708 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3709
3710 PR rtl-optimization/60969
3711 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3712 constraints. Set up mem cost for NO_REGS case.
3713
3714 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
3715
3716 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
3717
3718 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
3719
3720 * config/darwin.c: Include "lto-section-names.h".
3721 (LTO_SEGMENT_NAME): Don't define.
3722 * config/i386/winnt.c: Include "lto-section-names.h".
3723 * lto-streamer.c: Include "lto-section-names.h".
3724 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
3725 * lto-wrapper.c: Include "lto-section-names.h".
3726 (LTO_SECTION_NAME_PREFIX): Don't define.
3727 * lto-section-names.h: New file.
3728 * cgraphunit.c: Include "lto-section-names.h".
3729
3730 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
3731
3732 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3733
3734 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
3735
3736 PR target/61208
3737 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3738
3739 2014-05-22 Nick Clifton <nickc@redhat.com>
3740
3741 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3742
3743 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
3744
3745 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
3746 -> (T)A transformation to integer types.
3747
3748 2014-05-22 Teresa Johnson <tejohnson@google.com>
3749
3750 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
3751 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
3752 (gcov_rewrite): Use gcov_nonruntime_assert.
3753 (gcov_open): Ditto.
3754 (gcov_write_words): Ditto.
3755 (gcov_write_length): Ditto.
3756 (gcov_read_words): Use gcov_nonruntime_assert, and remove
3757 gcc_assert from IN_LIBGCOV code.
3758 (gcov_read_summary): Use gcov_error to flag profile corruption.
3759 (gcov_sync): Use gcov_nonruntime_assert.
3760 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
3761 (gcov_histo_index): Use gcov_nonruntime_assert.
3762 (static void gcov_histogram_merge): Ditto.
3763 (compute_working_sets): Ditto.
3764 * gcov-io.h (gcov_nonruntime_assert): Define.
3765 (gcov_error): Define for !IN_LIBGCOV
3766
3767 2014-05-22 Richard Biener <rguenther@suse.de>
3768
3769 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3770 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
3771 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
3772 and deallocation site.
3773 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3774 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
3775 passing through the incoming points-to set.
3776 (handle_lhs_call): Use flags argument instead of recomputing it.
3777 (find_func_aliases_for_call): Call handle_lhs_call with proper
3778 call return flags.
3779
3780 2014-05-22 Jakub Jelinek <jakub@redhat.com>
3781
3782 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3783 all padding bits in REAL_VALUE_TYPE are cleared.
3784
3785 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3786
3787 Cleanup and improve multipass_dfa_lookahead_guard
3788 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
3789 (core2i7_first_cycle_multipass_begin,)
3790 (core2i7_first_cycle_multipass_issue,)
3791 (core2i7_first_cycle_multipass_backtrack): Update signature.
3792 * config/ia64/ia64.c
3793 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
3794 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
3795 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
3796 hook definition.
3797 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
3798 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
3799 values.
3800 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
3801 return values.
3802 * doc/tm.texi: Regenerate.
3803 * doc/tm.texi.in
3804 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
3805 * haifa-sched.c (ready_try): Make signed to allow negative values.
3806 (rebug_ready_list_1): Update.
3807 (choose_ready): Simplify.
3808 (sched_extend_ready_list): Update.
3809
3810 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3811
3812 Remove IA64 speculation tweaking flags
3813 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
3814 speculation tuning flags.
3815 (msched-prefer-non-data-spec-insns,)
3816 (msched-prefer-non-control-spec-insns): Obsolete options.
3817 * haifa-sched.c (choose_ready): Remove handling of
3818 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
3819 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
3820 and PREFER_NON_DATA_SPEC.
3821 * sel-sched.c (process_spec_exprs): Remove handling of
3822 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
3823
3824 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3825
3826 Improve scheduling debug output
3827 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
3828 (advance_one_cycle): Update.
3829 (schedule_insn, queue_to_ready): Add debug printouts.
3830 (debug_ready_list_1): New static function.
3831 (debug_ready_list): Update.
3832 (max_issue): Add debug printouts.
3833 (dump_insn_stream): New static function.
3834 (schedule_block): Use it. Also better indent printouts.
3835
3836 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3837
3838 Fix sched_insn debug counter
3839 * haifa-sched.c (schedule_insn): Update.
3840 (struct haifa_saved_data): Add nonscheduled_insns_begin.
3841 (save_backtrack_point, restore_backtrack_point): Update.
3842 (first_nonscheduled_insn): New static function.
3843 (queue_to_ready, choose_ready): Use it.
3844 (schedule_block): Init nonscheduled_insns_begin.
3845 (sched_emit_insn): Update.
3846
3847
3848 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
3849
3850 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
3851 to GENERAL_REGS.
3852 (aarch64_secondary_reload) : LikeWise.
3853 (aarch64_class_max_nregs) : Remove CORE_REGS.
3854 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
3855 (REG_CLASS_NAMES) : Likewise.
3856 (REG_CLASS_CONTENTS) : LikeWise.
3857 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
3858
3859 2014-05-21 Guozhi Wei <carrot@google.com>
3860
3861 PR target/61202
3862 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3863 constraint.
3864 (vqdmulhq_n_s16): Likewise.
3865
3866 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3867
3868 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
3869
3870 2014-05-21 Marek Polacek <polacek@redhat.com>
3871
3872 PR sanitizer/61272
3873 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
3874
3875 2014-05-21 Martin Jambor <mjambor@suse.cz>
3876
3877 * doc/invoke.texi (Optimize Options): Document parameters
3878 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3879 ipa-cp-array-index-hint-bonus.
3880
3881 2014-05-21 Mark Wielaard <mjw@redhat.com>
3882
3883 PR debug/16063
3884 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
3885 version >= 3 or not strict DWARF.
3886 * langhooks.h (struct lang_hooks_for_types): Add
3887 enum_underlying_base_type.
3888 * langhooks.c (lhd_enum_underlying_base_type): New function.
3889 * gcc/langhooks.h (struct lang_hooks_for_types): Add
3890 enum_underlying_base_type.
3891 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
3892 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
3893 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
3894
3895 2014-05-21 Richard Biener <rguenther@suse.de>
3896
3897 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
3898
3899 2014-05-21 John Marino <gnugcc@marino.st>
3900
3901 * config.gcc (*-*-dragonfly*): New target.
3902 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
3903 * configure: Regenerate.
3904 * config/dragonfly-stdint.h: New.
3905 * config/dragonfly.h: New.
3906 * config/dragonfly.opt: New.
3907 * config/i386/dragonfly.h: New.
3908 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
3909
3910 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
3911
3912 * tree.def (VOID_CST): New.
3913 * tree-core.h (TI_VOID): New.
3914 * tree.h (void_node): New.
3915 * tree.c (tree_node_structure_for_code, tree_code_size)
3916 (iterative_hash_expr): Handle VOID_CST.
3917 (build_common_tree_nodes): Initialize void_node.
3918
3919 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
3920
3921 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
3922 functions.
3923 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
3924
3925 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
3926 more places.
3927
3928 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
3929 flag_reorder_blocks_and_partition.
3930 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
3931
3932 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
3933
3934 PR target/54236
3935 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
3936 constraints.
3937 (*addc_r_t): Add new insn_and_split.
3938
3939 2014-05-21 Jakub Jelinek <jakub@redhat.com>
3940
3941 PR middle-end/61252
3942 * omp-low.c (handle_simd_reference): New function.
3943 (lower_rec_input_clauses): Use it. Defer adding reference
3944 initialization even for reduction without placeholder if in simd,
3945 handle it properly later on.
3946
3947 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3948
3949 PR tree-optimization/60899
3950 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
3951 assume all static symbols will have definition wile parsing and
3952 check the do have definition later in compilation; check that
3953 variable referring symbol will be output before concluding that
3954 reference is safe; be conservative for referring local statics;
3955 be more precise about when comdat is output in other partition.
3956
3957 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3958
3959 PR bootstrap/60984
3960 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
3961 parameter.
3962 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
3963 (ipa_inline): Loop inline_to_all_callers until no more aliases
3964 are removed.
3965
3966 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3967
3968 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
3969 set writeonly flag only for vars actually written to.
3970
3971 2014-05-20 Dehao Chen <dehao@google.com>
3972
3973 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
3974 and callee count to get clone count.
3975 * tree-inline.c (expand_call_inline): Use callee count instead of bb
3976 count in copy_body.
3977
3978 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
3979
3980 PR rtl-optimization/61243
3981 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
3982
3983 2014-05-20 Xinliang David Li <davidxl@google.com>
3984
3985 * cgraphunit.c (walk_polymorphic_call_targets): Add
3986 dbgcnt and fopt-info support.
3987 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
3988 * ipa-devirt.c (ipa_devirt): Ditto.
3989 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
3990 * ipa.c (walk_polymorphic_call_targets): Ditto.
3991 * gimple-fold.c (fold_gimple_assign): Ditto.
3992 (gimple_fold_call): Ditto.
3993 * dbgcnt.def: New counter.
3994
3995 2014-05-20 DJ Delorie <dj@redhat.com>
3996
3997 * config/msp430/msp430.md (split): Don't allow subregs when
3998 splitting SImode adds.
3999 (andneghi): Fix subtraction logic.
4000 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
4001
4002 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
4003
4004 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
4005 symbols.
4006 * except.c (switch_to_exception_section, resolve_unique_section,
4007 get_named_text_section, default_function_rodata_section,
4008 align_variable, get_block_for_decl, default_section_type_flags):
4009 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
4010 * symtab.c (symtab_add_to_same_comdat_group,
4011 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
4012 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
4013 Likewise.
4014 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
4015 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
4016 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
4017 (c6x_function_in_section_p): Likewise.
4018 * config/darwin.c (machopic_select_section): Likewise.
4019 * config/arm/arm.c (arm_function_in_section_p): Likewise.
4020 * config/mips/mips.c (mips_function_rodata_section): Likewise.
4021 * config/mep/mep.c (mep_select_section): LIkewise.
4022 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
4023
4024 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
4025
4026 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
4027 EH region of calls to pure functions that can throw an exception.
4028 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
4029 (copy_reference_ops_from_call): Also copy the EH region of the call if
4030 it can throw an exception.
4031
4032 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4033
4034 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
4035 nested VEC_SELECTs that are inverses of each other.
4036
4037 2014-05-20 Richard Biener <rguenther@suse.de>
4038
4039 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
4040 (extract_and_process_scc_for_name): not here.
4041 (cond_dom_walker::before_dom_children): Only process
4042 stmts that end the BB in interesting ways.
4043 (run_scc_vn): Mark param uses as visited.
4044
4045 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4046
4047 * config/arm/arm.md (arith_shiftsi): Do not predicate for
4048 arm_restrict_it.
4049
4050 2014-05-20 Nick Clifton <nickc@redhat.com>
4051
4052 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
4053 (msp430_gimplify_va_arg_expr): New function.
4054 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
4055
4056 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
4057 operand 0 in order to prevent confusion about the number of
4058 registers involved.
4059
4060 2014-05-20 Richard Biener <rguenther@suse.de>
4061
4062 PR tree-optimization/61221
4063 * tree-ssa-pre.c (el_to_update): Remove.
4064 (eliminate_dom_walker::before_dom_children): Handle released
4065 VDEFs by value-numbering them to the associated VUSE. Update
4066 stmt immediately for substituted call address.
4067 (eliminate): Remove delayed stmt updating code.
4068 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
4069 possibly late re-numbered vuses.
4070 (vn_reference_lookup_2): Adjust.
4071 (vn_reference_lookup_pieces): Likewise.
4072 (vn_reference_lookup): Likewise.
4073
4074 2014-05-20 Richard Biener <rguenther@suse.de>
4075
4076 * config.gcc: Remove need_64bit_hwint.
4077 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
4078 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
4079 it to be true.
4080 * config.in: Regenerate.
4081 * configure: Likewise.
4082
4083 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
4084
4085 * doc/extend.texi: Create Label Attributes section,
4086 move all label attributes into it and reference it.
4087
4088 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
4089
4090 * arm.c (thumb1_reorg): When scanning backwards skip anything
4091 that's not a proper insn.
4092
4093 2014-05-19 Richard Biener <rguenther@suse.de>
4094
4095 PR tree-optimization/61221
4096 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4097 Do nothing for unreachable blocks.
4098 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
4099 Improve unreachability detection.
4100
4101 2014-05-19 Richard Biener <rguenther@suse.de>
4102
4103 PR tree-optimization/61209
4104 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
4105
4106 2014-05-19 Nick Clifton <nickc@redhat.com>
4107
4108 * except.c (init_eh): Fix computation of builtin setjmp buffer
4109 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
4110
4111 2014-05-19 Richard Biener <rguenther@suse.de>
4112
4113 PR tree-optimization/61184
4114 * tree-vrp.c (is_negative_overflow_infinity): Use
4115 TREE_OVERFLOW_P and do that check first.
4116 (is_positive_overflow_infinity): Likewise.
4117 (is_overflow_infinity): Likewise.
4118 (vrp_operand_equal_p): Properly treat operands with
4119 differing overflow as not equal.
4120
4121 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
4122
4123 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
4124 shift simplification where it was intended.
4125
4126 2014-05-19 Christian Bruel <christian.bruel@st.com>
4127
4128 PR target/61195
4129 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
4130
4131 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
4132
4133 PR target/61084
4134 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
4135 than wide_int.
4136
4137 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
4138
4139 * reg-notes.def (CROSSING_JUMP): Likewise.
4140 * rtl.h (rtx_def): Update comment for jump flag.
4141 (CROSSING_JUMP_P): Define.
4142 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
4143 of a REG_CROSSING_JUMP note.
4144 * cfghooks.c (tidy_fallthru_edges): Likewise.
4145 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
4146 * emit-rtl.c (try_split): Likewise.
4147 * haifa-sched.c (sched_create_recovery_edges): Likewise.
4148 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
4149 * jump.c (redirect_jump_2): Likewise.
4150 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
4151 (relax_delay_slots): Likewise.
4152 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
4153 (bbit_di): Likewise.
4154 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
4155 * config/sh/sh.md (jump_compact): Likewise.
4156 * bb-reorder.c (rotate_loop): Likewise.
4157 (pass_duplicate_computed_gotos::execute): Likewise.
4158 (add_reg_crossing_jump_notes): Rename to...
4159 (update_crossing_jump_flags): ...this.
4160 (pass_partition_blocks::execute): Update accordingly.
4161
4162 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
4163
4164 * tree.h: Remove extraneous template <>.
4165
4166 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4167
4168 * ipa.c (symtab_remove_unreachable_nodes): Remove
4169 symbol from comdat group if its body was eliminated.
4170 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
4171 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
4172 (symtab_unregister_node): ... this one.
4173 (verify_symtab_base): More strict checking of comdats.
4174 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
4175
4176 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4177
4178 * tree-pass.h (make_pass_ipa_comdats): New pass.
4179 * timevar.def (TV_IPA_COMDATS): New timevar.
4180 * passes.def (pass_ipa_comdats): Add.
4181 * Makefile.in (OBJS): Add ipa-comdats.o
4182 * ipa-comdats.c: New file.
4183
4184 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4185
4186 * ipa.c (update_visibility_by_resolution_info): New function.
4187 (function_and_variable_visibility): Use it.
4188
4189 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
4190
4191 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
4192 New functions.
4193 (FOR_EACH_DEFINED_SYMBOL): New macro.
4194 (varpool_first_static_initializer, varpool_next_static_initializer,
4195 varpool_first_defined_variable, varpool_next_defined_variable):
4196 Fix comments.
4197 (symtab_in_same_comdat_p): Correctly deal with inline functions.
4198
4199 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4200
4201 * ggc-page.c (ggc_handle_finalizers): Add comment.
4202
4203 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4204
4205 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
4206 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
4207 (ggc_internal_cleared_alloc): Likewise.
4208 * ggc-page.c (finalizer): New class.
4209 (vec_finalizer): Likewise.
4210 (globals::finalizers): New member.
4211 (globals::vec_finalizers): Likewise.
4212 (ggc_internal_alloc): Record the finalizer if any for the block being
4213 allocated.
4214 (ggc_handle_finalizers): New function.
4215 (ggc_collect): Call ggc_handle_finalizers.
4216 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
4217 finalizer.
4218 (ggc_internal_cleared_alloc): Likewise.
4219 (finalize): New function.
4220 (need_finalization_p): Likewise.
4221 (ggc_alloc): Install the type's destructor as the finalizer if it
4222 might do something.
4223 (ggc_cleared_alloc): Likewise.
4224 (ggc_vec_alloc): Likewise.
4225 (ggc_cleared_vec_alloc): Likewise.
4226
4227 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4228
4229 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
4230
4231 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4232
4233 * alias.c (record_alias_subset): Adjust.
4234 * bitmap.c (bitmap_element_allocate): Likewise.
4235 (bitmap_gc_alloc_stat): Likewise.
4236 * cfg.c (init_flow): Likewise.
4237 (alloc_block): Likewise.
4238 (unchecked_make_edge): Likewise.
4239 * cfgloop.c (alloc_loop): Likewise.
4240 (flow_loops_find): Likewise.
4241 (rescan_loop_exit): Likewise.
4242 * cfgrtl.c (init_rtl_bb_info): Likewise.
4243 * cgraph.c (insert_new_cgraph_node_version): Likewise.
4244 (cgraph_allocate_node): Likewise.
4245 (cgraph_create_edge_1): Likewise.
4246 (cgraph_allocate_init_indirect_info): Likewise.
4247 * cgraphclones.c (cgraph_clone_edge): Likewise.
4248 * cgraphunit.c (add_asm_node): Likewise.
4249 (init_lowered_empty_function): Likewise.
4250 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
4251 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
4252 (alpha_use_linkage): Likewise.
4253 * config/arc/arc.c (arc_init_machine_status): Likewise.
4254 * config/arm/arm.c (arm_init_machine_status): Likewise.
4255 * config/avr/avr.c (avr_init_machine_status): Likewise.
4256 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
4257 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
4258 * config/cris/cris.c (cris_init_machine_status): Likewise.
4259 * config/darwin.c (machopic_indirection_name): Likewise.
4260 (darwin_build_constant_cfstring): Likewise.
4261 (darwin_enter_string_into_cfstring_table): Likewise.
4262 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
4263 * config/frv/frv.c (frv_init_machine_status): Likewise.
4264 * config/i386/i386.c (get_dllimport_decl): Likewise.
4265 (ix86_init_machine_status): Likewise.
4266 (assign_386_stack_local): Likewise.
4267 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
4268 (i386_pe_maybe_record_exported_symbol): Likewise.
4269 (i386_pe_record_stub): Likewise.
4270 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
4271 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
4272 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
4273 (m32c_note_pragma_address): Likewise.
4274 * config/mep/mep.c (mep_init_machine_status): Likewise.
4275 (mep_note_pragma_flag): Likewise.
4276 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
4277 (mips16_local_alias): Likewise.
4278 (mips_init_machine_status): Likewise.
4279 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
4280 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
4281 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
4282 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
4283 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
4284 * config/pa/pa.c (pa_init_machine_status): Likewise.
4285 (pa_get_deferred_plabel): Likewise.
4286 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
4287 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
4288 (rs6000_init_machine_status): Likewise.
4289 (output_toc): Likewise.
4290 * config/s390/s390.c (s390_init_machine_status): Likewise.
4291 * config/score/score.c (score_output_external): Likewise.
4292 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
4293 * config/spu/spu.c (spu_init_machine_status): Likewise.
4294 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
4295 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
4296 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
4297 * coverage.c (coverage_end_function): Likewise.
4298 * dbxout.c (dbxout_init): Likewise.
4299 * doc/gty.texi: Don't mention variable_size attribute.
4300 * dwarf2cfi.c (new_cfi): Adjust.
4301 (new_cfi_row): Likewise.
4302 (copy_cfi_row): Likewise.
4303 (create_cie_data): Likewise.
4304 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
4305 (new_loc_descr): Likewise.
4306 (find_AT_string_in_table): Likewise.
4307 (add_addr_table_entry): Likewise.
4308 (new_die): Likewise.
4309 (add_var_loc_to_decl): Likewise.
4310 (clone_die): Likewise.
4311 (clone_as_declaration): Likewise.
4312 (break_out_comdat_types): Likewise.
4313 (new_loc_list): Likewise.
4314 (add_loc_descr_to_each): Likewise.
4315 (add_location_or_const_value_attribute): Likewise.
4316 (add_linkage_name): Likewise.
4317 (lookup_filename): Likewise.
4318 (dwarf2out_var_location): Likewise.
4319 (new_line_info_table): Likewise.
4320 (dwarf2out_init): Likewise.
4321 (mem_loc_descriptor): Likewise.
4322 (loc_descriptor): Likewise.
4323 (add_const_value_attribute): Likewise.
4324 (tree_add_const_value_attribute): Likewise.
4325 (comp_dir_string): Likewise.
4326 (dwarf2out_vms_debug_main_pointer): Likewise.
4327 (string_cst_pool_decl): Likewise.
4328 * emit-rtl.c (set_mem_attrs): Likewise.
4329 (get_reg_attrs): Likewise.
4330 (start_sequence): Likewise.
4331 (init_emit): Likewise.
4332 (init_emit_regs): Likewise.
4333 * except.c (init_eh_for_function): Likewise.
4334 (gen_eh_region): Likewise.
4335 (gen_eh_region_catch): Likewise.
4336 (gen_eh_landing_pad): Likewise.
4337 (add_call_site): Likewise.
4338 * function.c (add_frame_space): Likewise.
4339 (insert_temp_slot_address): Likewise.
4340 (assign_stack_temp_for_type): Likewise.
4341 (get_hard_reg_initial_val): Likewise.
4342 (allocate_struct_function): Likewise.
4343 (prepare_function_start): Likewise.
4344 (types_used_by_var_decl_insert): Likewise.
4345 * gengtype.c (variable_size_p): Remove function.
4346 (enum alloc_quantity): Remove enum.
4347 (write_typed_alloc_def): Remove function.
4348 (write_typed_struct_alloc_def): Likewise.
4349 (write_typed_typedef_alloc_def): Likewise.
4350 (write_typed_alloc_defns): Likewise.
4351 (main): Adjust.
4352 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
4353 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
4354 * ggc.h (ggc_alloc): new function.
4355 (ggc_cleared_alloc): Likewise.
4356 (ggc_vec_alloc): Template on type of vector element, and remove
4357 element size argument.
4358 (ggc_cleared_vec_alloc): Likewise.
4359 * gimple.c (gimple_build_omp_for): Adjust.
4360 (gimple_copy): Likewise.
4361 * ipa-cp.c (get_replacement_map): Likewise.
4362 (find_aggregate_values_for_callers_subset): Likewise.
4363 (known_aggs_to_agg_replacement_list): Likewise.
4364 * ipa-devirt.c (get_odr_type): Likewise.
4365 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
4366 (read_agg_replacement_chain): Likewise.
4367 * loop-iv.c (get_simple_loop_desc): Likewise.
4368 * lto-cgraph.c (input_node_opt_summary): Likewise.
4369 * lto-section-in.c (lto_new_in_decl_state): Likewise.
4370 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
4371 (input_eh_region): Likewise.
4372 (input_eh_lp): Likewise.
4373 (input_cfg): Likewise.
4374 * optabs.c (set_optab_libfunc): Likewise.
4375 (init_tree_optimization_optabs): Likewise.
4376 (set_conv_libfunc): Likewise.
4377 * passes.c (do_per_function_toporder): Likewise.
4378 * rtl.h: Don't use variable_size gty attribute.
4379 * sese.c (if_region_set_false_region): Adjust.
4380 * stringpool.c (gt_pch_save_stringpool): Likewise.
4381 * target-globals.c (save_target_globals): Likewise.
4382 * toplev.c (general_init): Likewise.
4383 * trans-mem.c (record_tm_replacement): Likewise.
4384 (split_bb_make_tm_edge): Likewise.
4385 * tree-cfg.c (move_sese_region_to_fn): Likewise.
4386 * tree-data-ref.h (lambda_vector_new): Likewise.
4387 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
4388 * tree-iterator.c (tsi_link_before): Likewise.
4389 (tsi_link_after): Likewise.
4390 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
4391 * tree-ssa-loop-niter.c (record_estimate): Likewise.
4392 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
4393 * tree-ssa-operands.h: Don't use variable_size gty attribute.
4394 * tree-ssa.c (init_tree_ssa): Adjust.
4395 * tree-ssanames.c (set_range_info): Likewise.
4396 (get_ptr_info): Likewise.
4397 (duplicate_ssa_name_ptr_info): Likewise.
4398 (duplicate_ssa_name_range_info): Likewise.
4399 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
4400 (unpack_ts_fixed_cst_value_fields): Likewise.
4401 * tree.c (build_fixed): Likewise.
4402 (build_real): Likewise.
4403 (build_string): Likewise.
4404 (decl_priority_info): Likewise.
4405 (decl_debug_expr_insert): Likewise.
4406 (decl_value_expr_insert): Likewise.
4407 (decl_debug_args_insert): Likewise.
4408 (type_hash_add): Likewise.
4409 (build_omp_clause): Likewise.
4410 * ubsan.c (decl_for_type_insert): Likewise.
4411 * varasm.c (get_unnamed_section): Likewise.
4412 (get_noswitch_section): Likewise.
4413 (get_section): Likewise.
4414 (get_block_for_section): Likewise.
4415 (create_block_symbol): Likewise.
4416 (build_constant_desc): Likewise.
4417 (create_constant_pool): Likewise.
4418 (force_const_mem): Likewise.
4419 (record_tm_clone_pair): Likewise.
4420 * varpool.c (varpool_create_empty_node): Likewise.
4421
4422 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
4423
4424 * dwarf2out.c (tree_add_const_value_attribute): Call
4425 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
4426 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
4427 instead of ggc_internal_<x>alloc_stat.
4428 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
4429 (ggc_realloc): Likewise.
4430 * ggc-none.c (ggc_internal_alloc): Likewise.
4431 (ggc_internal_cleared_alloc): Likewise.
4432 * ggc-page.c: Likewise.
4433 * ggc.h (ggc_internal_alloc_stat): Likewise.
4434 (ggc_internal_alloc): Remove macro.
4435 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
4436 (ggc_internal_cleared_alloc): Remove macro.
4437 (GGC_RESIZEVEC): Adjust.
4438 (ggc_resizevar): Remove macro.
4439 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
4440 (ggc_internal_cleared_vec_alloc_stat): Likewise.
4441 (ggc_internal_vec_cleared_alloc): Remove macro.
4442 (ggc_alloc_atomic_stat): Drop _stat suffix.
4443 (ggc_alloc_atomic): Remove macro.
4444 (ggc_alloc_cleared_atomic): Remove macro.
4445 (ggc_alloc_string_stat): Drop _stat suffix.
4446 (ggc_alloc_string): Remove macro.
4447 (ggc_alloc_rtx_def_stat): Adjust.
4448 (ggc_alloc_tree_node_stat): Likewise.
4449 (ggc_alloc_cleared_tree_node_stat): Likewise.
4450 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
4451 (ggc_alloc_cleared_simd_clone_stat): Likewise.
4452 * gimple.c (gimple_build_omp_for): Likewise.
4453 (gimple_copy): Likewise.
4454 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
4455 * toplev.c (realloc_for_line_map): Adjust.
4456 * tree-data-ref.h (lambda_vector_new): Likewise.
4457 * tree-phinodes.c (allocate_phi_node): Likewise.
4458 * tree.c (grow_tree_vec_stat): Likewise.
4459 * vec.h (va_gc::reserve): Adjust.
4460
4461 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
4462
4463 * config/microblaze/microblaze.c (break_handler): New Declaration.
4464 (microblaze_break_function_p,microblaze_is_break_handler): New.
4465 (compute_frame_size): Use microblaze_break_function_p.
4466 Add the test of break_handler.
4467 (microblaze_function_prologue) : Add the test of variable
4468 break_handler. Check the fnname by BREAK_HANDLER_NAME.
4469 (microblaze_function_epilogue) : Add the test of break_handler.
4470 (microblaze_globalize_label) : Add the test of break_handler.
4471 Check the name by BREAK_HANDLER_NAME.
4472
4473 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
4474
4475 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
4476 microblaze_is_break_handler test.
4477 (call_internal1,call_value_intern): Use microblaze_break_function_p.
4478 Use SYMBOL_REF_DECL.
4479
4480 * config/microblaze/microblaze-protos.h
4481 (microblaze_break_function_p,microblaze_is_break_handler):
4482 New Declaration.
4483
4484 * doc/extend.texi (MicroBlaze break_handler Functions): Document
4485 new MicroBlaze break_handler functions.
4486
4487 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4488
4489 * doc/extend.texi (Size of an asm): Move node text according
4490 to its @menu entry position.
4491
4492 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
4493
4494 PR tree-optimization/61140
4495 PR tree-optimization/61150
4496 PR tree-optimization/61197
4497 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
4498
4499 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
4500
4501 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
4502
4503 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
4504
4505 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
4506 __SIZEOF_INT128__ is defined.
4507
4508 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4509
4510 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
4511 (rs6000_delegitimize_address): Use it.
4512
4513 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
4514
4515 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
4516 inplace argument. Store the new address in the original MEM when true.
4517 * emit-rtl.c (change_address_1): Likewise.
4518 (adjust_address_1, adjust_automodify_address_1, offset_address):
4519 Update accordingly.
4520 * rtl.h (plus_constant): Add an inplace argument.
4521 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
4522 when true. Avoid generating (plus X (const_int 0)).
4523 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
4524 in-place. Pass true to plus_constant.
4525 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
4526
4527 2014-05-16 Dehao Chen <dehao@google.com>
4528
4529 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
4530
4531 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4532
4533 PR target/54089
4534 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
4535 patterns.
4536 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
4537
4538 2014-05-16 Dehao Chen <dehao@google.com>
4539
4540 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
4541 optimize_function_for_size_p.
4542 * regs.h (REG_FREQ_FROM_BB): Likewise.
4543
4544 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4545
4546 PR target/51244
4547 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
4548 negt_reg_operand cases.
4549 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
4550 predicate.
4551 * config/sh/predicates.md (cbranch_treg_value): Simplify.
4552
4553 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
4554
4555 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
4556 target variants.
4557
4558 2014-05-16 David Malcolm <dmalcolm@redhat.com>
4559
4560 Revert:
4561 2014-04-29 David Malcolm <dmalcolm@redhat.com>
4562
4563 * tree-cfg.c (dump_function_to_file): Dump the return type of
4564 functions, in a line to itself before the function body, mimicking
4565 the layout of a C function.
4566
4567 2014-05-16 Dehao Chen <dehao@google.com>
4568
4569 * cfghooks.c (make_forwarder_block): Use direct computation to
4570 get fall-through edge's count and frequency.
4571
4572 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
4573
4574 * config/arc/arc.c (arc_init): Fix typo in error message.
4575 * config/i386/i386.c (ix86_expand_builtin): Likewise.
4576 (split_stack_prologue_scratch_regno): Likewise.
4577 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
4578 word from error message.
4579
4580 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4581
4582 * ira-costs.c: Fix typo in comment.
4583
4584 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
4585
4586 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
4587
4588 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
4589
4590 * varpool.c (dump_varpool_node): Dump write-only flag.
4591 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
4592 write-only flag.
4593 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
4594 write-only variables.
4595 * ipa.c (process_references): New function.
4596 (set_readonly_bit): New function.
4597 (set_writeonly_bit): New function.
4598 (clear_addressable_bit): New function.
4599 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
4600 fix handling of aliases.
4601 * cgraph.h (struct varpool_node): Add writeonly flag.
4602
4603 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
4604
4605 PR rtl-optimization/60969
4606 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
4607 Calculate costs for this case.
4608
4609 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
4610
4611 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
4612 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
4613
4614 2014-05-16 Richard Biener <rguenther@suse.de>
4615
4616 PR tree-optimization/61194
4617 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
4618 bool patterns ending in a COND_EXPR.
4619
4620 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4621
4622 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
4623
4624 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4625
4626 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
4627 where we were unable to cost an RTX.
4628
4629 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4630
4631 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
4632 HIGH, LO_SUM.
4633
4634 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4635 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4636
4637 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
4638
4639 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4640 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4641
4642 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
4643 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
4644
4645 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4646 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4647
4648 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
4649 operators.
4650
4651 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4652 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4653
4654 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
4655 DIV/MOD.
4656
4657 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4658 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4659
4660 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
4661 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
4662
4663 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4664 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4665
4666 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
4667 rotates and shifts.
4668
4669 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4670 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4671
4672 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
4673 ZERO_EXTEND and SIGN_EXTEND better.
4674
4675 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4676 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4677
4678 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
4679 logical operations.
4680
4681 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4682 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4683
4684 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
4685 costs when costing loads and stores to memory.
4686
4687 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4688 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
4689
4690 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
4691 for SET RTX.
4692
4693 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4694
4695 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
4696
4697 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4698 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4699
4700 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
4701 to...
4702 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
4703 well formed.
4704 (aarch64_rtx_mult_cost): New.
4705 (aarch64_rtx_costs): Use it, refactor as appropriate.
4706
4707 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4708 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
4709
4710 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
4711 emit instructions, return number of instructions which would
4712 be emitted.
4713 (aarch64_add_constant): Update call to aarch64_build_constant.
4714 (aarch64_output_mi_thunk): Likewise.
4715 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
4716 a CONST_DOUBLE.
4717
4718 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4719
4720 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
4721 (TARGET_RTX_COSTS): Call it.
4722
4723 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4724
4725 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
4726 (cortexa57_vector_cost): Likewise.
4727 (cortexa57_tunings): Use them.
4728
4729 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
4730
4731 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
4732 (cpu_addrcost_table): Use it.
4733 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
4734 (aarch64_address_cost): Rewrite using aarch64_classify_address,
4735 move it.
4736
4737 2014-05-16 Richard Biener <rguenther@suse.de>
4738
4739 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
4740 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
4741 (visit_phi): Ignore edges marked as not executable.
4742 (class cond_dom_walker): New.
4743 (cond_dom_walker::before_dom_children): Value-number
4744 control statements and mark successor edges as not
4745 executable if possible.
4746 (run_scc_vn): First walk all control statements in
4747 dominator order, marking edges as not executable.
4748 * tree-inline.c (copy_edges_for_bb): Be not confused
4749 about random edge flags.
4750
4751 2014-05-16 Richard Biener <rguenther@suse.de>
4752
4753 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
4754
4755 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
4756
4757 PR target/61193
4758 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
4759 (__TM_simple_begin): Use it.
4760 (__TM_begin): Likewise.
4761
4762 2014-05-15 Martin Jambor <mjambor@suse.cz>
4763
4764 PR ipa/61085
4765 * ipa-prop.c (update_indirect_edges_after_inlining): Check
4766 type_preserved flag when the indirect edge is polymorphic.
4767
4768 2014-05-15 Martin Jambor <mjambor@suse.cz>
4769
4770 PR tree-optimization/61090
4771 * tree-sra.c (sra_modify_expr): Pass the current gsi to
4772 build_ref_for_model.
4773
4774 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4775
4776 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
4777 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
4778
4779 2014-05-15 Jakub Jelinek <jakub@redhat.com>
4780
4781 PR tree-optimization/61158
4782 * fold-const.c (fold_binary_loc): If X is zero-extended and
4783 shiftc >= prec, make sure zerobits is all ones instead of
4784 invoking undefined behavior.
4785
4786 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4787
4788 * regcprop.h: New file.
4789 * regcprop.c (skip_debug_insn_p): New decl.
4790 (replace_oldest_value_reg): Check skip_debug_insn_p.
4791 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
4792 * shrink-wrap.c: Include regcprop.h.
4793 (prepare_shrink_wrap): Call
4794 copyprop_hardreg_forward_bb_without_debug_insn.
4795
4796 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4797
4798 * shrink-wrap.h: Update comment.
4799 * shrink-wrap.c: Update comment.
4800 (next_block_for_reg): Rename to live_edge_for_reg.
4801 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
4802 (move_insn_for_shrink_wrap): Split live_edge.
4803 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
4804
4805 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4806
4807 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
4808 Delete.
4809 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
4810 * config/sparc/sparc.md (fptype_ut699): New attribute.
4811 (in_branch_delay): Return false if -mfix-ut699 is specified and
4812 fptype_ut699 is set to single.
4813 (truncdfsf2): Add fptype_ut699 attribute.
4814 (fix_truncdfsi2): Likewise.
4815 (floatsisf2): Change fptype attribute.
4816 (fix_truncsfsi2): Likewise.
4817 (negtf2_notv9): Delete.
4818 (negtf2_v9): Likewise.
4819 (negtf2_hq): New instruction.
4820 (negtf2): New instruction and splitter.
4821 (negdf2_notv9): Rewrite.
4822 (abstf2_notv9): Delete.
4823 (abstf2_hq_v9): Likewise.
4824 (abstf2_v9): Likewise.
4825 (abstf2_hq): New instruction.
4826 (abstf2): New instruction and splitter.
4827 (absdf2_notv9): Rewrite.
4828
4829 2014-05-14 Cary Coutant <ccoutant@google.com>
4830
4831 PR debug/61013
4832 * opts.c (common_handle_option): Don't special-case "-g".
4833 (set_debug_level): Default to at least level 2 with "-g".
4834
4835 2014-05-14 DJ Delorie <dj@redhat.com>
4836
4837 * config/msp430/msp430.c (msp430_builtin): Add
4838 MSP430_BUILTIN_DELAY_CYCLES.
4839 (msp430_init_builtins): Register void __delay_cycles(long long).
4840 (msp430_builtin_decl): Add it.
4841 (cg_magic_constant): New.
4842 (msp430_expand_delay_cycles): New.
4843 (msp430_expand_builtin): Call it.
4844 (msp430_print_operand_raw): Change integer printing from "int" to
4845 HOST_WIDE_INT.
4846 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
4847 (delay_cycles_start): New.
4848 (delay_cycles_end): New.
4849 (delay_cycles_32): New.
4850 (delay_cycles_32x): New.
4851 (delay_cycles_16): New.
4852 (delay_cycles_16x): New.
4853 (delay_cycles_2): New.
4854 (delay_cycles_1): New.
4855 * doc/extend.texi: Document __delay_cycles().
4856
4857 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
4858
4859 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
4860 length attribute computation.
4861
4862 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
4863
4864 PR debug/61188
4865 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
4866
4867 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
4868
4869 PR target/61084
4870 * config/sparc/sparc.md: Fix types of low and high in DI constant
4871 splitter. Use gen_int_mode in some other splitters.
4872
4873 2014-05-14 Martin Jambor <mjambor@suse.cz>
4874
4875 PR ipa/60897
4876 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
4877
4878 2014-05-14 James Norris <jnorris@codesourcery.com>
4879
4880 * omp-low.c (expand_parallel_call): Remove shadow variable.
4881 (expand_omp_taskreg): Likewise.
4882
4883 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
4884
4885 * common/config/i386/i386-common.c
4886 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
4887 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
4888 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
4889 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
4890 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
4891 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
4892 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
4893 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
4894 xsavecintrin.h, xsavesintrin.h.
4895 (x86_64-*-*): Ditto.
4896 * config/i386/clflushoptintrin.h: New.
4897 * config/i386/xsavecintrin.h: Ditto.
4898 * config/i386/xsavesintrin.h: Ditto.
4899 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
4900 (bit_XSAVES): Ditto.
4901 (bit_XSAVES): Ditto.
4902 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
4903 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
4904 -mno-clflushopt.
4905 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4906 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
4907 OPTION_MASK_ISA_XSAVES.
4908 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
4909 -mxsavec, -mxsaves.
4910 (PTA_CLFLUSHOPT) Define.
4911 (PTA_XSAVEC): Ditto.
4912 (PTA_XSAVES): Ditto.
4913 (ix86_option_override_internal): Handle new options.
4914 (ix86_valid_target_attribute_inner_p): Ditto.
4915 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
4916 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
4917 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
4918 (bdesc_special_args): Add __builtin_ia32_xsaves,
4919 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
4920 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
4921 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
4922 (ix86_expand_builtin): Handle new builtins.
4923 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
4924 (TARGET_CLFLUSHOPT_P): Ditto.
4925 (TARGET_XSAVEC): Ditto.
4926 (TARGET_XSAVEC_P): Ditto.
4927 (TARGET_XSAVES): Ditto.
4928 (TARGET_XSAVES_P): Ditto.
4929 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
4930 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
4931 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
4932 (ANY_XRSTOR): New.
4933 (ANY_XRSTOR64): Ditto.
4934 (xrstor): Ditto.
4935 (xrstor): Change into <xrstor>.
4936 (xrstor_rex64): Change into <xrstor>_rex64.
4937 (xrstor64): Change into <xrstor>64
4938 (clflushopt): New.
4939 * config/i386/i386.opt (mclflushopt): New.
4940 (mxsavec): Ditto.
4941 (mxsaves): Ditto.
4942 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
4943 xsavecintrin.h.
4944 * doc/invoke.texi: Document new options.
4945
4946 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4947
4948 PR rtl-optimization/60866
4949 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
4950 Default it to -1. Pass it down to init_simplejump_data.
4951 (init_simplejump_data): New parameter old_seqno. Pass it down
4952 to get_seqno_for_a_jump.
4953 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
4954 initializing new jump seqno as a last resort. Add comment.
4955 (sel_redirect_edge_and_branch): Save old seqno of the conditional
4956 jump and pass it down to sel_init_new_insn.
4957 (sel_redirect_edge_and_branch_force): Likewise.
4958
4959 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
4960
4961 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
4962 shifted values to avoid build warning.
4963
4964 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
4965
4966 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
4967 * cfgrtl.c (rtl_merge_blocks): Fix comment.
4968 (cfg_layout_merge_blocks): Likewise.
4969 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
4970
4971 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
4972
4973 PR rtl-optimization/60901
4974 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
4975 bb predecessor belongs to the same scheduling region. Adjust comment.
4976
4977 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
4978
4979 * doc/sourcebuild.texi: (dfp_hw): Document.
4980 (p8vector_hw): Likewise.
4981 (powerpc_eabi_ok): Likewise.
4982 (powerpc_elfv2): Likewise.
4983 (powerpc_htm_ok): Likewise.
4984 (ppc_recip_hw): Likewise.
4985 (vsx_hw): Likewise.
4986
4987 2014-05-13 Cary Coutant <ccoutant@google.com>
4988
4989 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
4990
4991 2014-05-13 David Malcolm <dmalcolm@redhat.com>
4992
4993 * gengtype-parse.c (require3): Eliminate in favor of...
4994 (require4): New.
4995 (require_template_declaration): Update to support optional single *
4996 on a type.
4997
4998 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
4999 (create_user_defined_type): Handle a single level of explicit
5000 pointerness within template arguments.
5001 (struct write_types_data): Add field "kind".
5002 (filter_type_name): Handle "*" character.
5003 (write_user_func_for_structure_ptr): Require a write_types_data
5004 rather than just a prefix string, so that we can look up the kind
5005 of the wtd and use it as an index into wrote_user_func_for_ptr,
5006 ensuring that such functions are written at most once. Support
5007 subclasses by invoking the marking function of the ultimate base class.
5008 (write_user_func_for_structure_body): Require a write_types_data
5009 rather than just a prefix string, so that we can pass this to
5010 write_user_func_for_structure_ptr.
5011 (write_func_for_structure): Likewise.
5012 (ggc_wtd): Add initializer of new "kind" field.
5013 (pch_wtd): Likewise.
5014
5015 * gengtype.h (enum write_types_kinds): New.
5016 (struct type): Add field wrote_user_func_for_ptr to the "s"
5017 union member.
5018
5019 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
5020
5021 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
5022 instead of const_binop.
5023 (fold_binary_loc): Likewise.
5024
5025 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
5026
5027 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
5028 calculation to match get_ref_base_and_extent.
5029
5030 2014-05-13 Catherine Moore <clm@codesourcery.com>
5031 Sandra Loosemore <sandra@codesourcery.com>
5032
5033 * configure.ac: Fix assembly for explicit JALR relocation check.
5034 * configure: Regenerate.
5035
5036 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5037
5038 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
5039 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
5040 Remove associated type declarations and initialisations.
5041 (arm_expand_neon_builtin): Likewise.
5042 (neon_emit_pair_result_insn): Delete.
5043 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
5044 * config/arm/neon.md (neon_vtrn<mode>): Delete.
5045 (neon_vzip<mode>): Likewise.
5046 (neon_vuzp<mode>): Likewise.
5047
5048 2014-05-13 Richard Biener <rguenther@suse.de>
5049
5050 PR ipa/60973
5051 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
5052 it needs revisiting whether the call still may be tail-called.
5053
5054 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5055
5056 * rtl.def (SYMBOL_REF): Remove middle "0" field.
5057 * rtl.h (block_symbol): Reduce number of fields to 2.
5058 (rtx_def): Add u2.symbol_ref_flags.
5059 (SYMBOL_REF_FLAGS): Use it.
5060 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
5061 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
5062 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
5063 Lower index of SYMBOL_REF_DATA.
5064 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
5065 Print SYMBOL_REF_FLAGS at the same time.
5066 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
5067
5068 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5069
5070 * rtl.def (VAR_LOCATION): Remove "i" field.
5071 * rtl.h (rtx_def): Add u2.var_location_status.
5072 (PAT_VAR_LOCATION_STATUS): Use it.
5073 (gen_rtx_VAR_LOCATION): Declare.
5074 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
5075 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
5076 * var-tracking.c (emit_note_insn_var_location): Remove casts.
5077
5078 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5079
5080 * rtl.def (scratch): Fix outdated comment and remove "0" field.
5081 * gengtype.c (adjust_field_rtx_def): Update accordingly.
5082
5083 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5084
5085 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
5086 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
5087 * rtl.h (rtx_def): Add insn_uid to u2 field.
5088 (RTX_FLAG_CHECK8): Delete in favor of...
5089 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
5090 (INSN_DELETED_P): Update accordingly.
5091 (INSN_UID): Use u2.insn_uid.
5092 (INSN_CHAIN_CODE_P): Define.
5093 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
5094 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
5095 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
5096 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
5097 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
5098 indices accordingly.
5099 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
5100 Update indices for insn-chain rtxes.
5101 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
5102 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
5103 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
5104 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
5105 * combine.c (try_combine): Likewise.
5106 * ira.c (setup_prohibited_mode_move_regs): Likewise.
5107
5108 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5109
5110 * rtl.def (REG): Remove middle field.
5111 * rtl.h (rtx_def): Add orignal_regno to u2.
5112 (ORIGINAL_REGNO): Use it instead of field 1.
5113 (REG_ATTRS): Lower field index accordingly.
5114 * gengtype.c (adjust_field_rtx_def): Remove handling of
5115 ORIGINAL_REGNO. Move REG_ATTRS index down.
5116 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
5117 code that prints the REGNO.
5118
5119 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5120
5121 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
5122 GENERATOR_FILE.
5123
5124 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
5125
5126 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
5127
5128 2014-05-13 Bin Cheng <bin.cheng@arm.com>
5129
5130 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
5131 (alloc_iv): Lower base expressions containing ADDR_EXPR.
5132
5133 2014-05-13 Ian Bolton <ian.bolton@arm.com>
5134
5135 * config/aarch64/aarch64-protos.h
5136 (aarch64_hard_regno_caller_save_mode): New prototype.
5137 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
5138 New function.
5139 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5140
5141 2014-05-13 Christian Bruel <christian.bruel@st.com>
5142
5143 * target.def (mode_switching): New hook vector.
5144 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
5145 (mode_exit, modepriority_to_mode): Likewise.
5146 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
5147 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5148 * target.h: Include tm.h and hard-reg-set.h.
5149 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
5150 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
5151 * doc/tm.texi Regenerate.
5152 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
5153 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5154 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
5155 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
5156 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
5157 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5158 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
5159 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
5160 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
5161 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
5162 (ix86_emit_mode_set): Hookify.
5163 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
5164 Delete.
5165 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
5166 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
5167 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
5168 (epiphany_mode_priority_to_mode): Remove declaration.
5169 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
5170 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
5171 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
5172 Likewise.
5173 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
5174 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
5175 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
5176
5177 2014-05-13 Jakub Jelinek <jakub@redhat.com>
5178
5179 PR target/61060
5180 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
5181 is const0_rtx, return immediately. Don't test count == 0 when
5182 it is always true.
5183
5184 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5185
5186 * Makefile.in: add shrink-wrap.o.
5187 * config/i386/i386.c: include "shrink-wrap.h"
5188 * function.c: Likewise.
5189 (requires_stack_frame_p, next_block_for_reg,
5190 move_insn_for_shrink_wrap, prepare_shrink_wrap,
5191 dup_block_and_redirect): Move to shrink-wrap.c
5192 (thread_prologue_and_epilogue_insns): Extract three code segments
5193 as functions in shrink-wrap.c
5194 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
5195 shrink-wrap.h
5196 * shrink-wrap.c: New file.
5197 * shrink-wrap.h: New file.
5198
5199 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
5200
5201 * doc/extend.texi: Reflect current numbers of pragmas. Remove
5202 reference to Solaris.
5203
5204 2014-05-12 Mike Stump <mikestump@comcast.net>
5205
5206 PR other/31778
5207 * genattrtab.c (filename): Add.
5208 (convert_set_attr_alternative): Improve error message.
5209 (check_defs): Restore read_md_filename for error messages.
5210 (gen_insn): Save filename.
5211
5212 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
5213
5214 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
5215 -fno-local-ivars and -fivar-visibility.
5216 * c-family/c.opt: Make -Wshadow also implicitly enable
5217 -Wshadow-ivar.
5218
5219 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
5220
5221 * doc/tm.texi: Remove reference to deleted macro.
5222 * doc/tm.texi.in: Likewise.
5223
5224 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5225
5226 PR target/60991
5227 * config/avr/avr.c (avr_out_store_psi): Use correct constant
5228 to restore Y.
5229
5230 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
5231
5232 PR libgcc/61152
5233 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
5234 * config/arm/aout.h (License): Same.
5235 * config/arm/bpabi.h (License): Same.
5236 * config/arm/elf.h (License): Same.
5237 * config/arm/linux-elf.h (License): Same.
5238 * config/arm/linux-gas.h (License): Same.
5239 * config/arm/netbsd-elf.h (License): Same.
5240 * config/arm/uclinux-eabi.h (License): Same.
5241 * config/arm/uclinux-elf.h (License): Same.
5242 * config/arm/vxworks.h (License): Same.
5243
5244 2014-05-11 Jakub Jelinek <jakub@redhat.com>
5245
5246 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
5247 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
5248 number of operands to 3.
5249 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
5250 * tree-nested.c (convert_nonlocal_omp_clauses,
5251 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
5252 * gimplify.c (gimplify_scan_omp_clauses): Handle
5253 OMP_CLAUSE_LINEAR_STMT.
5254 * omp-low.c (lower_rec_input_clauses): Fix typo.
5255 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
5256 cast between Fortran boolean_type_node and C _Bool if
5257 needed.
5258
5259 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
5260
5261 PR tree-optimization/61136
5262 * wide-int.h (multiple_of_p): Define a version that doesn't return
5263 the quotient.
5264 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
5265 integer_zerop/const_binop pair.
5266 (multiple_of_p): Likewise, converting both operands to widest_int
5267 precision.
5268
5269 2014-05-09 Teresa Johnson <tejohnson@google.com>
5270
5271 * cgraphunit.c (analyze_functions): Use correct dump file.
5272
5273 2014-05-09 Florian Weimer <fweimer@redhat.com>
5274
5275 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
5276 expand_used_vars.
5277 (stack_protect_return_slot_p): New function.
5278 (expand_used_vars): Call stack_protect_decl_p and
5279 stack_protect_return_slot_p for -fstack-protector-strong.
5280
5281 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
5282 Andrew Haley <aph@redhat.com>
5283 Richard Sandiford <rdsandiford@googlemail.com>
5284
5285 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
5286 pages.
5287
5288 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
5289
5290 PR middle-end/61111
5291 * fold-const.c (fold_binary_loc): Changed width of mask.
5292
5293 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
5294
5295 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
5296 unsigned int initializers for regno_in, regno_out.
5297
5298 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
5299
5300 PR target/61055
5301 * config/avr/avr.md (cc): Add new attribute set_vzn.
5302 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
5303 Set cc insn attribute to set_vzn instead of set_zn for alternatives
5304 with INC, DEC or NEG.
5305 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
5306 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
5307 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
5308
5309 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5310
5311 Revert:
5312 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5313
5314 * wide-int.cc (UTItype): Define.
5315 (UDWtype): Define for appropriate W_TYPE_SIZE.
5316
5317 2014-05-09 Richard Biener <rguenther@suse.de>
5318
5319 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
5320 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
5321 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
5322 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
5323 ssa_propagate): Adjust.
5324
5325 2014-05-08 Jeff Law <law@redhat.com>
5326
5327 PR tree-optimization/61009
5328 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
5329 tri-state rather than a boolean. When a block is too big to
5330 thread through, inform caller via negative return value.
5331 (thread_across_edge): If a block was too big for normal threading,
5332 then it's too big for a joiner too, so remove temporary equivalences
5333 and return immediately.
5334
5335 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
5336 Matthias Klose <doko@ubuntu.com>
5337
5338 PR driver/61106
5339 * optc-gen.awk: Fix option handling for -Wunused-parameter.
5340
5341 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
5342
5343 PR target/59952
5344 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
5345
5346 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
5347
5348 PR target/61092
5349 * config/alpha/alpha.c: Include gimple-iterator.h.
5350 (alpha_gimple_fold_builtin): New function. Move
5351 ALPHA_BUILTIN_UMULH folding from ...
5352 (alpha_fold_builtin): ... here.
5353 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
5354
5355 2014-05-08 Wei Mi <wmi@google.com>
5356
5357 PR target/58066
5358 * config/i386/i386.c (ix86_compute_frame_layout): Update
5359 preferred_stack_boundary for call, expanded from tls descriptor.
5360 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
5361 to depend on SP register.
5362 (*tls_local_dynamic_base_32_gnu): Ditto.
5363 (*tls_local_dynamic_32_once): Ditto.
5364 (tls_global_dynamic_64_<mode>): Set
5365 ix86_tls_descriptor_calls_expanded_in_cfun.
5366 (tls_local_dynamic_base_64_<mode>): Ditto.
5367 (tls_global_dynamic_32): Set
5368 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
5369 to depend on SP register.
5370 (tls_local_dynamic_base_32): Ditto.
5371
5372 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5373
5374 * config/arm/arm_neon.h: Update comment.
5375 * config/arm/neon-docgen.ml: Delete.
5376 * config/arm/neon-gen.ml: Delete.
5377 * doc/arm-neon-intrinsics.texi: Update comment.
5378
5379 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5380
5381 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
5382 and v4sf versions.
5383 (vand, vorr, veor, vorn, vbic): Remove.
5384 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
5385 iterator.
5386 (neon_vsub_unspec): Likewise.
5387 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
5388
5389 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5390
5391 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
5392 (vadd_s16): Likewise.
5393 (vadd_s32): Likewise.
5394 (vadd_f32): Likewise.
5395 (vadd_u8): Likewise.
5396 (vadd_u16): Likewise.
5397 (vadd_u32): Likewise.
5398 (vadd_s64): Likewise.
5399 (vadd_u64): Likewise.
5400 (vaddq_s8): Likewise.
5401 (vaddq_s16): Likewise.
5402 (vaddq_s32): Likewise.
5403 (vaddq_s64): Likewise.
5404 (vaddq_f32): Likewise.
5405 (vaddq_u8): Likewise.
5406 (vaddq_u16): Likewise.
5407 (vaddq_u32): Likewise.
5408 (vaddq_u64): Likewise.
5409 (vmul_s8): Likewise.
5410 (vmul_s16): Likewise.
5411 (vmul_s32): Likewise.
5412 (vmul_f32): Likewise.
5413 (vmul_u8): Likewise.
5414 (vmul_u16): Likewise.
5415 (vmul_u32): Likewise.
5416 (vmul_p8): Likewise.
5417 (vmulq_s8): Likewise.
5418 (vmulq_s16): Likewise.
5419 (vmulq_s32): Likewise.
5420 (vmulq_f32): Likewise.
5421 (vmulq_u8): Likewise.
5422 (vmulq_u16): Likewise.
5423 (vmulq_u32): Likewise.
5424 (vsub_s8): Likewise.
5425 (vsub_s16): Likewise.
5426 (vsub_s32): Likewise.
5427 (vsub_f32): Likewise.
5428 (vsub_u8): Likewise.
5429 (vsub_u16): Likewise.
5430 (vsub_u32): Likewise.
5431 (vsub_s64): Likewise.
5432 (vsub_u64): Likewise.
5433 (vsubq_s8): Likewise.
5434 (vsubq_s16): Likewise.
5435 (vsubq_s32): Likewise.
5436 (vsubq_s64): Likewise.
5437 (vsubq_f32): Likewise.
5438 (vsubq_u8): Likewise.
5439 (vsubq_u16): Likewise.
5440 (vsubq_u32): Likewise.
5441 (vsubq_u64): Likewise.
5442 (vand_s8): Likewise.
5443 (vand_s16): Likewise.
5444 (vand_s32): Likewise.
5445 (vand_u8): Likewise.
5446 (vand_u16): Likewise.
5447 (vand_u32): Likewise.
5448 (vand_s64): Likewise.
5449 (vand_u64): Likewise.
5450 (vandq_s8): Likewise.
5451 (vandq_s16): Likewise.
5452 (vandq_s32): Likewise.
5453 (vandq_s64): Likewise.
5454 (vandq_u8): Likewise.
5455 (vandq_u16): Likewise.
5456 (vandq_u32): Likewise.
5457 (vandq_u64): Likewise.
5458 (vorr_s8): Likewise.
5459 (vorr_s16): Likewise.
5460 (vorr_s32): Likewise.
5461 (vorr_u8): Likewise.
5462 (vorr_u16): Likewise.
5463 (vorr_u32): Likewise.
5464 (vorr_s64): Likewise.
5465 (vorr_u64): Likewise.
5466 (vorrq_s8): Likewise.
5467 (vorrq_s16): Likewise.
5468 (vorrq_s32): Likewise.
5469 (vorrq_s64): Likewise.
5470 (vorrq_u8): Likewise.
5471 (vorrq_u16): Likewise.
5472 (vorrq_u32): Likewise.
5473 (vorrq_u64): Likewise.
5474 (veor_s8): Likewise.
5475 (veor_s16): Likewise.
5476 (veor_s32): Likewise.
5477 (veor_u8): Likewise.
5478 (veor_u16): Likewise.
5479 (veor_u32): Likewise.
5480 (veor_s64): Likewise.
5481 (veor_u64): Likewise.
5482 (veorq_s8): Likewise.
5483 (veorq_s16): Likewise.
5484 (veorq_s32): Likewise.
5485 (veorq_s64): Likewise.
5486 (veorq_u8): Likewise.
5487 (veorq_u16): Likewise.
5488 (veorq_u32): Likewise.
5489 (veorq_u64): Likewise.
5490 (vbic_s8): Likewise.
5491 (vbic_s16): Likewise.
5492 (vbic_s32): Likewise.
5493 (vbic_u8): Likewise.
5494 (vbic_u16): Likewise.
5495 (vbic_u32): Likewise.
5496 (vbic_s64): Likewise.
5497 (vbic_u64): Likewise.
5498 (vbicq_s8): Likewise.
5499 (vbicq_s16): Likewise.
5500 (vbicq_s32): Likewise.
5501 (vbicq_s64): Likewise.
5502 (vbicq_u8): Likewise.
5503 (vbicq_u16): Likewise.
5504 (vbicq_u32): Likewise.
5505 (vbicq_u64): Likewise.
5506 (vorn_s8): Likewise.
5507 (vorn_s16): Likewise.
5508 (vorn_s32): Likewise.
5509 (vorn_u8): Likewise.
5510 (vorn_u16): Likewise.
5511 (vorn_u32): Likewise.
5512 (vorn_s64): Likewise.
5513 (vorn_u64): Likewise.
5514 (vornq_s8): Likewise.
5515 (vornq_s16): Likewise.
5516 (vornq_s32): Likewise.
5517 (vornq_s64): Likewise.
5518 (vornq_u8): Likewise.
5519 (vornq_u16): Likewise.
5520 (vornq_u32): Likewise.
5521 (vornq_u64): Likewise.
5522
5523 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5524
5525 * wide-int.cc (UTItype): Define.
5526 (UDWtype): Define for appropriate W_TYPE_SIZE.
5527
5528 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
5529
5530 PR tree-optimization/59100
5531 * tree-ssa-phiopt.c: Include tree-inline.h.
5532 (neutral_element_p, absorbing_element_p): New functions.
5533 (value_replacement): Handle conditional binary operations with a
5534 neutral or absorbing element.
5535
5536 2014-05-08 Richard Biener <rguenther@suse.de>
5537
5538 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
5539 folding the expression.
5540 (valueize_expr): Remove.
5541 (visit_reference_op_load): Do not valueize the result of
5542 vn_get_expr_for.
5543 (simplify_binary_expression): Likewise.
5544 (simplify_unary_expression): Likewise.
5545
5546 2014-05-08 Richard Biener <rguenther@suse.de>
5547
5548 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
5549 looking at TYPE_ARG_TYPES.
5550
5551 2014-05-08 Richard Biener <rguenther@suse.de>
5552
5553 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
5554 pointer propagation special-case.
5555
5556 2014-05-08 Bin Cheng <bin.cheng@arm.com>
5557
5558 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
5559 core part of address expressions.
5560
5561 2014-05-08 Alan Modra <amodra@gmail.com>
5562
5563 PR target/60737
5564 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
5565 loads and stores when -mno-strict-align at any alignment.
5566 (expand_block_clear): Similarly. Also correct calculation of
5567 instruction count.
5568
5569 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5570
5571 PR middle-end/39246
5572 * tree-complex.c (expand_complex_move): Keep line info when expanding
5573 complex move.
5574 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
5575 of complex expression. Use new argument to display correct location
5576 for values coming from phi statement.
5577 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
5578 (warn_uninitialized_phi): Pass location of phi argument to
5579 warn_uninit.
5580 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
5581 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
5582
5583 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
5584
5585 * config/rs6000/predicates.md (indexed_address_mem): New.
5586 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
5587 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
5588 fpstore_ux, fpstore_u.
5589 (sign_extend, indexed, update): New.
5590 (cell_micro): Adjust.
5591 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
5592 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
5593 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
5594 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
5595 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
5596 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
5597 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
5598 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
5599 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
5600 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
5601 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
5602 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
5603 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
5604 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
5605 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
5606
5607 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
5608 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
5609 *vsx_extract_<mode>_store): Adjust.
5610 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
5611 is_cracked_insn, insn_must_be_first_in_group,
5612 insn_must_be_last_in_group): Adjust.
5613
5614 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
5615 Adjust.
5616 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
5617 ppc440-fpstore): Adjust.
5618 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
5619 ppc476-fpstore): Adjust.
5620 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
5621 ppc601-fpstore): Adjust.
5622 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
5623 Adjust.
5624 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
5625 Adjust.
5626 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
5627 ppc7450-fpstore): Adjust.
5628 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
5629 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
5630 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
5631 Adjust.
5632 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
5633 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
5634 cell-fpstore, cell-fpstore-update): Adjust.
5635 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
5636 ppce300c3_store, ppce300c3_fpstore): Adjust.
5637 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
5638 e500mc_fpstore): Adjust.
5639 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
5640 e500mc64_store, e500mc64_fpstore): Adjust.
5641 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
5642 e5500_fpstore): Adjust.
5643 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
5644 e6500_fpstore): Adjust.
5645 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
5646 Adjust.
5647 * config/rs6000/power4.md (power4-load, power4-load-ext,
5648 power4-load-ext-update, power4-load-ext-update-indexed,
5649 power4-load-update-indexed, power4-load-update, power4-fpload,
5650 power4-fpload-update, power4-store, power4-store-update,
5651 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
5652 Adjust.
5653 * config/rs6000/power5.md (power5-load, power5-load-ext,
5654 power5-load-ext-update, power5-load-ext-update-indexed,
5655 power5-load-update-indexed, power5-load-update, power5-fpload,
5656 power5-fpload-update, power5-store, power5-store-update,
5657 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
5658 Adjust.
5659 * config/rs6000/power6.md (power6-load, power6-load-ext,
5660 power6-load-update, power6-load-update-indexed,
5661 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
5662 power6-fpload-update, power6-store, power6-store-update,
5663 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
5664 Adjust.
5665 * config/rs6000/power7.md (power7-load, power7-load-ext,
5666 power7-load-update, power7-load-update-indexed,
5667 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
5668 power7-fpload-update, power7-store, power7-store-update,
5669 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
5670 Adjust.
5671 * config/rs6000/power8.md (power8-load, power8-load-update,
5672 power8-load-ext, power8-load-ext-update, power8-fpload,
5673 power8-fpload-update, power8-store, power8-store-update-indexed,
5674 power8-fpstore, power8-fpstore-update): Adjust.
5675 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
5676 Adjust.
5677 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
5678 titan_lsu_store, titan_lsu_fpstore): Adjust.
5679 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
5680
5681 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
5682
5683 PR target/60884
5684 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
5685 unrolled byte insns. Emit address increments after move insns.
5686
5687 2014-05-07 David Malcolm <dmalcolm@redhat.com>
5688
5689 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
5690 const_gimple, rather than a gimple.
5691 (gimple_call_builtin_p): Likewise, for the three variants.
5692
5693 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
5694 (gimple_call_builtin_p): Likewise, for the three variants.
5695
5696 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
5697
5698 PR tree-optimization/61095
5699 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
5700
5701 2014-05-07 Richard Biener <rguenther@suse.de>
5702
5703 PR tree-optimization/61034
5704 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
5705 (maybe_skip_until): Use translate to take into account
5706 lattices when trying to do disambiguations.
5707 (get_continuation_for_phi_1): Likewise.
5708 (get_continuation_for_phi): Adjust for added translate arguments.
5709 (walk_non_aliased_vuses): Likewise.
5710 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
5711 (walk_non_aliased_vuses): Likewise.
5712 (call_may_clobber_ref_p_1): Declare.
5713 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
5714 calls. Stop early if we are only supposed to disambiguate.
5715 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
5716
5717 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
5718
5719 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
5720 Emit an error when the function has arguments.
5721
5722 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
5723
5724 * cfgloop.h (unswitch_loops): Remove.
5725 * doc/passes.texi: Remove references to loop-unswitch.c
5726 * timevar.def (TV_LOOP_UNSWITCH): Remove.
5727
5728 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
5729
5730 * tree-vect-data-refs.c (vect_grouped_load_supported): New
5731 check for loads group of length 3.
5732 (vect_permute_load_chain): New permutations for loads group of
5733 length 3.
5734 * tree-vect-stmts.c (vect_model_load_cost): Change cost
5735 of vec_perm_shuffle for the new permutations.
5736
5737 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
5738
5739 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
5740 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
5741 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
5742 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
5743 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
5744 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
5745 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
5746 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
5747
5748 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
5749
5750 * loop-unswitch.c: Delete.
5751
5752 2014-05-07 Richard Biener <rguenther@suse.de>
5753
5754 * config.gcc: Always set need_64bit_hwint to yes.
5755
5756 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
5757
5758 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
5759 of using optimize_size.
5760
5761 2014-05-06 Mike Stump <mikestump@comcast.net>
5762
5763 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
5764
5765 2014-05-06 Joseph Myers <joseph@codesourcery.com>
5766
5767 * config/i386/sse.md (*mov<mode>_internal)
5768 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
5769 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
5770 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
5771 (*<code><mode>3, *andnot<mode>3<mask_name>)
5772 (<mask_codefor><code><mode>3<mask_name>): Only consider
5773 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
5774
5775 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5776
5777 Revert:
5778 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
5779
5780 * lra-constraints.c (valid_address_p): Move earlier in file.
5781 Add a constraint argument to the address_info version.
5782 (satisfies_memory_constraint_p): New function.
5783 (satisfies_address_constraint_p): Likewise.
5784 (process_alt_operands, curr_insn_transform): Use them.
5785 (process_address): Pass the constraint to valid_address_p when
5786 checking address operands.
5787
5788 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
5789
5790 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
5791 to their respective blocks. Fix inadvertent use of "node".
5792
5793 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
5794
5795 * emit-rtl.c (init_derived_machine_modes): New functionm, split
5796 out from...
5797 (init_emit_once): ...here.
5798 * rtl.h (init_derived_machine_modes): Declare.
5799 * toplev.c (do_compile): Call it even if no_backend.
5800
5801 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
5802 Mike Stump <mikestump@comcast.net>
5803 Richard Sandiford <rdsandiford@googlemail.com>
5804 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5805
5806 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
5807 (rtx_equal_for_memref_p): Update comment.
5808 (adjust_offset_for_component_ref): Use wide-int interfaces.
5809 * builtins.c (get_object_alignment_2): Likewise.
5810 (c_readstr): Likewise.
5811 (target_char_cast): Add comment.
5812 (determine_block_size): Use wide-int interfaces.
5813 (expand_builtin_signbit): Likewise.
5814 (fold_builtin_int_roundingfn): Likewise.
5815 (fold_builtin_bitop): Likewise.
5816 (fold_builtin_bswap): Likewise.
5817 (fold_builtin_logarithm): Use signop.
5818 (fold_builtin_pow): Likewise.
5819 (fold_builtin_memory_op): Use wide-int interfaces.
5820 (fold_builtin_object_size): Likewise.
5821 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
5822 nb_iterations_estimate.
5823 (record_niter_bound): Use wide-int interfaces.
5824 (get_estimated_loop_iterations_int): Likewise.
5825 (get_estimated_loop_iterations): Likewise.
5826 (get_max_loop_iterations): Likewise.
5827 * cfgloop.h: Include wide-int.h.
5828 (struct nb_iter_bound): Change bound to widest_int.
5829 (struct loop): Change nb_iterations_upper_bound and
5830 nb_iterations_estimate to widest_int.
5831 (record_niter_bound): Switch to use widest_int.
5832 (get_estimated_loop_iterations): Likewise.
5833 (get_max_loop_iterations): Likewise.
5834 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
5835 update for wide-int.
5836 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
5837 * combine.c (try_combine): Likewise.
5838 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
5839 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
5840 interfaces.
5841 (aarch64_float_const_representable_p): Likewise.
5842 * config/arc/arc.c: Include wide-int.h.
5843 (arc_can_use_doloop_p): Use wide-int interfaces.
5844 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
5845 (vfp3_const_double_index): Likewise.
5846 * config/avr/avr.c (avr_out_round): Likewise.
5847 (avr_fold_builtin): Likewise.
5848 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
5849 (bfin_can_use_doloop_p): Likewise.
5850 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
5851 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
5852 * config/i386/i386.c: Include wide-int.h.
5853 (ix86_data_alignment): Use wide-int interfaces.
5854 (ix86_local_alignment): Likewise.
5855 (ix86_emit_swsqrtsf): Update real_from_integer.
5856 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
5857 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
5858 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
5859 (zero_constant): Likewise.
5860 (input_operand): Likewise.
5861 (splat_input_operand): Likewise.
5862 (non_logical_cint_operand): Change const_double to const_wide_int.
5863 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
5864 (easy_altivec_constant): Remove comment.
5865 (paired_expand_vector_init): Use CONSTANT_P.
5866 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
5867 (rs6000_emit_move): Update checks.
5868 (rs6000_aggregate_candidate): Use wide-int interfaces.
5869 (rs6000_expand_ternop_builtin): Likewise.
5870 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
5871 (rs6000_assemble_integer): Likewise.
5872 (rs6000_hash_constant): Likewise.
5873 (output_toc): Likewise.
5874 (rs6000_rtx_costs): Likewise.
5875 (rs6000_emit_swrsqrt); Update call to real_from_integer.
5876 * config/rs6000/rs6000-c.c: Include wide-int.h.
5877 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
5878 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
5879 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
5880 Handle CONST_WIDE_INT.
5881 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
5882 Use tree_fits_uhwi_p.
5883 * config/sparc/sparc.c: Include wide-int.h.
5884 (sparc_fold_builtin): Use wide-int interfaces.
5885 * config/vax/vax.c: Include wide-int.h.
5886 (vax_float_literal): Use real_from_integer.
5887 * coretypes.h (struct hwivec_def): New.
5888 (hwivec): New.
5889 (const_hwivec): New.
5890 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
5891 (equiv_constant): Handle CONST_WIDE_INT.
5892 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
5893 (cselib_hash_rtx): Handle CONST_WIDE_INT.
5894 * dbxout.c (stabstr_U): Use wide-int interfaces.
5895 (dbxout_type): Update to use cst_fits_shwi_p.
5896 * defaults.h (LOG2_BITS_PER_UNIT): Define.
5897 (TARGET_SUPPORTS_WIDE_INT): Add default.
5898 * dfp.c: Include wide-int.h.
5899 (decimal_real_to_integer2): Use wide-int interfaces and rename to
5900 decimal_real_to_integer.
5901 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
5902 decimal_real_to_integer.
5903 * doc/generic.texi (Constant expressions): Update for wide_int.
5904 * doc/rtl.texi (const_double): Likewise.
5905 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
5906 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
5907 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
5908 (REAL_VALUE_FROM_INT): Remove.
5909 (TARGET_SUPPORTS_WIDE_INT): New.
5910 * doc/tm.texi: Regenerate.
5911 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
5912 * double-int.h: Include wide-int.h.
5913 (struct wi::int_traits): New.
5914 * dwarf2out.c (get_full_len): New.
5915 (dw_val_equal_p): Add case dw_val_class_wide_int.
5916 (size_of_loc_descr): Likewise.
5917 (output_loc_operands): Likewise.
5918 (insert_double): Remove.
5919 (insert_wide_int): New.
5920 (add_AT_wide): New.
5921 (print_die): Add case dw_val_class_wide_int.
5922 (attr_checksum): Likewise.
5923 (attr_checksum_ordered): Likewise.
5924 (same_dw_val_p): Likewise.
5925 (size_of_die): Likewise.
5926 (value_format): Likewise.
5927 (output_die): Likewise.
5928 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
5929 Use wide-int.
5930 (clz_loc_descriptor): Use wide-int interfaces.
5931 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
5932 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
5933 (round_up_to_align): Use wide-int interfaces.
5934 (field_byte_offset): Likewise.
5935 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
5936 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
5937 CONST_DOUBLE handling. Use wide-int interfaces.
5938 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
5939 (gen_enumeration_type_die): Use add_AT_wide.
5940 (hash_loc_operands): Add case dw_val_class_wide_int.
5941 (compare_loc_operands): Likewise.
5942 * dwarf2out.h: Include wide-int.h.
5943 (wide_int_ptr): New.
5944 (enum dw_val_class): Add dw_val_class_wide_int.
5945 (struct dw_val_struct): Add val_wide.
5946 * emit-rtl.c (const_wide_int_htab): New.
5947 (const_wide_int_htab_hash): New.
5948 (const_wide_int_htab_eq): New.
5949 (lookup_const_wide_int): New.
5950 (const_double_htab_hash): Use wide-int interfaces.
5951 (const_double_htab_eq): Likewise.
5952 (rtx_to_double_int): Conditionally compile for wide-int.
5953 (immed_double_int_const): Rename to immed_wide_int_const and
5954 update for wide-int.
5955 (immed_double_const): Conditionally compile for wide-int.
5956 (init_emit_once): Use wide-int interfaces.
5957 * explow.c (plus_constant): Likewise.
5958 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
5959 (lshift_value): Use wide-int interfaces.
5960 (expand_mult): Likewise.
5961 (choose_multiplier): Likewise.
5962 (expand_smod_pow2): Likewise.
5963 (make_tree): Likewise.
5964 * expr.c (convert_modes): Consolidate handling of constants.
5965 Use wide-int interfaces.
5966 (emit_group_load_1): Add note.
5967 (store_expr): Update comment.
5968 (get_inner_reference): Use wide-int interfaces.
5969 (expand_constructor): Update comment.
5970 (expand_expr_real_2): Use wide-int interfaces.
5971 (expand_expr_real_1): Likewise.
5972 (reduce_to_bit_field_precision): Likewise.
5973 (const_vector_from_tree): Likewise.
5974 * final.c: Include wide-int-print.h.
5975 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
5976 * fixed-value.c: Include wide-int.h.
5977 (fixed_from_string): Use wide-int interfaces.
5978 (fixed_to_decimal): Likewise.
5979 (fixed_convert_from_real): Likewise.
5980 (real_convert_from_fixed): Likewise.
5981 * fold-const.h (mem_ref_offset): Return an offset_int.
5982 (div_if_zero_remainder): Remove code parameter.
5983 * fold-const.c (div_if_zero_remainder): Remove code parameter.
5984 Use wide-int interfaces.
5985 (may_negate_without_overflow_p): Use wide-int interfaces.
5986 (negate_expr_p): Likewise.
5987 (fold_negate_expr): Likewise.
5988 (int_const_binop_1): Likewise.
5989 (const_binop): Likewise.
5990 (fold_convert_const_int_from_int): Likewise.
5991 (fold_convert_const_int_from_real): Likewise.
5992 (fold_convert_const_int_from_fixed): Likewise.
5993 (fold_convert_const_fixed_from_int): Likewise.
5994 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
5995 (sign_bit_p): Use wide-int interfaces.
5996 (make_range_step): Likewise.
5997 (build_range_check): Likewise. Pass an integer of the correct type
5998 instead of using integer_one_node.
5999 (range_predecessor): Pass an integer of the correct type instead
6000 of using integer_one_node.
6001 (range_successor): Likewise.
6002 (merge_ranges): Likewise.
6003 (unextend): Use wide-int interfaces.
6004 (extract_muldiv_1): Likewise.
6005 (fold_div_compare): Likewise.
6006 (fold_single_bit_test): Likewise.
6007 (fold_sign_changed_comparison): Likewise.
6008 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
6009 (fold_plusminus_mult_expr): Use wide-int interfaces.
6010 (native_encode_int): Likewise.
6011 (native_interpret_int): Likewise.
6012 (fold_unary_loc): Likewise.
6013 (pointer_may_wrap_p): Likewise.
6014 (size_low_cst): Likewise.
6015 (mask_with_tz): Likewise.
6016 (fold_binary_loc): Likewise.
6017 (fold_ternary_loc): Likewise.
6018 (multiple_of_p): Likewise.
6019 (tree_call_nonnegative_warnv_p): Update calls to
6020 tree_int_cst_min_precision and real_from_integer.
6021 (fold_negate_const): Use wide-int interfaces.
6022 (fold_abs_const): Likewise.
6023 (fold_relational_const): Use tree_int_cst_lt.
6024 (round_up_loc): Use wide-int interfaces.
6025 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
6026 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
6027 * gengtype.c: Remove include of double-int.h.
6028 (do_typedef): Use wide-int interfaces.
6029 (open_base_files): Add wide-int.h.
6030 (main): Add offset_int and widest_int typedefs.
6031 * gengtype-lex.l: Handle "^".
6032 (CXX_KEYWORD): Add "static".
6033 * gengtype-parse.c (require3): New.
6034 (require_template_declaration): Handle constant template arguments
6035 and nested templates.
6036 * gengtype-state.c: Don't include "double-int.h".
6037 * genpreds.c (write_one_predicate_function): Update comment.
6038 (write_tm_constrs_h): Add check for hval and lval use in
6039 CONST_WIDE_INT.
6040 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
6041 (add_to_sequence): Likewise.
6042 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
6043 and const_double_operand.
6044 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
6045 interfaces.
6046 * gimple-fold.c (get_base_constructor): Likewise.
6047 (fold_array_ctor_reference): Likewise.
6048 (fold_nonarray_ctor_reference): Likewise.
6049 (fold_const_aggregate_ref_1): Likewise.
6050 (gimple_val_nonnegative_real_p): Likewise.
6051 (gimple_fold_indirect_ref): Likewise.
6052 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
6053 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
6054 (struct slsr_cand_d): Change index to be widest_int.
6055 (struct incr_info_d): Change incr to be widest_int.
6056 (alloc_cand_and_find_basis): Use wide-int interfaces.
6057 (slsr_process_phi): Likewise.
6058 (backtrace_base_for_ref): Likewise. Return a widest_int.
6059 (restructure_reference): Take a widest_int instead of a double_int.
6060 (slsr_process_ref): Use wide-int interfaces.
6061 (create_mul_ssa_cand): Likewise.
6062 (create_mul_imm_cand): Likewise.
6063 (create_add_ssa_cand): Likewise.
6064 (create_add_imm_cand): Take a widest_int instead of a double_int.
6065 (slsr_process_add): Use wide-int interfaces.
6066 (slsr_process_cast): Likewise.
6067 (slsr_process_copy): Likewise.
6068 (dump_candidate): Likewise.
6069 (dump_incr_vec): Likewise.
6070 (replace_ref): Likewise.
6071 (cand_increment): Likewise. Return a widest_int.
6072 (cand_abs_increment): Likewise.
6073 (replace_mult_candidate): Take a widest_int instead of a double_int.
6074 (replace_unconditional_candidate): Use wide-int interfaces.
6075 (incr_vec_index): Take a widest_int instead of a double_int.
6076 (create_add_on_incoming_edge): Likewise.
6077 (create_phi_basis): Use wide-int interfaces.
6078 (replace_conditional_candidate): Likewise.
6079 (record_increment): Take a widest_int instead of a double_int.
6080 (record_phi_increments): Use wide-int interfaces.
6081 (phi_incr_cost): Take a widest_int instead of a double_int.
6082 (lowest_cost_path): Likewise.
6083 (total_savings): Likewise.
6084 (analyze_increments): Use wide-int interfaces.
6085 (ncd_with_phi): Take a widest_int instead of a double_int.
6086 (ncd_of_cand_and_phis): Likewise.
6087 (nearest_common_dominator_for_cands): Likewise.
6088 (insert_initializers): Use wide-int interfaces.
6089 (all_phi_incrs_profitable): Likewise.
6090 (replace_one_candidate): Likewise.
6091 (replace_profitable_candidates): Likewise.
6092 * godump.c: Include wide-int-print.h.
6093 (go_output_typedef): Use wide-int interfaces.
6094 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
6095 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
6096 (build_loop_iteration_domains): Likewise.
6097 * hooks.h: Include wide-int.h rather than double-int.h.
6098 (hook_bool_dint_dint_uint_bool_true): Delete.
6099 (hook_bool_wint_wint_uint_bool_true): Declare.
6100 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
6101 (hook_bool_wint_wint_uint_bool_true): New.
6102 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
6103 interfaces.
6104 (ubsan_expand_si_overflow_mul_check): Likewise.
6105 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
6106 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
6107 (get_ancestor_addr_info): Likewise.
6108 (ipa_modify_call_arguments): Likewise.
6109 * loop-doloop.c (doloop_modify): Likewise.
6110 (doloop_optimize): Likewise.
6111 * loop-iv.c (iv_number_of_iterations): Likewise.
6112 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
6113 (unroll_loop_constant_iterations): Likewise.
6114 (decide_unroll_runtime_iterations): Likewise.
6115 (unroll_loop_runtime_iterations): Likewise.
6116 (decide_peel_simple): Likewise.
6117 (decide_unroll_stupid): Likewise.
6118 * lto-streamer-in.c (streamer_read_wi): Add.
6119 (input_cfg): Use wide-int interfaces.
6120 (lto_input_tree_1): Likewise.
6121 * lto-streamer-out.c (streamer_write_wi): Add.
6122 (hash_tree): Use wide-int interfaces.
6123 (output_cfg): Likewise.
6124 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
6125 (GTFILES): Add wide-int.h and signop.h.
6126 (TAGS): Look for .cc files too.
6127 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
6128 * optabs.c (expand_subword_shift): Likewise.
6129 (expand_doubleword_shift): Likewise.
6130 (expand_absneg_bit): Likewise.
6131 (expand_copysign_absneg): Likewise.
6132 (expand_copysign_bit): Likewise.
6133 * postreload.c (reload_cse_simplify_set): Likewise.
6134 * predict.c (predict_iv_comparison): Likewise.
6135 * pretty-print.h: Include wide-int-print.h.
6136 (pp_wide_int) New.
6137 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
6138 * print-tree.c: Include wide-int-print.h.
6139 (print_node_brief): Use wide-int interfaces.
6140 (print_node): Likewise.
6141 * read-rtl.c (validate_const_wide_int): New.
6142 (read_rtx_code): Add CONST_WIDE_INT case.
6143 * real.c: Include wide-int.h.
6144 (real_to_integer2): Delete.
6145 (real_to_integer): New function, returning a wide_int.
6146 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
6147 (ten_to_ptwo): Update call to real_from_integer.
6148 (real_digit): Likewise.
6149 * real.h: Include signop.h, wide-int.h and insn-modes.h.
6150 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
6151 (REAL_VALUE_TO_INT): Delete.
6152 (real_to_integer): Declare a wide-int form.
6153 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
6154 * recog.c (const_int_operand): Improve comment.
6155 (const_scalar_int_operand): New.
6156 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
6157 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
6158 (split_double): Likewise.
6159 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
6160 (rtx_size): Likewise.
6161 (rtx_alloc_stat_v): New.
6162 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
6163 (cwi_output_hex): New.
6164 (iterative_hash_rtx): Handle CONST_WIDE_INT.
6165 (cwi_check_failed_bounds): New.
6166 * rtl.def (CONST_WIDE_INT): New.
6167 * rtl.h: Include <utility> and wide-int.h.
6168 (struct hwivec_def): New.
6169 (CWI_GET_NUM_ELEM): New.
6170 (CWI_PUT_NUM_ELEM): New.
6171 (struct rtx_def): Add num_elem and hwiv.
6172 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
6173 (CASE_CONST_UNIQUE): Likewise.
6174 (CASE_CONST_ANY): Likewise.
6175 (CONST_SCALAR_INT_P): Likewise.
6176 (CONST_WIDE_INT_P): New.
6177 (CWI_ELT): New.
6178 (HWIVEC_CHECK): New.
6179 (cwi_check_failed_bounds): New.
6180 (CWI_ELT): New.
6181 (HWIVEC_CHECK): New.
6182 (CONST_WIDE_INT_VEC) New.
6183 (CONST_WIDE_INT_NUNITS) New.
6184 (CONST_WIDE_INT_ELT) New.
6185 (rtx_mode_t): New type.
6186 (wi::int_traits <rtx_mode_t>): New.
6187 (wi::shwi): New.
6188 (wi::min_value): New.
6189 (wi::max_value): New.
6190 (rtx_alloc_v) New.
6191 (const_wide_int_alloc): New.
6192 (immed_wide_int_const): New.
6193 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
6194 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
6195 * signop.h: New file.
6196 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
6197 (simplify_const_unary_operation): Use wide-int interfaces.
6198 (simplify_binary_operation_1): Likewise.
6199 (simplify_const_binary_operation): Likewise.
6200 (simplify_const_relational_operation): Likewise.
6201 (simplify_immed_subreg): Likewise.
6202 * stmt.c (expand_case): Likewise.
6203 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
6204 signop rather than a bool.
6205 * stor-layout.c (layout_type): Use wide-int interfaces.
6206 (initialize_sizetypes): Update calls to
6207 set_min_and_max_values_for_integral_type.
6208 (set_min_and_max_values_for_integral_type): Take a signop rather
6209 than a bool. Use wide-int interfaces.
6210 (fixup_signed_type): Update accordingly. Remove
6211 HOST_BITS_PER_DOUBLE_INT limit.
6212 (fixup_unsigned_type): Likewise.
6213 * system.h (STATIC_CONSTANT_P): New.
6214 (STATIC_ASSERT): New.
6215 * target.def (can_use_doloop_p): Take widest_ints rather than
6216 double_ints.
6217 * target.h: Include wide-int.h rather than double-int.h.
6218 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
6219 than double_ints.
6220 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
6221 rather than INT_CST_LT_UNSIGNED.
6222 (can_use_doloop_if_innermost): Take widest_ints rather than
6223 double_ints.
6224 * tree-affine.c: Include wide-int-print.h.
6225 (double_int_ext_for_comb): Delete.
6226 (wide_int_ext_for_comb): New.
6227 (aff_combination_zero): Use wide-int interfaces.
6228 (aff_combination_const): Take a widest_int instead of a double_int.
6229 (aff_combination_elt): Use wide-int interfaces.
6230 (aff_combination_scale): Take a widest_int instead of a double_int.
6231 (aff_combination_add_elt): Likewise.
6232 (aff_combination_add_cst): Likewise.
6233 (aff_combination_add): Use wide-int interfaces.
6234 (aff_combination_convert): Likewise.
6235 (tree_to_aff_combination): Likewise.
6236 (add_elt_to_tree): Take a widest_int instead of a double_int.
6237 (aff_combination_to_tree): Use wide-int interfaces.
6238 (aff_combination_remove_elt): Likewise.
6239 (aff_combination_add_product): Take a widest_int instead of
6240 a double_int.
6241 (aff_combination_mult): Use wide-int interfaces.
6242 (aff_combination_expand): Likewise.
6243 (double_int_constant_multiple_p): Delete.
6244 (wide_int_constant_multiple_p): New.
6245 (aff_combination_constant_multiple_p): Take a widest_int pointer
6246 instead of a double_int pointer.
6247 (print_aff): Use wide-int interfaces.
6248 (get_inner_reference_aff): Take a widest_int pointer
6249 instead of a double_int pointer.
6250 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
6251 * tree-affine.h: Include wide-int.h.
6252 (struct aff_comb_elt): Change type of coef to widest_int.
6253 (struct affine_tree_combination): Change type of offset to widest_int.
6254 (double_int_ext_for_comb): Delete.
6255 (wide_int_ext_for_comb): New.
6256 (aff_combination_const): Use widest_int instead of double_int.
6257 (aff_combination_scale): Likewise.
6258 (aff_combination_add_elt): Likewise.
6259 (aff_combination_constant_multiple_p): Likewise.
6260 (get_inner_reference_aff): Likewise.
6261 (aff_comb_cannot_overlap_p): Likewise.
6262 (aff_combination_zero_p): Use wide-int interfaces.
6263 * tree.c: Include tree.h.
6264 (init_ttree): Use make_int_cst.
6265 (tree_code_size): Removed code for INTEGER_CST case.
6266 (tree_size): Add INTEGER_CST case.
6267 (make_node_stat): Update comment.
6268 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
6269 (build_int_cst_type): Use wide-int interfaces.
6270 (double_int_to_tree): Likewise.
6271 (double_int_fits_to_tree_p): Delete.
6272 (force_fit_type_double): Delete.
6273 (force_fit_type): New.
6274 (int_cst_hash_hash): Use wide-int interfaces.
6275 (int_cst_hash_eq): Likewise.
6276 (build_int_cst_wide): Delete.
6277 (wide_int_to_tree): New.
6278 (cache_integer_cst): Use wide-int interfaces.
6279 (build_low_bits_mask): Likewise.
6280 (cst_and_fits_in_hwi): Likewise.
6281 (real_value_from_int_cst): Likewise.
6282 (make_int_cst_stat): New.
6283 (integer_zerop): Use wide_int interfaces.
6284 (integer_onep): Likewise.
6285 (integer_all_onesp): Likewise.
6286 (integer_pow2p): Likewise.
6287 (integer_nonzerop): Likewise.
6288 (tree_log2): Likewise.
6289 (tree_floor_log2): Likewise.
6290 (tree_ctz): Likewise.
6291 (int_size_in_bytes): Likewise.
6292 (mem_ref_offset): Return an offset_int rather than a double_int.
6293 (build_type_attribute_qual_variant): Use wide_int interfaces.
6294 (type_hash_eq): Likewise
6295 (tree_int_cst_equal): Likewise.
6296 (tree_int_cst_lt): Delete.
6297 (tree_int_cst_compare): Likewise.
6298 (tree_fits_shwi_p): Use wide_int interfaces.
6299 (tree_fits_uhwi_p): Likewise.
6300 (tree_int_cst_sign_bit): Likewise.
6301 (tree_int_cst_sgn): Likewise.
6302 (tree_int_cst_min_precision): Take a signop rather than a bool.
6303 (simple_cst_equal): Use wide_int interfaces.
6304 (compare_tree_int): Likewise.
6305 (iterative_hash_expr): Likewise.
6306 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
6307 INT_CST_LT.
6308 (get_type_static_bounds): Use wide_int interfaces.
6309 (tree_int_cst_elt_check_failed): New.
6310 (build_common_tree_nodes): Reordered to set prec before filling in
6311 value.
6312 (int_cst_value): Check cst_and_fits_in_hwi.
6313 (widest_int_cst_value): Use wide_int interfaces.
6314 (upper_bound_in_type): Likewise.
6315 (lower_bound_in_type): Likewise.
6316 (num_ending_zeros): Likewise.
6317 (drop_tree_overflow): Likewise.
6318 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
6319 (gen_conditions_for_pow_cst_base): Likewise.
6320 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
6321 (group_case_labels_stmt): Use wide-int interfaces.
6322 (verify_gimple_assign_binary): Likewise.
6323 (print_loop): Likewise.
6324 * tree-chrec.c (tree_fold_binomial): Likewise.
6325 * tree-core.h (struct tree_base): Add int_length.
6326 (struct tree_int_cst): Change rep of value.
6327 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
6328 (dr_may_alias_p): Likewise.
6329 (max_stmt_executions_tree): Likewise.
6330 * tree.def (INTEGER_CST): Update comment.
6331 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
6332 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
6333 * tree-dump.c: Include wide-int.h and wide-int-print.h.
6334 (dequeue_and_dump): Use wide-int interfaces.
6335 * tree.h: Include wide-int.h.
6336 (NULL_TREE): Moved to earlier loc in file.
6337 (TREE_INT_CST_ELT_CHECK): New.
6338 (tree_int_cst_elt_check_failed): New.
6339 (TYPE_SIGN): New.
6340 (TREE_INT_CST): Delete.
6341 (TREE_INT_CST_LOW): Use wide-int interfaces.
6342 (TREE_INT_CST_HIGH): Delete.
6343 (TREE_INT_CST_NUNITS): New.
6344 (TREE_INT_CST_EXT_NUNITS): Likewise.
6345 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
6346 (TREE_INT_CST_ELT): Likewise.
6347 (INT_CST_LT): Delete.
6348 (tree_int_cst_elt_check): New (two forms).
6349 (type_code_size): Update comment.
6350 (make_int_cst_stat, make_int_cst): New.
6351 (tree_to_double_int): Delete.
6352 (double_int_fits_to_tree_p): Delete.
6353 (force_fit_type_double): Delete.
6354 (build_int_cstu): Replace with out-of-line function.
6355 (build_int_cst_wide): Delete.
6356 (tree_int_cst_lt): Define inline.
6357 (tree_int_cst_le): New.
6358 (tree_int_cst_compare): Define inline.
6359 (tree_int_cst_min_precision): Take a signop rather than a bool.
6360 (wi::int_traits <const_tree>): New.
6361 (wi::int_traits <tree>): New.
6362 (wi::extended_tree): New.
6363 (wi::int_traits <wi::extended_tree>): New.
6364 (wi::to_widest): New.
6365 (wi::to_offset): New.
6366 (wi::fits_to_tree_p): New.
6367 (wi::min_value): New.
6368 (wi::max_value): New.
6369 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
6370 (copy_tree_body_r): Likewise.
6371 * tree-object-size.c (compute_object_offset): Likewise.
6372 (addr_object_size): Likewise.
6373 * tree-predcom.c: Include wide-int-print.h.
6374 (struct dref_d): Change type of offset to widest_int.
6375 (dump_dref): Call wide-int printer.
6376 (aff_combination_dr_offset): Use wide-int interfaces.
6377 (determine_offset): Take a widest_int pointer rather than a
6378 double_int pointer.
6379 (split_data_refs_to_components): Use wide-int interfaces.
6380 (suitable_component_p): Likewise.
6381 (order_drefs): Likewise.
6382 (add_ref_to_chain): Likewise.
6383 (valid_initializer_p): Likewise.
6384 (determine_roots_comp): Likewise.
6385 * tree-pretty-print.c: Include wide-int-print.h.
6386 (dump_generic_node): Use wide-int interfaces.
6387 * tree-sra.c (sra_ipa_modify_expr): Likewise.
6388 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
6389 (move_fixed_address_to_symbol): Likewise.
6390 (move_hint_to_base): Likewise.
6391 (move_pointer_to_base): Likewise.
6392 (move_variant_to_index): Likewise.
6393 (most_expensive_mult_to_index): Likewise.
6394 (addr_to_parts): Likewise.
6395 (copy_ref_info): Likewise.
6396 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6397 (indirect_refs_may_alias_p): Likewise.
6398 (stmt_kills_ref_p_1): Likewise.
6399 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
6400 * tree-ssa-ccp.c: Update comment at top of file. Include
6401 wide-int-print.h.
6402 (struct prop_value_d): Change type of mask to widest_int.
6403 (extend_mask): New function.
6404 (dump_lattice_value): Use wide-int interfaces.
6405 (get_default_value): Likewise.
6406 (set_constant_value): Likewise.
6407 (set_value_varying): Likewise.
6408 (valid_lattice_transition): Likewise.
6409 (set_lattice_value): Likewise.
6410 (value_to_double_int): Delete.
6411 (value_to_wide_int): New.
6412 (get_value_from_alignment): Use wide-int interfaces.
6413 (get_value_for_expr): Likewise.
6414 (do_dbg_cnt): Likewise.
6415 (ccp_finalize): Likewise.
6416 (ccp_lattice_meet): Likewise.
6417 (bit_value_unop_1): Use widest_ints rather than double_ints.
6418 (bit_value_binop_1): Likewise.
6419 (bit_value_unop): Use wide-int interfaces.
6420 (bit_value_binop): Likewise.
6421 (bit_value_assume_aligned): Likewise.
6422 (evaluate_stmt): Likewise.
6423 (ccp_fold_stmt): Likewise.
6424 (visit_cond_stmt): Likewise.
6425 (ccp_visit_stmt): Likewise.
6426 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6427 (constant_pointer_difference): Likewise.
6428 (associate_pointerplus): Likewise.
6429 (combine_conversions): Likewise.
6430 * tree-ssa-loop.h: Include wide-int.h.
6431 (struct tree_niter_desc): Change type of max to widest_int.
6432 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
6433 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
6434 (remove_redundant_iv_tests): Likewise.
6435 (canonicalize_loop_induction_variables): Likewise.
6436 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
6437 (constant_multiple_of): Take a widest_int pointer instead of
6438 a double_int pointer.
6439 (get_computation_aff): Use wide-int interfaces.
6440 (ptr_difference_cost): Likewise.
6441 (difference_cost): Likewise.
6442 (get_loop_invariant_expr_id): Likewise.
6443 (get_computation_cost_at): Likewise.
6444 (iv_elimination_compare_lt): Likewise.
6445 (may_eliminate_iv): Likewise.
6446 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
6447 instead of double_int.
6448 (max_loop_iterations): Likewise.
6449 (max_stmt_executions): Likewise.
6450 (estimated_stmt_executions): Likewise.
6451 * tree-ssa-loop-niter.c: Include wide-int-print.h.
6452 (split_to_var_and_offset): Use wide-int interfaces.
6453 (determine_value_range): Likewise.
6454 (bound_difference_of_offsetted_base): Likewise.
6455 (bounds_add): Take a widest_int instead of a double_int.
6456 (number_of_iterations_ne_max): Use wide-int interfaces.
6457 (number_of_iterations_ne): Likewise.
6458 (number_of_iterations_lt_to_ne): Likewise.
6459 (assert_loop_rolls_lt): Likewise.
6460 (number_of_iterations_lt): Likewise.
6461 (number_of_iterations_le): Likewise.
6462 (number_of_iterations_cond): Likewise.
6463 (number_of_iterations_exit): Likewise.
6464 (finite_loop_p): Likewise.
6465 (derive_constant_upper_bound_assign): Likewise.
6466 (derive_constant_upper_bound): Return a widest_int.
6467 (derive_constant_upper_bound_ops): Likewise.
6468 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
6469 (record_estimate): Take a widest_int rather than a double_int.
6470 (record_nonwrapping_iv): Use wide-int interfaces.
6471 (double_int_cmp): Delete.
6472 (wide_int_cmp): New.
6473 (bound_index): Take a widest_int rather than a double_int.
6474 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
6475 (maybe_lower_iteration_bound): Likewise.
6476 (estimate_numbers_of_iterations_loop): Likewise.
6477 (estimated_loop_iterations): Take a widest_int pointer than than
6478 a double_int pointer.
6479 (estimated_loop_iterations_int): Use wide-int interfaces.
6480 (max_loop_iterations): Take a widest_int pointer than than
6481 a double_int pointer.
6482 (max_loop_iterations_int): Use wide-int interfaces.
6483 (max_stmt_executions): Take a widest_int pointer than than
6484 a double_int pointer.
6485 (estimated_stmt_executions): Likewise.
6486 (n_of_executions_at_most): Use wide-int interfaces.
6487 (scev_probably_wraps_p): Likewise.
6488 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
6489 to real_to_integer.
6490 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
6491 interfaces.
6492 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
6493 double_ints. Adjust for trailing_wide_ints <3> representation.
6494 (set_nonzero_bits): Likewise.
6495 (get_range_info): Return wide_ints rather than double_ints.
6496 Adjust for trailing_wide_ints <3> representation.
6497 (get_nonzero_bits): Likewise.
6498 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
6499 representation.
6500 * tree-ssanames.h (struct range_info_def): Replace min, max and
6501 nonzero_bits with a trailing_wide_ints <3>.
6502 (set_range_info): Use wide_int_refs rather than double_ints.
6503 (set_nonzero_bits): Likewise.
6504 (get_range_info): Return wide_ints rather than double_ints.
6505 (get_nonzero_bits): Likewise.
6506 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
6507 * tree-ssa-pre.c (phi_translate_1): Likewise.
6508 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
6509 (acceptable_pow_call): Likewise.
6510 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
6511 interfaces.
6512 (vn_reference_fold_indirect): Likewise.
6513 (vn_reference_maybe_forwprop_address): Likewise.
6514 (valueize_refs_1): Likewise.
6515 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
6516 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
6517 tree_int_cst_lt and tree_int_cst_le.
6518 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
6519 interfaces.
6520 (streamer_alloc_tree): Likewise.
6521 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
6522 (streamer_write_tree_header): Likewise.
6523 (streamer_write_integer_cst): Likewise.
6524 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
6525 (build_constructors): Likewise.
6526 (array_value_type): Likewise.
6527 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
6528 (vect_check_gather): Likewise.
6529 * tree-vect-generic.c (build_replicated_const): Likewise.
6530 (expand_vector_divmod): Likewise.
6531 * tree-vect-loop.c (vect_transform_loop): Likewise.
6532 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
6533 (vect_do_peeling_for_alignment): Likewise.
6534 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
6535 * tree-vrp.c: Include wide-int.h.
6536 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
6537 (extract_range_from_assert): Use wide-int interfaces.
6538 (vrp_int_const_binop): Likewise.
6539 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
6540 double_int pointers.
6541 (ranges_from_anti_range): Use wide-int interfaces.
6542 (quad_int_cmp): Delete.
6543 (quad_int_pair_sort): Likewise.
6544 (extract_range_from_binary_expr_1): Use wide-int interfaces.
6545 (extract_range_from_unary_expr_1): Likewise.
6546 (adjust_range_with_scev): Likewise.
6547 (masked_increment): Take and return wide_ints rather than double_ints.
6548 (register_edge_assert_for_2): Use wide-int interfaces.
6549 (check_array_ref): Likewise.
6550 (search_for_addr_array): Likewise.
6551 (maybe_set_nonzero_bits): Likewise.
6552 (union_ranges): Pass an integer of the correct type instead of
6553 using integer_one_node.
6554 (intersect_ranges): Likewise.
6555 (simplify_truth_ops_using_ranges): Likewise.
6556 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
6557 (range_fits_type_p): Likewise.
6558 (simplify_cond_using_ranges): Likewise. Take a signop rather than
6559 a bool.
6560 (simplify_conversion_using_ranges): Use wide-int interfaces.
6561 (simplify_float_conversion_using_ranges): Likewise.
6562 (vrp_finalize): Likewise.
6563 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
6564 (gimple_stringops_transform): Likewise.
6565 * varasm.c (decode_addr_const): Likewise.
6566 (const_hash_1): Likewise.
6567 (const_rtx_hash_1): Likewise
6568 (output_constant): Likewise.
6569 (array_size_for_constructor): Likewise.
6570 (output_constructor_regular_field): Likewise.
6571 (output_constructor_bitfield): Likewise.
6572 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
6573 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
6574 GENERATOR_FILEs.
6575 * gencheck.c: Define BITS_PER_UNIT.
6576 * wide-int.cc: New.
6577 * wide-int.h: New.
6578 * wide-int-print.cc: New.
6579 * wide-int-print.h: New.
6580
6581 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6582
6583 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
6584
6585 2014-05-06 Richard Biener <rguenther@suse.de>
6586
6587 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
6588 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
6589 (TODO_verify_all): Adjust.
6590 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
6591 TODO_verify_stmts and TODO_verify_rtl_sharing.
6592 * bb-reorder.c: Likewise.
6593 * cfgexpand.c: Likewise.
6594 * cprop.c: Likewise.
6595 * cse.c: Likewise.
6596 * function.c: Likewise.
6597 * fwprop.c: Likewise.
6598 * gcse.c: Likewise.
6599 * gimple-ssa-isolate-paths.c: Likewise.
6600 * gimple-ssa-strength-reduction.c: Likewise.
6601 * ipa-split.c: Likewise.
6602 * loop-init.c: Likewise.
6603 * loop-unroll.c: Likewise.
6604 * lower-subreg.c: Likewise.
6605 * modulo-sched.c: Likewise.
6606 * postreload-gcse.c: Likewise.
6607 * predict.c: Likewise.
6608 * recog.c: Likewise.
6609 * sched-rgn.c: Likewise.
6610 * store-motion.c: Likewise.
6611 * tracer.c: Likewise.
6612 * trans-mem.c: Likewise.
6613 * tree-call-cdce.c: Likewise.
6614 * tree-cfg.c: Likewise.
6615 * tree-cfgcleanup.c: Likewise.
6616 * tree-complex.c: Likewise.
6617 * tree-eh.c: Likewise.
6618 * tree-emutls.c: Likewise.
6619 * tree-if-conv.c: Likewise.
6620 * tree-into-ssa.c: Likewise.
6621 * tree-loop-distribution.c: Likewise.
6622 * tree-object-size.c: Likewise.
6623 * tree-parloops.c: Likewise.
6624 * tree-pass.h: Likewise.
6625 * tree-sra.c: Likewise.
6626 * tree-ssa-ccp.c: Likewise.
6627 * tree-ssa-copy.c: Likewise.
6628 * tree-ssa-copyrename.c: Likewise.
6629 * tree-ssa-dce.c: Likewise.
6630 * tree-ssa-dom.c: Likewise.
6631 * tree-ssa-dse.c: Likewise.
6632 * tree-ssa-forwprop.c: Likewise.
6633 * tree-ssa-ifcombine.c: Likewise.
6634 * tree-ssa-loop-ch.c: Likewise.
6635 * tree-ssa-loop-ivcanon.c: Likewise.
6636 * tree-ssa-loop.c: Likewise.
6637 * tree-ssa-math-opts.c: Likewise.
6638 * tree-ssa-phiopt.c: Likewise.
6639 * tree-ssa-phiprop.c: Likewise.
6640 * tree-ssa-pre.c: Likewise.
6641 * tree-ssa-reassoc.c: Likewise.
6642 * tree-ssa-sink.c: Likewise.
6643 * tree-ssa-strlen.c: Likewise.
6644 * tree-ssa-tail-merge.c: Likewise.
6645 * tree-ssa-uncprop.c: Likewise.
6646 * tree-switch-conversion.c: Likewise.
6647 * tree-tailcall.c: Likewise.
6648 * tree-vect-generic.c: Likewise.
6649 * tree-vectorizer.c: Likewise.
6650 * tree-vrp.c: Likewise.
6651 * tsan.c: Likewise.
6652 * var-tracking.c: Likewise.
6653 * bt-load.c: Likewise.
6654 * cfgcleanup.c: Likewise.
6655 * combine-stack-adj.c: Likewise.
6656 * combine.c: Likewise.
6657 * compare-elim.c: Likewise.
6658 * config/epiphany/resolve-sw-modes.c: Likewise.
6659 * config/i386/i386.c: Likewise.
6660 * config/mips/mips.c: Likewise.
6661 * config/s390/s390.c: Likewise.
6662 * config/sh/sh_treg_combine.cc: Likewise.
6663 * config/sparc/sparc.c: Likewise.
6664 * dce.c: Likewise.
6665 * dse.c: Likewise.
6666 * final.c: Likewise.
6667 * ifcvt.c: Likewise.
6668 * mode-switching.c: Likewise.
6669 * passes.c: Likewise.
6670 * postreload.c: Likewise.
6671 * ree.c: Likewise.
6672 * reg-stack.c: Likewise.
6673 * regcprop.c: Likewise.
6674 * regrename.c: Likewise.
6675 * web.c: Likewise.
6676
6677 2014-05-06 Richard Biener <rguenther@suse.de>
6678
6679 PR middle-end/61070
6680 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
6681 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
6682
6683 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
6684
6685 PR ipa/60965
6686 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
6687
6688 2014-05-05 Radovan Obradovic <robradovic@mips.com>
6689 Tom de Vries <tom@codesourcery.com>
6690
6691 * target.def (call_fusage_contains_non_callee_clobbers): New
6692 DEFHOOKPOD.
6693 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
6694 Hooks to @menu.
6695 (@node Miscellaneous Register Hooks): New node.
6696 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
6697 * doc/tm.texi: Regenerate.
6698
6699 2014-05-05 Marek Polacek <polacek@redhat.com>
6700
6701 PR driver/61065
6702 * opts.c (common_handle_option): Call error_at instead of warning_at.
6703
6704 2014-05-05 Richard Biener <rguenther@suse.de>
6705
6706 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
6707 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
6708 under the TODO_verify_il umbrella.
6709
6710 2014-05-05 Richard Biener <rguenther@suse.de>
6711
6712 * passes.c (execute_function_todo): Move TODO_verify_flow under
6713 the TODO_verify_ul umbrella.
6714
6715 2014-05-05 Richard Biener <rguenther@suse.de>
6716
6717 PR middle-end/61010
6718 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
6719 X & CST away from a CST that is the mask of a mode.
6720
6721 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6722
6723 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
6724 int argument to enum machine_mode.
6725 (picochip_class_max_nregs): Ditto.
6726 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
6727 (picochip_class_max_nregs): Ditto.
6728
6729 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6730
6731 * target.def: Add new target hook.
6732 * doc/tm.texi: Regenerate.
6733 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
6734 * targhooks.c (default_keep_leaf_when_profiled): New function.
6735
6736 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
6737 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
6738
6739 2014-05-05 Bin Cheng <bin.cheng@arm.com>
6740
6741 PR tree-optimization/60363
6742 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
6743 (copy_phi_args): New parameters. Call get_value_locus_in_path.
6744 (update_destination_phis): New parameter.
6745 (create_edge_and_update_destination_phis): Ditto.
6746 (ssa_fix_duplicate_block_edges): Pass new arguments.
6747 (thread_single_edge): Ditto.
6748
6749 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
6750
6751 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
6752 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
6753 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
6754 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
6755 Use RS6000_BTM_HARD_FLOAT.
6756 (BU_MISC_2): Likewise.
6757 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
6758 RS6000_BTM_HARD_FLOAT.
6759 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
6760 is explicitly used.
6761 (rs6000_invalid_builtin): Add hard floating builtin support.
6762 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
6763 hard float builtins.
6764 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
6765
6766 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6767
6768 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
6769 Add missing function* argument.
6770
6771 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
6772
6773 * lra-constraints.c (valid_address_p): Move earlier in file.
6774 Add a constraint argument to the address_info version.
6775 (satisfies_memory_constraint_p): New function.
6776 (satisfies_address_constraint_p): Likewise.
6777 (process_alt_operands, curr_insn_transform): Use them.
6778 (process_address): Pass the constraint to valid_address_p when
6779 checking address operands.
6780
6781 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
6782
6783 * config/mips/mips.c (mips_isa_rev): New variable.
6784 (mips_set_architecture): Set it.
6785 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
6786 from mips_isa_rev.
6787 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
6788 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
6789 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
6790 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
6791 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
6792 conditions in terms of mips_isa_rev.
6793 (mips_isa_rev): Declare.
6794
6795 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6796
6797 * config/sh/sh-mem.cc: Use tabs instead of spaces.
6798 (prob_unlikely, prob_likely): Make variables const.
6799
6800 2014-05-03 Denis Chertykov <chertykov@gmail.com>
6801
6802 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
6803
6804 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6805
6806 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
6807
6808 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6809
6810 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
6811 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
6812 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
6813 functions.
6814 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
6815 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
6816 sh_pass_in_reg_p.
6817 Replace usage of ROUND_REG with sh_round_reg.
6818 Use CEIL instead of ROUND_ADVANCE.
6819
6820 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
6821
6822 PR target/61026
6823 * config/sh/sh.c: Include stdlib headers before everything else.
6824
6825 2014-05-02 Jakub Jelinek <jakub@redhat.com>
6826
6827 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
6828 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
6829 (gimplify_adjust_omp_clauses): Simd region is never
6830 directly nested in combined parallel. Instead, for linear
6831 with copyin/copyout, if in combined for simd loop, make decl
6832 firstprivate/lastprivate on OMP_FOR.
6833 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
6834 expand_omp_for_static_chunk): When setting endvar, also set
6835 fd->loop.v to the same value.
6836
6837 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6838
6839 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
6840
6841 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
6842
6843 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
6844 expression.
6845
6846 2014-05-02 Marek Polacek <polacek@redhat.com>
6847
6848 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
6849
6850 2014-05-02 Kito Cheng <kito@0xlab.org>
6851
6852 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
6853 to a C expression marco.
6854 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
6855 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
6856 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
6857 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
6858 HONOR_REG_ALLOC_ORDER.
6859 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
6860
6861 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6862
6863 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
6864
6865 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6866
6867 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
6868
6869 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
6870
6871 * tree-if-conv.c (is_cond_scalar_reduction): New function.
6872 (convert_scalar_cond_reduction): Likewise.
6873 (predicate_scalar_phi): Add recognition and transformation
6874 of simple conditioanl reduction to be vectorizable.
6875
6876 2014-05-01 Marek Polacek <polacek@redhat.com>
6877
6878 PR c/43245
6879 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
6880
6881 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
6882
6883 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
6884 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
6885 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
6886 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
6887 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
6888 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
6889 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
6890 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
6891
6892 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
6893
6894 * config/arc/arc.opt (mlra): Move comment above option name
6895 to avoid mis-parsing as language options.
6896
6897 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6898
6899 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
6900 * config/sol2.h: ... here.
6901 * config/sol2-10.h: Remove.
6902
6903 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
6904 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
6905 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
6906 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
6907 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
6908 * config/sol2.h: ... here.
6909 (SECTION_NAME_FORMAT): Don't redefine.
6910 (STARTFILE_ARCH32_SPEC): Rename to ...
6911 (STARTFILE_ARCH_SPEC): ... this.
6912 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
6913 * config/sparc/sol2.h: ... here.
6914 (SECTION_NAME_FORMAT): Don't undef.
6915 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
6916 (SUBTARGET_EXTRA_SPECS): Remove.
6917 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
6918
6919 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
6920 (MD_STARTFILE_PREFIX): Remove.
6921 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
6922 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
6923 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
6924 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
6925 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
6926 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
6927 * config/i386/sol2.h: ... here.
6928 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
6929 * config/i386/sol2-bi.h: Remove.
6930 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
6931 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
6932
6933 * config/i386/t-sol2-64: Rename to ...
6934 * config/i386/t-sol2: ... this.
6935 * config/sparc/t-sol2-64: Rename to ...
6936 * config/sparc/t-sol2: ... this.
6937
6938 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
6939 sol2_tm_file_head, sol2_tm_file_tail.
6940 Include ${cpu_type}/sol2.h before sol2.h.
6941 Remove sol2-10.h.
6942 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
6943 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
6944 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
6945 Reflect i386/t-sol2-64 renaming.
6946 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
6947 Reflect sparc/t-sol2-64 renaming.
6948
6949 2014-04-30 Richard Biener <rguenther@suse.de>
6950
6951 * passes.c (execute_function_todo): Move TODO_verify_stmts
6952 and TODO_verify_ssa under the TODO_verify_il umbrella.
6953 * tree-ssa.h (verify_ssa): Adjust prototype.
6954 * tree-ssa.c (verify_ssa): Add parameter to tell whether
6955 we should verify SSA operands.
6956 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
6957 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
6958 whether we should verify whether not throwing stmts have EH info.
6959 * graphite-scop-detection.c (create_sese_edges): Adjust.
6960 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
6961 * tree-eh.c (lower_try_finally_switch): Do not add the
6962 default case label twice.
6963
6964 2014-04-30 Marek Polacek <polacek@redhat.com>
6965
6966 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
6967 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
6968 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
6969 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
6970
6971 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
6972
6973 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
6974 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
6975 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
6976 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
6977 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
6978 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
6979 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
6980 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
6981
6982 2014-04-29 David Malcolm <dmalcolm@redhat.com>
6983
6984 * tree-cfg.c (dump_function_to_file): Dump the return type of
6985 functions, in a line to itself before the function body, mimicking
6986 the layout of a C function.
6987
6988 2014-04-29 Jakub Jelinek <jakub@redhat.com>
6989
6990 PR tree-optimization/60971
6991 * tree-tailcall.c (process_assignment): Reject conversions which
6992 reduce precision.
6993
6994 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
6995
6996 * calls.c (initialize_argument_information): Always treat
6997 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
6998 (expand_call): Likewise.
6999 (emit_library_call_calue_1): Likewise.
7000 * expr.c (PUSH_ARGS_REVERSED): Do not define.
7001 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
7002 code accordingly.
7003
7004 2014-04-29 Nick Clifton <nickc@redhat.com>
7005
7006 * config/msp430/msp430.md (umulsidi): Fix typo.
7007 (mulhisi3): Enable even inside interrupt handlers.
7008 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
7009 bigger return address pushed in large mode.
7010
7011 2014-04-29 Nick Clifton <nickc@redhat.com>
7012
7013 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
7014 (arc_init_reg_tables): Use a machine_mode enum to iterate over
7015 available modes.
7016 * config/m32r/m32r.c (init_reg_tables): Likewise.
7017 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
7018 enum to hold the modes.
7019
7020 2014-04-29 Richard Biener <rguenther@suse.de>
7021
7022 * dominance.c (free_dominance_info): Add overload with
7023 function parameter.
7024 (dom_info_state): Likewise.
7025 (dom_info_available_p): Likewise.
7026 * basic-block.h (free_dominance_info, dom_info_state,
7027 dom_info_available_p): Declare overloads.
7028 * passes.c (execute_function_todo): Verify that verifiers
7029 don't change dominator info state. Drop dominator info
7030 for IPA pass invocations.
7031 * cgraph.c (release_function_body): Restore asserts that
7032 dominator information is released.
7033
7034 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
7035
7036 * doc/invoke.texi: Fix typo.
7037 * tree-vrp.c: Fix typos.
7038 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
7039
7040 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7041
7042 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
7043
7044 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
7045
7046 * config/aarch64/aarch64-builtins.c
7047 (aarch64_types_storestruct_lane_qualifiers): New.
7048 (TYPES_STORESTRUCT_LANE): Likewise.
7049 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
7050 (st3_lane): Likewise.
7051 (st4_lane): Likewise.
7052 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
7053 (vec_store_lanesci_lane<mode>): Likewise.
7054 (vec_store_lanesxi_lane<mode>): Likewise.
7055 (aarch64_st2_lane<VQ:mode>): Likewise.
7056 (aarch64_st3_lane<VQ:mode>): Likewise.
7057 (aarch64_st4_lane<VQ:mode>): Likewise.
7058 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
7059 * config/aarch64/arm_neon.h
7060 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
7061 use new macro arguments.
7062 (__ST3_LANE_FUNC): Likewise.
7063 (__ST4_LANE_FUNC): Likewise.
7064 * config/aarch64/iterators.md (V_TWO_ELEM): New.
7065 (V_THREE_ELEM): Likewise.
7066 (V_FOUR_ELEM): Likewise.
7067
7068 2014-04-28 David Malcolm <dmalcolm@redhat.com>
7069
7070 * doc/gimple.texi: Replace the description of the now-defunct
7071 union gimple_statement_d with a diagram showing the
7072 gimple_statement_base class hierarchy and its relationships to
7073 the GSS_ and GIMPLE_ enums.
7074
7075 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
7076
7077 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
7078 * config/aarch64/aarch64.c
7079 (aarch64_cannot_change_mode_class): Weaken conditions.
7080 (aarch64_modes_tieable_p): New.
7081 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
7082
7083 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
7084
7085 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
7086 (loadsync_<mode>): Change mode.
7087 (load_quadpti, store_quadpti): New.
7088 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
7089 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
7090
7091 2014-04-28 Martin Jambor <mjambor@suse.cz>
7092
7093 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
7094 same alias type as the original statement.
7095 (subreplacement_assignment_data): New type.
7096 (handle_unscalarized_data_in_subtree): New type of parameter,
7097 generate new memory accesses with same alias type as the original
7098 statement.
7099 (load_assign_lhs_subreplacements): Likewise.
7100 (sra_modify_constructor_assign): Generate new memory accesses with
7101 same alias type as the original statement.
7102
7103 2014-04-28 Richard Biener <rguenther@suse.de>
7104
7105 * tree-pass.h (TODO_verify_il): Define.
7106 (TODO_verify_all): Complete properly.
7107 * passes.c (execute_function_todo): Move existing loop-closed
7108 SSA verification under TODO_verify_il.
7109 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
7110 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
7111 Fix tree sharing issue.
7112
7113 2014-04-28 Richard Biener <rguenther@suse.de>
7114
7115 PR middle-end/60092
7116 * builtins.def (DEF_C11_BUILTIN): Add.
7117 (BUILT_IN_ALIGNED_ALLOC): Likewise.
7118 * coretypes.h (enum function_class): Add function_c11_misc.
7119 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
7120 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
7121 (call_may_clobber_ref_p_1): Likewise.
7122 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7123 (mark_all_reaching_defs_necessary_1): Likewise.
7124 (propagate_necessity): Likewise.
7125 (eliminate_unnecessary_stmts): Likewise.
7126 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
7127
7128 2014-04-28 Richard Biener <rguenther@suse.de>
7129
7130 * tree-vrp.c (vrp_var_may_overflow): Remove.
7131 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
7132 with overflow immediately bump to one before that value and
7133 let iteration figure out overflow status.
7134
7135 2014-04-28 Richard Biener <rguenther@suse.de>
7136
7137 * configure.ac: Do valgrind header checks unconditionally.
7138 Add --enable-valgrind-annotations.
7139 * system.h: Guard valgrind header inclusion with
7140 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
7141 * alloc-pool.c (pool_alloc, pool_free): Use
7142 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
7143 to guard possibly dead code.
7144 * config.in: Regenerated.
7145 * configure: Likewise.
7146
7147 2014-04-28 Jeff Law <law@redhat.com>
7148
7149 PR tree-optimization/60902
7150 * tree-ssa-threadedge.c
7151 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
7152 over real defs when invalidating outputs from statements that do not
7153 produce useful outputs for threading.
7154
7155 2014-04-28 Richard Biener <rguenther@suse.de>
7156
7157 PR tree-optimization/60979
7158 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
7159 SCOPs that end in a block with a successor with abnormal
7160 predecessors.
7161
7162 2014-04-28 Richard Biener <rguenther@suse.de>
7163
7164 * tree-pass.h (execute_pass_list): Adjust prototype.
7165 * passes.c (pass_manager::execute_early_local_passes): Adjust.
7166 (do_per_function): Change callback signature, push all actual
7167 work to the callbals.
7168 (do_per_function_toporder): Likewise.
7169 (execute_function_dump): Adjust.
7170 (execute_function_todo): Likewise.
7171 (clear_last_verified): Likewise.
7172 (verify_curr_properties): Likewise.
7173 (update_properties_after_pass): Likewise.
7174 (execute_pass_list_1): Split out from ...
7175 (execute_pass_list): ... here. Adjust.
7176 (execute_ipa_pass_list): Likewise.
7177 * cgraphunit.c (cgraph_add_new_function): Adjust.
7178 (analyze_function): Likewise.
7179 (expand_function): Likewise.
7180 * cgraph.c (release_function_body): Free dominance info
7181 here instead of asserting it was magically freed elsewhere.
7182
7183 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
7184
7185 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
7186 * configure: Regenerate.
7187 * config/sparc/sparc.opt (muser-mode): New option.
7188 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
7189 for LEON3.
7190 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
7191 * doc/invoke.texi (SPARC options): Document -muser-mode.
7192
7193 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
7194
7195 * cselib.c (find_slot_memmode): Delete.
7196 (cselib_hasher): Change compare_type to a struct.
7197 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
7198 constants.
7199 (preserve_constants_and_equivs): Adjust for new compare_type.
7200 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
7201 (wrap_constant): Delete.
7202 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
7203
7204 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
7205
7206 * doc/install.texi (Building with profile feedback): Remove
7207 outdated sentence.
7208
7209 2014-04-26 Tom de Vries <tom@codesourcery.com>
7210
7211 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
7212 array accesses.
7213
7214 2014-04-25 Cary Coutant <ccoutant@google.com>
7215
7216 PR debug/60929
7217 * dwarf2out.c (should_move_die_to_comdat): A type definition
7218 can contain a subprogram definition, but don't move it to a
7219 comdat unit.
7220 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
7221 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
7222 from original DIE.
7223 (clone_tree_hash): Rename to...
7224 (clone_tree_partial): ...this; change callers. Copy
7225 DW_TAG_subprogram DIEs as declarations.
7226 (copy_decls_walk): Don't copy children of a declaration into a
7227 type unit.
7228
7229 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
7230
7231 PR target/60969
7232 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
7233 alternative 12.
7234
7235 2014-04-25 Jiong Wang <jiong.wang@arm.com>
7236
7237 * config/arm/predicates.md (call_insn_operand): Add long_call check.
7238 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
7239 reg for long_call.
7240 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
7241 restriction.
7242
7243 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7244
7245 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
7246
7247 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7248
7249 PR tree-optimization/60930
7250 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
7251 creating a multiply candidate by folding two constant
7252 multiplicands when the result overflows.
7253
7254 2014-04-25 Jakub Jelinek <jakub@redhat.com>
7255
7256 PR tree-optimization/60960
7257 * tree-vect-generic.c (expand_vector_operation): Only call
7258 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
7259
7260 2014-04-25 Tom de Vries <tom@codesourcery.com>
7261
7262 * expr.c (clobber_reg_mode): New function.
7263 * expr.h (clobber_reg): New function.
7264
7265 2014-04-25 Tom de Vries <tom@codesourcery.com>
7266
7267 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
7268 clobbers.
7269
7270 2014-04-25 Radovan Obradovic <robradovic@mips.com>
7271 Tom de Vries <tom@codesourcery.com>
7272
7273 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
7274 handle.
7275 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
7276 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
7277 new argument to find_all_hard_reg_sets call.
7278
7279 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7280
7281 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
7282 Use HOST_WIDE_INT_C for mask literal.
7283 (aarch_rev16_shleft_mask_imm_p): Likewise.
7284
7285 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
7286
7287 PR target/60941
7288 * config/sparc/sparc.md (ashlsi3_extend): Delete.
7289
7290 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
7291
7292 PR preprocessor/56540
7293 * config/i386/i386-c.c (ix86_target_macros): Define
7294 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
7295
7296 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7297
7298 * configure.ac (tga_func): Remove.
7299 (LIB_TLS_SPEC): Remove.
7300 * configure: Regenerate.
7301 * config.in: Regenerate.
7302 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
7303
7304 2014-04-25 Richard Biener <rguenther@suse.de>
7305
7306 PR ipa/60912
7307 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
7308 call stmt use/clobber sets during stmt walk instead of
7309 walking the possibly incomplete set of caller edges.
7310
7311 2014-04-25 Richard Biener <rguenther@suse.de>
7312
7313 PR ipa/60911
7314 * passes.c (apply_ipa_transforms): Inline into only caller ...
7315 (execute_one_pass): ... here. Properly bring in function
7316 bodies for nodes we want to apply IPA transforms to.
7317
7318 2014-04-24 Cong Hou <congh@google.com>
7319
7320 PR tree-optimization/60896
7321 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
7322 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
7323 (vect_mark_pattern_stmts): Set the def type of all statements in
7324 PATTERN_DEF_SEQ as vect_internal_def.
7325
7326 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7327
7328 * doc/extend.texi (PowerPC Built-in Functions): Document new
7329 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
7330 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
7331
7332 * config/rs6000/predicates.md (const_0_to_3_operand): New
7333 predicate to match 0..3 integer constants.
7334
7335 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
7336 to support adding miscellaneous builtin functions.
7337 (BU_DFP_MISC_2): Likewise.
7338 (BU_P7_MISC_1): Likewise.
7339 (BU_P7_MISC_2): Likewise.
7340 (BU_P8V_MISC_3): Likewise.
7341 (BU_MISC_1): Likewise.
7342 (BU_MISC_2): Likewise.
7343 (DIVWE): Add extended divide builtin functions.
7344 (DIVWEO): Likewise.
7345 (DIVWEU): Likewise.
7346 (DIVWEUO): Likewise.
7347 (DIVDE): Likewise.
7348 (DIVDEO): Likewise.
7349 (DIVDEU): Likewise.
7350 (DIVDEUO): Likewise.
7351 (DXEX): Add decimal floating-point builtin functions.
7352 (DXEXQ): Likewise.
7353 (DDEDPD): Likewise.
7354 (DDEDPDQ): Likewise.
7355 (DENBCD): Likewise.
7356 (DENBCDQ): Likewise.
7357 (DIEX): Likewise.
7358 (DIEXQ): Likewise.
7359 (DSCLI): Likewise.
7360 (DSCLIQ): Likewise.
7361 (DSCRI): Likewise.
7362 (DSCRIQ): Likewise.
7363 (CDTBCD): Add new BCD builtin functions.
7364 (CBCDTD): Likewise.
7365 (ADDG6S): Likewise.
7366 (BCDADD): Likewise.
7367 (BCDADD_LT): Likewise.
7368 (BCDADD_EQ): Likewise.
7369 (BCDADD_GT): Likewise.
7370 (BCDADD_OV): Likewise.
7371 (BCDSUB): Likewise.
7372 (BCDSUB_LT): Likewise.
7373 (BCDSUB_EQ): Likewise.
7374 (BCDSUB_GT): Likewise.
7375 (BCDSUB_OV): Likewise.
7376 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
7377 (UNPACK_TD): Likewise.
7378 (PACK_TF): Likewise.
7379 (UNPACK_TF): Likewise.
7380 (UNPACK_TF_0): Likewise.
7381 (UNPACK_TF_1): Likewise.
7382 (PACK_V1TI): Likewise.
7383 (UNPACK_V1TI): Likewise.
7384
7385 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
7386 support for decimal floating point builtin functions.
7387 (rs6000_expand_ternop_builtin): Add checks for the new builtin
7388 functions that take constant arguments.
7389 (rs6000_invalid_builtin): Add decimal floating point builtin support.
7390 (rs6000_init_builtins): Setup long double, _Decimal64, and
7391 _Decimal128 types for new builtin functions.
7392 (builtin_function_type): Set the unsigned flags appropriately for
7393 the new builtin functions.
7394 (rs6000_opt_masks): Add support for decimal floating point builtin
7395 functions.
7396
7397 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
7398 floating point builtin functions.
7399 (RS6000_BTM_COMMON): Likewise.
7400 (RS6000_BTI_long_double): Likewise.
7401 (RS6000_BTI_dfloat64): Likewise.
7402 (RS6000_BTI_dfloat128): Likewise.
7403 (long_double_type_internal_node): Likewise.
7404 (dfloat64_type_internal_node): Likewise.
7405 (dfloat128_type_internal_node): Likewise.
7406
7407 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
7408 2.07 bcd arithmetic instructions.
7409 (UNSPEC_BCDSUB): Likewise.
7410 (UNSPEC_BCD_OVERFLOW): Likewise.
7411 (UNSPEC_BCD_ADD_SUB): Likewise.
7412 (bcd_add_sub): Likewise.
7413 (BCD_TEST): Likewise.
7414 (bcd<bcd_add_sub>): Likewise.
7415 (bcd<bcd_add_sub>_test): Likewise.
7416 (bcd<bcd_add_sub>_test2): Likewise.
7417 (bcd<bcd_add_sub>_<code>): Likewise.
7418 (peephole2 for combined bcd ops): Likewise.
7419
7420 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
7421 decimal floating point builtin functions.
7422 (UNSPEC_DENBCD): Likewise.
7423 (UNSPEC_DXEX): Likewise.
7424 (UNSPEC_DIEX): Likewise.
7425 (UNSPEC_DSCLI): Likewise.
7426 (UNSPEC_DSCRI): Likewise.
7427 (D64_D128): Likewise.
7428 (dfp_suffix): Likewise.
7429 (dfp_ddedpd_<mode>): Likewise.
7430 (dfp_denbcd_<mode>): Likewise.
7431 (dfp_dxex_<mode>): Likewise.
7432 (dfp_diex_<mode>): Likewise.
7433 (dfp_dscli_<mode>): Likewise.
7434 (dfp_dscri_<mode>): Likewise.
7435
7436 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
7437 builtin functions.
7438 (UNSPEC_CDTBCD): Likewise.
7439 (UNSPEC_CBCDTD): Likewise.
7440 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
7441 (UNSPEC_DIVEO): Likewise.
7442 (UNSPEC_DIVEU): Likewise.
7443 (UNSPEC_DIVEUO): Likewise.
7444 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
7445 pack/unpack 128-bit types.
7446 (UNSPEC_PACK_128BIT): Likewise.
7447 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
7448 (udiv<mode>3): Use idiv_ldiv mode attribute.
7449 (div<mode>3): Likewise.
7450 (addg6s): Add new BCD builtin functions.
7451 (cdtbcd): Likewise.
7452 (cbcdtd): Likewise.
7453 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
7454 (div_extend): Likewise.
7455 (div<div_extend>_<mode>"): Likewise.
7456 (FP128_64): Add support for new builtin functions to pack/unpack
7457 128-bit types.
7458 (unpack<mode>): Likewise.
7459 (unpacktf_0): Likewise.
7460 (unpacktf_1): Likewise.
7461 (unpack<mode>_dm): Likewise.
7462 (unpack<mode>_nodm): Likewise.
7463 (pack<mode>): Likewise.
7464 (unpackv1ti): Likewise.
7465 (packv1ti): Likewise.
7466
7467 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
7468
7469 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
7470 is disabled.
7471
7472 2014-04-24 Jakub Jelinek <jakub@redhat.com>
7473
7474 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
7475 * gimplify.c (omp_is_private): Change last argument's type to int.
7476 Only diagnose lastprivate if the simd argument is 1, only diagnose
7477 linear if the simd argument is 2.
7478 (gimplify_omp_for): Adjust omp_is_private callers. When adding
7479 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
7480 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
7481 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
7482 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
7483 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
7484 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
7485 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
7486 * tree-nested.c (convert_nonlocal_omp_clauses,
7487 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
7488
7489 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
7490
7491 PR target/60822
7492 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
7493 operand 1.
7494
7495 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
7496
7497 * flag-types.h (enum ivar_visibility): Add.
7498
7499 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
7500
7501 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
7502 function * argument.
7503
7504 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
7505
7506 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
7507
7508 2014-04-24 Radovan Obradovic <robradovic@mips.com>
7509 Tom de Vries <tom@codesourcery.com>
7510
7511 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
7512 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
7513 reg-note.
7514 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
7515 * emit-rtl.c (try_split): Same.
7516
7517 2014-04-24 Radovan Obradovic <robradovic@mips.com>
7518 Tom de Vries <tom@codesourcery.com>
7519
7520 * common.opt (fuse-caller-save): New option.
7521
7522 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
7523
7524 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
7525 elements for big-endian.
7526
7527 2014-04-24 Richard Biener <rguenther@suse.de>
7528
7529 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
7530 during TER and instead use the sepops interface for expanding
7531 non-GIMPLE_SINGLE_RHS.
7532
7533 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7534
7535 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
7536 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
7537
7538 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7539
7540 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
7541 assembler 64-bit option.
7542 * configure: Regenerate.
7543
7544 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7545
7546 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
7547 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
7548 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
7549 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
7550 (TARGET_CRYPTO): Take TARGET_SIMD into account.
7551
7552 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7553
7554 * config/aarch64/aarch64-builtins.c
7555 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
7556 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
7557 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
7558 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
7559 builtins.
7560 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
7561 (Vrevsuff): New mode attribute.
7562
7563 2014-04-24 Terry Guo <terry.guo@arm.com>
7564
7565 * config/arm/arm.h (machine_function): Define variable
7566 after_arm_reorg here.
7567 * config/arm/arm.c (after_arm_reorg): Remove the definition.
7568 (arm_split_constant): Update the way to access variable
7569 after_arm_reorg.
7570 (arm_reorg): Ditto.
7571 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
7572
7573 2014-04-23 Tom de Vries <tom@codesourcery.com>
7574
7575 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
7576
7577 2014-04-23 David Malcolm <dmalcolm@redhat.com>
7578
7579 * is-a.h: Update comments to reflect the following changes to the
7580 "pointerness" of the API, making the template parameter match the
7581 return type, allowing use of is-a.h with typedefs of pointers.
7582 (is_a_helper::cast): Return a T rather then a pointer to a T, so
7583 that the return type matches the parameter to the is_a_helper.
7584 (as_a): Likewise.
7585 (dyn_cast): Likewise.
7586
7587 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
7588 pointer from the is-a.h API.
7589
7590 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
7591 (is_a_helper <cgraph_node *>::test): ...this, matching change to
7592 is-a.h API.
7593 (is_a_helper <varpool_node>::test): Likewise, convert to...
7594 (is_a_helper <varpool_node *>::test): ...this.
7595
7596 (varpool_first_variable): Update for removal of implicit pointer
7597 from the is-a.h API.
7598 (varpool_next_variable): Likewise.
7599 (varpool_first_static_initializer): Likewise.
7600 (varpool_next_static_initializer): Likewise.
7601 (varpool_first_defined_variable): Likewise.
7602 (varpool_next_defined_variable): Likewise.
7603 (cgraph_first_defined_function): Likewise.
7604 (cgraph_next_defined_function): Likewise.
7605 (cgraph_first_function): Likewise.
7606 (cgraph_next_function): Likewise.
7607 (cgraph_first_function_with_gimple_body): Likewise.
7608 (cgraph_next_function_with_gimple_body): Likewise.
7609 (cgraph_alias_target): Likewise.
7610 (varpool_alias_target): Likewise.
7611 (cgraph_function_or_thunk_node): Likewise.
7612 (varpool_variable_node): Likewise.
7613 (symtab_real_symbol_p): Likewise.
7614 * cgraphunit.c (referred_to_p): Likewise.
7615 (analyze_functions): Likewise.
7616 (handle_alias_pairs): Likewise.
7617 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
7618 * gimple-ssa.h (gimple_vuse_op): Likewise.
7619 (gimple_vdef_op): Likewise.
7620 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
7621 * gimple.c (gimple_build_asm_1): Likewise.
7622 (gimple_build_try): Likewise.
7623 (gimple_build_resx): Likewise.
7624 (gimple_build_eh_dispatch): Likewise.
7625 (gimple_build_omp_for): Likewise.
7626 (gimple_omp_for_set_clauses): Likewise.
7627
7628 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
7629 (is_a_helper <gimple_statement_asm *>::test): ...this.
7630 (is_a_helper <gimple_statement_bind>::test): Convert to...
7631 (is_a_helper <gimple_statement_bind *>::test): ...this.
7632 (is_a_helper <gimple_statement_call>::test): Convert to...
7633 (is_a_helper <gimple_statement_call *>::test): ...this.
7634 (is_a_helper <gimple_statement_catch>::test): Convert to...
7635 (is_a_helper <gimple_statement_catch *>::test): ...this.
7636 (is_a_helper <gimple_statement_resx>::test): Convert to...
7637 (is_a_helper <gimple_statement_resx *>::test): ...this.
7638 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
7639 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
7640 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
7641 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
7642 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
7643 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
7644 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
7645 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
7646 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
7647 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
7648 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
7649 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
7650 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
7651 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
7652 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
7653 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
7654 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
7655 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
7656 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
7657 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
7658 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
7659 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
7660 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
7661 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
7662 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
7663 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
7664 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
7665 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
7666 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
7667 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
7668 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
7669 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
7670 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
7671 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
7672 (is_a_helper <gimple_statement_phi>::test): Convert to...
7673 (is_a_helper <gimple_statement_phi *>::test): ...this.
7674 (is_a_helper <gimple_statement_transaction>::test): Convert to...
7675 (is_a_helper <gimple_statement_transaction *>::test): ...this.
7676 (is_a_helper <gimple_statement_try>::test): Convert to...
7677 (is_a_helper <gimple_statement_try *>::test): ...this.
7678 (is_a_helper <gimple_statement_wce>::test): Convert to...
7679 (is_a_helper <gimple_statement_wce *>::test): ...this.
7680 (is_a_helper <const gimple_statement_asm>::test): Convert to...
7681 (is_a_helper <const gimple_statement_asm *>::test): ...this.
7682 (is_a_helper <const gimple_statement_bind>::test): Convert to...
7683 (is_a_helper <const gimple_statement_bind *>::test): ...this.
7684 (is_a_helper <const gimple_statement_call>::test): Convert to...
7685 (is_a_helper <const gimple_statement_call *>::test): ...this.
7686 (is_a_helper <const gimple_statement_catch>::test): Convert to...
7687 (is_a_helper <const gimple_statement_catch *>::test): ...this.
7688 (is_a_helper <const gimple_statement_resx>::test): Convert to...
7689 (is_a_helper <const gimple_statement_resx *>::test): ...this.
7690 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
7691 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
7692 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
7693 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
7694 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
7695 Convert to...
7696 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
7697 ...this.
7698 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
7699 Convert to...
7700 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
7701 ...this.
7702 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
7703 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
7704 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
7705 to...
7706 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
7707 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
7708 to...
7709 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
7710 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
7711 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
7712 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
7713 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
7714 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
7715 to...
7716 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
7717 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
7718 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
7719 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
7720 to...
7721 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
7722 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
7723 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
7724 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
7725 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
7726 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
7727 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
7728 (is_a_helper <const gimple_statement_phi>::test): Convert to...
7729 (is_a_helper <const gimple_statement_phi *>::test): ...this.
7730 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
7731 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
7732 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
7733 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
7734 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
7735 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
7736 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
7737 to...
7738 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
7739 ...this.
7740 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
7741 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
7742
7743 (gimple_use_ops): Update for removal of implicit pointer from the
7744 is-a.h API.
7745 (gimple_set_use_ops): Likewise.
7746 (gimple_vuse): Likewise.
7747 (gimple_vdef): Likewise.
7748 (gimple_vuse_ptr): Likewise.
7749 (gimple_vdef_ptr): Likewise.
7750 (gimple_set_vuse): Likewise.
7751 (gimple_set_vdef): Likewise.
7752 (gimple_omp_return_set_lhs): Likewise.
7753 (gimple_omp_return_lhs): Likewise.
7754 (gimple_omp_return_lhs_ptr): Likewise.
7755 (gimple_call_fntype): Likewise.
7756 (gimple_call_set_fntype): Likewise.
7757 (gimple_call_set_internal_fn): Likewise.
7758 (gimple_call_use_set): Likewise.
7759 (gimple_call_clobber_set): Likewise.
7760 (gimple_bind_vars): Likewise.
7761 (gimple_bind_set_vars): Likewise.
7762 (gimple_bind_body_ptr): Likewise.
7763 (gimple_bind_set_body): Likewise.
7764 (gimple_bind_add_stmt): Likewise.
7765 (gimple_bind_block): Likewise.
7766 (gimple_bind_set_block): Likewise.
7767 (gimple_asm_ninputs): Likewise.
7768 (gimple_asm_noutputs): Likewise.
7769 (gimple_asm_nclobbers): Likewise.
7770 (gimple_asm_nlabels): Likewise.
7771 (gimple_asm_input_op): Likewise.
7772 (gimple_asm_input_op_ptr): Likewise.
7773 (gimple_asm_output_op): Likewise.
7774 (gimple_asm_output_op_ptr): Likewise.
7775 (gimple_asm_set_output_op): Likewise.
7776 (gimple_asm_clobber_op): Likewise.
7777 (gimple_asm_set_clobber_op): Likewise.
7778 (gimple_asm_label_op): Likewise.
7779 (gimple_asm_set_label_op): Likewise.
7780 (gimple_asm_string): Likewise.
7781 (gimple_catch_types): Likewise.
7782 (gimple_catch_types_ptr): Likewise.
7783 (gimple_catch_handler_ptr): Likewise.
7784 (gimple_catch_set_types): Likewise.
7785 (gimple_catch_set_handler): Likewise.
7786 (gimple_eh_filter_types): Likewise.
7787 (gimple_eh_filter_types_ptr): Likewise.
7788 (gimple_eh_filter_failure_ptr): Likewise.
7789 (gimple_eh_filter_set_types): Likewise.
7790 (gimple_eh_filter_set_failure): Likewise.
7791 (gimple_eh_must_not_throw_fndecl): Likewise.
7792 (gimple_eh_must_not_throw_set_fndecl): Likewise.
7793 (gimple_eh_else_n_body_ptr): Likewise.
7794 (gimple_eh_else_e_body_ptr): Likewise.
7795 (gimple_eh_else_set_n_body): Likewise.
7796 (gimple_eh_else_set_e_body): Likewise.
7797 (gimple_try_eval_ptr): Likewise.
7798 (gimple_try_cleanup_ptr): Likewise.
7799 (gimple_try_set_eval): Likewise.
7800 (gimple_try_set_cleanup): Likewise.
7801 (gimple_wce_cleanup_ptr): Likewise.
7802 (gimple_wce_set_cleanup): Likewise.
7803 (gimple_phi_capacity): Likewise.
7804 (gimple_phi_num_args): Likewise.
7805 (gimple_phi_result): Likewise.
7806 (gimple_phi_result_ptr): Likewise.
7807 (gimple_phi_set_result): Likewise.
7808 (gimple_phi_arg): Likewise.
7809 (gimple_phi_set_arg): Likewise.
7810 (gimple_resx_region): Likewise.
7811 (gimple_resx_set_region): Likewise.
7812 (gimple_eh_dispatch_region): Likewise.
7813 (gimple_eh_dispatch_set_region): Likewise.
7814 (gimple_omp_critical_name): Likewise.
7815 (gimple_omp_critical_name_ptr): Likewise.
7816 (gimple_omp_critical_set_name): Likewise.
7817 (gimple_omp_for_clauses): Likewise.
7818 (gimple_omp_for_clauses_ptr): Likewise.
7819 (gimple_omp_for_set_clauses): Likewise.
7820 (gimple_omp_for_collapse): Likewise.
7821 (gimple_omp_for_index): Likewise.
7822 (gimple_omp_for_index_ptr): Likewise.
7823 (gimple_omp_for_set_index): Likewise.
7824 (gimple_omp_for_initial): Likewise.
7825 (gimple_omp_for_initial_ptr): Likewise.
7826 (gimple_omp_for_set_initial): Likewise.
7827 (gimple_omp_for_final): Likewise.
7828 (gimple_omp_for_final_ptr): Likewise.
7829 (gimple_omp_for_set_final): Likewise.
7830 (gimple_omp_for_incr): Likewise.
7831 (gimple_omp_for_incr_ptr): Likewise.
7832 (gimple_omp_for_set_incr): Likewise.
7833 (gimple_omp_for_pre_body_ptr): Likewise.
7834 (gimple_omp_for_set_pre_body): Likewise.
7835 (gimple_omp_parallel_clauses): Likewise.
7836 (gimple_omp_parallel_clauses_ptr): Likewise.
7837 (gimple_omp_parallel_set_clauses): Likewise.
7838 (gimple_omp_parallel_child_fn): Likewise.
7839 (gimple_omp_parallel_child_fn_ptr): Likewise.
7840 (gimple_omp_parallel_set_child_fn): Likewise.
7841 (gimple_omp_parallel_data_arg): Likewise.
7842 (gimple_omp_parallel_data_arg_ptr): Likewise.
7843 (gimple_omp_parallel_set_data_arg): Likewise.
7844 (gimple_omp_task_clauses): Likewise.
7845 (gimple_omp_task_clauses_ptr): Likewise.
7846 (gimple_omp_task_set_clauses): Likewise.
7847 (gimple_omp_task_child_fn): Likewise.
7848 (gimple_omp_task_child_fn_ptr): Likewise.
7849 (gimple_omp_task_set_child_fn): Likewise.
7850 (gimple_omp_task_data_arg): Likewise.
7851 (gimple_omp_task_data_arg_ptr): Likewise.
7852 (gimple_omp_task_set_data_arg): Likewise.
7853 (gimple_omp_taskreg_clauses): Likewise.
7854 (gimple_omp_taskreg_clauses_ptr): Likewise.
7855 (gimple_omp_taskreg_set_clauses): Likewise.
7856 (gimple_omp_taskreg_child_fn): Likewise.
7857 (gimple_omp_taskreg_child_fn_ptr): Likewise.
7858 (gimple_omp_taskreg_set_child_fn): Likewise.
7859 (gimple_omp_taskreg_data_arg): Likewise.
7860 (gimple_omp_taskreg_data_arg_ptr): Likewise.
7861 (gimple_omp_taskreg_set_data_arg): Likewise.
7862 (gimple_omp_task_copy_fn): Likewise.
7863 (gimple_omp_task_copy_fn_ptr): Likewise.
7864 (gimple_omp_task_set_copy_fn): Likewise.
7865 (gimple_omp_task_arg_size): Likewise.
7866 (gimple_omp_task_arg_size_ptr): Likewise.
7867 (gimple_omp_task_set_arg_size): Likewise.
7868 (gimple_omp_task_arg_align): Likewise.
7869 (gimple_omp_task_arg_align_ptr): Likewise.
7870 (gimple_omp_task_set_arg_align): Likewise.
7871 (gimple_omp_single_clauses): Likewise.
7872 (gimple_omp_single_clauses_ptr): Likewise.
7873 (gimple_omp_single_set_clauses): Likewise.
7874 (gimple_omp_target_clauses): Likewise.
7875 (gimple_omp_target_clauses_ptr): Likewise.
7876 (gimple_omp_target_set_clauses): Likewise.
7877 (gimple_omp_target_child_fn): Likewise.
7878 (gimple_omp_target_child_fn_ptr): Likewise.
7879 (gimple_omp_target_set_child_fn): Likewise.
7880 (gimple_omp_target_data_arg): Likewise.
7881 (gimple_omp_target_data_arg_ptr): Likewise.
7882 (gimple_omp_target_set_data_arg): Likewise.
7883 (gimple_omp_teams_clauses): Likewise.
7884 (gimple_omp_teams_clauses_ptr): Likewise.
7885 (gimple_omp_teams_set_clauses): Likewise.
7886 (gimple_omp_sections_clauses): Likewise.
7887 (gimple_omp_sections_clauses_ptr): Likewise.
7888 (gimple_omp_sections_set_clauses): Likewise.
7889 (gimple_omp_sections_control): Likewise.
7890 (gimple_omp_sections_control_ptr): Likewise.
7891 (gimple_omp_sections_set_control): Likewise.
7892 (gimple_omp_for_set_cond): Likewise.
7893 (gimple_omp_for_cond): Likewise.
7894 (gimple_omp_atomic_store_set_val): Likewise.
7895 (gimple_omp_atomic_store_val): Likewise.
7896 (gimple_omp_atomic_store_val_ptr): Likewise.
7897 (gimple_omp_atomic_load_set_lhs): Likewise.
7898 (gimple_omp_atomic_load_lhs): Likewise.
7899 (gimple_omp_atomic_load_lhs_ptr): Likewise.
7900 (gimple_omp_atomic_load_set_rhs): Likewise.
7901 (gimple_omp_atomic_load_rhs): Likewise.
7902 (gimple_omp_atomic_load_rhs_ptr): Likewise.
7903 (gimple_omp_continue_control_def): Likewise.
7904 (gimple_omp_continue_control_def_ptr): Likewise.
7905 (gimple_omp_continue_set_control_def): Likewise.
7906 (gimple_omp_continue_control_use): Likewise.
7907 (gimple_omp_continue_control_use_ptr): Likewise.
7908 (gimple_omp_continue_set_control_use): Likewise.
7909 (gimple_transaction_body_ptr): Likewise.
7910 (gimple_transaction_label): Likewise.
7911 (gimple_transaction_label_ptr): Likewise.
7912 (gimple_transaction_set_body): Likewise.
7913 (gimple_transaction_set_label): Likewise.
7914
7915 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
7916 * ipa-inline-analysis.c (inline_write_summary): Likewise.
7917 * ipa-ref.c (ipa_record_reference): Likewise.
7918 * ipa-reference.c (analyze_function): Likewise.
7919 (ipa_reference_write_optimization_summary): Likewise.
7920 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
7921 (address_taken_from_non_vtable_p): Likewise.
7922 (comdat_can_be_unshared_p_1): Likewise.
7923 * lto-cgraph.c (lto_output_ref): Likewise.
7924 (add_references): Likewise.
7925 (compute_ltrans_boundary): Likewise.
7926 (output_symtab): Likewise.
7927 (input_ref): Likewise.
7928 (input_cgraph_1): Likewise.
7929 (output_cgraph_opt_summary): Likewise.
7930 * lto-streamer-out.c (lto_output): Likewise.
7931 (output_symbol_p): Likewise.
7932 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
7933 (lsei_start_function_in_partition): Likewise.
7934 (lsei_next_variable_in_partition): Likewise.
7935 (lsei_start_variable_in_partition): Likewise.
7936 * symtab.c (insert_to_assembler_name_hash): Likewise.
7937 (unlink_from_assembler_name_hash): Likewise.
7938 (symtab_unregister_node): Likewise.
7939 (symtab_remove_node): Likewise.
7940 (dump_symtab_node): Likewise.
7941 (verify_symtab_base): Likewise.
7942 (verify_symtab_node): Likewise.
7943 (symtab_make_decl_local): Likewise.
7944 (symtab_alias_ultimate_target): Likewise.
7945 (symtab_resolve_alias): Likewise.
7946 (symtab_get_symbol_partitioning_class): Likewise.
7947 * tree-phinodes.c (allocate_phi_node): Likewise.
7948 (reserve_phi_args_for_new_edge): Likewise.
7949 (remove_phi_args): Likewise.
7950 * varpool.c (varpool_node_for_asm): Likewise.
7951 (varpool_remove_unreferenced_decls): Likewise.
7952
7953 2014-04-23 Jeff Law <law@redhat.com>
7954
7955 PR tree-optimization/60902
7956 * tree-ssa-threadedge.c
7957 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
7958 invalidate outputs from statements that do not produce useful
7959 outputs for threading.
7960
7961 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
7962
7963 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
7964 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
7965 machine descriptions for Stack Smashing Protector.
7966
7967 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
7968
7969 * aarch64.md (<optab>_rol<mode>3): New pattern.
7970 (<optab>_rolsi3_uxtw): Likewise.
7971 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
7972
7973 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
7974
7975 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
7976 (arm_cortex_a12_tune): Likewise.
7977
7978 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7979
7980 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
7981
7982 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7983
7984 * config/arm/arm.md (arm_rev16si2): New pattern.
7985 (arm_rev16si2_alt): Likewise.
7986 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
7987
7988 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7989
7990 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
7991 (rev16<mode>2_alt): Likewise.
7992 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
7993 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
7994 (aarch_rev16_shleft_mask_imm_p): Likewise.
7995 (aarch_rev16_p_1): Likewise.
7996 (aarch_rev16_p): Likewise.
7997 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
7998 (aarch_rev16_shright_mask_imm_p): Likewise.
7999 (aarch_rev16_shleft_mask_imm_p): Likewise.
8000
8001 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8002
8003 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
8004 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
8005 rev cost.
8006 (cortex_a53_extra_costs): Likewise.
8007 (cortex_a57_extra_costs): Likewise.
8008 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
8009 (cortexa7_extra_costs): Likewise.
8010 (cortexa8_extra_costs): Likewise.
8011 (cortexa12_extra_costs): Likewise.
8012 (cortexa15_extra_costs): Likewise.
8013 (v7m_extra_costs): Likewise.
8014 (arm_new_rtx_costs): Handle BSWAP.
8015
8016 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8017
8018 * config/arm/arm.c (cortexa8_extra_costs): New table.
8019 (arm_cortex_a8_tune): New tuning struct.
8020 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
8021
8022 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8023
8024 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
8025
8026 2014-04-23 Richard Biener <rguenther@suse.de>
8027
8028 * Makefile.in (OBJS): Remove loop-unswitch.o.
8029 * tree-pass.h (make_pass_rtl_unswitch): Remove.
8030 * passes.def (pass_rtl_unswitch): Likewise.
8031 * loop-init.c (gate_rtl_unswitch): Likewise.
8032 (rtl_unswitch): Likewise.
8033 (pass_data_rtl_unswitch): Likewise.
8034 (pass_rtl_unswitch): Likewise.
8035 (make_pass_rtl_unswitch): Likewise.
8036 * rtl.h (reversed_condition): Likewise.
8037 (compare_and_jump_seq): Likewise.
8038 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
8039 and make static.
8040 * loop-unroll.c (compare_and_jump_seq): Likewise.
8041
8042 2014-04-23 Richard Biener <rguenther@suse.de>
8043
8044 PR tree-optimization/60903
8045 * tree-ssa-loop-im.c (analyze_memory_references): Remove
8046 commented code block.
8047 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
8048 loop flags to newly created BBs and edges.
8049
8050 2014-04-23 Nick Clifton <nickc@redhat.com>
8051
8052 * config/msp430/msp430.c (msp430_handle_option): Move function
8053 to msp430-common.c
8054 (msp430_option_override): Simplify mcu and mcpu option handling.
8055 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
8056 support for -mhwmult command line option.
8057 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
8058 -mhwmult command line option.
8059 (msp430_hwmult_enabled): Delete.
8060 (msp43o_output_labelref): Add support for -mhwmult command line option.
8061 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
8062 (umulsidi3): Likewise.
8063 * config/msp430/msp430.opt (mmcu): Add Report attribute.
8064 (mcpu, mlarge, msmall): Likewise.
8065 (mhwmult): New option.
8066 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
8067 prototype.
8068 (msp430_is_f5_mcu): Remove prototype.
8069 (msp430_use_f5_series_hwmult): Add prototype.
8070 * config/msp430/msp430-opts.h: New file.
8071 * common/config/msp430: New directory.
8072 * common/config/msp430/msp430-common.c: New file.
8073 * config.gcc (msp430): Remove target_has_targetm_common.
8074 * doc/invoke.texi: Document -mhwmult command line option.
8075
8076 2014-04-23 Nick Clifton <nickc@redhat.com>
8077
8078 * config/i386/cygwin.h (ENDFILE_SPEC): Include
8079 default-manifest.o if it can be found in the search path.
8080 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
8081
8082 2014-04-23 Terry Guo <terry.guo@arm.com>
8083
8084 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
8085
8086 2014-04-23 Richard Biener <rguenther@suse.de>
8087
8088 PR middle-end/60895
8089 * tree-inline.c (declare_return_variable): Use mark_addressable.
8090
8091 2014-04-23 Richard Biener <rguenther@suse.de>
8092
8093 PR middle-end/60891
8094 * loop-init.c (loop_optimizer_init): Make sure to apply
8095 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
8096
8097 2014-04-22 Jakub Jelinek <jakub@redhat.com>
8098
8099 PR sanitizer/60275
8100 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
8101 New options.
8102 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
8103 if flag_sanitize_undefined_trap_on_error.
8104 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
8105 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
8106 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
8107 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
8108 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
8109 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
8110 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
8111 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
8112 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
8113 * ubsan.c (ubsan_instrument_unreachable): Return
8114 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
8115 (ubsan_expand_null_ifn): Emit __builtin_trap ()
8116 if flag_sanitize_undefined_trap_on_error and
8117 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
8118 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
8119 instrument_bool_enum_load): Emit __builtin_trap () if
8120 flag_sanitize_undefined_trap_on_error and
8121 __builtin_handle_*_abort () if !flag_sanitize_recover.
8122 * doc/invoke.texi (-fsanitize-recover,
8123 -fsanitize-undefined-trap-on-error): Document.
8124
8125 2014-04-22 Christian Bruel <christian.bruel@st.com>
8126
8127 * config/sh/sh.md (mov<mode>): Replace movQIHI.
8128 Force immediates to SImode.
8129
8130 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
8131
8132 * config/nios2/nios2.md (UNSPEC_ROUND): New.
8133 (lroundsfsi2): New.
8134 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
8135 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
8136 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
8137 (nios2_fpu_insn): Add entry for round.
8138 (N2FPU_NO_ERRNO_P): Define.
8139 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
8140 flag_errno_math.
8141 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
8142
8143 2014-04-22 Richard Henderson <rth@redhat.com>
8144
8145 * config/aarch64/aarch64 (addti3, subti3): New expanders.
8146 (add<GPI>3_compare0): Remove leading * from name.
8147 (add<GPI>3_carryin): Likewise.
8148 (sub<GPI>3_compare0): Likewise.
8149 (sub<GPI>3_carryin): Likewise.
8150 (<su_optab>mulditi3): New expander.
8151 (multi3): New expander.
8152 (madd<GPI>): Remove leading * from name.
8153
8154 2014-04-22 Martin Jambor <mjambor@suse.cz>
8155
8156 * cgraphclones.c (cgraph_function_versioning): Copy
8157 ipa_transforms_to_apply instead of asserting it is empty.
8158
8159 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
8160
8161 PR target/60868
8162 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
8163 on count_exp to get mode.
8164
8165 2014-04-22 Andrew Pinski <apinski@cavium.com>
8166
8167 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8168 Handle TLS for ILP32.
8169 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
8170 (tlsie_small_<mode>): this and handle PTR.
8171 (tlsie_small_sidi): New pattern.
8172 (tlsle_small): Change to an expand to handle ILP32.
8173 (tlsle_small_<mode>): New pattern.
8174 (tlsdesc_small): Rename to ...
8175 (tlsdesc_small_<mode>): this and handle PTR.
8176
8177 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8178
8179 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
8180
8181 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8182
8183 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
8184 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
8185 (aarch64_types_signed_poly_qualifiers): Likewise.
8186 (aarch64_types_unsigned_signed_qualifiers): Likewise.
8187 (aarch64_types_poly_signed_qualifiers): Likewise.
8188 (TYPES_REINTERP_SS): Type macro added.
8189 (TYPES_REINTERP_SU): Likewise.
8190 (TYPES_REINTERP_SP): Likewise.
8191 (TYPES_REINTERP_US): Likewise.
8192 (TYPES_REINTERP_PS): Likewise.
8193 (aarch64_fold_builtin): New expression folding added.
8194 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
8195 Declarations removed.
8196 (REINTERP_SS): Declarations added.
8197 (REINTERP_US): Likewise.
8198 (REINTERP_PS): Likewise.
8199 (REINTERP_SU): Likewise.
8200 (REINTERP_SP): Likewise.
8201 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
8202 (vreinterpretq_p8_f64): Likewise.
8203 (vreinterpret_p16_f64): Likewise.
8204 (vreinterpretq_p16_f64): Likewise.
8205 (vreinterpret_f32_f64): Likewise.
8206 (vreinterpretq_f32_f64): Likewise.
8207 (vreinterpret_f64_f32): Likewise.
8208 (vreinterpret_f64_p8): Likewise.
8209 (vreinterpret_f64_p16): Likewise.
8210 (vreinterpret_f64_s8): Likewise.
8211 (vreinterpret_f64_s16): Likewise.
8212 (vreinterpret_f64_s32): Likewise.
8213 (vreinterpret_f64_s64): Likewise.
8214 (vreinterpret_f64_u8): Likewise.
8215 (vreinterpret_f64_u16): Likewise.
8216 (vreinterpret_f64_u32): Likewise.
8217 (vreinterpret_f64_u64): Likewise.
8218 (vreinterpretq_f64_f32): Likewise.
8219 (vreinterpretq_f64_p8): Likewise.
8220 (vreinterpretq_f64_p16): Likewise.
8221 (vreinterpretq_f64_s8): Likewise.
8222 (vreinterpretq_f64_s16): Likewise.
8223 (vreinterpretq_f64_s32): Likewise.
8224 (vreinterpretq_f64_s64): Likewise.
8225 (vreinterpretq_f64_u8): Likewise.
8226 (vreinterpretq_f64_u16): Likewise.
8227 (vreinterpretq_f64_u32): Likewise.
8228 (vreinterpretq_f64_u64): Likewise.
8229 (vreinterpret_s64_f64): Likewise.
8230 (vreinterpretq_s64_f64): Likewise.
8231 (vreinterpret_u64_f64): Likewise.
8232 (vreinterpretq_u64_f64): Likewise.
8233 (vreinterpret_s8_f64): Likewise.
8234 (vreinterpretq_s8_f64): Likewise.
8235 (vreinterpret_s16_f64): Likewise.
8236 (vreinterpretq_s16_f64): Likewise.
8237 (vreinterpret_s32_f64): Likewise.
8238 (vreinterpretq_s32_f64): Likewise.
8239 (vreinterpret_u8_f64): Likewise.
8240 (vreinterpretq_u8_f64): Likewise.
8241 (vreinterpret_u16_f64): Likewise.
8242 (vreinterpretq_u16_f64): Likewise.
8243 (vreinterpret_u32_f64): Likewise.
8244 (vreinterpretq_u32_f64): Likewise.
8245
8246 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8247
8248 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
8249 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
8250 (vreinterpret_p8_s8): Likewise.
8251 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
8252 (vreinterpret_p8_s16): Likewise.
8253 (vreinterpret_p8_s32): Likewise.
8254 (vreinterpret_p8_s64): Likewise.
8255 (vreinterpret_p8_f32): Likewise.
8256 (vreinterpret_p8_u8): Likewise.
8257 (vreinterpret_p8_u16): Likewise.
8258 (vreinterpret_p8_u32): Likewise.
8259 (vreinterpret_p8_u64): Likewise.
8260 (vreinterpret_p8_p16): Likewise.
8261 (vreinterpretq_p8_s8): Likewise.
8262 (vreinterpretq_p8_s16): Likewise.
8263 (vreinterpretq_p8_s32): Likewise.
8264 (vreinterpretq_p8_s64): Likewise.
8265 (vreinterpretq_p8_f32): Likewise.
8266 (vreinterpretq_p8_u8): Likewise.
8267 (vreinterpretq_p8_u16): Likewise.
8268 (vreinterpretq_p8_u32): Likewise.
8269 (vreinterpretq_p8_u64): Likewise.
8270 (vreinterpretq_p8_p16): Likewise.
8271 (vreinterpret_p16_s8): Likewise.
8272 (vreinterpret_p16_s16): Likewise.
8273 (vreinterpret_p16_s32): Likewise.
8274 (vreinterpret_p16_s64): Likewise.
8275 (vreinterpret_p16_f32): Likewise.
8276 (vreinterpret_p16_u8): Likewise.
8277 (vreinterpret_p16_u16): Likewise.
8278 (vreinterpret_p16_u32): Likewise.
8279 (vreinterpret_p16_u64): Likewise.
8280 (vreinterpret_p16_p8): Likewise.
8281 (vreinterpretq_p16_s8): Likewise.
8282 (vreinterpretq_p16_s16): Likewise.
8283 (vreinterpretq_p16_s32): Likewise.
8284 (vreinterpretq_p16_s64): Likewise.
8285 (vreinterpretq_p16_f32): Likewise.
8286 (vreinterpretq_p16_u8): Likewise.
8287 (vreinterpretq_p16_u16): Likewise.
8288 (vreinterpretq_p16_u32): Likewise.
8289 (vreinterpretq_p16_u64): Likewise.
8290 (vreinterpretq_p16_p8): Likewise.
8291 (vreinterpret_f32_s8): Likewise.
8292 (vreinterpret_f32_s16): Likewise.
8293 (vreinterpret_f32_s32): Likewise.
8294 (vreinterpret_f32_s64): Likewise.
8295 (vreinterpret_f32_u8): Likewise.
8296 (vreinterpret_f32_u16): Likewise.
8297 (vreinterpret_f32_u32): Likewise.
8298 (vreinterpret_f32_u64): Likewise.
8299 (vreinterpret_f32_p8): Likewise.
8300 (vreinterpret_f32_p16): Likewise.
8301 (vreinterpretq_f32_s8): Likewise.
8302 (vreinterpretq_f32_s16): Likewise.
8303 (vreinterpretq_f32_s32): Likewise.
8304 (vreinterpretq_f32_s64): Likewise.
8305 (vreinterpretq_f32_u8): Likewise.
8306 (vreinterpretq_f32_u16): Likewise.
8307 (vreinterpretq_f32_u32): Likewise.
8308 (vreinterpretq_f32_u64): Likewise.
8309 (vreinterpretq_f32_p8): Likewise.
8310 (vreinterpretq_f32_p16): Likewise.
8311 (vreinterpret_s64_s8): Likewise.
8312 (vreinterpret_s64_s16): Likewise.
8313 (vreinterpret_s64_s32): Likewise.
8314 (vreinterpret_s64_f32): Likewise.
8315 (vreinterpret_s64_u8): Likewise.
8316 (vreinterpret_s64_u16): Likewise.
8317 (vreinterpret_s64_u32): Likewise.
8318 (vreinterpret_s64_u64): Likewise.
8319 (vreinterpret_s64_p8): Likewise.
8320 (vreinterpret_s64_p16): Likewise.
8321 (vreinterpretq_s64_s8): Likewise.
8322 (vreinterpretq_s64_s16): Likewise.
8323 (vreinterpretq_s64_s32): Likewise.
8324 (vreinterpretq_s64_f32): Likewise.
8325 (vreinterpretq_s64_u8): Likewise.
8326 (vreinterpretq_s64_u16): Likewise.
8327 (vreinterpretq_s64_u32): Likewise.
8328 (vreinterpretq_s64_u64): Likewise.
8329 (vreinterpretq_s64_p8): Likewise.
8330 (vreinterpretq_s64_p16): Likewise.
8331 (vreinterpret_u64_s8): Likewise.
8332 (vreinterpret_u64_s16): Likewise.
8333 (vreinterpret_u64_s32): Likewise.
8334 (vreinterpret_u64_s64): Likewise.
8335 (vreinterpret_u64_f32): Likewise.
8336 (vreinterpret_u64_u8): Likewise.
8337 (vreinterpret_u64_u16): Likewise.
8338 (vreinterpret_u64_u32): Likewise.
8339 (vreinterpret_u64_p8): Likewise.
8340 (vreinterpret_u64_p16): Likewise.
8341 (vreinterpretq_u64_s8): Likewise.
8342 (vreinterpretq_u64_s16): Likewise.
8343 (vreinterpretq_u64_s32): Likewise.
8344 (vreinterpretq_u64_s64): Likewise.
8345 (vreinterpretq_u64_f32): Likewise.
8346 (vreinterpretq_u64_u8): Likewise.
8347 (vreinterpretq_u64_u16): Likewise.
8348 (vreinterpretq_u64_u32): Likewise.
8349 (vreinterpretq_u64_p8): Likewise.
8350 (vreinterpretq_u64_p16): Likewise.
8351 (vreinterpret_s8_s16): Likewise.
8352 (vreinterpret_s8_s32): Likewise.
8353 (vreinterpret_s8_s64): Likewise.
8354 (vreinterpret_s8_f32): Likewise.
8355 (vreinterpret_s8_u8): Likewise.
8356 (vreinterpret_s8_u16): Likewise.
8357 (vreinterpret_s8_u32): Likewise.
8358 (vreinterpret_s8_u64): Likewise.
8359 (vreinterpret_s8_p8): Likewise.
8360 (vreinterpret_s8_p16): Likewise.
8361 (vreinterpretq_s8_s16): Likewise.
8362 (vreinterpretq_s8_s32): Likewise.
8363 (vreinterpretq_s8_s64): Likewise.
8364 (vreinterpretq_s8_f32): Likewise.
8365 (vreinterpretq_s8_u8): Likewise.
8366 (vreinterpretq_s8_u16): Likewise.
8367 (vreinterpretq_s8_u32): Likewise.
8368 (vreinterpretq_s8_u64): Likewise.
8369 (vreinterpretq_s8_p8): Likewise.
8370 (vreinterpretq_s8_p16): Likewise.
8371 (vreinterpret_s16_s8): Likewise.
8372 (vreinterpret_s16_s32): Likewise.
8373 (vreinterpret_s16_s64): Likewise.
8374 (vreinterpret_s16_f32): Likewise.
8375 (vreinterpret_s16_u8): Likewise.
8376 (vreinterpret_s16_u16): Likewise.
8377 (vreinterpret_s16_u32): Likewise.
8378 (vreinterpret_s16_u64): Likewise.
8379 (vreinterpret_s16_p8): Likewise.
8380 (vreinterpret_s16_p16): Likewise.
8381 (vreinterpretq_s16_s8): Likewise.
8382 (vreinterpretq_s16_s32): Likewise.
8383 (vreinterpretq_s16_s64): Likewise.
8384 (vreinterpretq_s16_f32): Likewise.
8385 (vreinterpretq_s16_u8): Likewise.
8386 (vreinterpretq_s16_u16): Likewise.
8387 (vreinterpretq_s16_u32): Likewise.
8388 (vreinterpretq_s16_u64): Likewise.
8389 (vreinterpretq_s16_p8): Likewise.
8390 (vreinterpretq_s16_p16): Likewise.
8391 (vreinterpret_s32_s8): Likewise.
8392 (vreinterpret_s32_s16): Likewise.
8393 (vreinterpret_s32_s64): Likewise.
8394 (vreinterpret_s32_f32): Likewise.
8395 (vreinterpret_s32_u8): Likewise.
8396 (vreinterpret_s32_u16): Likewise.
8397 (vreinterpret_s32_u32): Likewise.
8398 (vreinterpret_s32_u64): Likewise.
8399 (vreinterpret_s32_p8): Likewise.
8400 (vreinterpret_s32_p16): Likewise.
8401 (vreinterpretq_s32_s8): Likewise.
8402 (vreinterpretq_s32_s16): Likewise.
8403 (vreinterpretq_s32_s64): Likewise.
8404 (vreinterpretq_s32_f32): Likewise.
8405 (vreinterpretq_s32_u8): Likewise.
8406 (vreinterpretq_s32_u16): Likewise.
8407 (vreinterpretq_s32_u32): Likewise.
8408 (vreinterpretq_s32_u64): Likewise.
8409 (vreinterpretq_s32_p8): Likewise.
8410 (vreinterpretq_s32_p16): Likewise.
8411 (vreinterpret_u8_s8): Likewise.
8412 (vreinterpret_u8_s16): Likewise.
8413 (vreinterpret_u8_s32): Likewise.
8414 (vreinterpret_u8_s64): Likewise.
8415 (vreinterpret_u8_f32): Likewise.
8416 (vreinterpret_u8_u16): Likewise.
8417 (vreinterpret_u8_u32): Likewise.
8418 (vreinterpret_u8_u64): Likewise.
8419 (vreinterpret_u8_p8): Likewise.
8420 (vreinterpret_u8_p16): Likewise.
8421 (vreinterpretq_u8_s8): Likewise.
8422 (vreinterpretq_u8_s16): Likewise.
8423 (vreinterpretq_u8_s32): Likewise.
8424 (vreinterpretq_u8_s64): Likewise.
8425 (vreinterpretq_u8_f32): Likewise.
8426 (vreinterpretq_u8_u16): Likewise.
8427 (vreinterpretq_u8_u32): Likewise.
8428 (vreinterpretq_u8_u64): Likewise.
8429 (vreinterpretq_u8_p8): Likewise.
8430 (vreinterpretq_u8_p16): Likewise.
8431 (vreinterpret_u16_s8): Likewise.
8432 (vreinterpret_u16_s16): Likewise.
8433 (vreinterpret_u16_s32): Likewise.
8434 (vreinterpret_u16_s64): Likewise.
8435 (vreinterpret_u16_f32): Likewise.
8436 (vreinterpret_u16_u8): Likewise.
8437 (vreinterpret_u16_u32): Likewise.
8438 (vreinterpret_u16_u64): Likewise.
8439 (vreinterpret_u16_p8): Likewise.
8440 (vreinterpret_u16_p16): Likewise.
8441 (vreinterpretq_u16_s8): Likewise.
8442 (vreinterpretq_u16_s16): Likewise.
8443 (vreinterpretq_u16_s32): Likewise.
8444 (vreinterpretq_u16_s64): Likewise.
8445 (vreinterpretq_u16_f32): Likewise.
8446 (vreinterpretq_u16_u8): Likewise.
8447 (vreinterpretq_u16_u32): Likewise.
8448 (vreinterpretq_u16_u64): Likewise.
8449 (vreinterpretq_u16_p8): Likewise.
8450 (vreinterpretq_u16_p16): Likewise.
8451 (vreinterpret_u32_s8): Likewise.
8452 (vreinterpret_u32_s16): Likewise.
8453 (vreinterpret_u32_s32): Likewise.
8454 (vreinterpret_u32_s64): Likewise.
8455 (vreinterpret_u32_f32): Likewise.
8456 (vreinterpret_u32_u8): Likewise.
8457 (vreinterpret_u32_u16): Likewise.
8458 (vreinterpret_u32_u64): Likewise.
8459 (vreinterpret_u32_p8): Likewise.
8460 (vreinterpret_u32_p16): Likewise.
8461 (vreinterpretq_u32_s8): Likewise.
8462 (vreinterpretq_u32_s16): Likewise.
8463 (vreinterpretq_u32_s32): Likewise.
8464 (vreinterpretq_u32_s64): Likewise.
8465 (vreinterpretq_u32_f32): Likewise.
8466 (vreinterpretq_u32_u8): Likewise.
8467 (vreinterpretq_u32_u16): Likewise.
8468 (vreinterpretq_u32_u64): Likewise.
8469 (vreinterpretq_u32_p8): Likewise.
8470 (vreinterpretq_u32_p16): Likewise.
8471
8472 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8473
8474 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
8475 Pattern extended.
8476 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
8477 (sqabs): Likewise.
8478 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
8479 (vqnegd_s64): Likewise.
8480 (vqabs_s64): Likewise.
8481 (vqabsd_s64): Likewise.
8482
8483 2014-04-22 Richard Henderson <rth@redhat.com>
8484
8485 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
8486 computation to the top of the loop.
8487
8488 2014-04-22 Renlin <renlin.li@arm.com>
8489 Jiong Wang <jiong.wang@arm.com>
8490
8491 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
8492 * config/aarch64/aarch64.c (aarch64_layout_frame)
8493 (aarch64_initial_elimination_offset): Likewise.
8494
8495 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
8496
8497 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
8498 Fix indentation.
8499
8500 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
8501
8502 * machmode.h (bitwise_mode_for_mode): Declare.
8503 * stor-layout.h (bitwise_type_for_mode): Likewise.
8504 * stor-layout.c (bitwise_mode_for_mode): New function.
8505 (bitwise_type_for_mode): Likewise.
8506 * builtins.c (fold_builtin_memory_op): Use it instead of
8507 int_mode_for_mode and build_nonstandard_integer_type.
8508
8509 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8510
8511 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
8512 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
8513 (*-*-solaris2*): Simplify.
8514 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
8515 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
8516 *-*-solaris2.9* handling.
8517
8518 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
8519 as bug.
8520 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
8521 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
8522 handling, simplify.
8523 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
8524 * configure: Regenerate.
8525
8526 * config/i386/sol2-9.h: Remove.
8527
8528 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
8529 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
8530 Remove Solaris 9 references.
8531
8532 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
8533
8534 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
8535 (floatuns<GPI:mode><GPF:mode>2): Remove.
8536 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
8537 and floatuns conversions.
8538 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
8539 and floatuns conversions.
8540 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
8541 (w1,w2): New mode attributes for inequal width conversions.
8542
8543 2014-04-22 Renlin Li <Renlin.Li@arm.com>
8544
8545 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
8546 the output asm format.
8547
8548 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
8549
8550 * config/aarch64/aarch64-simd.md
8551 (aarch64_cm<optab>di): Always split.
8552 (*aarch64_cm<optab>di): New.
8553 (aarch64_cmtstdi): Always split.
8554 (*aarch64_cmtstdi): New.
8555
8556 2014-04-22 Jakub Jelinek <jakub@redhat.com>
8557
8558 PR tree-optimization/60823
8559 * omp-low.c (ipa_simd_modify_function_body): Go through
8560 all SSA_NAMEs and for those refering to vector arguments
8561 which are going to be replaced adjust SSA_NAME_VAR and,
8562 if it is a default definition, change it into a non-default
8563 definition assigned at the beginning of function from new_decl.
8564 (ipa_simd_modify_stmt_ops): Rewritten.
8565 * tree-dfa.c (set_ssa_default_def): When removing default def,
8566 check for NULL loc instead of NULL *loc.
8567
8568 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8569
8570 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
8571 restrictions on core registers for DImode values in Thumb2.
8572
8573 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8574
8575 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
8576 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
8577
8578 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8579
8580 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
8581 (*iordi_notzesidi_di): Likewise.
8582 (*iordi_notsesidi_di): Likewise.
8583
8584 2014-04-22 Ian Bolton <ian.bolton@arm.com>
8585
8586 * config/arm/arm-protos.h (tune_params): New struct members.
8587 * config/arm/arm.c: Initialise tune_params per processor.
8588 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
8589 for speed, based on new tune_params.
8590
8591 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
8592
8593 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
8594 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
8595 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
8596 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
8597 * config/aarch64/arm_neon.h (vrnd_f64): Added.
8598 (vrnda_f64): Likewise.
8599 (vrndi_f64): Likewise.
8600 (vrndm_f64): Likewise.
8601 (vrndn_f64): Likewise.
8602 (vrndp_f64): Likewise.
8603 (vrndx_f64): Likewise.
8604
8605 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8606
8607 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
8608 GET_MODE_SIZE argument is enum machine_mode.
8609
8610 2014-04-22 Jakub Jelinek <jakub@redhat.com>
8611
8612 PR target/60910
8613 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
8614 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
8615
8616 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
8617
8618 PR middle-end/60281
8619 * asan.c (asan_emit_stack_protection): Force the base to align to
8620 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
8621 appropriate bits if STRICT_ALIGNMENT.
8622 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
8623 when asan is on.
8624 (expand_used_vars): Leave a space in the stack frame for alignment
8625 if STRICT_ALIGNMENT.
8626
8627 2014-04-21 David Malcolm <dmalcolm@redhat.com>
8628
8629 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
8630 than a gimple.
8631 (gimple_store_p): Likewise.
8632 (gimple_assign_load_p): Likewise.
8633 (gimple_assign_cast_p): Likewise.
8634 (gimple_clobber_p): Likewise.
8635
8636 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
8637 rather than a gimple.
8638 (gimple_assign_cast_p): Likewise.
8639
8640 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8641
8642 PR target/60735
8643 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
8644 If mode is DDmode and TARGET_E500_DOUBLE allow move.
8645
8646 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
8647 more debug information for E500 if -mdebug=reg.
8648
8649 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
8650
8651 PR target/60909
8652 * config/i386/i386.c (ix86_expand_builtin)
8653 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
8654 register for target RTX.
8655 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
8656
8657 2014-04-18 Cong Hou <congh@google.com>
8658
8659 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
8660 the widen-mult pattern by handling two operands with different sizes,
8661 and operands whose size is smaller than half of the result type.
8662
8663 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
8664
8665 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
8666 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
8667 (do_estimate_edge_time): Compute it.
8668 * ipa-inline.c (want_inline_small_function_p): Bypass
8669 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
8670
8671 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
8672
8673 * ipa-inline.c (spec_rem): New static variable.
8674 (dump_overall_stats): New function.
8675 (dump_inline_stats): New function.
8676
8677 2014-04-18 Richard Henderson <rth@redhat.com>
8678
8679 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
8680 to GET_MODE_SIZE, not a reg_class_t.
8681
8682 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8683
8684 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
8685 (vsx_xxmrglw_<mode>): Likewise.
8686
8687 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
8688
8689 PR target/60876
8690 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
8691 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
8692 (rs6000_init_hard_regno_mode_ok): Likewise.
8693
8694 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
8695
8696 * ipa-inline.c (inline_small_functions): Account only non-cold
8697 functions.
8698 * doc/invoke.texi (inline-unit-growth): Update documentation.
8699
8700 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
8701
8702 * config/rs6000/rs6000.md (addti3, subti3): New.
8703
8704 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
8705
8706 PR target/60863
8707 * config/i386/i386.c (ix86_expand_clear): Remove outdated
8708 comment. Check optimize_insn_for_size_p instead of
8709 optimize_insn_for_speed_p.
8710
8711 2014-04-17 Martin Jambor <mjambor@suse.cz>
8712
8713 * gimple-iterator.c (gsi_start_edge): New function.
8714 * gimple-iterator.h (gsi_start_edge): Declare.
8715 * tree-sra.c (single_non_eh_succ): New function.
8716 (disqualify_ops_if_throwing_stmt): Renamed to
8717 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
8718 having one non-EH successor BB.
8719 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
8720 generate loads into replacements.
8721 (sra_modify_assign): Likewise and and also use the simple path for
8722 such statements.
8723 (sra_modify_function_body): Commit statements on edges.
8724
8725 2014-04-17 Richard Biener <rguenther@suse.de>
8726
8727 PR middle-end/60849
8728 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
8729 comparison results and add clarifying comment.
8730
8731 2014-04-17 Jakub Jelinek <jakub@redhat.com>
8732
8733 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
8734 (blank_mode): Initialize it.
8735 (emit_mode_size_inline, emit_mode_nunits_inline,
8736 emit_mode_inner_inline): New functions.
8737 (emit_insn_modes_h): Call them and surround their output with
8738 #if GCC_VERSION >= 4001 ... #endif.
8739 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
8740 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
8741 mode_* arrays if the argument is __builtin_constant_p.
8742 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
8743 is enum machine_mode.
8744
8745 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8746
8747 * passes.c (opt_pass::execute): Adjust.
8748 (pass_manager::execute_pass_mode_switching): Likewise.
8749 (early_local_passes::execute): Likewise.
8750 (execute_one_pass): Pass cfun to the pass's execute method.
8751 * tree-pass.h (opt_pass::execute): Add function * argument.
8752 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
8753 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
8754 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
8755 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8756 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
8757 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
8758 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
8759 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
8760 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
8761 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
8762 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
8763 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
8764 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
8765 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
8766 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
8767 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
8768 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
8769 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
8770 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8771 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8772 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8773 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8774 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8775 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8776 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8777 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8778 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
8779 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
8780 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
8781 Adjust.
8782
8783 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8784
8785 * passes.c (opt_pass::gate): Take function * argument.
8786 (gate_all_early_local_passes): Merge into
8787 (early_local_passes::gate): this.
8788 (gate_all_early_optimizations): Merge into
8789 (all_early_optimizations::gate): this.
8790 (gate_all_optimizations): Mege into
8791 (all_optimizations::gate): this.
8792 (gate_all_optimizations_g): Merge into
8793 (all_optimizations_g::gate): this.
8794 (gate_rest_of_compilation): Mege into
8795 (rest_of_compilation::gate): this.
8796 (gate_postreload): Merge into
8797 (postreload::gate): this.
8798 (dump_one_pass): Pass cfun to the pass's gate method.
8799 (execute_ipa_summary_passes): Likewise.
8800 (execute_one_pass): Likewise.
8801 (ipa_write_summaries_2): Likewise.
8802 (ipa_write_optimization_summaries_1): Likewise.
8803 (ipa_read_summaries_1): Likewise.
8804 (ipa_read_optimization_summaries_1): Likewise.
8805 (execute_ipa_stmt_fixups): Likewise.
8806 * tree-pass.h (opt_pass::gate): Add function * argument.
8807 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
8808 combine-stack-adj.c, combine.c, compare-elim.c,
8809 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8810 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
8811 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
8812 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
8813 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
8814 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
8815 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
8816 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
8817 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
8818 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
8819 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
8820 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
8821 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
8822 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
8823 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
8824 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8825 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8826 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8827 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8828 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8829 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8830 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8831 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
8832 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
8833 var-tracking.c, vtable-verify.c, web.c: Adjust.
8834
8835 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8836
8837 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
8838 * configure: Regenerate.
8839
8840 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8841
8842 * passes.c (dump_one_pass): don't check pass->has_gate.
8843 (execute_ipa_summary_passes): Likewise.
8844 (execute_one_pass): Likewise.
8845 (ipa_write_summaries_2): Likewise.
8846 (ipa_write_optimization_summaries_1): Likewise.
8847 (ipa_read_optimization_summaries_1): Likewise.
8848 (execute_ipa_stmt_fixups): Likewise.
8849 * tree-pass.h (pass_data::has_gate): Remove.
8850 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
8851 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
8852 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
8853 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
8854 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
8855 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
8856 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
8857 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
8858 gimple-low.c, gimple-ssa-isolate-paths.c,
8859 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
8860 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
8861 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
8862 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
8863 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
8864 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
8865 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
8866 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
8867 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
8868 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
8869 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
8870 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
8871 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8872 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
8873 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
8874 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
8875 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
8876 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
8877 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
8878 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
8879 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
8880 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
8881 Adjust.
8882
8883 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8884
8885 * pass_manager.h (pass_manager::register_dump_files_1): Remove
8886 declaration.
8887 * passes.c (pass_manager::register_dump_files_1): Merge into
8888 (pass_manager::register_dump_files): this, and remove its handling of
8889 properties since the pass always has the properties anyway.
8890 (pass_manager::pass_manager): Adjust.
8891
8892 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
8893
8894 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
8895 * passes.c (pass_manager::register_dump_files_1): Remove dead code
8896 dealing with properties.
8897 (pass_manager::register_dump_files): Adjust.
8898
8899 2014-03-20 Mark Wielaard <mjw@redhat.com>
8900
8901 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
8902 then represent the bound as normal constant value.
8903
8904 2014-04-17 Jakub Jelinek <jakub@redhat.com>
8905
8906 PR target/60847
8907 Forward port from 4.8 branch
8908 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
8909
8910 * config/i386/bmiintrin.h (_blsi_u32): New.
8911 (_blsi_u64): Ditto.
8912 (_blsr_u32): Ditto.
8913 (_blsr_u64): Ditto.
8914 (_blsmsk_u32): Ditto.
8915 (_blsmsk_u64): Ditto.
8916 (_tzcnt_u32): Ditto.
8917 (_tzcnt_u64): Ditto.
8918
8919 2014-04-17 Kito Cheng <kito@0xlab.org>
8920
8921 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
8922
8923 2014-04-17 Richard Biener <rguenther@suse.de>
8924
8925 PR middle-end/60849
8926 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
8927 boolean results for comparisons.
8928
8929 2014-04-17 Richard Biener <rguenther@suse.de>
8930
8931 PR tree-optimization/60836
8932 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
8933 initial PHI args to be gimple values.
8934
8935 2014-04-17 Richard Biener <rguenther@suse.de>
8936
8937 PR tree-optimization/60841
8938 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
8939 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
8940 of stmts to SLP build.
8941 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
8942 (vect_analyze_slp): Likewise.
8943 (vect_analyze_slp_instance): Likewise.
8944 (vect_build_slp_tree): Limit overall SLP tree growth.
8945 * tree-vectorizer.h (vect_analyze_data_refs,
8946 vect_analyze_slp): Adjust prototypes.
8947
8948 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8949
8950 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
8951 Silvermont.
8952
8953 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8954
8955 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
8956 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
8957 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
8958 for TARGET_SLOW_PSHUFB
8959
8960 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
8961
8962 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
8963 * config/i386/i386.c (intel_cost): Ditto.
8964
8965 2014-04-17 Joey Ye <joey.ye@arm.com>
8966
8967 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
8968
8969 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8970
8971 * opts.c (common_handle_option): Disable -fipa-reference coorectly
8972 with -fuse-profile.
8973
8974 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8975
8976 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
8977 (type_all_derivations_known_p): New predicate.
8978 (type_all_ctors_visible_p): New predicate.
8979 (type_possibly_instantiated_p): New predicate.
8980 (get_odr_type): Compute all_derivations_known.
8981 (dump_odr_type): Dump the flag.
8982 (maybe_record_type): Cleanup.
8983 (record_target_from_binfo): Add bases_to_consider array;
8984 record bases for types w/o instances and skip CXX destructor.
8985 (possible_polymorphic_call_targets_1): Add bases_to_consider
8986 and consider_construction parameters; check if type may have instance.
8987 (get_polymorphic_call_info): Set maybe_in_construction to true
8988 when we know nothing.
8989 (record_targets_from_bases): Skip CXX destructors; they are
8990 never called for types in construction.
8991 (possible_polymorphic_call_targets): Do not record target when
8992 type may not have instance.
8993
8994 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
8995
8996 PR ipa/60854
8997 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
8998 external aliases alive, too.
8999
9000 2014-04-16 Andrew Pinski <apinski@cavium.com>
9001
9002 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
9003 definition.
9004
9005 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
9006
9007 * final.c (compute_alignments): Do not apply loop alignment to a block
9008 falling through to the exit.
9009
9010 2014-04-16 Catherine Moore <clm@codesourcery.com>
9011
9012 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
9013 Adjust constraints for microMIPS store patterns.
9014
9015 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
9016
9017 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
9018
9019 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
9020
9021 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
9022 (append_use): Run at -O0.
9023 (append_vdef): Likewise.
9024 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
9025 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
9026
9027 2014-04-16 Jakub Jelinek <jakub@redhat.com>
9028
9029 PR tree-optimization/60844
9030 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
9031 (propagate_op_to_single_use, remove_visited_stmt_chain,
9032 linearize_expr, repropagate_negates, reassociate_bb): Use it
9033 instead of gsi_remove.
9034
9035 2014-04-16 Martin Jambor <mjambor@suse.cz>
9036
9037 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
9038 ipa_transforms_to_apply.
9039 (cgraph_function_versioning): Assert that old_node has empty
9040 ipa_transforms_to_apply.
9041 * trans-mem.c (ipa_tm_create_version): Likewise.
9042 * tree-inline.c (tree_function_versioning): Do not duplicate
9043 ipa_transforms_to_apply.
9044
9045 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9046
9047 PR target/60817
9048 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
9049 x86_64-*-* cases.
9050 Pass necessary as flags on 64-bit Solaris/x86.
9051 Use lowercase relocs for x86_64-*-*.
9052 * configure: Regenerate.
9053
9054 2014-04-15 Jan Hubicka <jh@suse.cz>
9055
9056 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
9057 (maybe_record_node, likely_target_p): Use it.
9058
9059 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9060
9061 PR target/60839
9062 Revert following patch
9063
9064 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9065
9066 PR target/60735
9067 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
9068 software floating point or no floating point registers, do not
9069 allow any type in the FPRs. Eliminate a test for SPE SIMD types
9070 in GPRs that occurs after we tested for GPRs that would never be
9071 true.
9072
9073 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
9074 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
9075 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
9076 specifically allow DDmode, since that does not use the SPE SIMD
9077 instructions.
9078
9079 2014-03-21 Mark Wielaard <mjw@redhat.com>
9080
9081 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
9082 as unsigned or int depending on type and value used.
9083
9084 2014-04-15 Richard Biener <rguenther@suse.de>
9085
9086 PR rtl-optimization/56965
9087 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
9088 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
9089 ... here.
9090 * alias.c (true_dependence_1): Do not call
9091 nonoverlapping_component_refs_p.
9092 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
9093 nonoverlapping_component_refs_p.
9094 (indirect_refs_may_alias_p): Likewise.
9095
9096 2014-04-15 Teresa Johnson <tejohnson@google.com>
9097
9098 * cfg.c (dump_bb_info): Fix flags check.
9099 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
9100
9101 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9102
9103 PR rtl-optimization/60663
9104 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
9105 avoid 0 cost.
9106
9107 2014-04-15 Richard Biener <rguenther@suse.de>
9108
9109 * lto-streamer.h (LTO_major_version): Bump to 4.
9110
9111 2014-04-15 Richard Biener <rguenther@suse.de>
9112
9113 * common.opt (lto_partition_model): New enum.
9114 (flto-partition=): Merge separate options with a single with argument,
9115 add -flto-partition=one support.
9116 * flag-types.h (enum lto_partition_model): Declare.
9117 * opts.c (finish_options): Remove duplicate -flto-partition=
9118 option check.
9119 * lto-wrapper.c (run_gcc): Adjust.
9120
9121 2014-04-15 Richard Biener <rguenther@suse.de>
9122
9123 * alias.c (ncr_compar): New function.
9124 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
9125
9126 2014-04-15 Richard Biener <rguenther@suse.de>
9127
9128 * alias.c (record_component_aliases): Do not walk BINFOs.
9129
9130 2014-04-15 Richard Biener <rguenther@suse.de>
9131
9132 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9133 Add struct function argument and adjust.
9134 (find_func_aliases_for_call): Likewise.
9135 (find_func_aliases): Likewise.
9136 (find_func_clobbers): Likewise.
9137 (intra_create_variable_infos): Likewise.
9138 (compute_points_to_sets): Likewise.
9139 (ipa_pta_execute): Adjust. Do not push/pop cfun.
9140
9141 2014-04-15 Richard Biener <rguenther@suse.de>
9142
9143 * tree.c (iterative_hash_expr): Use enum tree_code_class
9144 to store TREE_CODE_CLASS.
9145 (tree_block): Likewise.
9146 (tree_set_block): Likewise.
9147 * tree.h (fold_build_pointer_plus_loc): Use
9148 convert_to_ptrofftype_loc.
9149
9150 2014-04-15 Jakub Jelinek <jakub@redhat.com>
9151
9152 PR plugins/59335
9153 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
9154 added in 4.9.
9155
9156 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
9157
9158 * cfgloop.h (struct loop): Move force_vectorize down.
9159 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
9160 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
9161 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
9162 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
9163 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
9164 * tree-core.h (enum annot_expr_kind): Add new kind values.
9165 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
9166 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
9167 kinds.
9168 * tree.def (ANNOTATE_EXPR): Tweak comment.
9169
9170 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
9171
9172 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
9173 cxa_pure_virtual).
9174
9175 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
9176
9177 * tree.h (TYPE_IDENTIFIER): Declare.
9178 * tree.c (subrange_type_for_debug_p): Use it.
9179 * godump.c (go_format_type): Likewise.
9180 * dwarf2out.c (is_cxx_auto, modified_type_die,
9181 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
9182 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
9183
9184 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
9185
9186 PR lto/60820
9187 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
9188
9189 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
9190
9191 * config/i386/i386.c (examine_argument): Return bool. Return true if
9192 parameter should be passed in memory.
9193 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
9194 (construct_container): Update calls to examine_argument.
9195 (function_arg_advance_64): Ditto.
9196 (return_in_memory_32): Merge with ix86_return_in_memory.
9197 (return_in_memory_64): Ditto.
9198 (return_in_memory_ms_64): Ditto.
9199
9200 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
9201
9202 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
9203 * coverage.c (coverage_compute_profile_id): Handle externally visible
9204 symbols.
9205
9206 2014-04-14 Martin Jambor <mjambor@suse.cz>
9207
9208 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
9209 DECL_DISREGARD_INLINE_LIMITS functions.
9210
9211 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
9212
9213 PR target/60827
9214 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
9215
9216 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
9217
9218 PR target/60827
9219 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
9220 optimize_insn_for_speed_p instead of
9221 optimize_function_for_speed_p.
9222
9223 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
9224
9225 * doc/invoke.texi (free): Document AArch64.
9226
9227 2014-04-14 Richard Biener <rguenther@suse.de>
9228
9229 PR tree-optimization/60042
9230 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
9231 (insert_into_preds_of_block): Do not prevent PHI insertion
9232 for REFERENCE exprs here ...
9233 (eliminate_dom_walker::before_dom_children): ... but prevent
9234 their use here under similar conditions when applied to the
9235 IL after PRE optimizations.
9236
9237 2014-04-14 Richard Biener <rguenther@suse.de>
9238
9239 * passes.def: Move early points-to after early SRA.
9240
9241 2014-04-14 Richard Biener <rguenther@suse.de>
9242
9243 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
9244 check for which sign-changes we allow when forwarding
9245 a converted value into a switch.
9246
9247 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
9248
9249 * stor-layout.c (place_field): Finalize non-constant offset for the
9250 field, if any.
9251
9252 2014-04-14 Richard Biener <rguenther@suse.de>
9253
9254 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
9255 as argument.
9256 (expand_switch_using_bit_tests_p): Likewise.
9257 (process_switch): Compute and pass on speed_p based on the
9258 switch stmt.
9259 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
9260 optimize_bb_for_speed_p.
9261
9262 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
9263
9264 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
9265 * function.h (struct function): Rename has_force_vect_loops into
9266 has_force_vectorize_loops.
9267 * lto-streamer-in.c (input_cfg): Adjust for renaming.
9268 (input_struct_function_base): Likewise.
9269 * lto-streamer-out.c (output_cfg): Likewise.
9270 (output_struct_function_base): Likewise.
9271 * omp-low.c (expand_omp_simd): Likewise.
9272 * tree-cfg.c (move_sese_region_to_fn): Likewise.
9273 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
9274 (version_loop_for_if_conversion): Likewise.
9275 (tree_if_conversion): Likewise.
9276 (main_tree_if_conversion): Likewise.
9277 (gate_tree_if_conversion): Likewise.
9278 * tree-inline.c (copy_loops): Likewise.
9279 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
9280 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
9281 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
9282 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
9283 * tree-vectorizer.c (vectorize_loops): Likewise.
9284 * tree-vectorizer.h (unlimited_cost_model): Likewise.
9285
9286 2014-04-14 Richard Biener <rguenther@suse.de>
9287
9288 PR lto/60720
9289 * lto-streamer-out.c (wrap_refs): New function.
9290 (lto_output): Wrap symbol references in global initializes in
9291 type-preserving MEM_REFs.
9292
9293 2014-04-14 Christian Bruel <christian.bruel@st.com>
9294
9295 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
9296
9297 2014-04-14 Christian Bruel <christian.bruel@st.com>
9298
9299 * config/sh/sh.md (setmemqi): New expand pattern.
9300 * config/sh/sh.h (CLEAR_RATIO): Define.
9301 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
9302 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
9303
9304 2014-04-14 Richard Biener <rguenther@suse.de>
9305
9306 PR middle-end/55022
9307 * fold-const.c (negate_expr_p): Don't negate directional rounding
9308 division.
9309 (fold_negate_expr): Likewise.
9310
9311 2014-04-14 Richard Biener <rguenther@suse.de>
9312
9313 PR tree-optimization/59817
9314 PR tree-optimization/60453
9315 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
9316 recursion to catch all CHRECs in the scalar evolution and restrict
9317 the predicate for the remains appropriately.
9318
9319 2014-04-12 Catherine Moore <clm@codesourcery.com>
9320
9321 * config/mips/constraints.md: Add new register constraint "kb".
9322 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
9323 (*movhi_internal): Likewise.
9324 (*movqi_internal): Likewise.
9325 * config/mips/mips.h (M16_STORE_REGS): New register class.
9326 (REG_CLASS_NAMES): Add M16_STORE_REGS.
9327 (REG_CLASS_CONTENTS): Likewise.
9328 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
9329
9330 2014-04-11 Tobias Burnus <burnus@net-b.de>
9331
9332 PR c/60194
9333 * doc/invoke.texi (-Wformat-signedness): Document it.
9334 (Wformat=2): Mention that this enables -Wformat-signedness.
9335
9336 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
9337
9338 * common/config/epiphany/epiphany-common.c
9339 (epiphany_option_optimization_table): Enable section anchors by
9340 default at -O1 or higher.
9341 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
9342 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
9343 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
9344 carries no extra cost.
9345 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
9346 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
9347 * config/epiphany/predicates.md (memclob_operand): New predicate.
9348 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
9349 Use memclob_operand predicate and X constraint for operand 3.
9350
9351 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
9352
9353 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
9354 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
9355 its operands.
9356
9357 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
9358
9359 PR rtl-optimization/60651
9360 * mode-switching.c (optimize_mode_switching): Make sure to emit
9361 sets of a lower numbered entity before sets of a higher numbered
9362 entity to a mode of the same or lower priority.
9363 When creating a seginfo for a basic block that starts with a code
9364 label, move the insertion point past the code label.
9365 (new_seginfo): Document and enforce requirement that
9366 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
9367 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
9368 * doc/tm.texi: Regenerate.
9369
9370 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
9371
9372 PR target/60811
9373 * config/arc/arc.c (arc_save_restore): Fix assert typo.
9374
9375 2013-04-11 Jakub Jelinek <jakub@redhat.com>
9376
9377 * BASE-VER: Set to 4.10.0.
9378
9379 2014-04-11 Tobias Burnus <burnus@net-b.de>
9380
9381 PR other/59055
9382 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
9383 * doc/gcc.texi (Service): Update description in the @menu
9384 * doc/invoke.texi (Option Summary): Remove misplaced and
9385 duplicated @menu.
9386
9387 2014-04-11 Steve Ellcey <sellcey@mips.com>
9388 Jakub Jelinek <jakub@redhat.com>
9389
9390 PR middle-end/60556
9391 * expr.c (convert_move): Use emit_store_flag_force instead of
9392 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
9393 argument to it.
9394
9395 2014-04-11 Richard Biener <rguenther@suse.de>
9396
9397 PR middle-end/60797
9398 * varasm.c (assemble_alias): Avoid endless error reporting
9399 recursion by setting TREE_ASM_WRITTEN.
9400
9401 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9402
9403 * config/s390/s390.md: Add a splitter for NOT rtx.
9404
9405 2014-04-11 Jakub Jelinek <jakub@redhat.com>
9406
9407 PR rtl-optimization/60663
9408 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
9409
9410 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
9411 Jakub Jelinek <jakub@redhat.com>
9412
9413 PR lto/60567
9414 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
9415 flag from decl_node to node.
9416
9417 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9418
9419 PR debug/60655
9420 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
9421 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
9422 ameliorating the cases where it can be.
9423
9424 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
9425
9426 Revert
9427 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
9428
9429 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
9430 (loadsync_<mode>): Change mode.
9431 (load_quadpti, store_quadpti): New.
9432 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
9433 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
9434 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
9435
9436 2014-04-09 Cong Hou <congh@google.com>
9437
9438 PR testsuite/60773
9439 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
9440 documentation.
9441
9442 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9443
9444 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
9445 instead of vnor to exploit possible fusion opportunity in the
9446 future.
9447 (altivec_expand_vec_perm_const_le): Likewise.
9448
9449 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
9450
9451 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
9452 (loadsync_<mode>): Change mode.
9453 (load_quadpti, store_quadpti): New.
9454 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
9455 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
9456
9457 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
9458
9459 PR target/60763
9460 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
9461 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
9462 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
9463
9464 2014-04-08 Richard Biener <rguenther@suse.de>
9465
9466 PR middle-end/60706
9467 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
9468 a 64bit widest int print double-int similar to on HWI64 hosts.
9469
9470 2014-04-08 Richard Biener <rguenther@suse.de>
9471
9472 PR tree-optimization/60785
9473 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
9474 default defs properly.
9475
9476 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
9477
9478 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
9479 (Weffc++): Likewise.
9480
9481 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
9482
9483 * ipa-devirt.c (maybe_record_node): When node is not recorded,
9484 set completep to false rather than true.
9485
9486 2014-04-07 Douglas B Rupp <rupp@adacore.com>
9487
9488 PR target/60504
9489 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
9490 ARM_TARGET2_DWARF_FORMAT.
9491
9492 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
9493
9494 PR target/60609
9495 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
9496 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
9497 ADDR_DIFF_VEC.
9498
9499 2014-04-07 Richard Biener <rguenther@suse.de>
9500
9501 PR tree-optimization/60766
9502 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
9503 (may_eliminate_iv): Convert cand_value_at result to desired type.
9504
9505 2014-04-07 Jason Merrill <jason@redhat.com>
9506
9507 PR c++/60731
9508 * common.opt (-fno-gnu-unique): Add.
9509 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
9510
9511 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9512
9513 * haifa-sched.c: Fix outdated function reference and minor
9514 grammar errors in introductory comment.
9515
9516 2014-04-07 Richard Biener <rguenther@suse.de>
9517
9518 PR middle-end/60750
9519 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
9520 for noreturn calls.
9521 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
9522
9523 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
9524
9525 PR debug/55794
9526 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
9527 size accounting for thunks.
9528 (pa_asm_output_mi_thunk): Use final_start_function() and
9529 final_end_function() to output function start and end directives.
9530
9531 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
9532
9533 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
9534 device specific ISA/ feature information. Remove short_sp and
9535 errata_skip ds. Add avr_device_specific_features enum to have device
9536 specific info.
9537 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
9538 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
9539 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
9540 updated device specific info.
9541 * config/avr/avr-mcus.def: Merge device specific details to
9542 dev_attribute field.
9543 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
9544 errata_skip.
9545 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
9546 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
9547 assembler if RMW isa supported by current device.
9548 * config/avr/genmultilib.awk: Update as device info structure changed.
9549 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
9550
9551 2014-04-04 Cong Hou <congh@google.com>
9552
9553 PR tree-optimization/60656
9554 * tree-vect-stmts.c (supportable_widening_operation):
9555 Fix a bug that elements in a vector with vect_used_by_reduction
9556 property are incorrectly reordered when the operation on it is not
9557 consistant with the one in reduction operation.
9558
9559 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
9560
9561 PR rtl-optimization/60155
9562 * gcse.c (record_set_data): New function.
9563 (single_set_gcse): New function.
9564 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
9565 (hoist_code): Likewise.
9566 (get_pressure_class_and_nregs): Likewise.
9567
9568 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
9569
9570 * explow.c (probe_stack_range): Emit a final optimization blockage.
9571
9572 2014-04-04 Anthony Green <green@moxielogic.com>
9573
9574 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
9575 typos.
9576
9577 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
9578
9579 PR ipa/59626
9580 * lto-cgraph.c (input_overwrite_node): Check that partitioning
9581 flags are set only during streaming.
9582 * ipa.c (process_references, walk_polymorphic_call_targets,
9583 symtab_remove_unreachable_nodes): Drop bodies of always inline
9584 after early inlining.
9585 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
9586
9587 2014-04-04 Jakub Jelinek <jakub@redhat.com>
9588 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9589
9590 PR debug/60655
9591 * dwarf2out.c (const_ok_for_output_1): Reject expressions
9592 containing a NOT.
9593
9594 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9595
9596 PR bootstrap/60743
9597 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
9598 duration.
9599 (cortex_a53_fdivd): Likewise.
9600
9601 2014-04-04 Martin Jambor <mjambor@suse.cz>
9602
9603 PR ipa/60640
9604 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
9605 Adjust all callers.
9606 * cgraph.c (clone_of_p): Also return true if thunks match.
9607 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
9608 cgraph_function_or_thunk_node and an obsolete comment.
9609 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
9610 file.
9611 (build_function_decl_skip_args): Likewise.
9612 (set_new_clone_decl_and_node_flags): New function.
9613 (duplicate_thunk_for_node): Likewise.
9614 (redirect_edge_duplicating_thunks): Likewise.
9615 (cgraph_clone_node): New parameter args_to_skip, pass it to
9616 redirect_edge_duplicating_thunks which is called instead of
9617 cgraph_redirect_edge_callee.
9618 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
9619 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
9620
9621 2014-04-04 Jeff Law <law@redhat.com>
9622
9623 PR target/60657
9624 * config/arm/predicates.md (const_int_I_operand): New predicate.
9625 (const_int_M_operand): Similarly.
9626 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
9627 const_int_operand.
9628 (insv_t2, extv_reg, extzv_t2): Likewise.
9629 (load_multiple_with_writeback): Similarly for const_int_I_operand.
9630 (pop_multiple_with_writeback_and_return): Likewise.
9631 (vfp_pop_multiple_with_writeback): Likewise
9632
9633 2014-04-04 Richard Biener <rguenther@suse.de>
9634
9635 PR ipa/60746
9636 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
9637 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
9638 non-GIMPLE_LABELs.
9639 * gimplify.h (gimple_add_tmp_var_fn): Declare.
9640 * gimplify.c (gimple_add_tmp_var_fn): New function.
9641 * gimple-expr.h (create_tmp_reg_fn): Declare.
9642 * gimple-expr.c (create_tmp_reg_fn): New function.
9643 * gimple-low.c (record_vars_into): Don't change cfun.
9644 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
9645 code generation without cfun.
9646
9647 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
9648
9649 PR bootstrap/60719
9650 * Makefile.in (install-driver): Fix shell scripting.
9651
9652 2014-04-03 Cong Hou <congh@google.com>
9653
9654 PR tree-optimization/60505
9655 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
9656 threshold of number of iterations below which no vectorization
9657 will be done.
9658 * tree-vect-loop.c (new_loop_vec_info):
9659 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
9660 * tree-vect-loop.c (vect_analyze_loop_operations):
9661 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
9662 * tree-vect-loop.c (vect_transform_loop):
9663 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
9664 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
9665 of iterations of the loop and see if we should build the epilogue.
9666
9667 2014-04-03 Richard Biener <rguenther@suse.de>
9668
9669 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
9670 (streamer_tree_cache_create): Adjust.
9671 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
9672 to allow optional nodes array.
9673 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
9674 (streamer_tree_cache_append): Likewise.
9675 (streamer_tree_cache_create): Create nodes array optionally
9676 as specified by parameter.
9677 * lto-streamer-out.c (create_output_block): Avoid maintaining
9678 the node array in the writer cache.
9679 (DFS_write_tree): Remove assertion.
9680 (produce_asm_for_decls): Free the out decl state hash table early.
9681 * lto-streamer-in.c (lto_data_in_create): Adjust for
9682 streamer_tree_cache_create prototype change.
9683
9684 2014-04-03 Richard Biener <rguenther@suse.de>
9685
9686 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
9687 set TREE_CHAIN to NULL_TREE.
9688
9689 2014-04-03 Richard Biener <rguenther@suse.de>
9690
9691 PR tree-optimization/60740
9692 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
9693 over all GIMPLE_COND operands.
9694
9695 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
9696
9697 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
9698 (Weffc++): Remove Scott's numbering, merge lists and reference
9699 Wnon-virtual-dtor.
9700
9701 2014-04-03 Nick Clifton <nickc@redhat.com>
9702
9703 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
9704 properly.
9705
9706 2014-04-03 Martin Jambor <mjambor@suse.cz>
9707
9708 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
9709 mention gcc_unreachable before failing.
9710 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
9711 removed symbols.
9712
9713 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
9714
9715 PR ipa/60659
9716 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
9717 inconsistent code and instead mark the context inconsistent.
9718 (possible_polymorphic_call_targets): For inconsistent contexts
9719 return empty complete list.
9720
9721 2014-04-02 Anthony Green <green@moxielogic.com>
9722
9723 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
9724 (extendqisi2, extendhisi2): Define.
9725 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
9726 (WCHAR_TYPE): Change to unsigned int.
9727
9728 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9729
9730 PR tree-optimization/60733
9731 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
9732 insertion point for PHI candidates to be the end of the feeding
9733 block for the PHI argument.
9734
9735 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
9736
9737 PR rtl-optimization/60650
9738 * lra-constraints.c (process_alt_operands): Decrease reject for
9739 earlyclobber matching.
9740
9741 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9742
9743 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
9744
9745 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9746
9747 * config/spu/spu.c (pad_bb): Do not crash when the last
9748 insn is CODE_FOR_blockage.
9749
9750 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9751
9752 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
9753 lies outside the target mode.
9754
9755 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9756
9757 PR target/60735
9758 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
9759 software floating point or no floating point registers, do not
9760 allow any type in the FPRs. Eliminate a test for SPE SIMD types
9761 in GPRs that occurs after we tested for GPRs that would never be
9762 true.
9763
9764 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
9765 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
9766 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
9767 specifically allow DDmode, since that does not use the SPE SIMD
9768 instructions.
9769
9770 2014-04-02 Richard Biener <rguenther@suse.de>
9771
9772 PR middle-end/60729
9773 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
9774 MODE_INTs. Properly use negv_optab.
9775 (expand_abs): Likewise.
9776
9777 2014-04-02 Richard Biener <rguenther@suse.de>
9778
9779 PR bootstrap/60719
9780 * Makefile.in (install-driver): Guard extra installs with special
9781 names properly.
9782
9783 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
9784
9785 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9786 Document vec_vgbbd.
9787
9788 2014-04-01 Richard Henderson <rth@redhat.com>
9789
9790 PR target/60704
9791 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
9792 alternative enabled before register allocation.
9793
9794 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
9795
9796 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
9797 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
9798 typo.
9799 (nios2_large_got_address): Remove unneeded 'sym' parameter.
9800 (nios2_got_address): Update nios2_large_got_address call site.
9801 (nios2_delegitimize_address): New function.
9802 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
9803 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9804 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
9805
9806 2014-04-01 Martin Husemann <martin@duskware.de>
9807
9808 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
9809 for -mabi=32.
9810
9811 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
9812
9813 PR rtl-optimization/60604
9814 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
9815 check from register_operand.
9816 (register_operand): Redefine in terms of general_operand.
9817 (nonmemory_operand): Use register_operand for the non-constant cases.
9818
9819 2014-04-01 Richard Biener <rguenther@suse.de>
9820
9821 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
9822
9823 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
9824
9825 * doc/invoke.texi (mapp-regs): Clarify.
9826
9827 2014-03-31 Ulrich Drepper <drepper@gmail.com>
9828
9829 * config/i386/avx512fintrin.h (__v32hi): Define type.
9830 (__v64qi): Likewise.
9831 (_mm512_set1_epi8): Define.
9832 (_mm512_set1_epi16): Define.
9833 (_mm512_set4_epi32): Define.
9834 (_mm512_set4_epi64): Define.
9835 (_mm512_set4_pd): Define.
9836 (_mm512_set4_ps): Define.
9837 (_mm512_setr4_epi64): Define.
9838 (_mm512_setr4_epi32): Define.
9839 (_mm512_setr4_pd): Define.
9840 (_mm512_setr4_ps): Define.
9841 (_mm512_setzero_epi32): Define.
9842
9843 2014-03-31 Martin Jambor <mjambor@suse.cz>
9844
9845 PR middle-end/60647
9846 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
9847 callsite_arguments_match_p. Updated all callers. Also check types of
9848 corresponding formal parameters and actual arguments.
9849 (not_all_callers_have_enough_arguments_p) Renamed to
9850 some_callers_have_mismatched_arguments_p.
9851
9852 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
9853
9854 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
9855
9856 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
9857
9858 PR target/60034
9859 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
9860 section anchor.
9861
9862 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
9863
9864 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
9865 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
9866 Split out
9867 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
9868 Use FMAMODE_NOVF512 mode iterator.
9869 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
9870 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
9871 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
9872 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
9873 Split out
9874 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
9875 Use VF_128_256 mode iterator.
9876 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
9877 Ditto.
9878
9879 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9880
9881 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
9882 static chain if needed.
9883
9884 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
9885
9886 PR target/60697
9887 * lra-constraints.c (index_part_to_reg): New.
9888 (process_address): Use it.
9889
9890 2014-03-27 Jeff Law <law@redhat.com>
9891 Jakub Jelinek <jakub@redhat.com>
9892
9893 PR target/60648
9894 * expr.c (do_tablejump): Use simplify_gen_binary rather than
9895 gen_rtx_{PLUS,MULT} to build up the address expression.
9896
9897 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
9898 creating non-canonical RTL.
9899
9900 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9901
9902 PR ipa/60243
9903 * ipa-inline.c (want_inline_small_function_p): Short circuit large
9904 functions; reorganize to make cheap checks first.
9905 (inline_small_functions): Do not estimate growth when dumping;
9906 it is expensive.
9907 * ipa-inline.h (inline_summary): Add min_size.
9908 (growth_likely_positive): New function.
9909 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
9910 (set_cond_stmt_execution_predicate): Cleanup.
9911 (estimate_edge_size_and_time): Compute min_size.
9912 (estimate_calls_size_and_time): Likewise.
9913 (estimate_node_size_and_time): Likewise.
9914 (inline_update_overall_summary): Update min_size.
9915 (do_estimate_edge_time): Likewise.
9916 (do_estimate_edge_size): Update.
9917 (do_estimate_edge_hints): Update.
9918 (growth_likely_positive): New function.
9919
9920 2014-03-28 Jakub Jelinek <jakub@redhat.com>
9921
9922 PR target/60693
9923 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
9924 also if addr has VOIDmode.
9925
9926 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9927
9928 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
9929 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
9930 Declare extern.
9931 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
9932 instructions as well as AdvancedSIMD loads.
9933
9934 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9935
9936 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
9937 Use crypto_aese type.
9938 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
9939 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
9940 crypto_aese, crypto_aesmc. Move to types.md.
9941 * config/arm/types.md (crypto_aes): Split into crypto_aese,
9942 crypto_aesmc.
9943 * config/arm/iterators.md (crypto_type): Likewise.
9944
9945 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
9946
9947 * cgraph.c: Include expr.h and tree-dfa.h.
9948 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
9949 remove LHS.
9950
9951 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
9952
9953 PR target/60675
9954 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
9955 regs from checking multi-reg pseudos.
9956
9957 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9958
9959 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
9960
9961 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9962
9963 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
9964 if it would clobber the stack pointer, even temporarily.
9965
9966 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
9967
9968 * mode-switching.c: Make small adjustments to the top comment.
9969
9970 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9971
9972 * config/rs6000/constraints.md (wD constraint): New constraint to
9973 match the constant integer to get the top DImode/DFmode out of a
9974 vector in a VSX register.
9975
9976 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
9977 match the constant integer to get the top DImode/DFmode out of a
9978 vector in a VSX register.
9979
9980 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
9981 for ISA 2.07.
9982
9983 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9984 vbpermq builtins.
9985
9986 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
9987 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
9988
9989 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
9990 Optimize vec_extract of 64-bit values, where the value being
9991 extracted is in the top word, where we can use scalar
9992 instructions. Add direct move and store support. Combine the big
9993 endian/little endian vector select load support into a single insn.
9994 (vsx_extract_<mode>_internal1): Likewise.
9995 (vsx_extract_<mode>_internal2): Likewise.
9996 (vsx_extract_<mode>_load): Likewise.
9997 (vsx_extract_<mode>_store): Likewise.
9998 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
9999 combined into vsx_extract_<mode>_load.
10000 (vsx_extract_<mode>_one_le): Likewise.
10001
10002 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
10003 define the top 64-bit vector element.
10004
10005 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
10006 constraint.
10007
10008 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10009 Document vec_vbpermq builtin.
10010
10011 PR target/60672
10012 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
10013 enable use of xxsldwi and xxpermdi builtin functions.
10014 (vec_xxpermdi): Likewise.
10015
10016 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10017 Document use of vec_xxsldwi and vec_xxpermdi builtins.
10018
10019 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
10020
10021 PR rtl-optimization/60650
10022 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
10023 first_p. Use it.
10024 (find_spills_for): New.
10025 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
10026 Spill all pseudos on the second iteration.
10027
10028 2014-03-27 Marek Polacek <polacek@redhat.com>
10029
10030 PR c/50347
10031 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
10032 types.
10033
10034 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10035
10036 * config/s390/s390.c (s390_can_use_return_insn): Check for
10037 call-saved FPRs on 31 bit.
10038
10039 2014-03-27 Jakub Jelinek <jakub@redhat.com>
10040
10041 PR middle-end/60682
10042 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
10043 if they need regimplification, just drop them instead of
10044 calling gimple_regimplify_operands on them.
10045
10046 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
10047
10048 PR target/60580
10049 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
10050 (aarch64_frame_pointer_required): Adjust logic.
10051 (aarch64_can_eliminate): Adjust logic.
10052 (aarch64_override_options_after_change): Adjust logic.
10053
10054 2014-03-27 Dehao Chen <dehao@google.com>
10055
10056 * ipa-inline.c (early_inliner): Update node's inline info.
10057
10058 2014-03-26 Dehao Chen <dehao@google.com>
10059
10060 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
10061 compiler inserted conditional jumps for NAN float check.
10062
10063 2014-03-26 Jakub Jelinek <jakub@redhat.com>
10064
10065 * ubsan.h (ubsan_create_data): Change second argument's type
10066 to const location_t *.
10067 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
10068 _("<unknown>").
10069 (ubsan_create_data): Change second argument to const location_t *PLOC.
10070 Create Loc field whenever PLOC is non-NULL.
10071 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
10072 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
10073 callers.
10074
10075 PR other/59545
10076 * real.c (real_to_integer2): Change type of low to UHWI.
10077
10078 2014-03-26 Tobias Burnus <burnus@net-b.de>
10079
10080 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
10081 (CILK_SELF_SPECS): New define.
10082 (driver_self_specs): Use it.
10083
10084 2014-03-26 Richard Biener <rguenther@suse.de>
10085
10086 * tree-pretty-print.c (percent_K_format): Implement special
10087 case for LTO and its stripped down BLOCK tree.
10088
10089 2014-03-26 Jakub Jelinek <jakub@redhat.com>
10090
10091 PR sanitizer/60636
10092 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
10093
10094 * tree-vrp.c (simplify_internal_call_using_ranges): If only
10095 one range is range_int_cst_p, but not both, at least optimize
10096 addition/subtraction of 0 and multiplication by 0 or 1.
10097 * gimple-fold.c (gimple_fold_call): Fold
10098 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
10099 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
10100 INTEGER_CSTs, try to fold at least x * 0 and y - y.
10101
10102 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
10103
10104 PR rtl-optimization/60452
10105 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
10106 <case REG>: Return 1 for invalid offsets from the frame pointer.
10107
10108 2014-03-26 Marek Polacek <polacek@redhat.com>
10109
10110 PR c/37428
10111 * doc/extend.texi (C Extensions): Mention variable-length arrays in
10112 a structure/union.
10113
10114 2014-03-26 Marek Polacek <polacek@redhat.com>
10115
10116 PR c/39525
10117 * doc/extend.texi (Designated Inits): Describe what happens to omitted
10118 field members.
10119
10120 2014-03-26 Marek Polacek <polacek@redhat.com>
10121
10122 PR other/59545
10123 * ira-color.c (update_conflict_hard_regno_costs): Perform the
10124 multiplication in unsigned type.
10125
10126 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
10127
10128 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
10129
10130 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
10131
10132 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
10133
10134 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
10135
10136 PR ipa/60315
10137 * cif-code.def (UNREACHABLE) New code.
10138 * ipa-inline.c (inline_small_functions): Skip edges to
10139 __builtlin_unreachable.
10140 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
10141 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
10142 predicate to __bulitin_unreachable.
10143 (set_cond_stmt_execution_predicate): Fix issue when
10144 invert_tree_comparison returns ERROR_MARK.
10145 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
10146 propagate to inline clones.
10147 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
10148 to unreachable.
10149 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
10150 * cgraphclones.c (cgraph_clone_node): If call destination is already
10151 ureachable, do not redirect it back.
10152 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
10153 unreachable.
10154
10155 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
10156
10157 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
10158 Do not modify inline clones.
10159
10160 2014-03-25 Jakub Jelinek <jakub@redhat.com>
10161
10162 * config/i386/i386.md (general_sext_operand): New mode attr.
10163 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
10164 don't generate (sign_extend (const_int)).
10165 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
10166 operands[2]. Use We constraint instead of <i> and
10167 <general_sext_operand> predicate instead of <general_operand>.
10168 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
10169 * config/i386/constraints.md (We): New constraint.
10170 * config/i386/predicates.md (x86_64_sext_operand,
10171 sext_operand): New predicates.
10172
10173 2014-03-25 Martin Jambor <mjambor@suse.cz>
10174
10175 PR ipa/60600
10176 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
10177 inconsistent devirtualizations to __builtin_unreachable.
10178
10179 2014-03-25 Marek Polacek <polacek@redhat.com>
10180
10181 PR c/35449
10182 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
10183
10184 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
10185
10186 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
10187 order of elements for big-endian.
10188
10189 2014-03-25 Richard Biener <rguenther@suse.de>
10190
10191 PR middle-end/60635
10192 * gimplify-me.c (gimple_regimplify_operands): Update the
10193 re-gimplifed stmt.
10194
10195 2014-03-25 Martin Jambor <mjambor@suse.cz>
10196
10197 PR ipa/59176
10198 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
10199 (lto_output_varpool_node): Likewise.
10200 (input_overwrite_node): Likewise.
10201 (input_varpool_node): Likewise.
10202
10203 2014-03-25 Richard Biener <rguenther@suse.de>
10204
10205 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
10206 (run_gcc): Likewise.
10207
10208 2014-03-25 Jakub Jelinek <jakub@redhat.com>
10209
10210 * combine.c (simplify_compare_const): Add MODE argument.
10211 Handle mode_width 0 as very large mode_width.
10212 (try_combine, simplify_comparison): Adjust callers.
10213
10214 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
10215 type to avoid signed integer overflow.
10216 * explow.c (plus_constant): Likewise.
10217
10218 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
10219
10220 * doc/generic.texi: Correct typos.
10221
10222 2014-03-24 Tobias Burnus <burnus@net-b.de>
10223
10224 * doc/invoke.texi (-flto): Expand section about
10225 using static libraries with LTO.
10226
10227 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10228
10229 PR rtl-optimization/60501
10230 * optabs.def (addptr3_optab): New optab.
10231 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
10232 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
10233 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
10234
10235 * lra.c (emit_add3_insn): Use the addptr pattern if available.
10236
10237 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
10238
10239 2014-03-24 Ulrich Drepper <drepper@gmail.com>
10240
10241 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
10242 _mm512_set1_pd.
10243
10244 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
10245 (_mm256_undefined_ps): Define.
10246 (_mm256_undefined_pd): Define.
10247 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
10248 (_mm_undefined_pd): Define.
10249 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
10250 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
10251 (_mm512_undefined_ps): Define.
10252 (_mm512_undefined_pd): Define.
10253 Use _mm*_undefined_*.
10254 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
10255
10256 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
10257
10258 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
10259 (lshr_simd): DI mode added.
10260 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
10261 (aarch64_ushr_simddi): Likewise.
10262 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
10263 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
10264 (vshrd_n_u64): Likewise.
10265
10266 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10267
10268 * Makefile.in (s-macro_list): Depend on cc1.
10269
10270 2014-03-23 Teresa Johnson <tejohnson@google.com>
10271
10272 * ipa-utils.c (ipa_print_order): Use specified dump file.
10273
10274 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
10275
10276 PR rtl-optimization/60601
10277 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
10278
10279 * gcc.c (eval_spec_function): Initialize save_growing_value.
10280
10281 2014-03-22 Jakub Jelinek <jakub@redhat.com>
10282
10283 PR sanitizer/60613
10284 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
10285 code == MINUS_EXPR, never swap op0 with op1.
10286
10287 * toplev.c (init_local_tick): Avoid signed integer multiplication
10288 overflow.
10289 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
10290 shift by first operand's bitsize.
10291
10292 2014-03-21 Jakub Jelinek <jakub@redhat.com>
10293
10294 PR target/60610
10295 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
10296 redefine to 1 or 0.
10297 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
10298 TARGET_ISA_64BIT_P(x).
10299
10300 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10301
10302 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
10303 pattern for vector nor instead of subtract from splat(-1).
10304 (altivec_expand_vec_perm_const_le): Likewise.
10305
10306 2014-03-21 Richard Henderson <rth@twiddle.net>
10307
10308 PR target/60598
10309 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
10310 related insns after epilogue_completed.
10311
10312 2014-03-21 Martin Jambor <mjambor@suse.cz>
10313
10314 PR ipa/59176
10315 * cgraph.h (symtab_node): New flag body_removed.
10316 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
10317 when removing bodies.
10318 * symtab.c (dump_symtab_base): Dump body_removed flag.
10319 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
10320 had their bodies removed.
10321
10322 2014-03-21 Martin Jambor <mjambor@suse.cz>
10323
10324 PR ipa/60419
10325 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
10326 in the border.
10327
10328 2014-03-21 Richard Biener <rguenther@suse.de>
10329
10330 PR tree-optimization/60577
10331 * tree-core.h (struct tree_base): Document nothrow_flag use
10332 in DECL_NONALIASED.
10333 * tree.h (DECL_NONALIASED): New.
10334 (may_be_aliased): Adjust.
10335 * coverage.c (build_var): Set DECL_NONALIASED.
10336
10337 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
10338
10339 * expr.c (expand_expr_real_1): Remove outdated comment.
10340
10341 2014-03-20 Jakub Jelinek <jakub@redhat.com>
10342
10343 PR middle-end/60597
10344 * ira.c (adjust_cleared_regs): Call copy_rtx on
10345 *reg_equiv[REGNO (loc)].src_p before passing it to
10346 simplify_replace_fn_rtx.
10347
10348 PR target/60568
10349 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
10350 into CONST, put pic register as first operand of PLUS. Use
10351 gen_const_mem for both 32-bit and 64-bit PIC got loads.
10352
10353 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10354
10355 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
10356
10357 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
10358
10359 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
10360 around for store forwarding issue in the FPU on the UT699.
10361 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
10362 loads and operations if -mfix-ut699 is specified.
10363 (divtf3_hq): Tweak attribute.
10364 (sqrttf2_hq): Likewise.
10365
10366 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
10367
10368 * calls.c (store_one_arg): Remove incorrect const qualification on the
10369 type of the temporary.
10370 * cfgexpand.c (expand_return): Likewise.
10371 * expr.c (expand_constructor): Likewise.
10372 (expand_expr_real_1): Likewise.
10373
10374 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10375
10376 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
10377 of parts.
10378
10379 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10380
10381 PR target/60039
10382 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
10383
10384 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
10385
10386 * config/arm/aarch-common-protos.h
10387 (alu_cost_table): Fix spelling of "extend".
10388 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
10389
10390 2014-03-19 Richard Biener <rguenther@suse.de>
10391
10392 PR middle-end/60553
10393 * tree-core.h (tree_type_common): Re-order pointer members
10394 to reduce recursion depth during GC walks.
10395
10396 2014-03-19 Marek Polacek <polacek@redhat.com>
10397
10398 PR sanitizer/60569
10399 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
10400 before accessing it.
10401
10402 2014-03-19 Richard Biener <rguenther@suse.de>
10403
10404 PR lto/59543
10405 * lto-streamer-in.c (input_function): In WPA stage do not drop
10406 debug stmts.
10407
10408 2014-03-19 Jakub Jelinek <jakub@redhat.com>
10409
10410 PR tree-optimization/60559
10411 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
10412 with build_zero_cst assignment.
10413
10414 2014-03-18 Kai Tietz <ktietz@redhat.com>
10415
10416 PR rtl-optimization/56356
10417 * sdbout.c (sdbout_parms): Verify that parms'
10418 incoming argument is valid.
10419 (sdbout_reg_parms): Likewise.
10420
10421 2014-03-18 Richard Henderson <rth@redhat.com>
10422
10423 PR target/60562
10424 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
10425 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
10426 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
10427
10428 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
10429
10430 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
10431 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
10432 Italicize plugin event names in description. Explain that
10433 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
10434 Remind that no GCC functions should be called after PLUGIN_FINISH.
10435 Explain what pragmas with expansion are.
10436
10437 2014-03-18 Martin Liska <mliska@suse.cz>
10438
10439 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
10440 gimple call statement is update.
10441 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
10442 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
10443
10444 2014-03-18 Jakub Jelinek <jakub@redhat.com>
10445
10446 PR sanitizer/60557
10447 * ubsan.c (ubsan_instrument_unreachable): Call
10448 initialize_sanitizer_builtins.
10449 (ubsan_pass): Likewise.
10450
10451 PR sanitizer/60535
10452 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
10453 varpool_finalize_decl instead of rest_of_decl_compilation.
10454
10455 2014-03-18 Richard Biener <rguenther@suse.de>
10456
10457 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
10458 by using bitmap_and_compl instead of bitmap_and_compl_into.
10459 (df_rd_transfer_function): Likewise.
10460
10461 2014-03-18 Richard Biener <rguenther@suse.de>
10462
10463 * doc/lto.texi (fresolution): Fix typo.
10464
10465 2014-03-18 Richard Biener <rguenther@suse.de>
10466
10467 * doc/invoke.texi (flto): Update for changes in 4.9.
10468
10469 2014-03-18 Richard Biener <rguenther@suse.de>
10470
10471 * doc/loop.texi: Remove section on the removed lambda framework.
10472 Update loop docs with recent changes in preserving loop structure.
10473
10474 2014-03-18 Richard Biener <rguenther@suse.de>
10475
10476 * doc/lto.texi (-fresolution): Document.
10477
10478 2014-03-18 Richard Biener <rguenther@suse.de>
10479
10480 * doc/contrib.texi: Adjust my name.
10481
10482 2014-03-18 Jakub Jelinek <jakub@redhat.com>
10483
10484 PR ipa/58721
10485 * internal-fn.c: Include diagnostic-core.h.
10486 (expand_BUILTIN_EXPECT): New function.
10487 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
10488 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
10489 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
10490 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
10491 IFN_BUILTIN_EXPECT.
10492 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
10493 Revert 3 argument __builtin_expect code.
10494 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
10495 * gimple-fold.c (gimple_fold_call): Likewise.
10496 * tree.h (fold_builtin_expect): New prototype.
10497 * builtins.c (build_builtin_expect_predicate): Add predictor
10498 argument, if non-NULL, create 3 argument __builtin_expect.
10499 (fold_builtin_expect): No longer static. Add ARG2 argument,
10500 pass it through to build_builtin_expect_predicate.
10501 (fold_builtin_2): Adjust caller.
10502 (fold_builtin_3): Handle BUILT_IN_EXPECT.
10503 * internal-fn.def (BUILTIN_EXPECT): New.
10504
10505 2014-03-18 Tobias Burnus <burnus@net-b.de>
10506
10507 PR ipa/58721
10508 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
10509 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
10510 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
10511
10512 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
10513
10514 PR ipa/58721
10515 * predict.c (combine_predictions_for_bb): Fix up formatting.
10516 (expr_expected_value_1, expr_expected_value): Add predictor argument,
10517 fill what it points to if non-NULL.
10518 (tree_predict_by_opcode): Adjust caller, use the predictor.
10519 * predict.def (PRED_COMPARE_AND_SWAP): Add.
10520
10521 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
10522
10523 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
10524 proper constant for the store mode.
10525
10526 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
10527
10528 * symtab.c (change_decl_assembler_name): Fix transparent alias
10529 chain construction.
10530
10531 2014-03-16 Renlin Li <Renlin.Li@arm.com>
10532
10533 * config/aarch64/aarch64.c: Correct the comments about the
10534 aarch64 stack layout.
10535
10536 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
10537
10538 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
10539 check for GF_OMP_FOR_KIND_FOR.
10540
10541 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
10542
10543 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
10544 ymm and zmm register names.
10545
10546 2014-03-17 Jakub Jelinek <jakub@redhat.com>
10547
10548 PR target/60516
10549 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
10550 note creation for the 2010-08-31 changes.
10551
10552 2014-03-17 Marek Polacek <polacek@redhat.com>
10553
10554 PR middle-end/60534
10555 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
10556 as -fno-tree-loop-vectorize.
10557 (expand_omp_simd): Likewise.
10558
10559 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
10560
10561 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
10562 (eligible_for_call_delay): New prototype.
10563 * config/sparc/sparc.c (tls_call_delay): Rename into...
10564 (eligible_for_call_delay): ...this. Return false if the instruction
10565 cannot be put in the delay slot of a branch.
10566 (eligible_for_restore_insn): Simplify.
10567 (eligible_for_return_delay): Return false if the instruction cannot be
10568 put in the delay slot of a branch and simplify.
10569 (eligible_for_sibcall_delay): Return false if the instruction cannot be
10570 put in the delay slot of a branch.
10571 * config/sparc/sparc.md (fix_ut699): New attribute.
10572 (tls_call_delay): Delete.
10573 (in_call_delay): Reimplement.
10574 (eligible_for_sibcall_delay): Rename into...
10575 (in_sibcall_delay): ...this.
10576 (eligible_for_return_delay): Rename into...
10577 (in_return_delay): ...this.
10578 (in_branch_delay): Reimplement.
10579 (in_uncond_branch_delay): Delete.
10580 (in_annul_branch_delay): Delete.
10581
10582 2014-03-14 Richard Henderson <rth@redhat.com>
10583
10584 PR target/60525
10585 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
10586 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
10587 (*floathi<X87MODEF>2_i387_with_temp): Remove.
10588 (floathi splitters): Remove.
10589 (float<SWI48x>xf2): New pattern.
10590 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
10591 code that tried to handle DImode for 32-bit, but which was excluded
10592 by the pattern's condition. Drop allocation of stack temporary.
10593 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
10594 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
10595 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
10596 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
10597 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
10598 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
10599 (*float<SWI48><MODEF>2_sse_interunit): Remove.
10600 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
10601 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
10602 (*float<SWI48x><X87MODEF>2_i387): Remove.
10603 (all float _with_temp splitters): Remove.
10604 (*float<SWI48x><MODEF>2_i387): New pattern.
10605 (*float<SWI48><MODEF>2_sse): New pattern.
10606 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
10607 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
10608
10609 2014-03-14 Jakub Jelinek <jakub@redhat.com>
10610 Marek Polacek <polacek@redhat.com>
10611
10612 PR middle-end/60484
10613 * common.opt (dump_base_name_prefixed): New Variable.
10614 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
10615 if x_dump_base_name_prefixed is already set, set it at the end.
10616
10617 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
10618
10619 PR rtl-optimization/60508
10620 * lra-constraints.c (get_reload_reg): Add new parameter
10621 in_subreg_p.
10622 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
10623 Pass the new parameter values.
10624
10625 2014-03-14 Richard Biener <rguenther@suse.de>
10626
10627 * common.opt: Revert unintented changes from r205065.
10628 * opts.c: Likewise.
10629
10630 2014-03-14 Richard Biener <rguenther@suse.de>
10631
10632 PR middle-end/60518
10633 * cfghooks.c (split_block): Properly adjust all loops the
10634 block was a latch of.
10635
10636 2014-03-14 Martin Jambor <mjambor@suse.cz>
10637
10638 PR lto/60461
10639 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
10640 and simplify it.
10641
10642 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
10643
10644 PR target/59396
10645 * config/avr/avr.c (avr_set_current_function): Pass function name
10646 through default_strip_name_encoding before sanity checking instead
10647 of skipping the first char of the assembler name.
10648
10649 2014-03-13 Richard Henderson <rth@redhat.com>
10650
10651 PR debug/60438
10652 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
10653 (ix86_force_to_memory, ix86_free_from_memory): Remove.
10654 * config/i386/i386-protos.h: Likewise.
10655 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
10656 in the expander instead of a splitter.
10657 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
10658 any possibility of requiring a memory.
10659 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
10660 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
10661 (fp branch splitters): Update for ix86_split_fp_branch.
10662 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
10663 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
10664 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
10665 (*fop_<MODEF>_2_i387): Remove f/r alternative.
10666 (*fop_<MODEF>_3_i387): Likewise.
10667 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
10668 (splitters for the fop_* register patterns): Remove.
10669 (fscalexf4_i387): Rename from *fscalexf4_i387.
10670 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
10671
10672 2014-03-13 Jakub Jelinek <jakub@redhat.com>
10673
10674 PR tree-optimization/59779
10675 * tree-dfa.c (get_ref_base_and_extent): Use double_int
10676 type for bitsize and maxsize instead of HOST_WIDE_INT.
10677
10678 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
10679
10680 PR rtl-optimization/57320
10681 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
10682 the CFG after thread_prologue_and_epilogue_insns.
10683
10684 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
10685
10686 PR rtl-optimization/57189
10687 * lra-constraints.c (process_alt_operands): Disfavor spilling
10688 vector pseudos.
10689
10690 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
10691
10692 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
10693
10694 2014-03-13 Jakub Jelinek <jakub@redhat.com>
10695
10696 PR tree-optimization/59025
10697 PR middle-end/60418
10698 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
10699 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
10700
10701 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
10702
10703 PR target/60486
10704 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
10705 calls of avr_out_plus_1.
10706
10707 2014-03-13 Bin Cheng <bin.cheng@arm.com>
10708
10709 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
10710 BB's single pred and update the father loop's latch info later.
10711
10712 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10713
10714 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
10715 (VEC_M): Likewise.
10716 (VEC_N): Likewise.
10717 (VEC_R): Likewise.
10718 (VEC_base): Likewise.
10719 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
10720 registers, we need to swap double words in little endian mode.
10721
10722 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
10723 to be a container mode for 128-bit integer operations added in ISA
10724 2.07. Unlike TImode and PTImode, the preferred register set is
10725 the Altivec/VMX registers for the 128-bit operations.
10726
10727 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
10728 declarations.
10729 (rs6000_split_128bit_ok_p): Likewise.
10730
10731 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
10732 macros for creating ISA 2.07 normal and overloaded builtin
10733 functions with 3 arguments.
10734 (BU_P8V_OVERLOAD_3): Likewise.
10735 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
10736 for use as overloaded functions.
10737 (VPERM_1TI_UNS): Likewise.
10738 (VSEL_1TI): Likewise.
10739 (VSEL_1TI_UNS): Likewise.
10740 (ST_INTERNAL_1ti): Likewise.
10741 (LD_INTERNAL_1ti): Likewise.
10742 (XXSEL_1TI): Likewise.
10743 (XXSEL_1TI_UNS): Likewise.
10744 (VPERM_1TI): Likewise.
10745 (VPERM_1TI_UNS): Likewise.
10746 (XXPERMDI_1TI): Likewise.
10747 (SET_1TI): Likewise.
10748 (LXVD2X_V1TI): Likewise.
10749 (STXVD2X_V1TI): Likewise.
10750 (VEC_INIT_V1TI): Likewise.
10751 (VEC_SET_V1TI): Likewise.
10752 (VEC_EXT_V1TI): Likewise.
10753 (EQV_V1TI): Likewise.
10754 (NAND_V1TI): Likewise.
10755 (ORC_V1TI): Likewise.
10756 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
10757 added in ISA 2.07. Add both normal 'altivec' builtins, and the
10758 overloaded builtin.
10759 (VADDUQM): Likewise.
10760 (VSUBCUQ): Likewise.
10761 (VADDEUQM): Likewise.
10762 (VADDECUQ): Likewise.
10763 (VSUBEUQM): Likewise.
10764 (VSUBECUQ): Likewise.
10765
10766 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
10767 __int128_t and __uint128_t types.
10768 (__uint128_type): Likewise.
10769 (altivec_categorize_keyword): Add support for vector __int128_t,
10770 vector __uint128_t, vector __int128, and vector unsigned __int128
10771 as a container type for TImode operations that need to be done in
10772 VSX/Altivec registers.
10773 (rs6000_macro_to_expand): Likewise.
10774 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
10775 to support 128-bit integer instructions vaddcuq, vadduqm,
10776 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
10777 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
10778
10779 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10780 for V1TImode, and set up preferences to use VSX/Altivec registers.
10781 Setup VSX reload handlers.
10782 (rs6000_debug_reg_global): Likewise.
10783 (rs6000_init_hard_regno_mode_ok): Likewise.
10784 (rs6000_preferred_simd_mode): Likewise.
10785 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
10786 (easy_altivec_constant): Likewise.
10787 (output_vec_const_move): Likewise.
10788 (rs6000_expand_vector_set): Convert V1TImode set and extract to
10789 simple move.
10790 (rs6000_expand_vector_extract): Likewise.
10791 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
10792 addressing.
10793 (rs6000_const_vec): Add support for V1TImode.
10794 (rs6000_emit_le_vsx_load): Swap double words when loading or
10795 storing TImode/V1TImode.
10796 (rs6000_emit_le_vsx_store): Likewise.
10797 (rs6000_emit_le_vsx_move): Likewise.
10798 (rs6000_emit_move): Add support for V1TImode.
10799 (altivec_expand_ld_builtin): Likewise.
10800 (altivec_expand_st_builtin): Likewise.
10801 (altivec_expand_vec_init_builtin): Likewise.
10802 (altivec_expand_builtin): Likewise.
10803 (rs6000_init_builtins): Add support for V1TImode type. Add
10804 support for ISA 2.07 128-bit integer builtins. Define type names
10805 for the VSX/Altivec vector types.
10806 (altivec_init_builtins): Add support for overloaded vector
10807 functions with V1TImode type.
10808 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
10809 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
10810 external function.
10811 (rs6000_split_128bit_ok_p): Likewise.
10812 (rs6000_handle_altivec_attribute): Create V1TImode from vector
10813 __int128_t and vector __uint128_t.
10814
10815 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
10816 and mode attributes.
10817 (VSX_M): Likewise.
10818 (VSX_M2): Likewise.
10819 (VSm): Likewise.
10820 (VSs): Likewise.
10821 (VSr): Likewise.
10822 (VSv): Likewise.
10823 (VS_scalar): Likewise.
10824 (VS_double): Likewise.
10825 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
10826
10827 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
10828 we support the ISA 2.07 128-bit integer arithmetic instructions.
10829 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
10830 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
10831 and TImode types for use with the builtin functions.
10832 (V1TI_type_node): Likewise.
10833 (unsigned_V1TI_type_node): Likewise.
10834 (intTI_type_internal_node): Likewise.
10835 (uintTI_type_internal_node): Likewise.
10836
10837 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
10838 128-bit builtin functions.
10839 (UNSPEC_VADDEUQM): Likewise.
10840 (UNSPEC_VADDECUQ): Likewise.
10841 (UNSPEC_VSUBCUQ): Likewise.
10842 (UNSPEC_VSUBEUQM): Likewise.
10843 (UNSPEC_VSUBECUQ): Likewise.
10844 (VM): Add V1TImode to vector mode iterators.
10845 (VM2): Likewise.
10846 (VI_unit): Likewise.
10847 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
10848 (altivec_vaddcuq): Likewise.
10849 (altivec_vsubuqm): Likewise.
10850 (altivec_vsubcuq): Likewise.
10851 (altivec_vaddeuqm): Likewise.
10852 (altivec_vaddecuq): Likewise.
10853 (altivec_vsubeuqm): Likewise.
10854 (altivec_vsubecuq): Likewise.
10855
10856 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
10857 mode iterators.
10858 (BOOL_128): Likewise.
10859 (BOOL_REGS_OUTPUT): Likewise.
10860 (BOOL_REGS_OP1): Likewise.
10861 (BOOL_REGS_OP2): Likewise.
10862 (BOOL_REGS_UNARY): Likewise.
10863 (BOOL_REGS_AND_CR0): Likewise.
10864
10865 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
10866 128-bit integer builtin support.
10867 (vec_vadduqm): Likewise.
10868 (vec_vaddecuq): Likewise.
10869 (vec_vaddeuqm): Likewise.
10870 (vec_vsubecuq): Likewise.
10871 (vec_vsubeuqm): Likewise.
10872 (vec_vsubcuq): Likewise.
10873 (vec_vsubuqm): Likewise.
10874
10875 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10876 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
10877 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
10878 128-bit integer add/subtract to ISA 2.07.
10879
10880 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
10881
10882 * config/arc/arc.c (arc_predicate_delay_insns):
10883 Fix third argument passed to conditionalize_nonjump.
10884
10885 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
10886
10887 * config/aarch64/aarch64-builtins.c
10888 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
10889 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
10890 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
10891 instead of __builtin_lfloor.
10892 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
10893
10894 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10895
10896 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
10897 (tree_ssa_ifcombine_bb_1): New function.
10898 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
10899 is an empty forwarder block to then_bb or vice versa and then_bb
10900 and else_bb are effectively swapped.
10901
10902 2014-03-12 Christian Bruel <christian.bruel@st.com>
10903
10904 PR target/60264
10905 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
10906 REG_CFA_DEF_CFA note.
10907 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
10908 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
10909
10910 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
10911
10912 PR tree-optimization/60454
10913 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
10914
10915 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10916
10917 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
10918 Do not define target_cpu_default2 to generic.
10919 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
10920 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
10921 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
10922
10923 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10924 Marc Glisse <marc.glisse@inria.fr>
10925
10926 PR tree-optimization/60502
10927 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
10928 instead of build_low_bits_mask.
10929
10930 2014-03-12 Jakub Jelinek <jakub@redhat.com>
10931
10932 PR middle-end/60482
10933 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
10934 if there are multiple uses, but op doesn't live on E edge.
10935 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
10936 clobber stmts before __builtin_unreachable.
10937
10938 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
10939
10940 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
10941 hard_frame_pointer_rtx.
10942 * cse.c (cse_insn): Remove volatile check.
10943 * cselib.c (cselib_process_insn): Likewise.
10944 * dse.c (scan_insn): Likewise.
10945
10946 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
10947
10948 * config/arc/arc.c (conditionalize_nonjump): New function,
10949 broken out of ...
10950 (arc_ifcvt): ... this.
10951 (arc_predicate_delay_insns): Use it.
10952
10953 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
10954
10955 * config/arc/predicates.md (extend_operand): During/after reload,
10956 allow const_int_operand.
10957 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
10958 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
10959 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
10960 to "i".
10961 (umulsi3_highpart_i): Likewise.
10962
10963 2014-03-11 Richard Biener <rguenther@suse.de>
10964
10965 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
10966 Add asserts to guard possible wrong-code bugs.
10967
10968 2014-03-11 Richard Biener <rguenther@suse.de>
10969
10970 PR tree-optimization/60429
10971 PR tree-optimization/60485
10972 * tree-ssa-structalias.c (set_union_with_increment): Properly
10973 take into account all fields that overlap the shifted vars.
10974 (do_sd_constraint): Likewise.
10975 (do_ds_constraint): Likewise.
10976 (get_constraint_for_ptr_offset): Likewise.
10977
10978 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
10979
10980 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
10981 (nios2_compute_frame_layout):
10982 Add calculation of cfun->machine->fp_save_offset.
10983 (nios2_expand_prologue): Correct setting of frame pointer register
10984 in prologue.
10985 (nios2_expand_epilogue): Update recovery of stack pointer from
10986 frame pointer accordingly.
10987 (nios2_initial_elimination_offset): Update calculation of offset
10988 for eliminating to HARD_FRAME_POINTER_REGNUM.
10989
10990 2014-03-10 Jakub Jelinek <jakub@redhat.com>
10991
10992 PR ipa/60457
10993 * ipa.c (symtab_remove_unreachable_nodes): Don't call
10994 cgraph_get_create_node on VAR_DECLs.
10995
10996 2014-03-10 Richard Biener <rguenther@suse.de>
10997
10998 PR middle-end/60474
10999 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
11000
11001 2014-03-08 Douglas B Rupp <rupp@gnat.com>
11002
11003 * config/vms/vms.opt (vms_float_format): New variable.
11004
11005 2014-03-08 Tobias Burnus <burnus@net-b.de>
11006
11007 * doc/invoke.texi (-fcilkplus): Update implementation status.
11008
11009 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
11010 Richard Biener <rguenther@suse.de>
11011
11012 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
11013 consistently accross all TUs.
11014 (run_gcc): Enable -fshort-double automatically at link at link-time
11015 and disallow override.
11016
11017 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
11018
11019 PR target/58271
11020 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
11021 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
11022 if they can't be used.
11023
11024 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11025
11026 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
11027 for Solaris 11/x86 ld.
11028 * configure: Regenerate.
11029
11030 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11031
11032 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
11033 (LIB_TLS_SPEC): Save as ld_tls_libs.
11034 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
11035 (HAVE_AS_IX86_TLSLDM): New test.
11036 * configure, config.in: Regenerate.
11037 * config/i386/i386.c (legitimize_tls_address): Fall back to
11038 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
11039 cannot support TLS_MODEL_LOCAL_DYNAMIC.
11040 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
11041 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
11042
11043 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
11044
11045 * common.opt (fira-loop-pressure): Mark as optimization.
11046
11047 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
11048
11049 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
11050 an OpenMP mappable type.
11051
11052 2014-03-06 Matthias Klose <doko@ubuntu.com>
11053
11054 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
11055 MULTILIB_OSDIRNAMES is not defined.
11056
11057 2014-03-06 Jakub Jelinek <jakub@redhat.com>
11058 Meador Inge <meadori@codesourcery.com>
11059
11060 PR target/58595
11061 * config/arm/arm.c (arm_tls_symbol_p): Remove.
11062 (arm_legitimize_address): Call legitimize_tls_address for any
11063 arm_tls_referenced_p expression, handle constant addend. Call it
11064 before testing for !TARGET_ARM.
11065 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
11066
11067 2014-03-06 Richard Biener <rguenther@suse.de>
11068
11069 PR middle-end/60445
11070 PR lto/60424
11071 PR lto/60427
11072 Revert
11073 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
11074
11075 * tree-streamer.c (record_common_node): Assert we don't record
11076 nodes with type double.
11077 (preload_common_node): Skip type double, complex double and double
11078 pointer since it is now frontend dependent due to fshort-double option.
11079
11080 2014-03-06 Richard Biener <rguenther@suse.de>
11081
11082 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
11083 or -fno-lto is specified and the linker has full plugin support.
11084 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
11085 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
11086 * lto-wrapper.c (merge_and_complain): Merge compile-time
11087 optimization levels.
11088 (run_gcc): And pass it through to the link options.
11089
11090 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
11091
11092 PR debug/60381
11093 Revert:
11094 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
11095 PR debug/59992
11096 * cselib.c (remove_useless_values): Skip to avoid quadratic
11097 behavior if the condition moved from...
11098 (cselib_process_insn): ... here holds.
11099
11100 2014-03-05 Jakub Jelinek <jakub@redhat.com>
11101
11102 PR plugins/59335
11103 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
11104 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
11105
11106 PR plugins/59335
11107 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
11108 (TM_H): Add x86-tune.def.
11109
11110 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11111
11112 * config/aarch64/aarch64.c (generic_tunings):
11113 Use cortexa57_extra_costs.
11114
11115 2014-03-05 Jakub Jelinek <jakub@redhat.com>
11116
11117 PR lto/60404
11118 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
11119 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
11120 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
11121 cost for in_lto_p.
11122
11123 2014-03-04 Heiher <r@hev.cc>
11124
11125 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
11126 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
11127
11128 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
11129
11130 * config/i386/predicates.md (const2356_operand): Change to ...
11131 (const2367_operand): ... this.
11132 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
11133 const2367_operand.
11134 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
11135 (*avx512pf_scatterpf<mode>sf): Ditto.
11136 (avx512pf_scatterpf<mode>df): Ditto.
11137 (*avx512pf_scatterpf<mode>df_mask): Ditto.
11138 (*avx512pf_scatterpf<mode>df): Ditto.
11139 * config/i386/i386.c (ix86_expand_builtin): Update
11140 incorrect hint operand error message.
11141
11142 2014-03-04 Richard Biener <rguenther@suse.de>
11143
11144 * lto-section-in.c (lto_get_section_data): Fix const cast.
11145
11146 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
11147
11148 * tree-streamer.c (record_common_node): Assert we don't record
11149 nodes with type double.
11150 (preload_common_node): Skip type double, complex double and double
11151 pointer since it is now frontend dependent due to fshort-double option.
11152
11153 2014-03-04 Richard Biener <rguenther@suse.de>
11154
11155 PR lto/60405
11156 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
11157 (lto_input_toplevel_asms): Likewise.
11158 * lto-section-in.c (lto_get_section_data): Instead do it here
11159 for every section.
11160
11161 2014-03-04 Richard Biener <rguenther@suse.de>
11162
11163 PR tree-optimization/60382
11164 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
11165 dead PHIs a reduction.
11166
11167 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
11168
11169 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
11170 hint value.
11171 (_mm_prefetch): Move out of GCC target("sse") pragma.
11172 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
11173 GCC target("prfchw") pragma.
11174 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
11175 for locality <= 2.
11176 * config/i386/i386.c (ix86_option_override_internal): Enable
11177 -mprfchw with -mprefetchwt1.
11178
11179 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
11180
11181 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
11182 Mark as varying.
11183
11184 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
11185
11186 * opts.h (CL_PCH_IGNORE): Define.
11187 * targhooks.c (option_affects_pch_p):
11188 Return false for options that have CL_PCH_IGNORE set.
11189 * opt-functions.awk: Process PchIgnore.
11190 * doc/options.texi: Document PchIgnore.
11191
11192 * config/arc/arc.opt (misize): Add PchIgnore property.
11193
11194 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11195
11196 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
11197 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
11198 constraint on constants to permit them being loaded into
11199 GENERAL_REGS or BASE_REGS.
11200
11201 2014-03-03 Nick Clifton <nickc@redhat.com>
11202
11203 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
11204 anti-cacnonical alternatives.
11205 (negandhi3_real): New pattern.
11206 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
11207
11208 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11209
11210 * config/avr/avr-mcus.def: Remove atxmega16x1.
11211 * config/avr/avr-tables.opt: Regenerate.
11212 * config/avr/t-multilib: Regenerate.
11213 * doc/avr-mmcu.texi: Regenerate.
11214
11215 2014-03-03 Tobias Grosser <tobias@grosser.es>
11216 Mircea Namolaru <mircea.namolaru@inria.fr>
11217
11218 PR tree-optimization/58028
11219 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
11220 scalar dimensions.
11221
11222 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11223
11224 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
11225 not handled by recognizers.
11226
11227 2014-03-03 Jakub Jelinek <jakub@redhat.com>
11228
11229 PR middle-end/60175
11230 * function.c (expand_function_end): Don't emit
11231 clobber_return_register sequence if clobber_after is a BARRIER.
11232 * cfgexpand.c (construct_exit_block): Append instructions before
11233 return_label to prev_bb.
11234
11235 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11236
11237 * config/rs6000/constraints.md: Document reserved use of "wc".
11238
11239 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
11240
11241 PR ipa/60150
11242 * ipa.c (function_and_variable_visibility): When dissolving comdat
11243 group, also set all symbols to local.
11244
11245 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
11246
11247 PR ipa/60306
11248
11249 Revert:
11250 2013-12-14 Jan Hubicka <jh@suse.cz>
11251 PR middle-end/58477
11252 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
11253
11254 2014-03-02 Jon Beniston <jon@beniston.com>
11255
11256 PR bootstrap/48230
11257 PR bootstrap/50927
11258 PR bootstrap/52466
11259 PR target/46898
11260 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
11261 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
11262 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
11263 (simple_return, *simple_return): New patterns
11264 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
11265 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
11266
11267 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
11268
11269 * dwarf2out.c (gen_subprogram_die): Tidy.
11270
11271 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
11272
11273 PR target/60071
11274 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
11275 (*mov_t_msb_neg_negc): ... this new insn.
11276
11277 2014-02-28 Jason Merrill <jason@redhat.com>
11278
11279 PR c++/58678
11280 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
11281 function.
11282
11283 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
11284
11285 PR c++/60314
11286 * dwarf2out.c (decltype_auto_die): New static.
11287 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
11288 (gen_type_die_with_usage): Handle 'decltype(auto)'.
11289 (is_cxx_auto): Likewise.
11290
11291 2014-02-28 Ian Bolton <ian.bolton@arm.com>
11292
11293 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
11294 we are not using general regs only.
11295
11296 2014-02-28 Richard Biener <rguenther@suse.de>
11297
11298 PR target/60280
11299 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
11300 previous fix and only allow to remove trivial pre-headers
11301 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
11302 (remove_forwarder_block): Properly update the latch of a loop.
11303
11304 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
11305
11306 PR debug/59992
11307 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
11308 (cselib_preserved_hash_table): New.
11309 (preserve_constants_and_equivs): Move preserved vals to it.
11310 (cselib_find_slot): Look it up first.
11311 (cselib_init): Initialize it.
11312 (cselib_finish): Release it.
11313 (dump_cselib_table): Dump it.
11314
11315 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
11316
11317 PR debug/59992
11318 * cselib.c (remove_useless_values): Skip to avoid quadratic
11319 behavior if the condition moved from...
11320 (cselib_process_insn): ... here holds.
11321
11322 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
11323
11324 PR debug/57232
11325 * var-tracking.c (vt_initialize): Apply the same condition to
11326 preserve the CFA base value.
11327
11328 2014-02-28 Joey Ye <joey.ye@arm.com>
11329
11330 PR target/PR60169
11331 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
11332 if reload in progress or completed.
11333
11334 2014-02-28 Tobias Burnus <burnus@net-b.de>
11335
11336 PR middle-end/60147
11337 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
11338 NAMELIST_DECL.
11339
11340 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
11341
11342 * doc/tm.texi.in (Condition Code Status): Update documention for
11343 relative locations of cc0-setter and cc0-user.
11344
11345 2014-02-27 Jeff Law <law@redhat.com>
11346
11347 PR rtl-optimization/52714
11348 * combine.c (try_combine): When splitting an unrecognized PARALLEL
11349 into two independent simple sets, if I3 is a jump, ensure the
11350 pattern we place into I3 is a (set (pc) ...).
11351
11352 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
11353 Jeff Law <law@redhat.com>
11354
11355 PR rtl-optimization/49847
11356 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
11357 are in different blocks.
11358 * doc/tm.texi (Condition Code Status): Update documention for
11359 relative locations of cc0-setter and cc0-user.
11360
11361 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
11362
11363 PR target/59222
11364 * lra.c (lra_emit_add): Check SUBREG too.
11365
11366 2014-02-27 Andreas Schwab <schwab@suse.de>
11367
11368 * config/m68k/m68k.c (m68k_option_override): Disable
11369 -flive-range-shrinkage for classic m68k.
11370 (m68k_override_options_after_change): Likewise.
11371
11372 2014-02-27 Marek Polacek <polacek@redhat.com>
11373
11374 PR middle-end/59223
11375 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
11376 -Wmaybe-uninitialized.
11377
11378 2014-02-27 Alan Modra <amodra@gmail.com>
11379
11380 PR target/57936
11381 * reload1.c (emit_input_reload_insns): When reload_override_in,
11382 set old to rl->in_reg when rl->in_reg is a subreg.
11383
11384 2014-02-26 Richard Biener <rguenther@suse.de>
11385
11386 PR bootstrap/60343
11387 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
11388
11389 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
11390
11391 * common/config/i386/predicates.md (const1256_operand): Remove.
11392 (const2356_operand): New.
11393 (const_1_to_2_operand): Remove.
11394 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
11395 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
11396 (*avx512pf_gatherpf<mode>sf): Ditto.
11397 (avx512pf_gatherpf<mode>df): Ditto.
11398 (*avx512pf_gatherpf<mode>df_mask): Ditto.
11399 (*avx512pf_gatherpf<mode>df): Ditto.
11400 (avx512pf_scatterpf<mode>sf): Ditto.
11401 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
11402 (*avx512pf_scatterpf<mode>sf): Ditto.
11403 (avx512pf_scatterpf<mode>df): Ditto.
11404 (*avx512pf_scatterpf<mode>df_mask): Ditto.
11405 (*avx512pf_scatterpf<mode>df): Ditto.
11406 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
11407
11408 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
11409
11410 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
11411 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
11412 (_mm512_mask_testn_epi64_mask): Move to ...
11413 * config/i386/avx512cdintrin.h: Here.
11414 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
11415 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
11416 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
11417 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
11418 TARGET_AVX512F from TARGET_AVX512CD.
11419
11420 2014-02-26 Richard Biener <rguenther@suse.de>
11421
11422 PR ipa/60327
11423 * ipa.c (walk_polymorphic_call_targets): Properly guard
11424 call to inline_update_overall_summary.
11425
11426 2014-02-26 Bin Cheng <bin.cheng@arm.com>
11427
11428 PR target/60280
11429 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
11430 and latches only if requested. Fix latch if it is removed.
11431 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
11432 LOOPS_HAVE_PREHEADERS.
11433
11434 2014-02-25 Andrew Pinski <apinski@cavium.com>
11435
11436 * builtins.c (expand_builtin_thread_pointer): Create a new target
11437 when the target is NULL.
11438
11439 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
11440
11441 PR rtl-optimization/60317
11442 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
11443 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
11444 * lra-assigns.c: Include params.h.
11445 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
11446 other reload pseudos considerations.
11447
11448 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11449
11450 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
11451 to use canonical form for nor<mode>3.
11452
11453 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11454
11455 PR target/55426
11456 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
11457 conversions.
11458
11459 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
11460
11461 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
11462 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
11463 (ix86_handle_option): Handle OPT_mprefetchwt1.
11464 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
11465 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
11466 PREFETCHWT1 CPUID.
11467 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11468 OPTION_MASK_ISA_PREFETCHWT1.
11469 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
11470 (PTA_PREFETCHWT1): New.
11471 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
11472 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
11473 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
11474 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
11475 (*prefetch_avx512pf_<mode>_: Change into ...
11476 (*prefetch_prefetchwt1_<mode>: This.
11477 * config/i386/i386.opt (mprefetchwt1): New.
11478 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
11479 (_mm_prefetch): Handle intent to write.
11480 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
11481
11482 2014-02-25 Richard Biener <rguenther@suse.de>
11483
11484 PR middle-end/60291
11485 * emit-rtl.c (mem_attrs_htab): Remove.
11486 (mem_attrs_htab_hash): Likewise.
11487 (mem_attrs_htab_eq): Likewise.
11488 (set_mem_attrs): Always allocate new mem-attrs when something changed.
11489 (init_emit_once): Do not allocate mem_attrs_htab.
11490
11491 2014-02-25 Richard Biener <rguenther@suse.de>
11492
11493 PR lto/60319
11494 * lto-opts.c (lto_write_options): Output non-explicit conservative
11495 -fwrapv, -fno-trapv and -fno-strict-overflow.
11496 * lto-wrapper.c (merge_and_complain): Handle merging those options.
11497 (run_gcc): And pass them through.
11498
11499 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
11500
11501 * sel-sched.c (calculate_new_fences): New parameter ptime.
11502 Calculate it as a maximum over all fence cycles.
11503 (sel_sched_region_2): Adjust the call to calculate_new_fences.
11504 Print the final schedule timing when sched_verbose.
11505
11506 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
11507
11508 PR rtl-optimization/60292
11509 * sel-sched.c (fill_vec_av_set): Do not reset target availability
11510 bit fot the fence instruction.
11511
11512 2014-02-24 Alangi Derick <alangiderick@gmail.com>
11513
11514 * calls.h: Fix typo in comment.
11515
11516 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
11517
11518 * config/pa/pa.c (pa_output_move_double): Don't valididate when
11519 adjusting offsetable addresses.
11520
11521 2014-02-24 Guozhi Wei <carrot@google.com>
11522
11523 * sparseset.h (sparseset_pop): Fix the wrong index.
11524
11525 2014-02-24 Walter Lee <walt@tilera.com>
11526
11527 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
11528 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
11529 triplet.
11530 * common/config/tilegx/tilegx-common.c
11531 (TARGET_DEFAULT_TARGET_FLAGS): Define.
11532 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
11533 (LINK_SPEC): Ditto.
11534 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
11535 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
11536 (tilegx_gimplify_va_arg_expr): Handle big endian.
11537 (tilegx_expand_unaligned_load): Ditto.
11538 (tilegx_expand_unaligned_store): Ditto.
11539 (TARGET_RETURN_IN_MSB): New.
11540 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
11541 (TARGET_ENDIAN_DEFAULT): New.
11542 (TARGET_BIG_ENDIAN): Handle big endian.
11543 (BYTES_BIG_ENDIAN): Ditto.
11544 (WORDS_BIG_ENDIAN): Ditto.
11545 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
11546 (ENDIAN_SPEC): New.
11547 (EXTRA_SPECS): New.
11548 * config/tilegx/tilegx.md (extv): Handle big endian.
11549 (extzv): Ditto.
11550 (insn_st<n>): Ditto.
11551 (insn_st<n>_add<bitsuffix>): Ditto.
11552 (insn_stnt<n>): Ditto.
11553 (insn_stnt<n>_add<bitsuffix>):Ditto.
11554 (vec_interleave_highv8qi): Handle big endian.
11555 (vec_interleave_highv8qi_be): New.
11556 (vec_interleave_highv8qi_le): New.
11557 (insn_v1int_h): Handle big endian.
11558 (vec_interleave_lowv8qi): Handle big endian.
11559 (vec_interleave_lowv8qi_be): New.
11560 (vec_interleave_lowv8qi_le): New.
11561 (insn_v1int_l): Handle big endian.
11562 (vec_interleave_highv4hi): Handle big endian.
11563 (vec_interleave_highv4hi_be): New.
11564 (vec_interleave_highv4hi_le): New.
11565 (insn_v2int_h): Handle big endian.
11566 (vec_interleave_lowv4hi): Handle big endian.
11567 (vec_interleave_lowv4hi_be): New.
11568 (vec_interleave_lowv4hi_le): New.
11569 (insn_v2int_l): Handle big endian.
11570 (vec_interleave_highv2si): Handle big endian.
11571 (vec_interleave_highv2si_be): New.
11572 (vec_interleave_highv2si_le): New.
11573 (insn_v4int_h): Handle big endian.
11574 (vec_interleave_lowv2si): Handle big endian.
11575 (vec_interleave_lowv2si_be): New.
11576 (vec_interleave_lowv2si_le): New.
11577 (insn_v4int_l): Handle big endian.
11578 * config/tilegx/tilegx.opt (mbig-endian): New option.
11579 (mlittle-endian): New option.
11580 * doc/install.texi: Document tilegxbe-linux.
11581 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
11582
11583 2014-02-24 Martin Jambor <mjambor@suse.cz>
11584
11585 PR ipa/60266
11586 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
11587 there are no parameter descriptors.
11588
11589 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
11590
11591 PR rtl-optimization/60268
11592 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
11593 initialization to ...
11594 (sched_rgn_init): ... here.
11595 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
11596
11597 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11598
11599 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
11600 names.
11601
11602 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11603
11604 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
11605 definition.
11606
11607 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11608
11609 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
11610 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
11611
11612 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
11613
11614 * config/microblaze/predicates.md: Add cmp_op predicate.
11615 * config/microblaze/microblaze.md: Add branch_compare instruction
11616 which uses cmp_op predicate and emits cmp insn before branch.
11617 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
11618 to microblaze_expand_conditional_branch and consolidate logic.
11619 (microblaze_expand_conditional_branch): emit branch_compare
11620 insn instead of handling cmp op separate from branch insn.
11621
11622 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11623
11624 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
11625 to permit subregs.
11626
11627 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11628
11629 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
11630 define_insn with define_expand and new define_insn
11631 *altivec_lve<VI_char>x_internal.
11632 (altivec_stve<VI_char>x): Replace define_insn with define_expand
11633 and new define_insn *altivec_stve<VI_char>x_internal.
11634 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
11635 prototype.
11636 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
11637 lve*x built-ins.
11638 (altivec_expand_stvex_be): New function.
11639
11640 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
11641
11642 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
11643 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
11644 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
11645 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
11646
11647 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
11648
11649 PR target/60298
11650 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
11651 instead of emit_move_insn.
11652
11653 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11654
11655 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
11656 vspltw with vsldoi.
11657 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
11658 gen_altivec_vsumsws.
11659
11660 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11661
11662 * config/rs6000/altivec.md (altivec_lvxl): Rename as
11663 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
11664 (altivec_lvxl_<mode>): New define_expand incorporating
11665 -maltivec=be semantics where needed.
11666 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
11667 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
11668 semantics where needed.
11669 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
11670 (altivec_stvx_<mode>): New define_expand incorporating
11671 -maltivec=be semantics where needed.
11672 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
11673 VM2 iterator instead of V4SI.
11674 (altivec_stvxl_<mode>): New define_expand incorporating
11675 -maltivec=be semantics where needed.
11676 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
11677 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
11678 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
11679 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
11680 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
11681 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
11682 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
11683 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
11684 ALTIVEC_BUILTIN_STVXL.
11685 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
11686 (altivec_expand_stvx_be): Likewise.
11687 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
11688 (altivec_expand_lvx_be): Likewise.
11689 (altivec_expand_stvx_be): Likewise.
11690 (altivec_expand_builtin): Add cases for
11691 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
11692 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
11693 (altivec_init_builtins): Add definitions for
11694 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
11695 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
11696
11697 2014-02-21 Catherine Moore <clm@codesourcery.com>
11698
11699 * doc/invoke.texi (mvirt, mno-virt): Document.
11700 * config/mips/mips.opt (mvirt): New option.
11701 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
11702
11703 2014-02-21 Richard Biener <rguenther@suse.de>
11704
11705 PR tree-optimization/60276
11706 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
11707 (STMT_VINFO_MIN_NEG_DIST): New macro.
11708 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
11709 STMT_VINFO_MIN_NEG_DIST.
11710 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
11711 made for negative dependence distances still hold.
11712
11713 2014-02-21 Richard Biener <rguenther@suse.de>
11714
11715 PR middle-end/60291
11716 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
11717 DECL_INITIAL for globals not in the current function context.
11718
11719 2014-02-21 Jakub Jelinek <jakub@redhat.com>
11720
11721 PR tree-optimization/56490
11722 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
11723 * tree-ssa-uninit.c: Include params.h.
11724 (compute_control_dep_chain): Add num_calls argument, return false
11725 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
11726 num_calls to recursive call.
11727 (find_predicates): Change dep_chain into normal array,
11728 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
11729 variable and adjust compute_control_dep_chain caller.
11730 (find_def_preds): Likewise.
11731
11732 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
11733
11734 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
11735 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
11736
11737 2014-02-21 Nick Clifton <nickc@redhat.com>
11738
11739 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
11740 (pushhi1): Likewise.
11741 (popqi1): Add mode to pre_dec.
11742 (pophi1): Likewise.
11743
11744 2014-02-21 Jakub Jelinek <jakub@redhat.com>
11745
11746 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
11747 mode for mask of V8SFmode permutation.
11748
11749 2014-02-20 Richard Henderson <rth@redhat.com>
11750
11751 PR c++/60272
11752 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
11753 a new pseudo for OLDVAL.
11754
11755 2014-02-20 Jakub Jelinek <jakub@redhat.com>
11756
11757 PR target/57896
11758 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
11759 gen_reg_rtx if d->testing_p.
11760 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
11761 if d->testing_p and we will certainly return true.
11762 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
11763 if d->testing_p.
11764
11765 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
11766
11767 * emit-rtl.c (gen_reg_rtx): Assert that
11768 crtl->emit.regno_pointer_align_length is non-zero.
11769
11770 2014-02-20 Richard Henderson <rth@redhat.com>
11771
11772 PR c++/60272
11773 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
11774 on failure the store back into EXPECT.
11775
11776 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
11777 Sandra Loosemore <sandra@codesourcery.com>
11778
11779 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
11780 * config/nios2/nios2.c (nios2_function_profiler): Add
11781 -fPIC (flag_pic == 2) support.
11782 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
11783 (nios2_large_offset_p): New function.
11784 (nios2_unspec_reloc_p): Move up position, update to use
11785 nios2_large_offset_p.
11786 (nios2_unspec_address): Remove function.
11787 (nios2_unspec_offset): New function.
11788 (nios2_large_got_address): New function.
11789 (nios2_got_address): Add large offset support.
11790 (nios2_legitimize_tls_address): Update usage of removed and new
11791 functions.
11792 (nios2_symbol_binds_local_p): New function.
11793 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
11794 (nios2_legitimize_address): Update to use nios2_large_offset_p.
11795 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
11796 (nios2_print_operand): Merge H/L processing, add hiadj/lo
11797 processing for (const (unspec ...)).
11798 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
11799
11800 2014-02-20 Richard Biener <rguenther@suse.de>
11801
11802 * tree-cfg.c (replace_uses_by): Mark altered BBs before
11803 doing the substitution.
11804 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
11805
11806 2014-02-20 Martin Jambor <mjambor@suse.cz>
11807
11808 PR ipa/55260
11809 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
11810 info when checking whether lattices are bottom.
11811
11812 2014-02-20 Richard Biener <rguenther@suse.de>
11813
11814 PR middle-end/60221
11815 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
11816 regions at -O0.
11817
11818 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
11819
11820 PR ipa/58555
11821 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
11822 parameter specifying the scaling.
11823 (inline_call): Update.
11824 (want_inline_recursively): Guard division by zero.
11825 (recursive_inlining): Update.
11826 * ipa-inline.h (clone_inlined_nodes): Update.
11827
11828 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
11829
11830 PR target/60204
11831 * config/i386/i386.c (classify_argument): Pass structures of size
11832 64 bytes or less in register.
11833
11834 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
11835 Kirill Yukhin <kirill.yukhin@intel.com>
11836
11837 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
11838 (_mm_rcp28_round_ss): Ditto.
11839 (_mm_rsqrt28_round_sd): Ditto.
11840 (_mm_rsqrt28_round_ss): Ditto.
11841 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
11842 (_mm_rcp14_round_ss): Ditto.
11843 (_mm_rsqrt14_round_sd): Ditto.
11844 (_mm_rsqrt14_round_ss): Ditto.
11845 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
11846 the first input operand, get rid of match_dup.
11847 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
11848 attribute to sse.
11849 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
11850 Ditto.
11851 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
11852 operand as the first input operand, set type attribute.
11853 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
11854 Set type attribute.
11855 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
11856 operand as the first input operand, set type attribute.
11857
11858 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11859
11860 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
11861 bit of zero.
11862
11863 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
11864
11865 PR target/60207
11866 * config/i386/i386.c (construct_container): Remove TFmode check
11867 for X86_64_INTEGER_CLASS.
11868
11869 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
11870
11871 PR target/59794
11872 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
11873 only when -Wpsabi is enabled.
11874
11875 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
11876
11877 PR target/59799
11878 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
11879 passing arrays in registers are the same as for structs, so remove the
11880 special case for them.
11881
11882 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
11883
11884 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
11885 destination type, extract only the valid bits if the source type is not
11886 integral and has a different mode.
11887
11888 2014-02-19 Richard Biener <rguenther@suse.de>
11889
11890 PR ipa/60243
11891 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
11892 for all calls.
11893
11894 2014-02-19 Richard Biener <rguenther@suse.de>
11895
11896 PR ipa/60243
11897 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
11898 (ipa_modify_call_arguments): Emit an argument load explicitely and
11899 preserve virtual SSA form there and for the replacement call.
11900 Do not update SSA form nor free dominance info.
11901
11902 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11903
11904 * ipa.c (function_and_variable_visibility): Also clear WEAK
11905 flag when disolving COMDAT_GROUP.
11906
11907 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11908
11909 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
11910 * ipa-prop.c (ipa_set_jf_known_type): Return early when
11911 not devirtualizing.
11912 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
11913 do more sanity checks.
11914 (detect_type_change): Return true when giving up early.
11915 (compute_complex_assign_jump_func): Fix type parameter of
11916 ipa_set_ancestor_jf.
11917 (compute_complex_ancestor_jump_func): Likewise.
11918 (update_jump_functions_after_inlining): Fix updating of
11919 ancestor function.
11920 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
11921
11922 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
11923
11924 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
11925 inline clones when edge disappears.
11926
11927 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
11928
11929 PR target/60203
11930 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
11931 Split 64-bit moves into 2 patterns. Do not allow the use of
11932 direct move for TDmode in little endian, since the decimal value
11933 has little endian bytes within a word, but the 64-bit pieces are
11934 ordered in a big endian fashion, and normal subreg's of TDmode are
11935 not allowed.
11936 (mov<mode>_64bit_dm): Likewise.
11937 (movtd_64bit_nodm): Likewise.
11938
11939 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
11940
11941 PR tree-optimization/60174
11942 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
11943 statement of an SSA_NAME that occurs in an abnormal PHI node.
11944
11945 2014-02-18 Jakub Jelinek <jakub@redhat.com>
11946
11947 PR sanitizer/60142
11948 * final.c (SEEN_BB): Remove.
11949 (SEEN_NOTE, SEEN_EMITTED): Renumber.
11950 (final_scan_insn): Don't force_source_line on second
11951 NOTE_INSN_BASIC_BLOCK.
11952
11953 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
11954
11955 PR target/60205
11956 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
11957 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
11958 (type_natural_mode): Warn ABI change when %zmm register is not
11959 available for AVX512F vector value passing.
11960
11961 2014-02-18 Kai Tietz <ktietz@redhat.com>
11962
11963 PR target/60193
11964 * config/i386/i386.c (ix86_expand_prologue): Use value in
11965 rax register as displacement when restoring %r10 or %rax.
11966 Fix wrong offset when restoring both registers.
11967
11968 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
11969
11970 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
11971 assertion with conditional return.
11972
11973 2014-02-18 Jakub Jelinek <jakub@redhat.com>
11974 Uros Bizjak <ubizjak@gmail.com>
11975
11976 PR driver/60233
11977 * config/i386/driver-i386.c (host_detect_local_cpu): If
11978 YMM state is not saved by the OS, also clear has_f16c. Move
11979 CPUID 0x80000001 handling before YMM state saving checking.
11980
11981 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
11982
11983 PR rtl-optimization/58960
11984 * haifa-sched.c (alloc_global_sched_pressure_data): New,
11985 factored out from ...
11986 (sched_init): ... here.
11987 (free_global_sched_pressure_data): New, factored out from ...
11988 (sched_finish): ... here.
11989 * sched-int.h (free_global_sched_pressure_data): Declare.
11990 * sched-rgn.c (nr_regions_initial): New static global.
11991 (haifa_find_rgns): Initialize it.
11992 (schedule_region): Disable sched-pressure for the newly
11993 generated regions.
11994
11995 2014-02-17 Richard Biener <rguenther@suse.de>
11996
11997 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
11998 release SSA defs of pattern stmts.
11999
12000 2014-02-17 Richard Biener <rguenther@suse.de>
12001
12002 * tree-inline.c (expand_call_inline): Release the virtual
12003 operand defined by the call we are about to inline.
12004
12005 2014-02-17 Richard Biener <rguenther@suse.de>
12006
12007 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
12008
12009 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
12010 Ilya Tocar <ilya.tocar@intel.com>
12011
12012 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
12013 arguments order in builtin.
12014 (_mm512_permutexvar_epi64): Ditto.
12015 (_mm512_mask_permutexvar_epi64): Ditto
12016 (_mm512_maskz_permutexvar_epi32): Ditto
12017 (_mm512_permutexvar_epi32): Ditto
12018 (_mm512_mask_permutexvar_epi32): Ditto
12019
12020 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12021
12022 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
12023 (p8_vmrgow): Likewise.
12024
12025 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12026
12027 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
12028 endian targets.
12029
12030 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12031
12032 PR target/60203
12033 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
12034 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
12035 into 64-bit and 32-bit moves. On 64-bit moves, add support for
12036 using direct move instructions on ISA 2.07. Also adjust
12037 instruction length for 64-bit.
12038 (mov<mode>_64bit, TFmode/TDmode): Likewise.
12039 (mov<mode>_32bit, TFmode/TDmode): Likewise.
12040
12041 2014-02-15 Alan Modra <amodra@gmail.com>
12042
12043 PR target/58675
12044 PR target/57935
12045 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
12046 find_replacement on parts of insn rtl that might be reloaded.
12047
12048 2014-02-15 Richard Biener <rguenther@suse.de>
12049
12050 PR tree-optimization/60183
12051 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
12052 (tree_ssa_phiprop): Calculate and free post-dominators.
12053
12054 2014-02-14 Jeff Law <law@redhat.com>
12055
12056 PR rtl-optimization/60131
12057 * ree.c (get_extended_src_reg): New function.
12058 (combine_reaching_defs): Use it rather than assuming location of REG.
12059 (find_and_remove_re): Verify first operand of extension is
12060 a REG before adding the insns to the copy list.
12061
12062 2014-02-14 Roland McGrath <mcgrathr@google.com>
12063
12064 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
12065 * configure: Regenerated.
12066 * config.in: Regenerated.
12067 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
12068 instead of ASM_SHORT.
12069
12070 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
12071 Richard Earnshaw <rearnsha@arm.com>
12072
12073 PR rtl-optimization/59535
12074 * lra-constraints.c (process_alt_operands): Encourage alternative
12075 when unassigned pseudo class is superset of the alternative class.
12076 (inherit_reload_reg): Don't inherit when optimizing for code size.
12077 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
12078 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
12079 modes not less than 4 for Thumb1.
12080
12081 2014-02-14 Kyle McMartin <kyle@redhat.com>
12082
12083 PR pch/60010
12084 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
12085
12086 2014-02-14 Richard Biener <rguenther@suse.de>
12087
12088 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
12089 (get_frame_arg): Drop the assert with langhook types_compatible_p.
12090 Do not strip INDIRECT_REFs.
12091
12092 2014-02-14 Richard Biener <rguenther@suse.de>
12093
12094 PR lto/60179
12095 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
12096 DECL_FUNCTION_SPECIFIC_TARGET.
12097 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
12098 * tree-streamer-out.c (pack_ts_target_option): Remove.
12099 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
12100 (write_ts_function_decl_tree_pointers): Do not stream
12101 DECL_FUNCTION_SPECIFIC_TARGET.
12102 * tree-streamer-in.c (unpack_ts_target_option): Remove.
12103 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
12104 (lto_input_ts_function_decl_tree_pointers): Do not stream
12105 DECL_FUNCTION_SPECIFIC_TARGET.
12106
12107 2014-02-14 Jakub Jelinek <jakub@redhat.com>
12108
12109 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
12110 (get_initial_def_for_induction, vectorizable_induction): Ignore
12111 debug stmts when looking for exit_phi.
12112 (vectorizable_live_operation): Fix up condition.
12113
12114 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12115
12116 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
12117 nreverse() because it changes the content of original tree list.
12118
12119 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12120
12121 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
12122 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
12123
12124 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
12125
12126 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
12127 GNU coding standards.
12128
12129 2014-02-13 Jakub Jelinek <jakub@redhat.com>
12130
12131 PR debug/60152
12132 * dwarf2out.c (gen_subprogram_die): Don't call
12133 add_calling_convention_attribute if subr_die is old_die.
12134
12135 2014-02-13 Sharad Singhai <singhai@google.com>
12136
12137 * doc/optinfo.texi: Fix order of nodes.
12138
12139 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
12140
12141 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
12142 operands[2], not operands[3].
12143
12144 2014-02-13 Richard Biener <rguenther@suse.de>
12145
12146 PR bootstrap/59878
12147 * doc/install.texi (ISL): Update recommended version to 0.12.2,
12148 mention the possibility of an in-tree build.
12149 (CLooG): Update recommended version to 0.18.1, mention the
12150 possibility of an in-tree build and clarify that the ISL
12151 bundled with CLooG does not work.
12152
12153 2014-02-13 Jakub Jelinek <jakub@redhat.com>
12154
12155 PR target/43546
12156 * expr.c (compress_float_constant): If x is a hard register,
12157 extend into a pseudo and then move to x.
12158
12159 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
12160
12161 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
12162 caused by bad second argument to warning_at() with -mhotpatch and
12163 nested functions (e.g. with gfortran).
12164
12165 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
12166
12167 * opts.c (option_name): Remove "enabled by default" rider.
12168
12169 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
12170
12171 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
12172
12173 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
12174 Uros Bizjak <ubizjak@gmail.com>
12175
12176 PR target/60151
12177 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
12178 * configure: Regenerated.
12179
12180 2014-02-12 Richard Biener <rguenther@suse.de>
12181
12182 * vec.c (vec_prefix::calculate_allocation): Move as
12183 inline variant to vec.h.
12184 (vec_prefix::calculate_allocation_1): New out-of-line version.
12185 * vec.h (vec_prefix::calculate_allocation_1): Declare.
12186 (vec_prefix::m_has_auto_buf): Rename to ...
12187 (vec_prefix::m_using_auto_storage): ... this.
12188 (vec_prefix::calculate_allocation): Inline the easy cases
12189 and dispatch to calculate_allocation_1 which doesn't need the
12190 prefix address.
12191 (va_heap::reserve): Use gcc_checking_assert.
12192 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
12193 m_using_auto_storage.
12194 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
12195 member and adjust.
12196 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
12197 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
12198 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
12199
12200 2014-02-12 Richard Biener <rguenther@suse.de>
12201
12202 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
12203 when we found a dependence.
12204
12205 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
12206
12207 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
12208 common code...
12209 (maybe_fold_stmt): ... into this new function.
12210 * omp-low.c (lower_omp): Update comment.
12211
12212 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
12213 last use.
12214
12215 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
12216 dereference.
12217
12218 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
12219
12220 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
12221 identifiers in comments.
12222 (cortexa53_extra_costs): Likewise.
12223 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
12224 (cortexa7_extra_costs): Likewise.
12225 (cortexa12_extra_costs): Likewise.
12226 (cortexa15_extra_costs): Likewise.
12227 (v7m_extra_costs): Likewise.
12228
12229 2014-02-12 Richard Biener <rguenther@suse.de>
12230
12231 PR middle-end/60092
12232 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
12233 of posix_memalign being successful.
12234 (lower_stmt): Restrict lowering of posix_memalign to when
12235 -ftree-bit-ccp is enabled.
12236
12237 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12238
12239 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
12240 arg_loc.
12241 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
12242
12243 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
12244
12245 PR rtl-optimization/60116
12246 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
12247 other_insn once the combination has been validated.
12248
12249 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
12250
12251 PR lto/59468
12252 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
12253 and wrapper.
12254 * ipa-devirt.c: Include demangle.h
12255 (odr_violation_reported): New static variable.
12256 (add_type_duplicate): Update odr_violations.
12257 (maybe_record_node): Add completep parameter; update it.
12258 (record_target_from_binfo): Add COMPLETEP parameter;
12259 update it as needed.
12260 (possible_polymorphic_call_targets_1): Likewise.
12261 (struct polymorphic_call_target_d): Add nonconstruction_targets;
12262 rename FINAL to COMPLETE.
12263 (record_targets_from_bases): Sanity check we found the binfo;
12264 fix COMPLETEP updating.
12265 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
12266 parameter, fix computing of COMPLETEP.
12267 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
12268 at LTO time do demangling.
12269 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
12270 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
12271 parameter.
12272 (gimple_get_virt_method_for_binfo): Likewise.
12273 * gimple-fold.h (gimple_get_virt_method_for_binfo,
12274 gimple_get_virt_method_for_vtable): Update prototypes.
12275
12276 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
12277
12278 PR target/49008
12279 * genautomata.c (add_presence_absence): Fix typo with
12280 {final_}presence_list.
12281
12282 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12283
12284 PR target/60137
12285 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
12286 for VSX/Altivec vectors that land in GPR registers.
12287
12288 2014-02-11 Richard Henderson <rth@redhat.com>
12289 Jakub Jelinek <jakub@redhat.com>
12290
12291 PR debug/59776
12292 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
12293 around drhs if type conversion to lacc->type is not useless.
12294
12295 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12296
12297 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
12298 tuning struct.
12299 (cortex-a57.cortex-a53): Likewise.
12300 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
12301
12302 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12303
12304 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
12305 arm_restrict_it.
12306
12307 2014-02-11 Renlin Li <Renlin.Li@arm.com>
12308
12309 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
12310 add_options_for_arm_vfp3.
12311
12312 2014-02-11 Jeff Law <law@redhat.com>
12313
12314 PR middle-end/54041
12315 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
12316 object with an undesirable mode.
12317
12318 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12319
12320 PR libgomp/60107
12321 * config/i386/sol2-9.h: New file.
12322 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
12323 *-*-solaris2.9*): Use it.
12324
12325 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
12326
12327 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
12328 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
12329
12330 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
12331
12332 * config/microblaze/microblaze.c: Extend mcpu version format
12333
12334 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
12335
12336 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
12337
12338 2014-02-10 Richard Henderson <rth@redhat.com>
12339
12340 PR target/59927
12341 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
12342 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
12343 ms-abi vs -mno-accumulate-outgoing-args.
12344 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
12345 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
12346 respect to ms-abi.
12347
12348 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
12349
12350 PR middle-end/60080
12351 * cfgexpand.c (expand_asm_operands): Attach source location to
12352 ASM_INPUT rtx objects.
12353 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
12354
12355 2014-02-10 Nick Clifton <nickc@redhat.com>
12356
12357 * config/mn10300/mn10300.c (popcount): New function.
12358 (mn10300_expand_prologue): Include saved registers in stack usage
12359 count.
12360
12361 2014-02-10 Jeff Law <law@redhat.com>
12362
12363 PR middle-end/52306
12364 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
12365 when changing the SET_DEST of a prior insn to avoid an input reload.
12366
12367 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12368
12369 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
12370 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
12371 -mcall-openbsd, or -mcall-linux.
12372 (CC1_ENDIAN_BIG_SPEC): Remove.
12373 (CC1_ENDIAN_LITTLE_SPEC): Remove.
12374 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
12375 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
12376 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
12377 and %cc1_endian_default.
12378 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
12379
12380 2014-02-10 Richard Biener <rguenther@suse.de>
12381
12382 PR tree-optimization/60115
12383 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
12384 MEM_REF handling. Properly verify that the accesses are not
12385 out of the objects bound.
12386
12387 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12388
12389 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
12390 coretex to cortex.
12391
12392 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
12393
12394 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
12395 proper constants and fix formatting.
12396 (possible_polymorphic_call_targets): Fix formatting.
12397
12398 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
12399 Ilya Tocar <ilya.tocar@intel.com>
12400
12401 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
12402 (_mm512_loadu_epi32): Renamed into...
12403 (_mm512_loadu_si512): This.
12404 (_mm512_storeu_epi32): Renamed into...
12405 (_mm512_storeu_si512): This.
12406 (_mm512_maskz_ceil_ps): Removed.
12407 (_mm512_maskz_ceil_pd): Ditto.
12408 (_mm512_maskz_floor_ps): Ditto.
12409 (_mm512_maskz_floor_pd): Ditto.
12410 (_mm512_floor_round_ps): Ditto.
12411 (_mm512_floor_round_pd): Ditto.
12412 (_mm512_ceil_round_ps): Ditto.
12413 (_mm512_ceil_round_pd): Ditto.
12414 (_mm512_mask_floor_round_ps): Ditto.
12415 (_mm512_mask_floor_round_pd): Ditto.
12416 (_mm512_mask_ceil_round_ps): Ditto.
12417 (_mm512_mask_ceil_round_pd): Ditto.
12418 (_mm512_maskz_floor_round_ps): Ditto.
12419 (_mm512_maskz_floor_round_pd): Ditto.
12420 (_mm512_maskz_ceil_round_ps): Ditto.
12421 (_mm512_maskz_ceil_round_pd): Ditto.
12422 (_mm512_expand_pd): Ditto.
12423 (_mm512_expand_ps): Ditto.
12424 * config/i386/i386.c (ix86_builtins): Remove
12425 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
12426 (bdesc_args): Ditto.
12427 * config/i386/predicates.md (const1256_operand): New.
12428 (const_1_to_2_operand): Ditto.
12429 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
12430 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
12431 (*avx512pf_gatherpf<mode>sf): Ditto.
12432 (avx512pf_gatherpf<mode>df): Ditto.
12433 (*avx512pf_gatherpf<mode>df_mask): Ditto.
12434 (*avx512pf_gatherpf<mode>df): Ditto.
12435 (avx512pf_scatterpf<mode>sf): Ditto.
12436 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
12437 (*avx512pf_scatterpf<mode>sf): Ditto.
12438 (avx512pf_scatterpf<mode>df): Ditto.
12439 (*avx512pf_scatterpf<mode>df_mask): Ditto.
12440 (*avx512pf_scatterpf<mode>df): Ditto.
12441 (avx512f_expand<mode>): Removed.
12442 (<shift_insn><mode>3<mask_name>): Change predicate type.
12443
12444 2014-02-08 Jakub Jelinek <jakub@redhat.com>
12445
12446 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
12447 not at the end of datarefs vector use ordered_remove to avoid
12448 reordering datarefs vector.
12449
12450 PR c/59984
12451 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
12452 mark local addressable non-static vars as GOVD_PRIVATE
12453 instead of GOVD_LOCAL.
12454 * omp-low.c (lower_omp_for): Move gimple_bind_vars
12455 and BLOCK_VARS of gimple_bind_block to new_stmt rather
12456 than copying them.
12457
12458 PR middle-end/60092
12459 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
12460 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
12461 assume_aligned or alloc_align attributes.
12462 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
12463 arguments. Handle also assume_aligned and alloc_align attributes.
12464 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
12465 calls to functions with assume_aligned or alloc_align attributes.
12466 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
12467
12468 2014-02-08 Terry Guo <terry.guo@arm.com>
12469
12470 * doc/invoke.texi: Document ARM -march=armv7e-m.
12471
12472 2014-02-08 Jakub Jelinek <jakub@redhat.com>
12473
12474 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
12475 flag on __cilkrts_rethrow builtin.
12476
12477 PR ipa/60026
12478 * ipa-cp.c (determine_versionability): Fail at -O0
12479 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
12480 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
12481
12482 Revert:
12483 2014-02-04 Jakub Jelinek <jakub@redhat.com>
12484
12485 PR ipa/60026
12486 * tree-inline.c (copy_forbidden): Fail for
12487 __attribute__((optimize (0))) functions.
12488
12489 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
12490
12491 * varpool.c: Include pointer-set.h.
12492 (varpool_remove_unreferenced_decls): Variables in other partitions
12493 will not be output; be however careful to not lose information
12494 about partitioning.
12495
12496 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
12497
12498 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
12499 lookup in the vtable constructor.
12500
12501 2014-02-07 Jeff Law <law@redhat.com>
12502
12503 PR target/40977
12504 * config/m68k/m68k.md (ashldi_extsi): Turn into a
12505 define_insn_and_split.
12506
12507 * ipa-inline.c (inline_small_functions): Fix typos.
12508
12509 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12510
12511 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
12512 (s390_can_use_return_insn): Declare.
12513 * config/s390/s390.h (EPILOGUE_USES): Define.
12514 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
12515 instructions.
12516 (s390_chunkify_start): Handle return JUMP_LABELs.
12517 (s390_early_mach): Emit a main_pool instruction on the entry edge.
12518 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
12519 (s390_can_use_return_insn): New functions.
12520 (s390_fix_long_loop_prediction): Handle conditional returns.
12521 (TARGET_SET_UP_BY_PROLOGUE): Define.
12522 * config/s390/s390.md (ANY_RETURN): New code iterator.
12523 (*creturn, *csimple_return, return, simple_return): New patterns.
12524
12525 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12526
12527 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
12528 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
12529 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
12530 REG_CFA_RESTORE list when deciding not to restore a register.
12531
12532 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12533
12534 * config/s390/s390.c: Include tree-pass.h and context.h.
12535 (s390_early_mach): New function, split out from...
12536 (s390_emit_prologue): ...here.
12537 (pass_data_s390_early_mach): New pass structure.
12538 (pass_s390_early_mach): New class.
12539 (s390_option_override): Create and register early_mach pass.
12540 Move to end of file.
12541
12542 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
12543
12544 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
12545 to match for the exit block.
12546
12547 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12548
12549 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
12550 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
12551 Reject misaligned operands.
12552
12553 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12554
12555 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
12556
12557 2014-02-07 Richard Biener <rguenther@suse.de>
12558
12559 PR middle-end/60092
12560 * gimple-low.c (lower_builtin_posix_memalign): New function.
12561 (lower_stmt): Call it to lower posix_memalign in a way
12562 to make alignment info accessible.
12563
12564 2014-02-07 Jakub Jelinek <jakub@redhat.com>
12565
12566 PR c++/60082
12567 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
12568 __builtin_setjmp_receiver.
12569
12570 2014-02-07 Richard Biener <rguenther@suse.de>
12571
12572 PR middle-end/60092
12573 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
12574 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
12575 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12576 Handle BUILT_IN_POSIX_MEMALIGN.
12577 (find_func_clobbers): Likewise.
12578 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
12579 (call_may_clobber_ref_p_1): Likewise.
12580
12581 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12582
12583 PR ipa/59918
12584 * ipa-devirt.c (record_target_from_binfo): Remove overactive
12585 sanity check.
12586
12587 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12588
12589 PR ipa/59469
12590 * lto-cgraph.c (lto_output_node): Use
12591 symtab_get_symbol_partitioning_class.
12592 (lto_output_varpool_node): likewise.
12593 (symtab_get_symbol_partitioning_class): Move here from
12594 lto/lto-partition.c
12595 * cgraph.h (symbol_partitioning_class): Likewise.
12596 (symtab_get_symbol_partitioning_class): Declare.
12597
12598 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12599
12600 * ggc.h (ggc_internal_cleared_alloc): New macro.
12601 * vec.h (vec_safe_copy): Handle memory stats.
12602 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
12603 * target-globals.c (save_target_globals): Likewise.
12604
12605 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
12606
12607 PR target/60077
12608 * expr.c (emit_move_resolve_push): Export; be bit more selective
12609 on when to clear alias set.
12610 * expr.h (emit_move_resolve_push): Declare.
12611 * function.h (struct function): Add tail_call_marked.
12612 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
12613 * config/i386/i386-protos.h (ix86_expand_push): Remove.
12614 * config/i386/i386.md (TImode move expander): De not call
12615 ix86_expand_push.
12616 (FP push expanders): Preserve memory attributes.
12617 * config/i386/sse.md (push<mode>1): Remove.
12618 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
12619 (ix86_expand_push): Remove.
12620 * config/i386/mmx.md (push<mode>1): Remove.
12621
12622 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12623
12624 PR rtl-optimization/60030
12625 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
12626 lopart with paradoxical subreg before shifting it up by hprec.
12627
12628 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12629
12630 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
12631 Remove extra newline at end of file.
12632 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
12633 (arm_issue_rate): Handle cortexa57.
12634 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
12635 (cortex-a57.cortex-a53): Likewise.
12636
12637 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12638
12639 PR target/59575
12640 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
12641 don't record in REG_FRAME_RELATED_EXPR registers not set in that
12642 bitmask.
12643 (arm_expand_prologue): Adjust all callers.
12644 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
12645 info, registers also at the lowest numbered registers side. Use
12646 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
12647 XEXP.
12648
12649 PR debug/59992
12650 * var-tracking.c (adjust_mems): Before adding a SET to
12651 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
12652
12653 2014-02-06 Alan Modra <amodra@gmail.com>
12654
12655 PR target/60032
12656 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
12657 change SDmode to DDmode when lra_in_progress.
12658
12659 2014-02-06 Jakub Jelinek <jakub@redhat.com>
12660
12661 PR middle-end/59150
12662 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
12663 free_data_ref on the dr first, and before goto again also set dr
12664 to the next dr. For simd_lane_access, free old datarefs[i] before
12665 overwriting it. For get_vectype_for_scalar_type failure, don't
12666 free_data_ref if simd_lane_access.
12667
12668 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
12669
12670 PR target/60062
12671 * tree.h (opts_for_fn): New inline function.
12672 (opt_for_fn): Define.
12673 * config/i386/i386.c (ix86_function_regparm): Use
12674 opt_for_fn (decl, optimize) instead of optimize.
12675
12676 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
12677
12678 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
12679 for SYMBOL_REF in large memory model.
12680
12681 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12682
12683 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
12684 and crypto support.
12685 (cortex-a57): Likewise.
12686 (cortex-a57.cortex-a53): Likewise.
12687
12688 2014-02-06 Yury Gribov <y.gribov@samsung.com>
12689 Kugan Vivekanandarajah <kuganv@linaro.org>
12690
12691 * config/arm/arm.c (arm_vector_alignment_reachable): Check
12692 unaligned_access.
12693 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
12694
12695 2014-02-06 Richard Biener <rguenther@suse.de>
12696
12697 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
12698 set_loop_copy and initialize_original_copy_tables.
12699
12700 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
12701
12702 * config/aarch64/aarch64-simd.md
12703 (aarch64_ashr_simddi): Change QI to SI.
12704
12705 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
12706 Jakub Jelinek <jakub@redhat.com>
12707
12708 PR middle-end/60013
12709 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
12710 of the dataflow.
12711
12712 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12713
12714 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
12715 CODE_FOR_altivec_vpku[hw]um to
12716 CODE_FOR_altivec_vpku[hw]um_direct.
12717 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
12718 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
12719 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
12720 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
12721
12722 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12723
12724 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
12725 generation for -maltivec=be.
12726 (altivec_vsumsws): Simplify redundant test.
12727
12728 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12729
12730 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
12731 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
12732 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
12733 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
12734 gen_altivec_vpkuwum.
12735 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
12736 BYTES_BIG_ENDIAN.
12737 (altivec_vpks<VI_char>ss): Likewise.
12738 (altivec_vpks<VI_char>us): Likewise.
12739 (altivec_vpku<VI_char>us): Likewise.
12740 (altivec_vpku<VI_char>um): Likewise.
12741 (altivec_vpku<VI_char>um_direct): New (copy of
12742 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
12743 internal use).
12744 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
12745 target is little endian and -maltivec=be is not specified.
12746 (*altivec_vupkhs<VU_char>_direct): New (copy of
12747 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
12748 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
12749 target is little endian and -maltivec=be is not specified.
12750 (*altivec_vupkls<VU_char>_direct): New (copy of
12751 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
12752 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
12753 little endian and -maltivec=be is not specified.
12754 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
12755 little endian and -maltivec=be is not specified.
12756
12757 2014-02-05 Richard Henderson <rth@redhat.com>
12758
12759 PR debug/52727
12760 * combine-stack-adj.c: Revert r206943.
12761 * sched-int.h (struct deps_desc): Add last_args_size.
12762 * sched-deps.c (init_deps): Initialize it.
12763 (sched_analyze_insn): Add OUTPUT dependencies between insns that
12764 contain REG_ARGS_SIZE notes.
12765
12766 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
12767
12768 * lto-cgraph.c (asm_nodes_output): Make global.
12769 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
12770 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
12771 (driver_handle_option): Handle OPT_fwpa.
12772
12773 2014-02-05 Jakub Jelinek <jakub@redhat.com>
12774
12775 PR ipa/59947
12776 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
12777 a comment typo and formatting issue. If odr_hash hasn't been
12778 created, return vNULL and set *completep to false.
12779
12780 PR middle-end/57499
12781 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
12782 bb with no successors.
12783
12784 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
12785
12786 PR target/59718
12787 * doc/invoke.texi (-march): Clarify documentation for ARM.
12788 (-mtune): Likewise.
12789 (-mcpu): Likewise.
12790
12791 2014-02-05 Richard Biener <rguenther@suse.de>
12792
12793 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
12794 when not vectorizing because of too many alias checks.
12795 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12796 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
12797
12798 2014-02-05 Nick Clifton <nickc@redhat.com>
12799
12800 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
12801 accept extended registers in any mode when compiling for the MN10300.
12802
12803 2014-02-05 Yury Gribov <y.gribov@samsung.com>
12804
12805 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
12806 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
12807 sanitization attributes.
12808 (can_inline_edge_p): Likewise.
12809 (sanitize_attrs_match_for_inline_p): New function.
12810
12811 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12812
12813 * ipa-prop.c (detect_type_change): Shor circuit testing of
12814 type changes on THIS pointer.
12815
12816 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
12817
12818 PR target/59777
12819 * config/pa/pa.c (legitimize_tls_address): Return original address
12820 if not passed a SYMBOL_REF rtx.
12821 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
12822 addresses.
12823 (pa_emit_move_sequence): Simplify TLS source operands.
12824 (pa_legitimate_constant_p): Reject all TLS constants.
12825 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
12826 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
12827
12828 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12829
12830 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
12831 groups when we know they are controlled by LTO.
12832 * varasm.c (default_binds_local_p_1): If object is in other partition,
12833 it will be resolved locally.
12834
12835 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
12836
12837 * config/host-linux.c (linux_gt_pch_use_address): Don't
12838 use SSIZE_MAX because it is not always defined.
12839
12840 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
12841
12842 PR bootstrap/59913
12843 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
12844 threshold for pseudo splitting.
12845 (update_ebb_live_info): Process call argument hard registers and
12846 hard registers from insn definition too.
12847 (max_small_class_regs_num): New constant.
12848 (inherit_in_ebb): Update live hard regs through EBBs. Update
12849 reloads_num only for small register classes. Don't split for
12850 outputs of jumps.
12851
12852 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
12853
12854 PR ipa/60058
12855 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
12856 is non-null.
12857
12858 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
12859
12860 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
12861 visibility is safe.
12862
12863 2014-02-04 Marek Polacek <polacek@redhat.com>
12864
12865 * gdbinit.in (pel): Define.
12866
12867 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
12868
12869 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
12870 behavior.
12871
12872 2014-02-04 Richard Biener <rguenther@suse.de>
12873
12874 PR lto/59723
12875 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
12876 in function context local.
12877 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
12878 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
12879 similar to LTO_imported_decl_ref.
12880
12881 2014-02-04 Jakub Jelinek <jakub@redhat.com>
12882
12883 PR tree-optimization/60002
12884 * cgraphclones.c (build_function_decl_skip_args): Clear
12885 DECL_LANG_SPECIFIC.
12886
12887 PR tree-optimization/60023
12888 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
12889 false to gsi_replace.
12890 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
12891 has been in some EH region and vec_stmt could throw, add
12892 vec_stmt into the same EH region.
12893 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
12894 has no lhs, ignore it.
12895 * internal-fn.c (expand_MASK_LOAD): Likewise.
12896
12897 PR ipa/60026
12898 * tree-inline.c (copy_forbidden): Fail for
12899 __attribute__((optimize (0))) functions.
12900
12901 PR other/58712
12902 * omp-low.c (simd_clone_struct_copy): If from->inbranch
12903 is set, copy one less argument.
12904 (expand_simd_clones): Don't subtract clone_info->inbranch
12905 from simd_clone_struct_alloc argument.
12906
12907 PR rtl-optimization/57915
12908 * recog.c (simplify_while_replacing): If all unary/binary/relational
12909 operation arguments are constant, attempt to simplify those.
12910
12911 PR middle-end/59261
12912 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
12913 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
12914
12915 2014-02-04 Richard Biener <rguenther@suse.de>
12916
12917 PR tree-optimization/60012
12918 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
12919 TBAA disambiguation to all DDRs.
12920
12921 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12922
12923 PR target/59788
12924 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
12925 (LINK_SPEC): Use it for -shared, -shared-libgcc.
12926
12927 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12928
12929 PR ipa/59882
12930 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
12931
12932 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12933
12934 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
12935 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
12936
12937 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12938
12939 PR ipa/59831
12940 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
12941 to figure out targets of polymorphic calls with known decl.
12942 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12943 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
12944 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
12945 (get_polymorphic_call_info): ... here.
12946 (get_polymorphic_call_info_from_invariant): New function.
12947
12948 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12949
12950 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
12951 lookup via vtable pointer; check for type consistency
12952 and turn inconsitent facts into UNREACHABLE.
12953 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12954 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
12955 type inconsistent querries; return UNREACHABLE instead.
12956
12957 2014-02-03 Richard Henderson <rth@twiddle.net>
12958
12959 PR tree-opt/59924
12960 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
12961 already processed this node.
12962 (normalize_one_pred_1): Pass along mark_set.
12963 (normalize_one_pred): Create and destroy a pointer_set_t.
12964 (normalize_one_pred_chain): Likewise.
12965
12966 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
12967
12968 PR gcov-profile/58602
12969 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
12970
12971 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
12972
12973 PR ipa/59831
12974 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
12975 -fno-devirtualize; try to devirtualize by the knowledge of
12976 virtual table pointer given by aggregate propagation.
12977 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12978 (ipa_print_node_jump_functions): Dump also offset that
12979 is relevant for polymorphic calls.
12980 (determine_known_aggregate_parts): Add arg_type parameter; use it
12981 instead of determining the type from pointer type.
12982 (ipa_compute_jump_functions_for_edge): Update call of
12983 determine_known_aggregate_parts.
12984 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
12985 (gimple_get_virt_method_for_binfo): ... here; simplify using
12986 vtable_pointer_value_to_vtable.
12987 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
12988 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
12989 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
12990 (vtable_pointer_value_to_vtable): Break out from ...; handle also
12991 POINTER_PLUS_EXPR.
12992 (vtable_pointer_value_to_binfo): ... here.
12993 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
12994
12995 2014-02-03 Teresa Johnson <tejohnson@google.com>
12996
12997 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
12998 redef of outer loop index variable.
12999
13000 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
13001
13002 PR c++/53017
13003 PR c++/59211
13004 * doc/extend.texi (Function Attributes): Typo.
13005
13006 2014-02-03 Cong Hou <congh@google.com>
13007
13008 PR tree-optimization/60000
13009 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
13010 if the vectorized statement is a store. A store statement can only
13011 appear at the end of pattern statements.
13012
13013 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
13014
13015 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
13016 (ix86_option_override_internal): Default long double to 64-bit for
13017 32-bit Bionic and to 128-bit for 64-bit Bionic.
13018
13019 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
13020 TARGET_LONG_DOUBLE_128 is true.
13021 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
13022
13023 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
13024 (mlong-double-64): Negate -mlong-double-128.
13025 (mlong-double-128): New option.
13026
13027 * config/i386/i386-c.c (ix86_target_macros): Define
13028 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
13029
13030 * doc/invoke.texi: Document -mlong-double-128.
13031
13032 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
13033
13034 PR rtl-optimization/60024
13035 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
13036
13037 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
13038
13039 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
13040
13041 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
13042
13043 PR rtl-optimization/57662
13044 * sel-sched.c (code_motion_path_driver): Do not mark already not
13045 existing blocks in the visiting bitmap.
13046
13047 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
13048
13049 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
13050 on the insn being emitted.
13051
13052 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
13053 Will Deacon <will.deacon@arm.com>
13054
13055 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
13056
13057 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13058
13059 * config/arm/arm-tables.opt: Regenerate.
13060
13061 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13062
13063 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
13064 for vector types other than V16QImode.
13065 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
13066 define_expand, and call altivec_expand_vec_perm_le when producing
13067 code with little endian element order.
13068 (*altivec_vperm_<mode>_internal): New insn having previous
13069 behavior of altivec_vperm_<mode>.
13070 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
13071 altivec_expand_vec_perm_le when producing code with little endian
13072 element order.
13073 (*altivec_vperm_<mode>_uns_internal): New insn having previous
13074 behavior of altivec_vperm_<mode>_uns.
13075
13076 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13077
13078 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
13079 (altivec_vsumsws): Add handling for -maltivec=be with a little
13080 endian target.
13081 (altivec_vsumsws_direct): New.
13082 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
13083 gen_altivec_vsumsws.
13084
13085 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
13086
13087 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
13088 vtable_pointer_value_to_binfo): New functions.
13089 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
13090 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
13091
13092 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
13093
13094 * config/nios2/nios2.md (load_got_register): Initialize GOT
13095 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
13096 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
13097
13098 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
13099
13100 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
13101 preserverd by passthrough, do not propagate the type.
13102
13103 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13104
13105 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
13106 (mips_atomic_assign_expand_fenv): New function.
13107 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
13108
13109 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13110
13111 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
13112 (__builtin_mips_set_fcsr): Likewise.
13113 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
13114 MIPS_USI_FTYPE_VOID.
13115 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
13116 (mips16_expand_set_fcsr): Likewise.
13117 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
13118 (mips16_set_fcsr_stub): Likewise.
13119 (mips16_get_fcsr_one_only_stub): New class.
13120 (mips16_set_fcsr_one_only_stub): Likewise.
13121 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
13122 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
13123 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
13124 (hard_float): New availability predicate.
13125 (mips_builtins): Add get_fcsr and set_fcsr.
13126 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
13127 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
13128 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
13129 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
13130 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
13131 patterns.
13132
13133 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13134
13135 * config/mips/mips.c (mips_one_only_stub): New class.
13136 (mips_need_mips16_rdhwr_p): Replace with...
13137 (mips16_rdhwr_stub): ...this new variable.
13138 (mips16_stub_call_address): New function.
13139 (mips16_rdhwr_one_only_stub): New class.
13140 (mips_expand_thread_pointer): Use mips16_stub_call_address.
13141 (mips_output_mips16_rdhwr): Delete.
13142 (mips_finish_stub): New function.
13143 (mips_code_end): Use it to handle rdhwr stubs.
13144
13145 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
13146
13147 PR target/60017
13148 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
13149 when calculating size of integer atomic types.
13150
13151 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
13152
13153 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
13154
13155 2014-02-01 Jakub Jelinek <jakub@redhat.com>
13156
13157 PR tree-optimization/60003
13158 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
13159 * profile.c (branch_prob): Use gimple_call_builtin_p
13160 to check for BUILT_IN_SETJMP_RECEIVER.
13161 * tree-inline.c (copy_bb): Call notice_special_calls.
13162
13163 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
13164
13165 PR bootstrap/59985
13166 * lra-constraints.c (process_alt_operands): Update reload_sum only
13167 on the first pass.
13168
13169 2014-01-31 Richard Henderson <rth@redhat.com>
13170
13171 PR middle-end/60004
13172 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
13173 until after else_eh is processed.
13174
13175 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
13176
13177 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
13178 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
13179 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
13180 in smmintrin.h, remove them.
13181 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
13182 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
13183 * config/i386/i386.md (ROUND_SAE): Fix value.
13184 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
13185 (const48_operand): New.
13186 * config/i386/subst.md (round), (round_expand): Use
13187 const_4_or_8_to_11_operand.
13188 (round_saeonly), (round_saeonly_expand): Use const48_operand.
13189
13190 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
13191
13192 * config/i386/constraints.md (Yk): Swap meaning with k.
13193 * config/i386/i386.md (movhi_internal): Change Yk to k.
13194 (movqi_internal): Ditto.
13195 (*k<logic><mode>): Ditto.
13196 (*andhi_1): Ditto.
13197 (*andqi_1): Ditto.
13198 (kandn<mode>): Ditto.
13199 (*<code>hi_1): Ditto.
13200 (*<code>qi_1): Ditto.
13201 (kxnor<mode>): Ditto.
13202 (kortestzhi): Ditto.
13203 (kortestchi): Ditto.
13204 (kunpckhi): Ditto.
13205 (*one_cmplhi2_1): Ditto.
13206 (*one_cmplqi2_1): Ditto.
13207 * config/i386/sse.md (): Change k to Yk.
13208 (avx512f_load<mode>_mask): Ditto.
13209 (avx512f_blendm<mode>): Ditto.
13210 (avx512f_store<mode>_mask): Ditto.
13211 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
13212 (avx512f_storedqu<mode>_mask): Ditto.
13213 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
13214 Ditto.
13215 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
13216 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
13217 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
13218 (avx512f_maskcmp<mode>3): Ditto.
13219 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
13220 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
13221 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
13222 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
13223 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
13224 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
13225 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
13226 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
13227 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
13228 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
13229 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
13230 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
13231 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
13232 (vec_extract_lo_<mode>_maskm): Ditto.
13233 (vec_extract_hi_<mode>_maskm): Ditto.
13234 (avx512f_vternlog<mode>_mask): Ditto.
13235 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
13236 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
13237 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
13238 (avx512f_<code>v8div16qi2_mask): Ditto.
13239 (avx512f_<code>v8div16qi2_mask_store): Ditto.
13240 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
13241 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
13242 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
13243 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
13244 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
13245 (*avx512pf_gatherpf<mode>df_mask): Ditto.
13246 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13247 (*avx512pf_scatterpf<mode>df_mask): Ditto.
13248 (avx512cd_maskb_vec_dupv8di): Ditto.
13249 (avx512cd_maskw_vec_dupv16si): Ditto.
13250 (avx512f_vpermi2var<mode>3_maskz): Ditto.
13251 (avx512f_vpermi2var<mode>3_mask): Ditto.
13252 (avx512f_vpermi2var<mode>3_mask): Ditto.
13253 (avx512f_vpermt2var<mode>3_maskz): Ditto.
13254 (*avx512f_gathersi<mode>): Ditto.
13255 (*avx512f_gathersi<mode>_2): Ditto.
13256 (*avx512f_gatherdi<mode>): Ditto.
13257 (*avx512f_gatherdi<mode>_2): Ditto.
13258 (*avx512f_scattersi<mode>): Ditto.
13259 (*avx512f_scatterdi<mode>): Ditto.
13260 (avx512f_compress<mode>_mask): Ditto.
13261 (avx512f_compressstore<mode>_mask): Ditto.
13262 (avx512f_expand<mode>_mask): Ditto.
13263 * config/i386/subst.md (mask): Change k to Yk.
13264 (mask_scalar_merge): Ditto.
13265 (sd): Ditto.
13266
13267 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
13268
13269 * doc/extend.texi (Vector Extensions): Document ?: in C++.
13270
13271 2014-01-31 Richard Biener <rguenther@suse.de>
13272
13273 PR middle-end/59990
13274 * builtins.c (fold_builtin_memory_op): Make sure to not
13275 use a floating-point mode or a boolean or enumeral type for
13276 the copy operation.
13277
13278 2014-01-30 DJ Delorie <dj@redhat.com>
13279
13280 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
13281 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
13282 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
13283 whenever main() has an epilogue.
13284
13285 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13286
13287 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
13288 unused variable "field".
13289 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
13290 (vsx_mergeh_<mode>): Likewise.
13291 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
13292 (altivec_vmrghh): Likewise.
13293 (altivec_vmrghw): Likewise.
13294 (altivec_vmrglb): Likewise.
13295 (altivec_vmrglh): Likewise.
13296 (altivec_vmrglw): Likewise.
13297 (altivec_vspltb): Add missing uses.
13298 (altivec_vsplth): Likewise.
13299 (altivec_vspltw): Likewise.
13300 (altivec_vspltsf): Likewise.
13301
13302 2014-01-30 Jakub Jelinek <jakub@redhat.com>
13303
13304 PR target/59923
13305 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
13306 frame related instructions.
13307
13308 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
13309
13310 PR rtl-optimization/59959
13311 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
13312 any reload of register whose subreg is invalid.
13313
13314 2014-01-30 Jakub Jelinek <jakub@redhat.com>
13315
13316 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
13317 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
13318 Add missing return type - void.
13319
13320 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13321
13322 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
13323 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
13324 remove element index adjustment for endian (now handled in vsx.md
13325 and altivec.md).
13326 (altivec_expand_vec_perm_const): Use
13327 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
13328 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
13329 (vsx_xxspltw_<mode>): Adjust element index for little endian.
13330 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
13331 define_expand and a new define_insn *altivec_vspltb_internal;
13332 adjust for -maltivec=be on a little endian target.
13333 (altivec_vspltb_direct): New.
13334 (altivec_vsplth): Divide into a define_expand and a new
13335 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
13336 little endian target.
13337 (altivec_vsplth_direct): New.
13338 (altivec_vspltw): Divide into a define_expand and a new
13339 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
13340 little endian target.
13341 (altivec_vspltw_direct): New.
13342 (altivec_vspltsf): Divide into a define_expand and a new
13343 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
13344 a little endian target.
13345
13346 2014-01-30 Richard Biener <rguenther@suse.de>
13347
13348 PR tree-optimization/59993
13349 * tree-ssa-forwprop.c (associate_pointerplus): Check we
13350 can propagate form the earlier stmt and avoid the transform
13351 when the intermediate result is needed.
13352
13353 2014-01-30 Alangi Derick <alangiderick@gmail.com>
13354
13355 * README.Portability: Fix typo.
13356
13357 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
13358
13359 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
13360 comparison_operator with ordered_comparison_operator.
13361
13362 2014-01-30 Nick Clifton <nickc@redhat.com>
13363
13364 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
13365 Rename to mn10300_store_multiple_regs.
13366 * config/mn10300/mn10300.c: Likewise.
13367 * config/mn10300/mn10300.md (store_movm): Fix typo: call
13368 store_multiple_regs.
13369 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
13370 Call mn10300_store_multiple_regs.
13371
13372 2014-01-30 Nick Clifton <nickc@redhat.com>
13373 DJ Delorie <dj@redhat.com>
13374
13375 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
13376 %fp 2 to keep registers after it properly word-aligned.
13377 (rl78_alloc_physical_registers_umul): Handle the case where both
13378 input operands are the same.
13379
13380 2014-01-30 Richard Biener <rguenther@suse.de>
13381
13382 PR tree-optimization/59903
13383 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
13384 check properly.
13385
13386 2014-01-30 Jason Merrill <jason@redhat.com>
13387
13388 PR c++/59633
13389 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
13390
13391 PR c++/59645
13392 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
13393
13394 2014-01-30 Richard Biener <rguenther@suse.de>
13395
13396 PR tree-optimization/59951
13397 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
13398
13399 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
13400
13401 PR target/59784
13402 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
13403 SFmode to DFmode case.
13404
13405 2014-01-29 DJ Delorie <dj@redhat.com>
13406
13407 * config/msp430/msp430.opt (-minrt): New.
13408 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
13409 if -minrt given.
13410 (ENDFILE_SPEC): Likewise.
13411
13412 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
13413
13414 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
13415 (estimate_function_body_sizes): Use it.
13416
13417 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
13418
13419 PR c++/58561
13420 * dwarf2out.c (is_cxx_auto): New.
13421 (is_base_type): Use it.
13422 (gen_type_die_with_usage): Likewise.
13423
13424 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13425
13426 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
13427 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
13428 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
13429 -maltivec=be with LE targets.
13430 (vsx_mergeh_<mode>): Likewise.
13431 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
13432 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
13433 (altivec_vmrghb): Replace with define_expand and new
13434 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
13435 (altivec_vmrghb_direct): New define_insn.
13436 (altivec_vmrghh): Replace with define_expand and new
13437 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
13438 (altivec_vmrghh_direct): New define_insn.
13439 (altivec_vmrghw): Replace with define_expand and new
13440 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
13441 (altivec_vmrghw_direct): New define_insn.
13442 (*altivec_vmrghsf): Adjust for endianness.
13443 (altivec_vmrglb): Replace with define_expand and new
13444 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
13445 (altivec_vmrglb_direct): New define_insn.
13446 (altivec_vmrglh): Replace with define_expand and new
13447 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
13448 (altivec_vmrglh_direct): New define_insn.
13449 (altivec_vmrglw): Replace with define_expand and new
13450 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
13451 (altivec_vmrglw_direct): New define_insn.
13452 (*altivec_vmrglsf): Adjust for endianness.
13453 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
13454 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
13455 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
13456 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
13457 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
13458 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
13459 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
13460 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
13461
13462 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
13463
13464 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
13465 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
13466 whitespace.
13467
13468 2014-01-29 Richard Biener <rguenther@suse.de>
13469
13470 PR tree-optimization/58742
13471 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
13472 associate_pointerplus_align.
13473 (associate_pointerplus_diff): New function.
13474 (associate_pointerplus): Likewise. Call associate_pointerplus_align
13475 and associate_pointerplus_diff.
13476
13477 2014-01-29 Richard Biener <rguenther@suse.de>
13478
13479 * lto-streamer.h (LTO_major_version): Bump to 3.
13480 (LTO_minor_version): Reset to 0.
13481
13482 2014-01-29 Renlin Li <Renlin.Li@arm.com>
13483
13484 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
13485 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
13486 (arm_file_start): Generate correct asm header for armv7ve.
13487 * config/arm/bpabi.h: Add multilib support for armv7ve.
13488 * config/arm/driver-arm.c: Change the architectures of cortex-a7
13489 and cortex-a15 to armv7ve.
13490 * config/arm/t-aprofile: Add multilib support for armv7ve.
13491 * doc/invoke.texi: Document -march=armv7ve.
13492
13493 2014-01-29 Richard Biener <rguenther@suse.de>
13494
13495 PR tree-optimization/58742
13496 * tree-ssa-forwprop.c (associate_plusminus): Return true
13497 if we changed sth, defer EH cleanup to ...
13498 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
13499 (simplify_mult): New function.
13500
13501 2014-01-29 Jakub Jelinek <jakub@redhat.com>
13502
13503 PR middle-end/59917
13504 PR tree-optimization/59920
13505 * tree.c (build_common_builtin_nodes): Remove
13506 __builtin_setjmp_dispatcher initialization.
13507 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
13508 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
13509 instead of gsi_after_labels + manually skipping debug stmts.
13510 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
13511 ignore bbs with IFN_ABNORMAL_DISPATCHER.
13512 * tree-inline.c (copy_edges_for_bb): Remove
13513 can_make_abnormal_goto argument, instead add abnormal_goto_dest
13514 argument. Ignore computed_goto_p stmts. Don't call
13515 make_abnormal_goto_edges. If a call might need abnormal edges
13516 for non-local gotos, see if it already has an edge to
13517 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
13518 with true argument, don't do anything then, otherwise add
13519 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
13520 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
13521 caller.
13522 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
13523 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
13524 (lower_stmt): Don't set data->calls_builtin_setjmp.
13525 (lower_builtin_setjmp): Adjust comment.
13526 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
13527 * tree-cfg.c (found_computed_goto): Remove.
13528 (factor_computed_gotos): Remove.
13529 (make_goto_expr_edges): Return bool, true for computed gotos.
13530 Don't call make_abnormal_goto_edges.
13531 (build_gimple_cfg): Don't set found_computed_goto, don't call
13532 factor_computed_gotos.
13533 (computed_goto_p): No longer static.
13534 (make_blocks): Don't set found_computed_goto.
13535 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
13536 (make_edges): If make_goto_expr_edges returns true, push bb
13537 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
13538 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
13539 vector. Record mapping between bbs and OpenMP regions if there
13540 are any, adjust make_gimple_omp_edges caller. Call
13541 handle_abnormal_edges.
13542 (make_abnormal_goto_edges): Remove.
13543 * tree-cfg.h (make_abnormal_goto_edges): Remove.
13544 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
13545 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
13546 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
13547 * internal-fn.def (ABNORMAL_DISPATCHER): New.
13548 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
13549 filling *region also set *region_idx to (*region)->entry->index.
13550
13551 PR other/58712
13552 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
13553 For REGs set ORIGINAL_REGNO.
13554
13555 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
13556
13557 * doc/md.texi: Mention that a target shouldn't implement
13558 vec_widen_(s|u)mul_even/odd pair if it is less efficient
13559 than hi/lo pair.
13560
13561 2014-01-29 Jakub Jelinek <jakub@redhat.com>
13562
13563 PR tree-optimization/59594
13564 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
13565 a copy of the datarefs vector rather than the vector itself.
13566
13567 2014-01-28 Jason Merrill <jason@redhat.com>
13568
13569 PR c++/53756
13570 * dwarf2out.c (auto_die): New static.
13571 (gen_type_die_with_usage): Handle C++1y 'auto'.
13572 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
13573 on definition.
13574
13575 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
13576
13577 PR target/59672
13578 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
13579 (SPEC_X32): Likewise.
13580 (SPEC_64): Likewise.
13581 * config/i386/i386.c (ix86_option_override_internal): Turn off
13582 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
13583 for TARGET_16BIT.
13584 (x86_file_start): Output .code16gcc for TARGET_16BIT.
13585 * config/i386/i386.h (TARGET_16BIT): New macro.
13586 (TARGET_16BIT_P): Likewise.
13587 * config/i386/i386.opt: Add m16.
13588 * doc/invoke.texi: Document -m16.
13589
13590 2014-01-28 Jakub Jelinek <jakub@redhat.com>
13591
13592 PR preprocessor/59935
13593 * input.c (location_get_source_line): Bail out on when line number
13594 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
13595
13596 2014-01-28 Richard Biener <rguenther@suse.de>
13597
13598 PR tree-optimization/58742
13599 * tree-ssa-forwprop.c (associate_plusminus): Handle
13600 pointer subtraction of the form (T)(P + A) - (T)P.
13601
13602 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13603
13604 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
13605 at const_int_cost.
13606
13607 2014-01-28 Richard Biener <rguenther@suse.de>
13608
13609 Revert
13610 2014-01-28 Richard Biener <rguenther@suse.de>
13611
13612 PR rtl-optimization/45364
13613 PR rtl-optimization/59890
13614 * var-tracking.c (local_get_addr_clear_given_value): Handle
13615 already cleared slot.
13616 (val_reset): Handle not allocated local_get_addr_cache.
13617 (vt_find_locations): Use post-order on the inverted CFG.
13618
13619 2014-01-28 Richard Biener <rguenther@suse.de>
13620
13621 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
13622
13623 2014-01-28 Richard Biener <rguenther@suse.de>
13624
13625 PR rtl-optimization/45364
13626 PR rtl-optimization/59890
13627 * var-tracking.c (local_get_addr_clear_given_value): Handle
13628 already cleared slot.
13629 (val_reset): Handle not allocated local_get_addr_cache.
13630 (vt_find_locations): Use post-order on the inverted CFG.
13631
13632 2014-01-28 Alan Modra <amodra@gmail.com>
13633
13634 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
13635 * configure.ac <recursive call for build != host>: Define
13636 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
13637 and LD_FOR_BUILD too.
13638 * configure: Regenerate.
13639
13640 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
13641
13642 * config/i386/i386.c (get_builtin_code_for_version): Separate
13643 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
13644 Broadwell from Haswell.
13645
13646 2014-01-27 Steve Ellcey <sellcey@mips.com>
13647
13648 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
13649 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
13650 * config/mips/mips.c (mips_option_override): Change setting
13651 of TARGET_DSP.
13652 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
13653 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
13654 Change from Mask to Var.
13655
13656 2014-01-27 Jeff Law <law@redhat.com>
13657
13658 * ipa-inline.c (inline_small_functions): Fix typo.
13659
13660 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
13661
13662 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
13663 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
13664 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
13665 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
13666 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
13667 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
13668 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
13669 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
13670 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
13671 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
13672 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
13673 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
13674 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
13675 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
13676 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
13677 (_mm512_storeu_epi64): Ditto.
13678 (_mm512_cmpge_epi32_mask): Ditto.
13679 (_mm512_cmpge_epu32_mask): Ditto.
13680 (_mm512_cmpge_epi64_mask): Ditto.
13681 (_mm512_cmpge_epu64_mask): Ditto.
13682 (_mm512_cmple_epi32_mask): Ditto.
13683 (_mm512_cmple_epu32_mask): Ditto.
13684 (_mm512_cmple_epi64_mask): Ditto.
13685 (_mm512_cmple_epu64_mask): Ditto.
13686 (_mm512_cmplt_epi32_mask): Ditto.
13687 (_mm512_cmplt_epu32_mask): Ditto.
13688 (_mm512_cmplt_epi64_mask): Ditto.
13689 (_mm512_cmplt_epu64_mask): Ditto.
13690 (_mm512_cmpneq_epi32_mask): Ditto.
13691 (_mm512_cmpneq_epu32_mask): Ditto.
13692 (_mm512_cmpneq_epi64_mask): Ditto.
13693 (_mm512_cmpneq_epu64_mask): Ditto.
13694 (_mm512_expand_pd): Ditto.
13695 (_mm512_expand_ps): Ditto.
13696 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
13697 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
13698 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
13699 * config/i386/i386.c (ix86_builtins): Add
13700 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
13701 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
13702 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
13703 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
13704 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
13705 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
13706 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
13707 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
13708 IX86_BUILTIN_PMOVUSQW512_MEM.
13709 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
13710 __builtin_ia32_pmovsqd512mem_mask,
13711 __builtin_ia32_pmovqd512mem_mask,
13712 __builtin_ia32_pmovusqw512mem_mask,
13713 __builtin_ia32_pmovsqw512mem_mask,
13714 __builtin_ia32_pmovqw512mem_mask,
13715 __builtin_ia32_pmovusdw512mem_mask,
13716 __builtin_ia32_pmovsdw512mem_mask,
13717 __builtin_ia32_pmovdw512mem_mask,
13718 __builtin_ia32_pmovqb512mem_mask,
13719 __builtin_ia32_pmovusqb512mem_mask,
13720 __builtin_ia32_pmovsqb512mem_mask,
13721 __builtin_ia32_pmovusdb512mem_mask,
13722 __builtin_ia32_pmovsdb512mem_mask,
13723 __builtin_ia32_pmovdb512mem_mask.
13724 (bdesc_args): Add __builtin_ia32_expanddf512,
13725 __builtin_ia32_expandsf512.
13726 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
13727 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
13728 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
13729 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
13730 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
13731 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
13732 (avx512f_<code>v8div16qi2_mask_store): This.
13733 (avx512f_expand<mode>): New.
13734
13735 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
13736
13737 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
13738 New.
13739 (_mm512_mask_prefetch_i64gather_pd): Ditto.
13740 (_mm512_prefetch_i32scatter_pd): Ditto.
13741 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
13742 (_mm512_prefetch_i64scatter_pd): Ditto.
13743 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
13744 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
13745 (_mm512_mask_prefetch_i64gather_ps): Ditto.
13746 (_mm512_prefetch_i32scatter_ps): Ditto.
13747 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
13748 (_mm512_prefetch_i64scatter_ps): Ditto.
13749 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
13750 * config/i386/i386-builtin-types.def: Define
13751 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
13752 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
13753 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
13754 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
13755 IX86_BUILTIN_SCATTERPFQPD.
13756 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
13757 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
13758 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
13759 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
13760 __builtin_ia32_scatterpfqps.
13761 (ix86_expand_builtin): Expand new built-ins.
13762 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
13763 fix memory access data type.
13764 (*avx512pf_gatherpf<mode>_mask): Ditto.
13765 (*avx512pf_gatherpf<mode>): Ditto.
13766 (avx512pf_scatterpf<mode>): Ditto.
13767 (*avx512pf_scatterpf<mode>_mask): Ditto.
13768 (*avx512pf_scatterpf<mode>): Ditto.
13769 (GATHER_SCATTER_SF_MEM_MODE): New.
13770 (avx512pf_gatherpf<mode>df): Ditto.
13771 (*avx512pf_gatherpf<mode>df_mask): Ditto.
13772 (*avx512pf_scatterpf<mode>df): Ditto.
13773
13774 2014-01-27 Jakub Jelinek <jakub@redhat.com>
13775
13776 PR bootstrap/59934
13777 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
13778 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
13779 reached.
13780
13781 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
13782
13783 * common/config/arm/arm-common.c
13784 (arm_rewrite_mcpu): Handle multiple names.
13785 * config/arm/arm.h
13786 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
13787
13788 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
13789
13790 * gimple-builder.h (create_gimple_tmp): Delete.
13791
13792 2014-01-27 Christian Bruel <christian.bruel@st.com>
13793
13794 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
13795 words comparisons.
13796
13797 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
13798
13799 * config/pa/pa.md (call): Generate indirect long calls to non-local
13800 functions when outputing 32-bit code.
13801 (call_value): Likewise except for special call to buggy powf function.
13802
13803 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
13804 portable runtime and PIC indirect calls.
13805 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
13806 and PIC call sequences. Use ldo instead of blr to set return register
13807 in PIC call sequence.
13808
13809 2014-01-25 Walter Lee <walt@tilera.com>
13810
13811 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
13812 avoid clobbering a live register.
13813
13814 2014-01-25 Walter Lee <walt@tilera.com>
13815
13816 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
13817 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
13818 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
13819 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
13820
13821 2014-01-25 Walter Lee <walt@tilera.com>
13822
13823 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
13824 arguments on even registers.
13825 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
13826 STACK_BOUNDARY.
13827 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
13828 (BIGGEST_ALIGNMENT): Ditto.
13829 (BIGGEST_FIELD_ALIGNMENT): Ditto.
13830
13831 2014-01-25 Walter Lee <walt@tilera.com>
13832
13833 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
13834 insns before bundling.
13835 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
13836
13837 2014-01-25 Walter Lee <walt@tilera.com>
13838
13839 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
13840 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
13841 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
13842
13843 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
13844
13845 * config/mips/constraints.md (kl): Delete.
13846 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
13847 define expands, using...
13848 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
13849 instructions for MIPS16.
13850 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
13851 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
13852
13853 2014-01-25 Walter Lee <walt@tilera.com>
13854
13855 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
13856 (clzdi2): Ditto.
13857 (ffsdi2): Ditto.
13858
13859 2014-01-25 Walter Lee <walt@tilera.com>
13860
13861 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
13862 (TARGET_EXPAND_TO_RTL_HOOK): Define.
13863
13864 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
13865
13866 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
13867 Handle XOR.
13868
13869 2014-01-25 Jakub Jelinek <jakub@redhat.com>
13870
13871 * print-rtl.c (in_call_function_usage): New var.
13872 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
13873 EXPR_LIST mode as mode and not as reg note name.
13874
13875 PR middle-end/59561
13876 * cfgloopmanip.c (copy_loop_info): If
13877 loop->warned_aggressive_loop_optimizations, make sure
13878 the flag is set in target loop too.
13879
13880 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
13881
13882 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
13883 flag_cilkplus.
13884 * builtins.def: Likewise.
13885 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
13886 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
13887 * ira.c (ira_setup_eliminable_regset): Likewise.
13888 * omp-low.c (gate_expand_omp): Likewise.
13889 (execute_lower_omp): Likewise.
13890 (diagnose_sb_0): Likewise.
13891 (gate_diagnose_omp_blocks): Likewise.
13892 (simd_clone_clauses_extract): Likewise.
13893 (gate): Likewise.
13894
13895 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13896
13897 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
13898 correction for little endian...
13899 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
13900 here.
13901
13902 2014-01-24 Jeff Law <law@redhat.com>
13903
13904 PR tree-optimization/59919
13905 * tree-vrp.c (find_assert_locations_1): Do not register asserts
13906 for non-returning calls.
13907
13908 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
13909
13910 * common/config/aarch64/aarch64-common.c
13911 (aarch64_rewrite_mcpu): Handle multiple names.
13912 * config/aarch64/aarch64.h
13913 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
13914
13915 2014-01-24 Dodji Seketeli <dodji@redhat.com>
13916
13917 * input.c (add_file_to_cache_tab): Handle the case where fopen
13918 returns NULL.
13919
13920 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
13921
13922 PR target/59929
13923 * config/i386/i386.md (pushsf splitter): Get stack adjustment
13924 from push operand if code of push isn't PRE_DEC.
13925
13926 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13927
13928 PR target/59909
13929 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13930 -mquad-memory-atomic. Update -mquad-memory documentation to say
13931 it is only used for non-atomic loads/stores.
13932
13933 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
13934 -mquad-memory or -mquad-memory-atomic switches.
13935
13936 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
13937 -mquad-memory-atomic to ISA 2.07 support.
13938
13939 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
13940 to separate support of normal quad word memory operations (ldq, stq)
13941 from the atomic quad word memory operations.
13942
13943 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
13944 support to separate non-atomic quad word operations from atomic
13945 quad word operations. Disable non-atomic quad word operations in
13946 little endian mode so that we don't have to swap words after the
13947 load and before the store.
13948 (quad_load_store_p): Add comment about atomic quad word support.
13949 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
13950 options printed with -mdebug=reg.
13951
13952 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
13953 -mquad-memory-atomic as the test for whether we have quad word
13954 atomic instructions.
13955 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
13956 or -mp8-vector are used, allow byte/half-word atomic operations.
13957
13958 * config/rs6000/sync.md (load_lockedti): Insure that the address
13959 is a proper indexed or indirect address for the lqarx instruction.
13960 On little endian systems, swap the hi/lo registers after the lqarx
13961 instruction.
13962 (load_lockedpti): Use indexed_or_indirect_operand predicate to
13963 insure the address is valid for the lqarx instruction.
13964 (store_conditionalti): Insure that the address is a proper indexed
13965 or indirect address for the stqcrx. instruction. On little endian
13966 systems, swap the hi/lo registers before doing the stqcrx.
13967 instruction.
13968 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
13969 insure the address is valid for the stqcrx. instruction.
13970
13971 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
13972 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
13973 type of quad memory support is available.
13974
13975 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
13976
13977 PR regression/59915
13978 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
13979 there is a danger of looping.
13980
13981 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
13982
13983 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13984 force flag_ira_loop_pressure if set via command line.
13985
13986 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
13987
13988 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
13989 (ashr_simd): New builtin handling DI mode.
13990 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
13991 (aarch64_sshr_simddi): New match pattern.
13992 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
13993 (vshrd_n_s64): Likewise.
13994 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
13995
13996 2014-01-23 Nick Clifton <nickc@redhat.com>
13997
13998 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
13999 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
14000 favour of mcu specific scripts.
14001 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
14002 430x multilibs.
14003
14004 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
14005 Alex Velenko <Alex.Velenko@arm.com>
14006
14007 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
14008 (vaddv_s16): Likewise.
14009 (vaddv_s32): Likewise.
14010 (vaddv_u8): Likewise.
14011 (vaddv_u16): Likewise.
14012 (vaddv_u32): Likewise.
14013 (vaddvq_s8): Likewise.
14014 (vaddvq_s16): Likewise.
14015 (vaddvq_s32): Likewise.
14016 (vaddvq_s64): Likewise.
14017 (vaddvq_u8): Likewise.
14018 (vaddvq_u16): Likewise.
14019 (vaddvq_u32): Likewise.
14020 (vaddvq_u64): Likewise.
14021 (vaddv_f32): Likewise.
14022 (vaddvq_f32): Likewise.
14023 (vaddvq_f64): Likewise.
14024 (vmaxv_f32): Likewise.
14025 (vmaxv_s8): Likewise.
14026 (vmaxv_s16): Likewise.
14027 (vmaxv_s32): Likewise.
14028 (vmaxv_u8): Likewise.
14029 (vmaxv_u16): Likewise.
14030 (vmaxv_u32): Likewise.
14031 (vmaxvq_f32): Likewise.
14032 (vmaxvq_f64): Likewise.
14033 (vmaxvq_s8): Likewise.
14034 (vmaxvq_s16): Likewise.
14035 (vmaxvq_s32): Likewise.
14036 (vmaxvq_u8): Likewise.
14037 (vmaxvq_u16): Likewise.
14038 (vmaxvq_u32): Likewise.
14039 (vmaxnmv_f32): Likewise.
14040 (vmaxnmvq_f32): Likewise.
14041 (vmaxnmvq_f64): Likewise.
14042 (vminv_f32): Likewise.
14043 (vminv_s8): Likewise.
14044 (vminv_s16): Likewise.
14045 (vminv_s32): Likewise.
14046 (vminv_u8): Likewise.
14047 (vminv_u16): Likewise.
14048 (vminv_u32): Likewise.
14049 (vminvq_f32): Likewise.
14050 (vminvq_f64): Likewise.
14051 (vminvq_s8): Likewise.
14052 (vminvq_s16): Likewise.
14053 (vminvq_s32): Likewise.
14054 (vminvq_u8): Likewise.
14055 (vminvq_u16): Likewise.
14056 (vminvq_u32): Likewise.
14057 (vminnmv_f32): Likewise.
14058 (vminnmvq_f32): Likewise.
14059 (vminnmvq_f64): Likewise.
14060
14061 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
14062
14063 * config/aarch64/aarch64-simd.md
14064 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
14065 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
14066 (*aarch64_mul3_elt<mode>): Likewise.
14067 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
14068 (*aarch64_mul3_elt_to_64v2df): Likewise.
14069 (*aarch64_mla_elt<mode>): Likewise.
14070 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
14071 (*aarch64_mls_elt<mode>): Likewise.
14072 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
14073 (*aarch64_fma4_elt<mode>): Likewise.
14074 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
14075 (*aarch64_fma4_elt_to_64v2df): Likewise.
14076 (*aarch64_fnma4_elt<mode>): Likewise.
14077 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
14078 (*aarch64_fnma4_elt_to_64v2df): Likewise.
14079 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
14080 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
14081 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
14082 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
14083 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
14084 (aarch64_sqdmull_lane<mode>_internal): Likewise.
14085 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
14086
14087 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
14088
14089 * config/aarch64/aarch64-simd.md
14090 (aarch64_be_checked_get_lane<mode>): New define_expand.
14091 * config/aarch64/aarch64-simd-builtins.def
14092 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
14093 New builtin definition.
14094 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
14095 Use new safe be builtin.
14096
14097 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
14098
14099 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
14100 New define_insn.
14101 (aarch64_be_st1<mode>): Likewise.
14102 (aarch_ld1<VALL:mode>): Define_expand modified.
14103 (aarch_st1<VALL:mode>): Likewise.
14104 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
14105 (UNSPEC_ST1): Likewise.
14106
14107 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
14108
14109 * config/microblaze/microblaze.md: Add trap insn and attribute
14110
14111 2014-01-23 Dodji Seketeli <dodji@redhat.com>
14112
14113 PR preprocessor/58580
14114 * input.h (location_get_source_line): Take an additional line_size
14115 parameter.
14116 (void diagnostics_file_cache_fini): Declare new function.
14117 * input.c (struct fcache): New type.
14118 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
14119 New static constants.
14120 (diagnostic_file_cache_init, total_lines_num)
14121 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
14122 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
14123 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
14124 (get_next_line, read_next_line, goto_next_line, read_line_num):
14125 New static function definitions.
14126 (diagnostic_file_cache_fini): New function.
14127 (location_get_source_line): Take an additional output line_len
14128 parameter. Re-write using lookup_or_add_file_to_cache_tab and
14129 read_line_num.
14130 * diagnostic.c (diagnostic_finish): Call
14131 diagnostic_file_cache_fini.
14132 (adjust_line): Take an additional input parameter for the length
14133 of the line, rather than calculating it with strlen.
14134 (diagnostic_show_locus): Adjust the use of
14135 location_get_source_line and adjust_line with respect to their new
14136 signature. While displaying a line now, do not stop at the first
14137 null byte. Rather, display the zero byte as a space and keep
14138 going until we reach the size of the line.
14139 * Makefile.in: Add vec.o to OBJS-libcommon
14140
14141 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
14142 Ilya Tocar <ilya.tocar@intel.com>
14143
14144 * config/i386/avx512fintrin.h (_mm512_kmov): New.
14145 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
14146 (__builtin_ia32_kmov16): Ditto.
14147 * config/i386/i386.md (UNSPEC_KMOV): New.
14148 (kmovw): Ditto.
14149
14150 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
14151
14152 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
14153 (_mm512_storeu_si512): Ditto.
14154
14155 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
14156
14157 PR target/52125
14158 * rtl.h (get_referenced_operands): Declare.
14159 * recog.c (get_referenced_operands): New function.
14160 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
14161 operands have been referenced when recording LO_SUM references.
14162
14163 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
14164
14165 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
14166
14167 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
14168
14169 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
14170 Enable for generic and recent AMD targets.
14171
14172 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
14173
14174 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
14175 ARG_SIZE note when adjustment was eliminated.
14176
14177 2014-01-22 Jeff Law <law@redhat.com>
14178
14179 PR tree-optimization/59597
14180 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
14181 in file. Accept new argument REGISTERING and use it to modify
14182 dump output appropriately.
14183 (register_jump_thread): Corresponding changes.
14184 (mark_threaded_blocks): Reinstate code to cancel unprofitable
14185 thread paths involving joiner blocks. Add code to dump cancelled
14186 jump threading paths.
14187
14188 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
14189
14190 PR rtl-optimization/59477
14191 * lra-constraints.c (inherit_in_ebb): Process call for living hard
14192 regs. Update reloads_num and potential_reload_hard_regs for all insns.
14193
14194 2014-01-22 Tom Tromey <tromey@redhat.com>
14195
14196 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
14197 PARAMS.
14198 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
14199
14200 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
14201
14202 PR rtl-optimization/59896
14203 * lra-constraints.c (process_alt_operands): Check unused note for
14204 matched operands of insn with no output reloads.
14205
14206 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
14207
14208 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
14209 (mips_move_from_gpr_cost): Likewise.
14210
14211 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
14212
14213 PR rtl-optimization/59858
14214 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
14215 ira_class_hard_regs_num.
14216 (process_alt_operands): Increase reject for dying matched operand.
14217
14218 2014-01-21 Jakub Jelinek <jakub@redhat.com>
14219
14220 PR target/59003
14221 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
14222 smaller than size, perform several stores or loads and stores
14223 at dst + count - size to store or copy all of size bytes, rather
14224 than just last modesize bytes.
14225
14226 2014-01-20 DJ Delorie <dj@redhat.com>
14227
14228 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
14229 that CLOBBERs are REGs before propogating their values.
14230
14231 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
14232
14233 PR middle-end/59789
14234 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
14235 (cgraph_inline_failed_type): New function.
14236 * cgraph.h (DEFCIFCODE): Add type.
14237 (cgraph_inline_failed_type_t): New enum.
14238 (cgraph_inline_failed_type): New prototype.
14239 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
14240 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
14241 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
14242 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
14243 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
14244 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
14245 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
14246 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
14247 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
14248 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
14249 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
14250 OPTIMIZATION_MISMATCH.
14251 * tree-inline.c (expand_call_inline): Emit errors during
14252 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
14253
14254 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
14255
14256 PR target/59685
14257 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
14258 mode attribute in insn output.
14259
14260 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
14261
14262 * output.h (output_constant): Delete.
14263 * varasm.c (output_constant): Make private.
14264
14265 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
14266
14267 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
14268
14269 2014-01-20 Jakub Jelinek <jakub@redhat.com>
14270
14271 PR middle-end/59860
14272 * tree.h (fold_builtin_strcat): New prototype.
14273 * builtins.c (fold_builtin_strcat): No longer static. Add len
14274 argument, if non-NULL, don't call c_strlen. Optimize
14275 directly into __builtin_memcpy instead of __builtin_strcpy.
14276 (fold_builtin_2): Adjust fold_builtin_strcat caller.
14277 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
14278
14279 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
14280
14281 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
14282 for SImode_address_operand operands, having only a REG argument.
14283
14284 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
14285
14286 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
14287 loader name using mbig-endian.
14288 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
14289
14290 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
14291
14292 * doc/invoke.texi (-march): Clarify documentation for AArch64.
14293 (-mtune): Likewise.
14294 (-mcpu): Likewise.
14295
14296 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
14297
14298 * config/aarch64/aarch64-protos.h
14299 (aarch64_cannot_change_mode_class_ptr): Declare.
14300 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
14301 aarch64_cannot_change_mode_class_ptr): New.
14302 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
14303 backend hook aarch64_cannot_change_mode_class.
14304
14305 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
14306
14307 * common/config/aarch64/aarch64-common.c
14308 (aarch64_handle_option): Don't handle any option order logic here.
14309 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
14310 selected_cpu, warn on architecture version mismatch.
14311 (aarch64_override_options): Fix parsing order for option strings.
14312
14313 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14314 Iain Sandoe <iain@codesourcery.com>
14315
14316 PR bootstrap/59496
14317 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
14318 warning. Amend comment to reflect current functionality.
14319
14320 2014-01-20 Richard Biener <rguenther@suse.de>
14321
14322 PR middle-end/59860
14323 * builtins.c (fold_builtin_strcat): Remove case better handled
14324 by tree-ssa-strlen.c.
14325
14326 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
14327
14328 * config/aarch64/aarch64.opt
14329 (mcpu, march, mtune): Make case-insensitive.
14330
14331 2014-01-20 Jakub Jelinek <jakub@redhat.com>
14332
14333 PR target/59880
14334 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
14335 if operands[1] is a REG or ZERO_EXTEND of a REG.
14336
14337 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
14338
14339 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
14340
14341 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
14342
14343 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
14344 long non-pic millicode calls.
14345
14346 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14347
14348 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
14349
14350 2014-01-19 Kito Cheng <kito@0xlab.org>
14351
14352 * builtins.c (expand_movstr): Check movstr expand done or fail.
14353
14354 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
14355 H.J. Lu <hongjiu.lu@intel.com>
14356
14357 PR target/59379
14358 * config/i386/i386.md (*lea<mode>): Zero-extend return register
14359 to DImode for zero-extended addresses.
14360
14361 2014-01-19 Jakub Jelinek <jakub@redhat.com>
14362
14363 PR rtl-optimization/57763
14364 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
14365 on the new indirect jump_insn and increment LABEL_NUSES (label).
14366
14367 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
14368
14369 PR bootstrap/59580
14370 PR bootstrap/59583
14371 * config.gcc (x86_archs): New variable.
14372 (x86_64_archs): Likewise.
14373 (x86_cpus): Likewise.
14374 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
14375 --with-arch/--with-cpu= options.
14376 Support --with-arch=/--with-cpu={nehalem,westmere,
14377 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
14378
14379 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
14380
14381 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
14382 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
14383
14384 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
14385
14386 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
14387
14388 2014-01-18 Jakub Jelinek <jakub@redhat.com>
14389
14390 PR target/58944
14391 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
14392 clear cpp_get_options (parse_in)->warn_unused_macros for
14393 ix86_target_macros_internal with cpp_define.
14394
14395 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
14396
14397 * jump.c (delete_related_insns): Keep (use (insn))s.
14398 * reorg.c (redundant_insn): Check for barriers too.
14399
14400 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
14401
14402 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
14403
14404 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
14405
14406 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
14407 call to $$dyncall when TARGET_LONG_CALLS is true.
14408
14409 2014-01-17 Jeff Law <law@redhat.com>
14410
14411 * ree.c (combine_set_extension): Temporarily disable test for
14412 changing number of hard registers.
14413
14414 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
14415
14416 PR middle-end/58125
14417 * ipa-inline-analysis.c (inline_free_summary):
14418 Do not free summary of aliases.
14419
14420 2014-01-17 Jakub Jelinek <jakub@redhat.com>
14421
14422 PR middle-end/59706
14423 * gimplify.c (gimplify_expr): Use create_tmp_var
14424 instead of create_tmp_var_raw. If cond doesn't have
14425 integral type, don't add the IFN_ANNOTATE builtin at all.
14426
14427 2014-01-17 Martin Jambor <mjambor@suse.cz>
14428
14429 PR ipa/59736
14430 * ipa-cp.c (prev_edge_clone): New variable.
14431 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
14432 Also resize prev_edge_clone vector.
14433 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
14434 (ipcp_edge_removal_hook): New function.
14435 (ipcp_driver): Register ipcp_edge_removal_hook.
14436
14437 2014-01-17 Andrew Pinski <apinski@cavium.com>
14438 Steve Ellcey <sellcey@mips.com>
14439
14440 PR target/59462
14441 * config/mips/mips.c (mips_print_operand): Check operand mode instead
14442 of operator mode.
14443
14444 2014-01-17 Jeff Law <law@redhat.com>
14445
14446 PR middle-end/57904
14447 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
14448 so that pass_ccp runs first.
14449
14450 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
14451
14452 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
14453 (ix86_adjust_cost): Use !TARGET_XXX.
14454 (do_reorder_for_imul): Likewise.
14455 (swap_top_of_ready_list): Likewise.
14456 (ix86_sched_reorder): Likewise.
14457
14458 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
14459
14460 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14461 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
14462 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
14463 (intel_memset): New. Duplicate slm_memset.
14464 (intel_cost): New. Duplicate slm_cost.
14465 (m_INTEL): New macro.
14466 (processor_target_table): Add "intel".
14467 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
14468 with PROCESSOR_INTEL for "intel".
14469 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
14470 PROCESSOR_SILVERMONT.
14471 (ix86_issue_rate): Likewise.
14472 (ix86_adjust_cost): Likewise.
14473 (ia32_multipass_dfa_lookahead): Likewise.
14474 (swap_top_of_ready_list): Likewise.
14475 (ix86_sched_reorder): Likewise.
14476 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
14477 instead of TARGET_OPT_AGU.
14478 * config/i386/i386.h (TARGET_INTEL): New.
14479 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
14480 (processor_type): Add PROCESSOR_INTEL.
14481 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
14482 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
14483
14484 2014-01-17 Marek Polacek <polacek@redhat.com>
14485
14486 PR c/58346
14487 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
14488 size is zero.
14489
14490 2014-01-17 Richard Biener <rguenther@suse.de>
14491
14492 PR tree-optimization/46590
14493 * opts.c (default_options_table): Add entries for
14494 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
14495 all enabled at -O1 but not for -Og.
14496 * common.opt (fbranch-count-reg): Remove Init(1).
14497 (fmove-loop-invariants): Likewise.
14498 (ftree-pta): Likewise.
14499
14500 2014-01-17 Jakub Jelinek <jakub@redhat.com>
14501
14502 * config/i386/i386.c (ix86_data_alignment): For compatibility with
14503 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
14504 decls to at least the GCC 4.8 used alignments.
14505
14506 PR fortran/59440
14507 * tree-nested.c (convert_nonlocal_reference_stmt,
14508 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
14509 of GIMPLE_BIND stmts, adjust associated decls.
14510
14511 2014-01-17 Richard Biener <rguenther@suse.de>
14512
14513 PR tree-optimization/46590
14514 * vec.h (vec<>::bseach): New member function implementing
14515 binary search according to C89 bsearch.
14516 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
14517 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
14518 bitmap pointer again. Make accesses_in_loop a flat array.
14519 (mem_ref_obstack): New global.
14520 (outermost_indep_loop): Adjust for mem_ref->stored changes.
14521 (mark_ref_stored): Likewise.
14522 (ref_indep_loop_p_2): Likewise.
14523 (set_ref_stored_in_loop): New helper function.
14524 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
14525 (memref_free): Adjust.
14526 (record_mem_ref_loc): Simplify.
14527 (gather_mem_refs_stmt): Adjust.
14528 (sort_locs_in_loop_postorder_cmp): New function.
14529 (analyze_memory_references): Sort accesses_in_loop after
14530 loop postorder number.
14531 (find_ref_loc_in_loop_cmp): New function.
14532 (for_all_locs_in_loop): Find relevant cluster of locs in
14533 accesses_in_loop and iterate without recursion.
14534 (execute_sm): Avoid uninit warning.
14535 (struct ref_always_accessed): Simplify.
14536 (ref_always_accessed::operator ()): Likewise.
14537 (ref_always_accessed_p): Likewise.
14538 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
14539 loop postorder numbers here.
14540 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
14541 numbers.
14542
14543 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
14544
14545 PR c++/57945
14546 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
14547 on decls for which assemble_alias has been called.
14548
14549 2014-01-17 Nick Clifton <nickc@redhat.com>
14550
14551 * config/msp430/msp430.opt: (mcpu): New option.
14552 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
14553 (msp430_option_override): Parse target_cpu. If the MCU name
14554 matches a generic string, clear target_mcu.
14555 (msp430_attr): Allow numeric interrupt values up to 63.
14556 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
14557 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
14558 option.
14559 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
14560 Add mcpu matches.
14561 * config/msp430/msp430.md (popm): Use %J rather than %I.
14562 (addsi3): Use msp430_nonimmediate_operand for operand 2.
14563 (addhi_cy_i): Use immediate_operand for operand 2.
14564 * doc/invoke.texi: Document -mcpu option.
14565
14566 2014-01-17 Richard Biener <rguenther@suse.de>
14567
14568 PR rtl-optimization/38518
14569 * df.h (df_analyze_loop): Declare.
14570 * df-core.c: Include cfgloop.h.
14571 (df_analyze_1): Split out main part of df_analyze.
14572 (df_analyze): Adjust.
14573 (loop_inverted_post_order_compute): New function.
14574 (loop_post_order_compute): Likewise.
14575 (df_analyze_loop): New function avoiding whole-function
14576 postorder computes.
14577 * loop-invariant.c (find_defs): Use df_analyze_loop.
14578 (find_invariants): Adjust.
14579 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
14580
14581 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
14582
14583 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
14584 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
14585
14586 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
14587
14588 * ipa-ref.c (ipa_remove_stmt_references): Fix references
14589 traversal when removing references.
14590
14591 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
14592
14593 PR ipa/59775
14594 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
14595
14596 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
14597
14598 PR middle-end/56791
14599 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
14600 pushing a reload for an autoinc when we had previously reloaded an
14601 inner part of the address.
14602
14603 2014-01-16 Jakub Jelinek <jakub@redhat.com>
14604
14605 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
14606 field.
14607 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
14608 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
14609 when not giving up or versioning for alias only because of
14610 loop->safelen.
14611 (vect_analyze_data_ref_dependences): Set to true.
14612 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
14613 is a GIMPLE_PHI.
14614 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
14615 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
14616 to the condition.
14617
14618 PR middle-end/58344
14619 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
14620
14621 PR target/59839
14622 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
14623 operand 0 predicate for gathers, use a new pseudo as subtarget.
14624
14625 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
14626
14627 PR middle-end/59609
14628 * lra-constraints.c (process_alt_operands): Add printing debug info.
14629 Check absence of input/output reloads for matched operands too.
14630
14631 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
14632
14633 PR rtl-optimization/59835
14634 * ira.c (ira_init_register_move_cost): Increase cost for
14635 impossible modes.
14636
14637 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
14638
14639 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
14640
14641 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
14642
14643 PR target/59780
14644 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
14645 non-register objects. Use gen_(high/low)part more consistently.
14646 Fix assertions.
14647
14648 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
14649
14650 PR target/59844
14651 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
14652 endian support, remove tests for WORDS_BIG_ENDIAN.
14653 (p8_mfvsrd_3_<mode>): Likewise.
14654 (reload_gpr_from_vsx<mode>): Likewise.
14655 (reload_gpr_from_vsxsf): Likewise.
14656 (p8_mfvsrd_4_disf): Likewise.
14657
14658 2014-01-16 Richard Biener <rguenther@suse.de>
14659
14660 PR rtl-optimization/46590
14661 * lcm.c (compute_antinout_edge): Use postorder iteration.
14662 (compute_laterin): Use inverted postorder iteration.
14663
14664 2014-01-16 Nick Clifton <nickc@redhat.com>
14665
14666 PR middle-end/28865
14667 * varasm.c (output_constant): Return the number of bytes actually
14668 emitted.
14669 (output_constructor_array_range): Update the field size with the
14670 number of bytes emitted by output_constant.
14671 (output_constructor_regular_field): Likewise. Also do not
14672 complain if the total number of bytes emitted is now greater
14673 than the expected fieldpos.
14674 * output.h (output_constant): Update prototype and descriptive comment.
14675
14676 2014-01-16 Marek Polacek <polacek@redhat.com>
14677
14678 PR middle-end/59827
14679 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
14680 it is error_mark_node.
14681
14682 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
14683
14684 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
14685 VALID_AVX256_REG_OR_OI_MODE.
14686
14687 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
14688
14689 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
14690 current procedure should be profiled.
14691
14692 2014-01-15 Andrew Pinski <apinski@cavium.com>
14693
14694 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
14695 of moving from/to the STACK_REG register class.
14696
14697 2014-01-15 Richard Henderson <rth@redhat.com>
14698
14699 PR debug/54694
14700 * reginfo.c (global_regs_decl): Globalize.
14701 * rtl.h (global_regs_decl): Declare.
14702 * ira.c (do_reload): Diagnose frame_pointer_needed and it
14703 reserved via global_regs.
14704
14705 2014-01-15 Teresa Johnson <tejohnson@google.com>
14706
14707 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
14708
14709 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
14710
14711 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
14712 and vmulosh rather than call gen_vec_widen_smult_*.
14713 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
14714 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
14715 (vec_widen_smult_even_v16qi): Likewise.
14716 (vec_widen_umult_even_v8hi): Likewise.
14717 (vec_widen_smult_even_v8hi): Likewise.
14718 (vec_widen_umult_odd_v16qi): Likewise.
14719 (vec_widen_smult_odd_v16qi): Likewise.
14720 (vec_widen_umult_odd_v8hi): Likewise.
14721 (vec_widen_smult_odd_v8hi): Likewise.
14722 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
14723 vmuloub rather than call gen_vec_widen_umult_*.
14724 (vec_widen_umult_lo_v16qi): Likewise.
14725 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
14726 vmulosb rather than call gen_vec_widen_smult_*.
14727 (vec_widen_smult_lo_v16qi): Likewise.
14728 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
14729 rather than call gen_vec_widen_umult_*.
14730 (vec_widen_umult_lo_v8hi): Likewise.
14731 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
14732 rather than call gen_vec_widen_smult_*.
14733 (vec_widen_smult_lo_v8hi): Likewise.
14734
14735 2014-01-15 Jeff Law <law@redhat.com>
14736
14737 PR tree-optimization/59747
14738 * ree.c (find_and_remove_re): Properly handle case where a second
14739 eliminated extension requires widening a copy created for elimination
14740 of a prior extension.
14741 (combine_set_extension): Ensure that the number of hard regs needed
14742 for a destination register does not change when we widen it.
14743
14744 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
14745
14746 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
14747 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
14748 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
14749 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
14750 (avr-*-rtems*): Likewise.
14751 (bfin*-rtems*): Likewise.
14752 (moxie-*-rtems*): Likewise.
14753 (h8300-*-rtems*): Likewise.
14754 (i[34567]86-*-rtems*): Likewise.
14755 (lm32-*-rtems*): Likewise.
14756 (m32r-*-rtems*): Likewise.
14757 (m68k-*-rtems*): Likewise.
14758 (microblaze*-*-rtems*): Likewise.
14759 (mips*-*-rtems*): Likewise.
14760 (powerpc-*-rtems*): Likewise.
14761 (sh-*-rtems*): Likewise.
14762 (sparc-*-rtems*): Likewise.
14763 (sparc64-*-rtems*): Likewise.
14764 (v850-*-rtems*): Likewise.
14765 (m32c-*-rtems*): Likewise.
14766
14767 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
14768
14769 PR rtl-optimization/59511
14770 * ira.c (ira_init_register_move_cost): Use memory costs for some
14771 cases of register move cost calculations.
14772 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
14773 instead of BB frequency.
14774 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
14775 * lra-assigns.c (find_hard_regno_for): Ditto.
14776
14777 2014-01-15 Richard Biener <rguenther@suse.de>
14778
14779 PR tree-optimization/59822
14780 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
14781 (vectorizable_load): Use it to hoist defs of uses of invariant
14782 loads out of the loop.
14783
14784 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
14785 Kugan Vivekanandarajah <kuganv@linaro.org>
14786
14787 PR target/59695
14788 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
14789 truncation.
14790
14791 2014-01-15 Richard Biener <rguenther@suse.de>
14792
14793 PR rtl-optimization/59802
14794 * lcm.c (compute_available): Use inverted postorder to seed
14795 the initial worklist.
14796
14797 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14798
14799 PR target/59803
14800 * config/s390/s390.c (s390_preferred_reload_class): Don't return
14801 ADDR_REGS for invalid symrefs in non-PIC code.
14802
14803 2014-01-15 Jakub Jelinek <jakub@redhat.com>
14804
14805 PR other/58712
14806 * builtins.c (determine_block_size): Initialize *probable_max_size
14807 even if len_rtx is CONST_INT.
14808
14809 2014-01-14 Andrew Pinski <apinski@cavium.com>
14810
14811 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
14812 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
14813 (cortexa53_tunings): Likewise.
14814 (aarch64_sched_issue_rate): New function.
14815 (TARGET_SCHED_ISSUE_RATE): Define.
14816
14817 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
14818
14819 * ira-costs.c (find_costs_and_classes): Add missed
14820 ira_init_register_move_cost_if_necessary.
14821
14822 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
14823
14824 PR target/59787
14825 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
14826
14827 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
14828
14829 PR target/59794
14830 * config/i386/i386.c (type_natural_mode): Add a bool parameter
14831 to indicate if type is used for function return value. Warn ABI
14832 change if the vector mode isn't available for function return value.
14833 (ix86_function_arg_advance): Pass false to type_natural_mode.
14834 (ix86_function_arg): Likewise.
14835 (ix86_gimplify_va_arg): Likewise.
14836 (function_arg_32): Don't warn ABI change.
14837 (ix86_function_value): Pass true to type_natural_mode.
14838 (ix86_return_in_memory): Likewise.
14839 (ix86_struct_value_rtx): Removed.
14840 (TARGET_STRUCT_VALUE_RTX): Likewise.
14841
14842 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14843
14844 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
14845 converting a conditional jump into a conditional return.
14846
14847 2014-01-14 Richard Biener <rguenther@suse.de>
14848
14849 PR tree-optimization/58921
14850 PR tree-optimization/59006
14851 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
14852 hoisting invariant stmts.
14853 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
14854 invariant loads on the preheader edge if possible.
14855
14856 2014-01-14 Joey Ye <joey.ye@arm.com>
14857
14858 * doc/plugin.texi (Building GCC plugins): Update to C++.
14859
14860 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
14861
14862 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
14863 (_mm_rcp28_round_ss): Ditto.
14864 (_mm_rsqrt28_round_sd): Ditto.
14865 (_mm_rsqrt28_round_ss): Ditto.
14866 (_mm_rcp28_sd): Ditto.
14867 (_mm_rcp28_ss): Ditto.
14868 (_mm_rsqrt28_sd): Ditto.
14869 (_mm_rsqrt28_ss): Ditto.
14870 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
14871 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
14872 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
14873 (IX86_BUILTIN_RCP28SD): Ditto.
14874 (IX86_BUILTIN_RCP28SS): Ditto.
14875 (IX86_BUILTIN_RSQRT28SD): Ditto.
14876 (IX86_BUILTIN_RSQRT28SS): Ditto.
14877 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
14878 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
14879 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
14880 (ix86_expand_special_args_builtin): Expand new FTYPE.
14881 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
14882 (srcp14<mode>): Make insn unary.
14883 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
14884 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
14885 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
14886 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
14887 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
14888 Fix rounding: make it SAE only.
14889 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
14890 Ditto.
14891 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
14892 Ditto.
14893 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
14894 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
14895 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
14896 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
14897 (round_saeonly_mask_scalar_operand4): Ditto.
14898 (round_saeonly_mask_scalar_op3): Ditto.
14899 (round_saeonly_mask_scalar_op4): Ditto.
14900
14901 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14902
14903 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14904 Implement -maltivec=be for vec_insert and vec_extract.
14905
14906 2014-01-10 DJ Delorie <dj@redhat.com>
14907
14908 * config/msp430/msp430.md (call_internal): Don't allow memory
14909 references with SP as the base register.
14910 (call_value_internal): Likewise.
14911 * config/msp430/constraints.md (Yc): New. For memory references
14912 that don't use SP as a base register.
14913
14914 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
14915 "an integer without a # prefix"
14916 * config/msp430/msp430.md (epilogue_helper): Use it.
14917
14918 2014-01-13 Jakub Jelinek <jakub@redhat.com>
14919
14920 PR target/59617
14921 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
14922 AVX512F gather builtins.
14923 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
14924 on gather decls with INTEGER_TYPE masktype.
14925 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
14926 directly into the builtin rather than hoisting it before loop.
14927
14928 PR tree-optimization/59387
14929 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
14930 (scev_const_prop): If folded_casts and type has undefined overflow,
14931 use force_gimple_operand instead of force_gimple_operand_gsi and
14932 for each added stmt if it is assign with
14933 arith_code_with_undefined_signed_overflow, call
14934 rewrite_to_defined_overflow.
14935 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
14936 gimple-fold.h instead.
14937 (arith_code_with_undefined_signed_overflow,
14938 rewrite_to_defined_overflow): Moved to ...
14939 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
14940 rewrite_to_defined_overflow): ... here. No longer static.
14941 Include gimplify-me.h.
14942 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
14943 rewrite_to_defined_overflow): New prototypes.
14944
14945 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14946
14947 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
14948
14949 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
14950
14951 * builtins.c (get_object_alignment_2): Minor tweak.
14952 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
14953
14954 2014-01-13 Christian Bruel <christian.bruel@st.com>
14955
14956 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
14957 optimized non constant lengths.
14958
14959 2014-01-13 Jakub Jelinek <jakub@redhat.com>
14960
14961 PR libgomp/59194
14962 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
14963 load as __atomic_load_N if possible.
14964
14965 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
14966
14967 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
14968 target parameter.
14969 (rs6000_expand_builtin): Adjust call.
14970
14971 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
14972
14973 PR target/58115
14974 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
14975 * config/rs6000/rs6000.c: Include target-globals.h.
14976 (rs6000_set_current_function): Instead of doing target_reinit
14977 unconditionally, use save_target_globals_default_opts and
14978 restore_target_globals.
14979
14980 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
14981 FPSCR.
14982 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
14983 (rs6000_expand_builtin): Handle mffs and mtfsf.
14984 (rs6000_init_builtins): Define mffs and mtfsf.
14985 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
14986 (rs6000_mffs): New pattern.
14987 (rs6000_mtfsf): New pattern.
14988
14989 2014-01-11 Bin Cheng <bin.cheng@arm.com>
14990
14991 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
14992 Start narrowing with START. Apply candidate-use pair
14993 and check overall cost in narrowing.
14994 (iv_ca_prune): Pass new argument.
14995
14996 2014-01-10 Jeff Law <law@redhat.com>
14997
14998 PR middle-end/59743
14999 * ree.c (combine_reaching_defs): Ensure the defining statement
15000 occurs before the extension when optimizing extensions with
15001 different source and destination hard registers.
15002
15003 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
15004
15005 PR ipa/58585
15006 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
15007 vtables into the type inheritance graph.
15008
15009 2014-01-10 Jakub Jelinek <jakub@redhat.com>
15010
15011 PR rtl-optimization/59754
15012 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
15013 modes in the REGNO != REGNO case.
15014
15015 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15016
15017 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
15018
15019 2014-01-10 Jakub Jelinek <jakub@redhat.com>
15020
15021 PR tree-optimization/59745
15022 * tree-predcom.c (tree_predictive_commoning_loop): Call
15023 free_affine_expand_cache if giving up because components is NULL.
15024
15025 * target-globals.c (save_target_globals): Allocate < 4KB structs using
15026 GC in payload of target_globals struct instead of allocating them on
15027 the heap and the larger structs separately using GC.
15028 * target-globals.h (struct target_globals): Make regs, hard_regs,
15029 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
15030 of GTY((skip)) and change type to void *.
15031 (reset_target_globals): Cast loads from those fields to corresponding
15032 types.
15033
15034 2014-01-10 Steve Ellcey <sellcey@mips.com>
15035
15036 PR plugins/59335
15037 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
15038 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
15039 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
15040
15041 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
15042
15043 PR target/59744
15044 * aarch64-modes.def (CC_Zmode): New flags mode.
15045 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
15046 represents an equality.
15047 (aarch64_get_condition_code): Handle CC_Zmode.
15048 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
15049
15050 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15051
15052 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
15053 extraction in good case.
15054
15055 2014-01-10 Richard Biener <rguenther@suse.de>
15056
15057 PR tree-optimization/59374
15058 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
15059 checking after SLP discovery. Mark stmts not participating
15060 in any SLP instance properly.
15061
15062 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15063
15064 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
15065 when handling a SET rtx.
15066
15067 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15068
15069 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
15070 (cortex-a57): Likewise.
15071 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
15072
15073 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15074
15075 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
15076 non-iwmmxt builtins.
15077
15078 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
15079
15080 PR ipa/58252
15081 PR ipa/59226
15082 * ipa-devirt.c record_target_from_binfo): Take as argument
15083 stack of binfos and lookup matching one for virtual inheritance.
15084 (possible_polymorphic_call_targets_1): Update.
15085
15086 2014-01-10 Huacai Chen <chenhc@lemote.com>
15087
15088 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
15089 kernel strings for Loongson-2E/2F/3A.
15090
15091 2014-01-10 Jakub Jelinek <jakub@redhat.com>
15092
15093 PR middle-end/59670
15094 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
15095 is_gimple_call before calling gimple_call_internal_p.
15096
15097 2014-01-09 Steve Ellcey <sellcey@mips.com>
15098
15099 * Makefile.in (TREE_FLOW_H): Remove.
15100 (TREE_SSA_H): Add file names from tree-flow.h.
15101 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
15102 * tree.h: Remove tree-flow.h reference.
15103 * hash-table.h: Remove tree-flow.h reference.
15104 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
15105 reference with tree-ssa-loop.h.
15106
15107 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15108
15109 * doc/invoke.texi: Add -maltivec={be,le} options, and document
15110 default element-order behavior for -maltivec.
15111 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
15112 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
15113 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
15114 when targeting big endian, at least for now.
15115 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
15116
15117 2014-01-09 Jakub Jelinek <jakub@redhat.com>
15118
15119 PR middle-end/47735
15120 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
15121 var satisfies use_register_for_decl, just take into account type
15122 alignment, rather than decl alignment.
15123
15124 PR tree-optimization/59622
15125 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
15126 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
15127 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
15128 Don't devirtualize for inplace at all. For targets.length () == 1,
15129 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
15130
15131 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
15132
15133 * config/i386/i386.md (cpu): Remove the unused btver1.
15134
15135 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
15136
15137 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
15138
15139 2014-01-09 Jakub Jelinek <jakub@redhat.com>
15140
15141 PR target/58115
15142 * tree-core.h (struct target_globals): New forward declaration.
15143 (struct tree_target_option): Add globals field.
15144 * tree.h (TREE_TARGET_GLOBALS): Define.
15145 (prepare_target_option_nodes_for_pch): New prototype.
15146 * target-globals.h (struct target_globals): Define even if
15147 !SWITCHABLE_TARGET.
15148 * tree.c (prepare_target_option_node_for_pch,
15149 prepare_target_option_nodes_for_pch): New functions.
15150 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
15151 * config/i386/i386.c: Include target-globals.h.
15152 (ix86_set_current_function): Instead of doing target_reinit
15153 unconditionally, use save_target_globals_default_opts and
15154 restore_target_globals.
15155
15156 2014-01-09 Richard Biener <rguenther@suse.de>
15157
15158 PR tree-optimization/59715
15159 * tree-cfg.h (split_critical_edges): Declare.
15160 * tree-cfg.c (split_critical_edges): Export.
15161 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
15162
15163 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
15164
15165 * cfgexpand.c (expand_stack_vars): Optionally disable
15166 asan stack protection.
15167 (expand_used_vars): Likewise.
15168 (partition_stack_vars): Likewise.
15169 * asan.c (asan_emit_stack_protection): Optionally disable
15170 after return stack usage.
15171 (instrument_derefs): Optionally disable memory access instrumentation.
15172 (instrument_builtin_call): Likewise.
15173 (instrument_strlen_call): Likewise.
15174 (asan_protect_global): Optionally disable global variables protection.
15175 * doc/invoke.texi: Added doc for new options.
15176 * params.def: Added new options.
15177 * params.h: Likewise.
15178
15179 2014-01-09 Jakub Jelinek <jakub@redhat.com>
15180
15181 PR rtl-optimization/59724
15182 * ifcvt.c (cond_exec_process_if_block): Don't call
15183 flow_find_head_matching_sequence with 0 longest_match.
15184 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
15185 non-active insns if !stop_after.
15186 (try_head_merge_bb): Revert 2014-01-07 changes.
15187
15188 2014-01-08 Jeff Law <law@redhat.com>
15189
15190 * ree.c (get_sub_rtx): New function, extracted from...
15191 (merge_def_and_ext): Here.
15192 (combine_reaching_defs): Use get_sub_rtx.
15193
15194 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
15195
15196 * cgraph.h (varpool_variable_node): Do not choke on null node.
15197
15198 2014-01-08 Catherine Moore <clm@codesourcery.com>
15199
15200 * config/mips/mips.md (simple_return): Attempt to use JRC
15201 for microMIPS.
15202 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
15203
15204 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
15205
15206 PR rtl-optimization/59137
15207 * reorg.c (steal_delay_list_from_target): Call update_block for
15208 elided insns.
15209 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
15210
15211 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15212
15213 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
15214 two duplicate entries.
15215
15216 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
15217
15218 Revert:
15219 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
15220
15221 * config/mips/mips.c (mips_truncated_op_cost): New function.
15222 (mips_rtx_costs): Adjust test for BADDU.
15223 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
15224
15225 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
15226
15227 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
15228 (*baddu_si): ...this new pattern.
15229
15230 2014-01-08 Jakub Jelinek <jakub@redhat.com>
15231
15232 PR ipa/59722
15233 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
15234
15235 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
15236
15237 PR middle-end/57748
15238 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
15239 inner_reference_p.
15240 (expand_expr, expand_normal): Adjust.
15241 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
15242 inner_reference_p. Use inner_reference_p to expand inner references.
15243 (store_expr): Adjust.
15244 * cfgexpand.c (expand_call_stmt): Adjust.
15245
15246 2014-01-08 Rong Xu <xur@google.com>
15247
15248 * gcov-io.c (gcov_var): Move from gcov-io.h.
15249 (gcov_position): Ditto.
15250 (gcov_is_error): Ditto.
15251 (gcov_rewrite): Ditto.
15252 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
15253 only part to libgcc/libgcov.h.
15254
15255 2014-01-08 Marek Polacek <polacek@redhat.com>
15256
15257 PR middle-end/59669
15258 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
15259
15260 2014-01-08 Marek Polacek <polacek@redhat.com>
15261
15262 PR sanitizer/59667
15263 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
15264
15265 2014-01-08 Jakub Jelinek <jakub@redhat.com>
15266
15267 PR rtl-optimization/59649
15268 * stor-layout.c (get_mode_bounds): For BImode return
15269 0 and STORE_FLAG_VALUE.
15270
15271 2014-01-08 Richard Biener <rguenther@suse.de>
15272
15273 PR middle-end/59630
15274 * gimple.h (is_gimple_builtin_call): Remove.
15275 (gimple_builtin_call_types_compatible_p): New.
15276 (gimple_call_builtin_p): New overload.
15277 * gimple.c (is_gimple_builtin_call): Remove.
15278 (validate_call): Rename to ...
15279 (gimple_builtin_call_types_compatible_p): ... this and export. Also
15280 check return types.
15281 (validate_type): New static function.
15282 (gimple_call_builtin_p): New overload and adjust.
15283 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
15284 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
15285 (gimple_fold_stmt_to_constant_1): Likewise.
15286 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
15287
15288 2014-01-08 Richard Biener <rguenther@suse.de>
15289
15290 PR middle-end/59471
15291 * gimplify.c (gimplify_expr): Gimplify register-register type
15292 VIEW_CONVERT_EXPRs to separate stmts.
15293
15294 2014-01-07 Jeff Law <law@redhat.com>
15295
15296 PR middle-end/53623
15297 * ree.c (combine_set_extension): Handle case where source
15298 and destination registers in an extension insn are different.
15299 (combine_reaching_defs): Allow source and destination registers
15300 in extension to be different under limited circumstances.
15301 (add_removable_extension): Remove restriction that the
15302 source and destination registers in the extension are the same.
15303 (find_and_remove_re): Emit a copy from the extension's
15304 destination to its source after the defining insn if
15305 the source and destination registers are different.
15306
15307 PR middle-end/59285
15308 * ifcvt.c (merge_if_block): If we are merging a block with more than
15309 one successor with a block with no successors, remove any BARRIER
15310 after the second block.
15311
15312 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
15313
15314 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
15315
15316 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
15317
15318 PR target/59652
15319 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
15320 for 14-bit register offsets when INT14_OK_STRICT is false.
15321
15322 2014-01-07 Roland Stigge <stigge@antcom.de>
15323 Michael Meissner <meissner@linux.vnet.ibm.com>
15324
15325 PR 57386/target
15326 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15327 Only check TFmode for SPE constants. Don't check TImode or TDmode.
15328
15329 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
15330
15331 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
15332 -mcpu.
15333
15334 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
15335
15336 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
15337 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
15338 rtx is const0_rtx or not.
15339
15340 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
15341
15342 PR target/58115
15343 * target-globals.c (save_target_globals): Remove this_fn_optab
15344 handling.
15345 * toplev.c: Include optabs.h.
15346 (target_reinit): Temporarily restore the global options if another
15347 set of options are in force.
15348
15349 2014-01-07 Jakub Jelinek <jakub@redhat.com>
15350
15351 PR rtl-optimization/58668
15352 * cfgcleanup.c (flow_find_cross_jump): Don't count
15353 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
15354 to determine what is counted.
15355 (flow_find_head_matching_sequence): Use active_insn_p to determine
15356 what is counted.
15357 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
15358 counting change.
15359 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
15360 determine what is counted.
15361
15362 PR tree-optimization/59643
15363 * tree-predcom.c (split_data_refs_to_components): If one dr is
15364 read and one write, determine_offset fails and the write isn't
15365 in the bad component, just put the read into the bad component.
15366
15367 2014-01-07 Mike Stump <mikestump@comcast.net>
15368 Jakub Jelinek <jakub@redhat.com>
15369
15370 PR pch/59436
15371 * tree-core.h (struct tree_optimization_option): Change optabs
15372 type from unsigned char * to void *.
15373 * optabs.c (init_tree_optimization_optabs): Adjust
15374 TREE_OPTIMIZATION_OPTABS initialization.
15375
15376 2014-01-06 Jakub Jelinek <jakub@redhat.com>
15377
15378 PR target/59644
15379 * config/i386/i386.h (struct machine_function): Add
15380 no_drap_save_restore field.
15381 * config/i386/i386.c (ix86_save_reg): Use
15382 !cfun->machine->no_drap_save_restore instead of
15383 crtl->stack_realign_needed.
15384 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
15385 this function clears frame_pointer_needed. Set
15386 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
15387 and DRAP reg is needed.
15388
15389 2014-01-06 Marek Polacek <polacek@redhat.com>
15390
15391 PR c/57773
15392 * doc/implement-c.texi: Mention that other integer types are
15393 permitted as bit-field types in strictly conforming mode.
15394
15395 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
15396
15397 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
15398 is newly allocated.
15399
15400 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
15401
15402 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
15403
15404 2014-01-06 Martin Jambor <mjambor@suse.cz>
15405
15406 PR ipa/59008
15407 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
15408 to int.
15409 * ipa-prop.c (ipa_print_node_params): Fix indentation.
15410
15411 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
15412
15413 PR debug/59350
15414 PR debug/59510
15415 * var-tracking.c (add_stores): Preserve the value of the source even if
15416 we don't record the store.
15417
15418 2014-01-06 Terry Guo <terry.guo@arm.com>
15419
15420 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
15421
15422 2014-01-05 Iain Sandoe <iain@codesourcery.com>
15423
15424 PR bootstrap/59541
15425 * config/darwin.c (darwin_function_section): Adjust return values to
15426 correspond to optimisation changes made in r206070.
15427
15428 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
15429
15430 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
15431 from prefetch_block tune setting.
15432 (nocona_cost): Correct size of prefetch block to 64.
15433
15434 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
15435
15436 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
15437 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
15438 used to save the static chain register in the computation of the offset
15439 from which the FP registers need to be restored.
15440
15441 2014-01-04 Jakub Jelinek <jakub@redhat.com>
15442
15443 PR tree-optimization/59519
15444 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
15445 ICE if get_current_def (current_new_name) is already non-NULL, as long
15446 as it is a phi result of some other phi in *new_exit_bb that has
15447 the same argument.
15448
15449 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
15450 or vmovdqu* for misaligned_operand.
15451 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
15452 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
15453 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
15454 aligned_mem for AVX512F masked aligned load and store builtins and for
15455 non-temporal moves.
15456
15457 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
15458
15459 PR tree-optimization/59651
15460 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
15461 Address range for negative step should be added by TYPE_SIZE_UNIT.
15462
15463 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
15464
15465 * config/m68k/m68k.c (handle_move_double): Handle pushes with
15466 overlapping registers also for registers other than the stack pointer.
15467
15468 2014-01-03 Marek Polacek <polacek@redhat.com>
15469
15470 PR other/59661
15471 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
15472 __builtin_FILE.
15473
15474 2014-01-03 Jakub Jelinek <jakub@redhat.com>
15475
15476 PR target/59625
15477 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
15478 asm goto as jump.
15479
15480 * config/i386/i386.md (MODE_SIZE): New mode attribute.
15481 (push splitter): Use <P:MODE_SIZE> instead of
15482 GET_MODE_SIZE (<P:MODE>mode).
15483 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
15484 (mov -1, reg peephole2): Likewise.
15485 * config/i386/sse.md (*mov<mode>_internal,
15486 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
15487 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
15488 *<code><mode>3, *andnot<mode>3<mask_name>,
15489 <mask_codefor><code><mode>3<mask_name>): Likewise.
15490 * config/i386/subst.md (mask_mode512bit_condition,
15491 sd_mask_mode512bit_condition): Likewise.
15492
15493 2014-01-02 Xinliang David Li <davidxl@google.com>
15494
15495 PR tree-optimization/59303
15496 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
15497 (dump_predicates): Better output format.
15498 (pred_equal_p): New function.
15499 (is_neq_relop_p): Ditto.
15500 (is_neq_zero_form_p): Ditto.
15501 (pred_expr_equal_p): Ditto.
15502 (pred_neg_p): Ditto.
15503 (simplify_pred): Ditto.
15504 (simplify_preds_2): Ditto.
15505 (simplify_preds_3): Ditto.
15506 (simplify_preds_4): Ditto.
15507 (simplify_preds): Ditto.
15508 (push_pred): Ditto.
15509 (push_to_worklist): Ditto.
15510 (get_pred_info_from_cmp): Ditto.
15511 (is_degenerated_phi): Ditto.
15512 (normalize_one_pred_1): Ditto.
15513 (normalize_one_pred): Ditto.
15514 (normalize_one_pred_chain): Ditto.
15515 (normalize_preds): Ditto.
15516 (normalize_cond_1): Remove function.
15517 (normalize_cond): Ditto.
15518 (is_gcond_subset_of): Ditto.
15519 (is_subset_of_any): Ditto.
15520 (is_or_set_subset_of): Ditto.
15521 (is_and_set_subset_of): Ditto.
15522 (is_norm_cond_subset_of): Ditto.
15523 (pred_chain_length_cmp): Ditto.
15524 (convert_control_dep_chain_into_preds): Type change.
15525 (find_predicates): Ditto.
15526 (find_def_preds): Ditto.
15527 (destroy_predicates_vecs): Ditto.
15528 (find_matching_predicates_in_rest_chains): Ditto.
15529 (use_pred_not_overlap_with_undef_path_pred): Ditto.
15530 (is_pred_expr_subset): Ditto.
15531 (is_pred_chain_subset_of): Ditto.
15532 (is_included_in): Ditto.
15533 (is_superset_of): Ditto.
15534
15535 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15536
15537 Update copyright years.
15538
15539 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15540
15541 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
15542 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
15543 config/arc/arc.md, config/arc/arc.opt,
15544 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
15545 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
15546 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
15547 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
15548 config/linux-protos.h, config/linux.c, config/winnt-c.c,
15549 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
15550 vtable-verify.c, vtable-verify.h: Use the standard form for the
15551 copyright notice.
15552
15553 2014-01-02 Tobias Burnus <burnus@net-b.de>
15554
15555 * gcc.c (process_command): Update copyright notice dates.
15556 * gcov-dump.c: Ditto.
15557 * gcov.c: Ditto.
15558 * doc/cpp.texi: Bump @copying's copyright year.
15559 * doc/cppinternals.texi: Ditto.
15560 * doc/gcc.texi: Ditto.
15561 * doc/gccint.texi: Ditto.
15562 * doc/gcov.texi: Ditto.
15563 * doc/install.texi: Ditto.
15564 * doc/invoke.texi: Ditto.
15565
15566 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15567
15568 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
15569
15570 2014-01-01 Jakub Jelinek <jakub@redhat.com>
15571
15572 * config/i386/sse.md (*mov<mode>_internal): Guard
15573 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
15574
15575 PR rtl-optimization/59647
15576 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
15577 new_rtx into UNSIGNED_FLOAT rtxes.
15578 \f
15579 Copyright (C) 2014 Free Software Foundation, Inc.
15580
15581 Copying and distribution of this file, with or without modification,
15582 are permitted in any medium without royalty provided the copyright
15583 notice and this notice are preserved.