1 2014-01-16 Jan Hubicka <jh@suse.cz>
4 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
6 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
9 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
10 pushing a reload for an autoinc when we had previously reloaded an
11 inner part of the address.
13 2014-01-16 Jakub Jelinek <jakub@redhat.com>
15 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
17 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
18 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
19 when not giving up or versioning for alias only because of
21 (vect_analyze_data_ref_dependences): Set to true.
22 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
24 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
25 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
29 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
32 * config/i386/i386.c (ix86_expand_builtin): If target doesn't
33 satisfy operand 0 predicate for gathers, use a new pseudo as
36 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
39 * lra-constraints.c (process_alt_operands): Add printing debug
40 info. Check absence of input/output reloads for matched operands
43 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
45 PR rtl-optimization/59835
46 * ira.c (ira_init_register_move_cost): Increase cost for
49 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
51 * config/arm/arm.opt: Make -mcpu, -march, -mtune case-insensitive.
53 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
56 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
57 non-register objects. Use gen_(high/low)part more consistently.
60 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
63 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
64 endian support, remove tests for WORDS_BIG_ENDIAN.
65 (p8_mfvsrd_3_<mode>): Likewise.
66 (reload_gpr_from_vsx<mode>): Likewise.
67 (reload_gpr_from_vsxsf): Likewise.
68 (p8_mfvsrd_4_disf): Likewise.
70 2014-01-16 Richard Biener <rguenther@suse.de>
72 PR rtl-optimization/46590
73 * lcm.c (compute_antinout_edge): Use postorder iteration.
74 (compute_laterin): Use inverted postorder iteration.
76 2014-01-16 Nick Clifton <nickc@redhat.com>
79 * varasm.c (output_constant): Return the number of bytes actually
81 (output_constructor_array_range): Update the field size with the
82 number of bytes emitted by output_constant.
83 (output_constructor_regular_field): Likewise. Also do not
84 complain if the total number of bytes emitted is now greater
85 than the expected fieldpos.
86 * output.h (output_constant): Update prototype and descriptive
89 2014-01-16 Marek Polacek <polacek@redhat.com>
92 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
93 it is error_mark_node.
95 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
97 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
98 VALID_AVX256_REG_OR_OI_MODE.
100 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
102 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
103 current procedure should be profiled.
105 2014-01-15 Andrew Pinski <apinski@cavium.com>
107 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
108 of moving from/to the STACK_REG register class.
110 2014-01-15 Richard Henderson <rth@redhat.com>
113 * reginfo.c (global_regs_decl): Globalize.
114 * rtl.h (global_regs_decl): Declare.
115 * ira.c (do_reload): Diagnose frame_pointer_needed and it
116 reserved via global_regs.
118 2014-01-15 Teresa Johnson <tejohnson@google.com>
120 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
122 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
124 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
125 and vmulosh rather than call gen_vec_widen_smult_*.
126 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
127 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
128 (vec_widen_smult_even_v16qi): Likewise.
129 (vec_widen_umult_even_v8hi): Likewise.
130 (vec_widen_smult_even_v8hi): Likewise.
131 (vec_widen_umult_odd_v16qi): Likewise.
132 (vec_widen_smult_odd_v16qi): Likewise.
133 (vec_widen_umult_odd_v8hi): Likewise.
134 (vec_widen_smult_odd_v8hi): Likewise.
135 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
136 vmuloub rather than call gen_vec_widen_umult_*.
137 (vec_widen_umult_lo_v16qi): Likewise.
138 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
139 vmulosb rather than call gen_vec_widen_smult_*.
140 (vec_widen_smult_lo_v16qi): Likewise.
141 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
142 rather than call gen_vec_widen_umult_*.
143 (vec_widen_umult_lo_v8hi): Likewise.
144 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
145 rather than call gen_vec_widen_smult_*.
146 (vec_widen_smult_lo_v8hi): Likewise.
148 2014-01-15 Jeff Law <law@redhat.com>
150 PR tree-optimization/59747
151 * ree.c (find_and_remove_re): Properly handle case where a second
152 eliminated extension requires widening a copy created for elimination
153 of a prior extension.
154 (combine_set_extension): Ensure that the number of hard regs needed
155 for a destination register does not change when we widen it.
157 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
159 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
160 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
161 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
162 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
163 (avr-*-rtems*): Likewise.
164 (bfin*-rtems*): Likewise.
165 (moxie-*-rtems*): Likewise.
166 (h8300-*-rtems*): Likewise.
167 (i[34567]86-*-rtems*): Likewise.
168 (lm32-*-rtems*): Likewise.
169 (m32r-*-rtems*): Likewise.
170 (m68k-*-rtems*): Likewise.
171 (microblaze*-*-rtems*): Likewise.
172 (mips*-*-rtems*): Likewise.
173 (powerpc-*-rtems*): Likewise.
174 (sh-*-rtems*): Likewise.
175 (sparc-*-rtems*): Likewise.
176 (sparc64-*-rtems*): Likewise.
177 (v850-*-rtems*): Likewise.
178 (m32c-*-rtems*): Likewise.
180 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
182 PR rtl-optimization/59511
183 * ira.c (ira_init_register_move_cost): Use memory costs for some
184 cases of register move cost calculations.
185 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
186 instead of BB frequency.
187 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
188 * lra-assigns.c (find_hard_regno_for): Ditto.
190 2014-01-15 Richard Biener <rguenther@suse.de>
192 PR tree-optimization/59822
193 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
194 (vectorizable_load): Use it to hoist defs of uses of invariant
195 loads out of the loop.
197 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
198 Kugan Vivekanandarajah <kuganv@linaro.org>
201 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
204 2014-01-15 Richard Biener <rguenther@suse.de>
206 PR rtl-optimization/59802
207 * lcm.c (compute_available): Use inverted postorder to seed
208 the initial worklist.
210 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
213 * config/s390/s390.c (s390_preferred_reload_class): Don't return
214 ADDR_REGS for invalid symrefs in non-PIC code.
216 2014-01-15 Jakub Jelinek <jakub@redhat.com>
219 * builtins.c (determine_block_size): Initialize *probable_max_size
220 even if len_rtx is CONST_INT.
222 2014-01-14 Andrew Pinski <apinski@cavium.com>
224 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
225 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
226 (cortexa53_tunings): Likewise.
227 (aarch64_sched_issue_rate): New function.
228 (TARGET_SCHED_ISSUE_RATE): Define.
230 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
232 * ira-costs.c (find_costs_and_classes): Add missed
233 ira_init_register_move_cost_if_necessary.
235 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
238 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
240 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
243 * config/i386/i386.c (type_natural_mode): Add a bool parameter
244 to indicate if type is used for function return value. Warn ABI
245 change if the vector mode isn't available for function return value.
246 (ix86_function_arg_advance): Pass false to type_natural_mode.
247 (ix86_function_arg): Likewise.
248 (ix86_gimplify_va_arg): Likewise.
249 (function_arg_32): Don't warn ABI change.
250 (ix86_function_value): Pass true to type_natural_mode.
251 (ix86_return_in_memory): Likewise.
252 (ix86_struct_value_rtx): Removed.
253 (TARGET_STRUCT_VALUE_RTX): Likewise.
255 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
257 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
258 converting a conditional jump into a conditional return.
260 2014-01-14 Richard Biener <rguenther@suse.de>
262 PR tree-optimization/58921
263 PR tree-optimization/59006
264 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
265 hoisting invariant stmts.
266 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
267 invariant loads on the preheader edge if possible.
269 2014-01-14 Joey Ye <joey.ye@arm.com>
271 * doc/plugin.texi (Building GCC plugins): Update to C++.
273 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
275 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
276 (_mm_rcp28_round_ss): Ditto.
277 (_mm_rsqrt28_round_sd): Ditto.
278 (_mm_rsqrt28_round_ss): Ditto.
279 (_mm_rcp28_sd): Ditto.
280 (_mm_rcp28_ss): Ditto.
281 (_mm_rsqrt28_sd): Ditto.
282 (_mm_rsqrt28_ss): Ditto.
283 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
284 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
285 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
286 (IX86_BUILTIN_RCP28SD): Ditto.
287 (IX86_BUILTIN_RCP28SS): Ditto.
288 (IX86_BUILTIN_RSQRT28SD): Ditto.
289 (IX86_BUILTIN_RSQRT28SS): Ditto.
290 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
291 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
292 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
293 (ix86_expand_special_args_builtin): Expand new FTYPE.
294 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
295 (srcp14<mode>): Make insn unary.
296 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
297 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
298 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
299 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
300 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
301 Fix rounding: make it SAE only.
302 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
304 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
306 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
307 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
308 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
309 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
310 (round_saeonly_mask_scalar_operand4): Ditto.
311 (round_saeonly_mask_scalar_op3): Ditto.
312 (round_saeonly_mask_scalar_op4): Ditto.
314 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
316 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
317 Implement -maltivec=be for vec_insert and vec_extract.
319 2014-01-10 DJ Delorie <dj@redhat.com>
321 * config/msp430/msp430.md (call_internal): Don't allow memory
322 references with SP as the base register.
323 (call_value_internal): Likewise.
324 * config/msp430/constraints.md (Yc): New. For memory references
325 that don't use SP as a base register.
327 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
328 "an integer without a # prefix"
329 * config/msp430/msp430.md (epilogue_helper): Use it.
331 2014-01-13 Jakub Jelinek <jakub@redhat.com>
334 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
335 AVX512F gather builtins.
336 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
337 on gather decls with INTEGER_TYPE masktype.
338 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
339 directly into the builtin rather than hoisting it before loop.
341 PR tree-optimization/59387
342 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
343 (scev_const_prop): If folded_casts and type has undefined overflow,
344 use force_gimple_operand instead of force_gimple_operand_gsi and
345 for each added stmt if it is assign with
346 arith_code_with_undefined_signed_overflow, call
347 rewrite_to_defined_overflow.
348 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
349 gimple-fold.h instead.
350 (arith_code_with_undefined_signed_overflow,
351 rewrite_to_defined_overflow): Moved to ...
352 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
353 rewrite_to_defined_overflow): ... here. No longer static.
354 Include gimplify-me.h.
355 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
356 rewrite_to_defined_overflow): New prototypes.
358 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
360 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
362 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
364 * builtins.c (get_object_alignment_2): Minor tweak.
365 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
367 2014-01-13 Christian Bruel <christian.bruel@st.com>
369 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
370 optimized non constant lengths.
372 2014-01-13 Jakub Jelinek <jakub@redhat.com>
375 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
376 load as __atomic_load_N if possible.
378 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
380 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
382 (rs6000_expand_builtin): Adjust call.
384 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
387 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
388 * config/rs6000/rs6000.c: Include target-globals.h.
389 (rs6000_set_current_function): Instead of doing target_reinit
390 unconditionally, use save_target_globals_default_opts and
391 restore_target_globals.
393 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
395 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
396 (rs6000_expand_builtin): Handle mffs and mtfsf.
397 (rs6000_init_builtins): Define mffs and mtfsf.
398 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
399 (rs6000_mffs): New pattern.
400 (rs6000_mtfsf): New pattern.
402 2014-01-11 Bin Cheng <bin.cheng@arm.com>
404 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
405 Start narrowing with START. Apply candidate-use pair
406 and check overall cost in narrowing.
407 (iv_ca_prune): Pass new argument.
409 2014-01-10 Jeff Law <law@redhat.com>
412 * ree.c (combine_reaching_defs): Ensure the defining statement
413 occurs before the extension when optimizing extensions with
414 different source and destination hard registers.
416 2014-01-10 Jan Hubicka <jh@suse.cz>
419 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
420 vtables into the type inheritance graph.
422 2014-01-10 Jakub Jelinek <jakub@redhat.com>
424 PR rtl-optimization/59754
425 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
426 modes in the REGNO != REGNO case.
428 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
430 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
432 2014-01-10 Jakub Jelinek <jakub@redhat.com>
434 PR tree-optimization/59745
435 * tree-predcom.c (tree_predictive_commoning_loop): Call
436 free_affine_expand_cache if giving up because components is NULL.
438 * target-globals.c (save_target_globals): Allocate < 4KB structs using
439 GC in payload of target_globals struct instead of allocating them on
440 the heap and the larger structs separately using GC.
441 * target-globals.h (struct target_globals): Make regs, hard_regs,
442 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
443 of GTY((skip)) and change type to void *.
444 (reset_target_globals): Cast loads from those fields to corresponding
447 2014-01-10 Steve Ellcey <sellcey@mips.com>
450 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
451 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
452 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
454 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
457 * aarch64-modes.def (CC_Zmode): New flags mode.
458 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
459 represents an equality.
460 (aarch64_get_condition_code): Handle CC_Zmode.
461 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
463 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
465 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
466 extraction in good case.
468 2014-01-10 Richard Biener <rguenther@suse.de>
470 PR tree-optimization/59374
471 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
472 checking after SLP discovery. Mark stmts not participating
473 in any SLP instance properly.
475 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
477 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
478 when handling a SET rtx.
480 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
482 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
483 (cortex-a57): Likewise.
484 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
486 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
488 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
491 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
495 * ipa-devirt.c record_target_from_binfo): Take as argument
496 stack of binfos and lookup matching one for virtual inheritance.
497 (possible_polymorphic_call_targets_1): Update.
499 2014-01-10 Huacai Chen <chenhc@lemote.com>
501 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
502 kernel strings for Loongson-2E/2F/3A.
504 2014-01-10 Jakub Jelinek <jakub@redhat.com>
507 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
508 is_gimple_call before calling gimple_call_internal_p.
510 2014-01-09 Steve Ellcey <sellcey@mips.com>
512 * Makefile.in (TREE_FLOW_H): Remove.
513 (TREE_SSA_H): Add file names from tree-flow.h.
514 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
515 * tree.h: Remove tree-flow.h reference.
516 * hash-table.h: Remove tree-flow.h reference.
517 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
518 reference with tree-ssa-loop.h.
520 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
522 * doc/invoke.texi: Add -maltivec={be,le} options, and document
523 default element-order behavior for -maltivec.
524 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
525 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
526 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
527 when targeting big endian, at least for now.
528 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
530 2014-01-09 Jakub Jelinek <jakub@redhat.com>
533 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
534 var satisfies use_register_for_decl, just take into account type
535 alignment, rather than decl alignment.
537 PR tree-optimization/59622
538 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
539 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
540 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
541 Don't devirtualize for inplace at all. For targets.length () == 1,
542 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
544 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
546 * config/i386/i386.md (cpu): Remove the unused btver1.
548 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
550 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
552 2014-01-09 Jakub Jelinek <jakub@redhat.com>
555 * tree-core.h (struct target_globals): New forward declaration.
556 (struct tree_target_option): Add globals field.
557 * tree.h (TREE_TARGET_GLOBALS): Define.
558 (prepare_target_option_nodes_for_pch): New prototype.
559 * target-globals.h (struct target_globals): Define even if
561 * tree.c (prepare_target_option_node_for_pch,
562 prepare_target_option_nodes_for_pch): New functions.
563 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
564 * config/i386/i386.c: Include target-globals.h.
565 (ix86_set_current_function): Instead of doing target_reinit
566 unconditionally, use save_target_globals_default_opts and
567 restore_target_globals.
569 2014-01-09 Richard Biener <rguenther@suse.de>
571 PR tree-optimization/59715
572 * tree-cfg.h (split_critical_edges): Declare.
573 * tree-cfg.c (split_critical_edges): Export.
574 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
576 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
578 * cfgexpand.c (expand_stack_vars): Optionally disable
579 asan stack protection.
580 (expand_used_vars): Likewise.
581 (partition_stack_vars): Likewise.
582 * asan.c (asan_emit_stack_protection): Optionally disable
583 after return stack usage.
584 (instrument_derefs): Optionally disable memory
585 access instrumentation.
586 (instrument_builtin_call): Likewise.
587 (instrument_strlen_call): Likewise.
588 (asan_protect_global): Optionally disable
589 global variables protection.
590 * doc/invoke.texi: Added doc for new options.
591 * params.def: Added new options.
592 * params.h: Likewise.
594 2014-01-09 Jakub Jelinek <jakub@redhat.com>
596 PR rtl-optimization/59724
597 * ifcvt.c (cond_exec_process_if_block): Don't call
598 flow_find_head_matching_sequence with 0 longest_match.
599 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
600 non-active insns if !stop_after.
601 (try_head_merge_bb): Revert 2014-01-07 changes.
603 2014-01-08 Jeff Law <law@redhat.com>
605 * ree.c (get_sub_rtx): New function, extracted from...
606 (merge_def_and_ext): Here.
607 (combine_reaching_defs): Use get_sub_rtx.
609 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
611 * cgraph.h (varpool_variable_node): Do not choke on null node.
613 2014-01-08 Catherine Moore <clm@codesourcery.com>
615 * config/mips/mips.md (simple_return): Attempt to use JRC
617 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
619 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
621 PR rtl-optimization/59137
622 * reorg.c (steal_delay_list_from_target): Call update_block for
624 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
626 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
628 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
629 two duplicate entries.
631 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
634 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
636 * config/mips/mips.c (mips_truncated_op_cost): New function.
637 (mips_rtx_costs): Adjust test for BADDU.
638 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
640 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
642 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
643 (*baddu_si): ...this new pattern.
645 2014-01-08 Jakub Jelinek <jakub@redhat.com>
648 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
650 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
653 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
655 (expand_expr, expand_normal): Adjust.
656 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
657 inner_reference_p. Use inner_reference_p to expand inner references.
658 (store_expr): Adjust.
659 * cfgexpand.c (expand_call_stmt): Adjust.
661 2014-01-08 Rong Xu <xur@google.com>
663 * gcov-io.c (gcov_var): Move from gcov-io.h.
664 (gcov_position): Ditto.
665 (gcov_is_error): Ditto.
666 (gcov_rewrite): Ditto.
667 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
668 only part to libgcc/libgcov.h.
670 2014-01-08 Marek Polacek <polacek@redhat.com>
673 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
675 2014-01-08 Marek Polacek <polacek@redhat.com>
678 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
680 2014-01-08 Jakub Jelinek <jakub@redhat.com>
682 PR rtl-optimization/59649
683 * stor-layout.c (get_mode_bounds): For BImode return
684 0 and STORE_FLAG_VALUE.
686 2014-01-08 Richard Biener <rguenther@suse.de>
689 * gimple.h (is_gimple_builtin_call): Remove.
690 (gimple_builtin_call_types_compatible_p): New.
691 (gimple_call_builtin_p): New overload.
692 * gimple.c (is_gimple_builtin_call): Remove.
693 (validate_call): Rename to ...
694 (gimple_builtin_call_types_compatible_p): ... this and export. Also
696 (validate_type): New static function.
697 (gimple_call_builtin_p): New overload and adjust.
698 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
699 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
700 (gimple_fold_stmt_to_constant_1): Likewise.
701 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
703 2014-01-08 Richard Biener <rguenther@suse.de>
706 * gimplify.c (gimplify_expr): Gimplify register-register type
707 VIEW_CONVERT_EXPRs to separate stmts.
709 2014-01-07 Jeff Law <law@redhat.com>
712 * ree.c (combine_set_extension): Handle case where source
713 and destination registers in an extension insn are different.
714 (combine_reaching_defs): Allow source and destination registers
715 in extension to be different under limited circumstances.
716 (add_removable_extension): Remove restriction that the
717 source and destination registers in the extension are the same.
718 (find_and_remove_re): Emit a copy from the extension's
719 destination to its source after the defining insn if
720 the source and destination registers are different.
723 * ifcvt.c (merge_if_block): If we are merging a block with more than
724 one successor with a block with no successors, remove any BARRIER
725 after the second block.
727 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
729 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
731 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
734 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
735 for 14-bit register offsets when INT14_OK_STRICT is false.
737 2014-01-07 Roland Stigge <stigge@antcom.de>
738 Michael Meissner <meissner@linux.vnet.ibm.com>
741 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
742 Only check TFmode for SPE constants. Don't check TImode or TDmode.
744 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
746 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
749 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
751 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
752 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
753 rtx is const0_rtx or not.
755 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
758 * target-globals.c (save_target_globals): Remove this_fn_optab
760 * toplev.c: Include optabs.h.
761 (target_reinit): Temporarily restore the global options if another
762 set of options are in force.
764 2014-01-07 Jakub Jelinek <jakub@redhat.com>
766 PR rtl-optimization/58668
767 * cfgcleanup.c (flow_find_cross_jump): Don't count
768 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
769 to determine what is counted.
770 (flow_find_head_matching_sequence): Use active_insn_p to determine
772 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
774 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
775 determine what is counted.
777 PR tree-optimization/59643
778 * tree-predcom.c (split_data_refs_to_components): If one dr is
779 read and one write, determine_offset fails and the write isn't
780 in the bad component, just put the read into the bad component.
782 2014-01-07 Mike Stump <mikestump@comcast.net>
783 Jakub Jelinek <jakub@redhat.com>
786 * tree-core.h (struct tree_optimization_option): Change optabs
787 type from unsigned char * to void *.
788 * optabs.c (init_tree_optimization_optabs): Adjust
789 TREE_OPTIMIZATION_OPTABS initialization.
791 2014-01-06 Jakub Jelinek <jakub@redhat.com>
794 * config/i386/i386.h (struct machine_function): Add
795 no_drap_save_restore field.
796 * config/i386/i386.c (ix86_save_reg): Use
797 !cfun->machine->no_drap_save_restore instead of
798 crtl->stack_realign_needed.
799 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
800 this function clears frame_pointer_needed. Set
801 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
802 and DRAP reg is needed.
804 2014-01-06 Marek Polacek <polacek@redhat.com>
807 * doc/implement-c.texi: Mention that other integer types are
808 permitted as bit-field types in strictly conforming mode.
810 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
812 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
815 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
817 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
819 2014-01-06 Martin Jambor <mjambor@suse.cz>
822 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
824 * ipa-prop.c (ipa_print_node_params): Fix indentation.
826 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
830 * var-tracking.c (add_stores): Preserve the value of the source even if
831 we don't record the store.
833 2014-01-06 Terry Guo <terry.guo@arm.com>
835 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
837 2014-01-05 Iain Sandoe <iain@codesourcery.com>
840 * config/darwin.c (darwin_function_section): Adjust return values to
841 correspond to optimisation changes made in r206070.
843 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
845 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
846 from prefetch_block tune setting.
847 (nocona_cost): Correct size of prefetch block to 64.
849 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
851 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
852 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
853 used to save the static chain register in the computation of the offset
854 from which the FP registers need to be restored.
856 2014-01-04 Jakub Jelinek <jakub@redhat.com>
858 PR tree-optimization/59519
859 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
860 ICE if get_current_def (current_new_name) is already non-NULL, as long
861 as it is a phi result of some other phi in *new_exit_bb that has
864 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
865 or vmovdqu* for misaligned_operand.
866 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
867 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
868 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
869 aligned_mem for AVX512F masked aligned load and store builtins and for
872 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
874 PR tree-optimization/59651
875 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
876 Address range for negative step should be added by TYPE_SIZE_UNIT.
878 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
880 * config/m68k/m68k.c (handle_move_double): Handle pushes with
881 overlapping registers also for registers other than the stack
884 2014-01-03 Marek Polacek <polacek@redhat.com>
887 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
890 2014-01-03 Jakub Jelinek <jakub@redhat.com>
893 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
896 * config/i386/i386.md (MODE_SIZE): New mode attribute.
897 (push splitter): Use <P:MODE_SIZE> instead of
898 GET_MODE_SIZE (<P:MODE>mode).
899 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
900 (mov -1, reg peephole2): Likewise.
901 * config/i386/sse.md (*mov<mode>_internal,
902 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
903 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
904 *<code><mode>3, *andnot<mode>3<mask_name>,
905 <mask_codefor><code><mode>3<mask_name>): Likewise.
906 * config/i386/subst.md (mask_mode512bit_condition,
907 sd_mask_mode512bit_condition): Likewise.
909 2014-01-02 Xinliang David Li <davidxl@google.com>
911 PR tree-optimization/59303
912 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
913 (dump_predicates): Better output format.
914 (pred_equal_p): New function.
915 (is_neq_relop_p): Ditto.
916 (is_neq_zero_form_p): Ditto.
917 (pred_expr_equal_p): Ditto.
919 (simplify_pred): Ditto.
920 (simplify_preds_2): Ditto.
921 (simplify_preds_3): Ditto.
922 (simplify_preds_4): Ditto.
923 (simplify_preds): Ditto.
925 (push_to_worklist): Ditto.
926 (get_pred_info_from_cmp): Ditto.
927 (is_degenerated_phi): Ditto.
928 (normalize_one_pred_1): Ditto.
929 (normalize_one_pred): Ditto.
930 (normalize_one_pred_chain): Ditto.
931 (normalize_preds): Ditto.
932 (normalize_cond_1): Remove function.
933 (normalize_cond): Ditto.
934 (is_gcond_subset_of): Ditto.
935 (is_subset_of_any): Ditto.
936 (is_or_set_subset_of): Ditto.
937 (is_and_set_subset_of): Ditto.
938 (is_norm_cond_subset_of): Ditto.
939 (pred_chain_length_cmp): Ditto.
940 (convert_control_dep_chain_into_preds): Type change.
941 (find_predicates): Ditto.
942 (find_def_preds): Ditto.
943 (destroy_predicates_vecs): Ditto.
944 (find_matching_predicates_in_rest_chains): Ditto.
945 (use_pred_not_overlap_with_undef_path_pred): Ditto.
946 (is_pred_expr_subset): Ditto.
947 (is_pred_chain_subset_of): Ditto.
948 (is_included_in): Ditto.
949 (is_superset_of): Ditto.
951 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
953 Update copyright years.
955 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
957 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
958 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
959 config/arc/arc.md, config/arc/arc.opt,
960 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
961 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
962 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
963 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
964 config/linux-protos.h, config/linux.c, config/winnt-c.c,
965 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
966 vtable-verify.c, vtable-verify.h: Use the standard form for the
969 2014-01-02 Tobias Burnus <burnus@net-b.de>
971 * gcc.c (process_command): Update copyright notice dates.
972 * gcov-dump.c: Ditto.
974 * doc/cpp.texi: Bump @copying's copyright year.
975 * doc/cppinternals.texi: Ditto.
976 * doc/gcc.texi: Ditto.
977 * doc/gccint.texi: Ditto.
978 * doc/gcov.texi: Ditto.
979 * doc/install.texi: Ditto.
980 * doc/invoke.texi: Ditto.
982 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
984 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
986 2014-01-01 Jakub Jelinek <jakub@redhat.com>
988 * config/i386/sse.md (*mov<mode>_internal): Guard
989 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
991 PR rtl-optimization/59647
992 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
993 new_rtx into UNSIGNED_FLOAT rtxes.
995 Copyright (C) 2014 Free Software Foundation, Inc.
997 Copying and distribution of this file, with or without modification,
998 are permitted in any medium without royalty provided the copyright
999 notice and this notice are preserved.