| 2014-12-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * diagnostic.c (build_message_string): Use xvasprintf. |
| * final.c (output_operand_lossage): Use xvasprintf and xasprintf. |
| * lto-wrapper.c (merge_and_complain): Use xasprintf. |
| * targhooks.c (pch_option_mismatch): Ditto. |
| * tree-ssa-structalias.c (create_function_info_for): Ditto. |
| (create_variable_info_for_1): Ditto. |
| * tree-vect-data-refs.c (vect_create_destination_var): Ditto. |
| |
| 2014-12-30 Anthony Green <green@moxielogic.com> |
| |
| * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): |
| Switch from define_insn_and_split to define_insn. Fix instruction |
| length. |
| |
| 2014-12-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_legitimize_address): Declare |
| "changed" as bool. |
| (ix86_expand_unary_operator): Declare "matching_memory" as bool. |
| (ix86_avoid_jump_mispredicts): Declare "isjump" as bool. |
| |
| 2014-12-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_reassociation_width): Remove unneeded |
| variable "res". |
| |
| 2014-12-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Do not |
| free node params when called late with early=true. |
| |
| 2014-12-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_legitimize_address): Use std::swap. |
| (ix86_split_fp_branch): Ditto. |
| (ix86_expand_int_movcc): Ditto. |
| (ix86_expand_sse_compare): Ditto. |
| |
| 2014-12-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (edge_set_predicate): Reset size/time when |
| target is UNREACHABLE. |
| (evaluate_properties_for_edge): If call statemet is available, use it |
| to determine compile time constants. |
| (estimate_function_body_sizes): Enable predicates for early inliner. |
| (estimate_calls_size_and_time): Speedup. |
| (inline_merge_summary): Evaluate properties for early inliner, too. |
| |
| 2014-12-29 Steve Ellcey <sellcey@mips.com> |
| |
| * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Add exceptions |
| for mips32[r1] and mips64[r1] with -mnan=2008. |
| * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto. |
| |
| 2014-12-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/64409 |
| * config/i386/i386.c (ix86_function_type_abi): Issue an error |
| when ms_abi attribute is used with x32. |
| |
| 2014-12-27 Anthony Green <green@moxielogic.com> |
| |
| * config/moxie/moxie-protos.h (moxie_offset_address_p): Define. |
| * config/moxie/constraints.md (B): Replace inline test with call |
| to moxie_offset_address_p. |
| * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Limit offset |
| addressing to 16-bit offsets. |
| * config/moxie/moxie.c (moxie_asm_trampoline_template): Remove |
| nop, which is no longer needed for aligned write to trampoline. |
| (moxie_trampoline_init): Adjust for smaller trampoline. |
| (moxie_offset_address_p): New function. |
| * config/moxie/moxie.md (*movsi, *movhi, *movqi): Adjust length |
| attr for shorter ldo/sto instructions. |
| * config/moxie/predicates.md: Only allow REG+CONST_INT for offset |
| load/stores. |
| |
| 2014-12-27 Jan hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (max_count_real, max_relbenefit_real, |
| half_int_min_real): Remove. |
| (cgraph_freq_base_rec, percent_rec): New. |
| (compute_uninlined_call_time, compute_inlined_call_time, |
| big_speedup_p, relative_time_benefit, edge_badness): Use sreals. |
| (update_edge_key): Update dumping. |
| (inline_small_functions): Speedup maintainance of the heap. |
| (ipa_inline): Initialize cgraph_freq_base_rec and |
| percent_rec. |
| |
| 2014-12-27 Jan hubicka <hubicka@ucw.cz> |
| |
| * sreal.h (sreal::shift): Fix sanity check. |
| |
| 2014-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps. |
| Emit movshdup for SSE3 and shufps otherwise. |
| (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps. |
| Emit pshufd for SSE2 and shufps otherwise. |
| |
| 2014-12-24 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/51244 |
| * config/sh/sh.md (*mov_t_msb_neg): Convert split into insn_and_split. |
| |
| 2014-12-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * gengtype.h (xasprintf): Remove declaration. |
| * gengtype.c (xasprintf): Remove. |
| |
| 2014-12-24 Nick Clifton <nickc@redhat.com> |
| |
| PR target/64160 |
| * config/msp430/msp430.md (addsi splitter): Do not split when the |
| destination partially overlaps the source. |
| |
| 2014-12-24 Anthony Green <green@moxielogic.com> |
| |
| * config/moxie/moxie.opt (mul.x): New option. |
| * doc/invoke.texi (Moxie Options): Document -mmul.x. |
| * config/moxie/moxie.md (addsi3, mulsi3, subsi3, divsi3, udivs3): |
| Remove trailing ".l" from add, mul, sub, div and udiv |
| instructions. |
| (<mul>si3_highpart, <mul>sidi3): Add mul.x & umul.x instruction |
| support (high 32-bit result of multiply). |
| * config/moxie/moxie.c (moxie_option_override): Force availability |
| of mul.x instructions for moxiebox target. |
| * config/moxie/moxiebox.h (TARGET_MOXIEBOX): Define. |
| |
| 2014-12-22 Zhouyi Zhou <yizhouzhou@ict.ac.cn> |
| |
| * ira-build.c (ira_flattening): Add the current |
| object to OBJECTS_LIVE after traversing OBJECTS_LIVE. |
| |
| 2014-12-23 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63851 |
| PR ipa/63852 |
| * ipa-icf.c (sem_function::merge): Ignore merge operation |
| for a thunk created from static chain. |
| * ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that |
| types have same restrict flag. |
| |
| 2014-12-22 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/55023 |
| * dse.c (scan_insn): Treat sibling call as though it does a wild read. |
| |
| 2014-12-22 Bin Cheng <bin.cheng@arm.com> |
| |
| PR rtl-optimization/62151 |
| * combine.c (try_combine): New local variables local_elim_i1 |
| and local_elim_i0. Set elim_i1 and elim_i0 using the local |
| version variables. Distribute notes from i0notes or i1notes |
| using the local variables. |
| |
| 2014-12-22 Martin Liska <mliska@suse.cz> |
| |
| * cgraphunit.c (symbol_table::process_new_functions): New |
| inline_summaries is used. |
| * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. |
| (devirtualization_time_bonus): Likewise. |
| (estimate_local_effects): Likewise. |
| (ipcp_propagate_stage): Likewise. |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Likewise. |
| (evaluate_properties_for_edge): Likewise. |
| (inline_summary_alloc): Likewise. |
| (reset_inline_summary): New inline_summary argument is introduced. |
| (inline_summary_t::remove): New function. |
| (inline_summary_t::duplicate): Likewise. |
| (dump_inline_edge_summary): New inline_summaries is used. |
| (dump_inline_summary): Likewise. |
| (estimate_function_body_sizes): Likewise. |
| (compute_inline_parameters): Likewise. |
| (estimate_edge_devirt_benefit): Likewise. |
| (estimate_node_size_and_time): Likewise. |
| (inline_update_callee_summaries): Likewise. |
| (inline_merge_summary): Likewise. |
| (inline_update_overall_summary): Likewise. |
| (simple_edge_hints): Likewise. |
| (do_estimate_edge_time): Likewise. |
| (estimate_time_after_inlining): Likewise. |
| (estimate_size_after_inlining): Likewise. |
| (do_estimate_growth): Likewise. |
| (growth_likely_positive): Likewise. |
| (inline_generate_summary): Likewise. |
| (inline_read_section): Likewise. |
| (inline_read_summary): Likewise. |
| (inline_write_summary): Likewise. |
| (inline_free_summary): Likewise. |
| * ipa-inline-transform.c (clone_inlined_nodes): Likewise. |
| (inline_call): Likewise. |
| * ipa-inline.c (caller_growth_limits): Likewise. |
| (can_inline_edge_p): Likewise. |
| (want_early_inline_function_p): Likewise. |
| (compute_uninlined_call_time): Likewise. |
| (compute_inlined_call_time): Likewise. |
| (big_speedup_p): Likewise. |
| (want_inline_small_function_p): Likewise. |
| (edge_badness): Likewise. |
| (update_caller_keys): Likewise. |
| (update_callee_keys): Likewise. |
| (recursive_inlining): Likewise. |
| (inline_small_functions): Likewise. |
| (inline_to_all_callers): Likewise. |
| (dump_overall_stats): Likewise. |
| (early_inline_small_functions): Likewise. |
| * ipa-inline.h: New class inline_summary_t replaces |
| vec<inline_summary_t>. |
| * ipa-split.c (execute_split_functions): New inline_summaries is used. |
| * ipa.c (walk_polymorphic_call_targets): Likewise. |
| * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. |
| |
| 2014-12-22 Martin Liska <mliska@suse.cz> |
| |
| * auto-profile.c: Include of symbol-summary.h is added. |
| * cgraph.c: Likewise. |
| * cgraphbuild.c: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-inline-analysis.c (evaluate_properties_for_edge): New |
| ipa_node_params_sum data structure is used. |
| (inline_node_duplication_hook): Likewise. |
| (estimate_function_body_sizes): Likewise. |
| (remap_edge_change_prob): Likewise. |
| (inline_merge_summary): Likewise. |
| * ipa-inline-transform.c: Include of symbol-summary.h is added. |
| * ipa-inline.c (early_inliner): New ipa_node_params_sum data structure |
| is used. |
| * ipa-polymorphic-call.c: Include of symbol-summary.h is added. |
| * ipa-profile.c: Include of symbol-summary.h is added. |
| * ipa-prop.c (ipa_propagate_indirect_call_infos): New |
| ipa_node_params_sum data structure is used. |
| (ipa_node_params::~ipa_node_params): New function. |
| (ipa_free_all_node_params): Destruction is simplified. |
| (ipa_node_removal_hook): Removed. |
| (ipa_add_new_function): Renamed from ipa_node_duplication_hook. |
| (ipa_node_params_t::duplicate): New function. |
| (ipa_register_cgraph_hooks): Few hooks are removed. |
| (ipa_unregister_cgraph_hooks): Likewise. |
| (ipa_prop_write_jump_functions): New ipa_node_params_sum is used. |
| * ipa-prop.h (struct ipa_node_params): Destructor introduced for |
| the structure. |
| (ipa_check_create_node_params): Vector for ipa_node_params is replaced |
| with function_summary. |
| * ipa-split.c: Include of symbol-summary.h is added. |
| * ipa-utils.c: Include of symbol-summary.h is added. |
| * ipa.c: Include of symbol-summary.h is added. |
| * omp-low.c: Include of symbol-summary.h is added. |
| * tree-inline.c: Include of symbol-summary.h is added. |
| * tree-sra.c: Include of symbol-summary.h is added. |
| * tree-ssa-pre.c: Include of symbol-summary.h is added. |
| |
| 2014-12-22 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID |
| is filled up. |
| * symbol-summary.h: New file. |
| * gengtype.c (open_base_files): Add symbol-summary.h. |
| * toplev.c (general_init): Call constructor of symbol_table. |
| |
| 2014-12-17 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/55212 |
| * config/sh/sh.md (*addsi3_compact): Add parentheses around && |
| condition. Add comments. |
| |
| 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64358 |
| * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the |
| input operands if only the second is inverted. |
| * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128): |
| Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to |
| rs6000_split_logical. |
| (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2]. |
| |
| 2014-12-20 Martin Uecker <uecker@eecs.berkeley.edu> |
| |
| * doc/invoke.texi: Document -Wdiscarded-array-qualifiers. |
| * doc/extend.texi: Document new behavior for pointers to arrays |
| with qualifiers. |
| |
| 2014-12-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * hash-table.h (struct pointer_hash): Fix formating. |
| (hash_table_higher_prime_index): Declare pure. |
| (hash_table_mod2, hash_table_mod1, mul_mod): Move inline; |
| assume that uint64_t always exists. |
| (hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert. |
| (hash_table<Descriptor, Allocator, false>::expand ()): Fix formating. |
| (hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)): |
| Use checking assert. |
| * hash-table.c: Remove #if 0 code. |
| (hash_table_higher_prime_index): Use gcc_assert. |
| (mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h |
| |
| 2014-12-19 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config.gcc: Support mips*-img-linux* and mips*-img-elf*. |
| * config/mips/mti-linux.h: Support mips32r6 as being the default arch. |
| * config/mips/t-img-elf: New. |
| * config/mips/t-img-linux: New. |
| |
| 2014-12-19 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support. |
| * config/mips/constraints.md (ZD): Add r6 restrictions. |
| * config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC. |
| * config/mips/loongson.md |
| (<u>div<mode>3, <u>mod<mode>3): Move to mips.md. |
| * config/mips/mips-cpus.def (mips32r6, mips64r6): Define. |
| * config/mips/mips-modes.def (CCF): New mode. |
| * config/mips/mips-protos.h |
| (mips_9bit_offset_address_p): New prototype. |
| * config/mips/mips-tables.opt: Regenerate. |
| * config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6. |
| (mips_rtx_cost_data): Add pseudo-processors W32 and W64. |
| (mips_9bit_offset_address_p): New function. |
| (mips_rtx_costs): Account for R6 multiply and FMA instructions. |
| (mips_emit_compare): Implement R6 FPU comparisons. |
| (mips_expand_conditional_move): Implement R6 selects. |
| (mips_expand_conditional_trap): Account for removed trap immediate. |
| (mips_expand_block_move): Disable inline move when LWL/LWR are removed. |
| (mips_print_float_branch_condition): Update for R6 FPU branches. |
| (mips_print_operand): Handle CCF mode compares. |
| (mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save |
| MD_REGS for R6. |
| (mips_hard_regno_mode_ok_p): Support CCF mode. |
| (mips_mode_ok_for_mov_fmt_p): Likewise. |
| (mips_secondary_reload_class): CCFmode can be loaded directly. |
| (mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions. |
| (mips_option_override): Ensure R6 is used with fp64. Set default |
| mips_nan modes. Check for mips_nan support. Prevent DSP with R6. |
| (mips_conditional_register_usage): Disable MD_REGS for R6. Disable |
| FPSW for R6. |
| (mips_mulsidi3_gen_fn): Support R6 multiply instructions. |
| * config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define. |
| (TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64. |
| (ISA_HAS_JR): New macro. |
| (ISA_HAS_HILO): New macro. |
| (ISA_HAS_R6MUL): Likewise. |
| (ISA_HAS_R6DMUL): Likewise. |
| (ISA_HAS_R6DIV): Likewise. |
| (ISA_HAS_R6DDIV): Likewise. |
| (ISA_HAS_CCF): Likewise. |
| (ISA_HAS_SEL): Likewise. |
| (ISA_HAS_COND_TRAPI): Likewise. |
| (ISA_HAS_FP_MADDF_MSUBF): Likewise. |
| (ISA_HAS_LWL_LWR): Likewise. |
| (ISA_HAS_IEEE_754_LEGACY): Likewise. |
| (ISA_HAS_IEEE_754_2008): Likewise. |
| (ISA_HAS_PREFETCH_9BIT): Likewise. |
| (MIPSR6_9BIT_OFFSET_P): New macro. |
| (BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS. |
| (DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC. |
| (MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6. |
| (MIPS_ISA_LEVEL_SPEC): Likewise. |
| (MIPS_ISA_SYNCI_SPEC): Likewise. |
| (ISA_HAS_64BIT_REGS): Likewise. |
| (ISA_HAS_BRANCHLIKELY): Likewise. |
| (ISA_HAS_MUL3): Likewise. |
| (ISA_HAS_DMULT): Likewise. |
| (ISA_HAS_DDIV): Likewise. |
| (ISA_HAS_DIV): Likewise. |
| (ISA_HAS_MULT): Likewise. |
| (ISA_HAS_FP_CONDMOVE): Likewise. |
| (ISA_HAS_8CC): Likewise. |
| (ISA_HAS_FP4): Likewise. |
| (ISA_HAS_PAIRED_SINGLE): Likewise. |
| (ISA_HAS_MADD_MSUB): Likewise. |
| (ISA_HAS_FP_RECIP_RSQRT): Likewise. |
| * config/mips/mips.md (processor): Add w32 and w64. |
| (FPCC): New mode iterator. |
| (reg): Add CCF mode. |
| (fpcmp): New mode attribute. |
| (fcond): Add ordered, ltgt and ne codes. |
| (fcond): Update code attribute. |
| (sel): New code attribute. |
| (selinv): Likewise. |
| (ctrap<mode>4): Update condition. |
| (*conditional_trap_reg<mode>): New define_insn. |
| (*conditional_trap<mode>): Update condition. |
| (mul<mode>3): Expand R6 multiply instructions. |
| (<su>mulsi3_highpart): Likewise. |
| (<su>muldi3_highpart): Likewise. |
| (mul<mode>3_mul3_loongson): Rename... |
| (mul<mode>3_mul3_hilo): To this. Add R6 mul instruction. |
| (<u>mulsidi3_32bit_r6): New expander. |
| (<u>mulsidi3_32bit): Restrict to pre-r6 multiplies. |
| (<u>mulsidi3_32bit_r4000): Likewise. |
| (<u>mulsidi3_64bit): Likewise. |
| (<su>mulsi3_highpart_internal): Likewise. |
| (mulsidi3_64bit_r6dmul): New instruction. |
| (<su>mulsi3_highpart_r6): Likewise. |
| (<su>muldi3_highpart_r6): Likewise. |
| (fma<mode>4): Likewise. |
| (movccf): Likewise. |
| (*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise. |
| (*sel<mode>): Likewise. |
| (<u>div<mode>3): Moved from loongson.md. Add R6 instructions. |
| (<u>mod<mode>3): Likewise. |
| (extvmisalign<mode>): Require ISA_HAS_LWL_LWR. |
| (extzvmisalign<mode>): Likewise. |
| (insvmisalign<mode>): Likewise. |
| (mips_cache): Account for R6 displacement field sizes. |
| (*branch_fp): Rename... |
| (*branch_fp_<mode>): To this. Add CCFmode support. |
| (*branch_fp_inverted): Rename... |
| (*branch_fp_inverted_<mode>): To this. Add CCFmode support. |
| (s<code>_<mode>): Rename... |
| (s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this. Add FCCmode |
| condition support. |
| (s<code>_<mode> swapped): Rename... |
| (s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add |
| CCFmode condition support. |
| (mov<mode>cc GPR): Expand R6 selects. |
| (mov<mode>cc FPR): Expand R6 selects. |
| (*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2. |
| * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to |
| mips.h. |
| (ASM_SPEC): Add mips32r6, mips64r6. |
| * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update |
| for mips32r6/mips64r6. |
| * doc/invoke.texi: Document -mips32r6,-mips64r6. |
| * doc/md.texi: Update comment for ZD constraint. |
| |
| 2014-12-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64268 |
| * combine.c (try_combine): Immediately return if any of I0,I1,I2 |
| are the same insn. |
| |
| 2014-12-19 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3): |
| Reparameterize to... |
| (<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant. |
| (xor_one_cmpl<mode>3): New define_insn_and_split. |
| |
| * config/aarch64/iterators.md (NLOGICAL): New define_code_iterator. |
| |
| 2014-12-19 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2): |
| Add SIMD-register variant. |
| * config/aarch64/iterators.md (Vbtype): Add value for SI. |
| |
| 2014-12-19 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize |
| SIMD reg variant. |
| |
| 2014-12-19 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63569 |
| * ipa-icf-gimple.c (func_checker::compare_operand): Add missing |
| comparison for volatile flag. |
| |
| 2014-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/invoke.texi (ARM options): Remove mention of Advanced RISC |
| Machines. |
| |
| 2014-12-19 Xingxing Pan <xxingpan@marvell.com> |
| |
| * config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change |
| reservation to cortex_a9_neon_dp. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (prepare_move_operands): Split HI/QImode load/store |
| to two move insns via r0. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/predicates.md (arith_or_int_operand): New predicate. |
| * config/sh/sh.md (addsi3): Use arith_or_int_operand for operand 2. |
| Return fail if operands[0] and operands[1] are overlap when |
| operands[2] is integer constant. |
| (*addsi3_compact): Make it define_insn_and_split which splits |
| reg0 := reg1 + constant to reg0 = constant and reg0 := reg0 + reg1. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Declare. |
| * config/sh/sh.c (sh_movsf_ie_ra_split_p): New function. |
| * config/sh/sh.md (movsi_ie): Use "mr" constraint for the 8-th |
| altarnative of operand 0. |
| (movesf_ie): Use "X" constraint instead of "Bsc". |
| (movsf_ie_ra): New insn_and_split. |
| (movsf): Use movsfie_ra when lra_in_progress is true. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/predicates.md (general_movsrc_operand): Allow only |
| valid plus address expressions. |
| (general_movdst_operand): Likewise. |
| (t_reg_operand): Allow (zero_extend (reg t)). |
| * config/sh/sh-protos.h (sh_hard_regno_caller_save_mode): Declare. |
| * config/sh/sh.c (sh_hard_regno_caller_save_mode): New function. |
| (sh_secondary_reload): Return NO_REGS instead of FPUL_REGS in one |
| case. |
| * config/sh/sh.h (HARD_REGNO_CALLER_SAVE_MODE): Define. |
| * config/sh/sh.md (untyped_call): Clobber function value |
| registers before call. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (sh_lra_p): New function. |
| (TARGET_LRA_P): Define. |
| (sh_legitimize_reload_address): Return false if sh_lra_p is true. |
| * config/sh/sh.opt (mlra): New option. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * lra-constraints.c (process_address_1): Try if target can split |
| displacement with targetm.legitimize_address_displacement. |
| * target.def (legitimize_address_displacement): New hook. |
| * targhooks.c (default_legitimize_address_displacement): New function. |
| * targhooks.h (default_legitimize_address_displacement): Declare. |
| * config/sh/sh.c (sh_legitimize_address_displacement): New function. |
| (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define. |
| * doc/tm.texi.in (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): New hook. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * lra-constraints.c (get_equiv): Don't return memory equivalence |
| when targetm.cannot_substitute_mem_equiv_p is true. |
| * target.def (cannot_substitute_mem_equiv_p): New hook. |
| * config/sh/sh.c (sh_cannot_substitute_mem_equiv_p): New function. |
| (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. |
| * doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New hook. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-12-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * lra-constraints.c (process_address_1): Swap base_term and |
| index_term if INDEX_REG_CLASS is assigned to base_term already |
| when INDEX_REG_CLASS is a single register class. |
| |
| 2014-12-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-constraints.c (lra-constraints.c): Exchange places of sclass |
| and dclass. |
| |
| 2014-12-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/64291 |
| * lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE. |
| (create_cands): Process only output reload insn with potential |
| cands. |
| |
| 2014-12-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_call): Skip setting up RAX |
| register for -mskip-rax-setup when there are no parameters |
| passed in vector registers. |
| * config/i386/i386.opt (mskip-rax-setup): New option. |
| * doc/invoke.texi: Document -mskip-rax-setup. |
| |
| 2014-12-18 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift |
| by 64 by moving const0_rtx. |
| (aarch64_ushr_simddi): Delete. |
| |
| * config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64. |
| |
| 2014-12-18 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64. |
| |
| * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift |
| amount to 63 if was 64. |
| (aarch64_sshr_simddi): Remove. |
| |
| 2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): |
| Define. |
| (aarch64_min_divisions_for_recip_mul): New function. |
| |
| 2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (tune-params): Add code alignment |
| tuning parameters. |
| * gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment |
| tuning parameters. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (thunderx_tunings): Likewise. |
| (aarch64_override_options): Use new alignment tunings. |
| |
| 2014-12-18 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/64330 |
| * ipa-icf.c (sem_variable::parse): Add checking |
| for externally visible symbols and do not introduce |
| an alias for an external declaration. |
| |
| 2014-12-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/63573 |
| * tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p |
| predicate. |
| |
| 2014-12-18 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/64146 |
| * ipa-icf.c (sem_function::merge): Check for |
| decl_binds_to_current_def_p is newly added to merge operation. |
| |
| 2014-12-18 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/62178 |
| * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function. |
| (iv_ca_replace): New function. |
| (try_improve_iv_set): New parameter try_replace_p. |
| Break local optimal fixed-point by calling iv_ca_replace. |
| (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set. |
| |
| 2014-12-17 Dehao Chen <dehao@google.com> |
| |
| * auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right |
| place. |
| (auto_profile): Recompute inline summary after processing cgraph node. |
| |
| 2014-12-17 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/51244 |
| * config/sh/sh_treg_combine.cc (is_conditional_insn): New function. |
| (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it |
| accordingly in constructor. |
| (cbranch_trace::branch_condition_rtx_ref): New function. |
| (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref. |
| (sh_treg_combine::try_invert_branch_condition): Invert condition rtx |
| in insn using reversed_comparison_code and validate_change instead of |
| invert_jump_1. |
| (sh_treg_combine::execute): Look for conditional insns in basic blocks |
| in addition to conditional branches. |
| * config/sh/sh.md (*movsicc_div0s): Remove combine patterns. |
| |
| 2014-12-17 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/51244 |
| * config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch): |
| Combine ccreg inversion and cbranch into inverted cbranch. |
| |
| 2014-12-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-constraints.c (process_alt_operands): Remove non |
| allocatable hard regs when considering |
| ira_prohibited_class_mode_regs. |
| |
| 2014-12-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * sreal.h (sreal::normalize): Implement inline. |
| (sreal::normalize_up): New function. |
| (sreal::normalize_down): New function. |
| * sreal.c (sreal::normalize): Remove. |
| |
| 2014-12-17 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (generic_sched): Delete it. |
| |
| 2014-12-17 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix |
| unused argument warning. |
| |
| 2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.h (struct array_descr_info): Remove the base_decl field. |
| * dwarf2out.c (enum dw_scalar_form): New. |
| (struct loc_descr_context): New. |
| (add_scalar_info): New. |
| (add_bound_info): Add a context parameter. Use add_scalar_info. |
| (loc_list_from_tree): Add a context parameter. Handle PLACEHOLDER_EXPR |
| nodes for type-related expressions. Likewise for base declarations. |
| (loc_descriptor_from_tree): Add a context parameter. |
| (subrange_type_die): Update calls to add_bound_info. |
| (tls_mem_loc_descriptor): Likewise. |
| (loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context |
| parameter. Update calls to loc_list_from_tree. |
| (add_subscript_info): Update calls to add_bound_info. |
| (gen_array_type_die): Update calls to loc_list_from_tree and to |
| add_bound_info. |
| (descr_info_loc): Remove. |
| (add_descr_info_field): Remove. |
| (gen_descr_array_type_die): Switch add_descr_info_field calls into |
| add_scalar_info/add_bound_info ones. |
| (gen_subprogram_die): Update calls to loc_list_from_tree. |
| (gen_variable_die): Likewise. |
| |
| 2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (print_loc_descr): New. |
| (print_dw_val): New. |
| (print_attribute): New. |
| (print_loc_descr): New. |
| (print_die): Use print_dw_val. |
| (debug_dwarf_loc_descr): New. |
| * dwarf2out.h (debug_dwarf_loc_descr): New declaration. |
| |
| 2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook |
| even when (dwarf_version < 3 && dwarf_strict). |
| (gen_descr_array_die): Do not output DW_AT_data_locationn, |
| DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF |
| attributes when (dwarf_version < 3 && dwarf_strict). |
| |
| 2014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.h (enum array_descr_ordering): New. |
| (array_descr_dimen): Add a bounds_type structure field. |
| (struct array_descr_info): Add a field to hold index type information |
| and another one to hold ordering information. |
| * dwarf2out.c (gen_type_die_with_usage): Get the main variant before |
| invoking the array descriptor language hook. Initialize the |
| array_descr_info structure before calling the lang-hook. |
| (gen_descr_array_type_die): Use gen_type_die if not processing the main |
| type variant. Replace Fortran-specific code with generic one using |
| this new field. Add a GNAT descriptive type, if any. Output type |
| information for the array bound subrange, if any. |
| |
| 2014-12-17 H.J. Lu <hongjiu.lu@intel.com> |
| Jakub Jelinek <jakub@redhat.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/61296 |
| * config/i386/i386-opts.h (ix86_align_data): New enum. |
| * config/i386/i386.c (ix86_data_alignment): Return the ABI |
| alignment value for -malign-data=abi, the cachine line size |
| for -malign-data=cacheline and the older GCC compatible |
| alignment value for for -malign-data=compat. |
| * config/i386/i386.opt (malign-data=): New. |
| * doc/invoke.texi: Document -malign-data=. |
| |
| 2014-12-17 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/63568 |
| * match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern. |
| |
| 2014-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/64322 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive |
| range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic. |
| |
| 2014-12-17 Tobias Burnus <burnus@net-b.de> |
| |
| PR fortran/54687 |
| * flag-types.h (gfc_init_local_real, gfc_fcoarray, |
| gfc_convert): New enums; moved from fortran/. |
| |
| 2014-12-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fibonacci_heap.h (min): Return m_data instead of non-existing data. |
| |
| 2014-12-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider |
| return values of const calls as constants. |
| (estimate_function_body_sizes): Expect calls to have false predicates. |
| |
| 2014-12-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * hwint.c (abs_hwi, absu_hwi): Move to ... |
| * hwint.h (abs_hwi, absu_hwi): ... here; make inline. |
| |
| 2014-12-16 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/64309 |
| * match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and |
| ((1 << A) & 1) == 0 -> A != 0. |
| |
| 2014-12-16 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (parser::parser): Initialize capture_ids. |
| (parser::parse_pattern): Properly allocate capture_ids before |
| using them. Set capture_ids to zero when its lifetime is |
| supposed to finish. |
| (parser::parse_simplify): Allocate capture_ids only if required. |
| |
| 2014-12-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> |
| |
| * sreal.c: Include math.h later. |
| |
| 2014-12-16 Felix Yang <felix.yang@huawei.com> |
| |
| PR rtl-optimization/64240 |
| * ddg.c (mark_mem_use): Check *iter instead of *x. |
| |
| 2014-12-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/64278 |
| * sreal.c (sreal::operator*): Replace std::abs with absu_hwi. |
| |
| 2014-12-16 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * config/i386/i386.c (ix86_address_cost): Add explicit restriction |
| to RTL level for the check for PIC register. |
| |
| 2014-12-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ... |
| * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ... |
| * config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here. |
| |
| 2014-12-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| PR target/64217 |
| * config/nds32/nds32.md (casesi_internal): Add '=r' for clobber |
| register constraint. |
| |
| 2014-12-15 DJ Delorie <dj@redhat.com> |
| |
| * config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND. |
| |
| 2014-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/64043 |
| * tree-streamer.c (preload_common_nodes): Skip preloading |
| of main_identifier_node, pid_type and optimization/option nodes. |
| |
| 2014-12-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/63397 |
| * ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use |
| int64_t. |
| (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto. |
| * ira.c (ira_overall_cost, ira_overall_cost_before): Ditto. |
| (ira_reg_cost, ira_mem_cost): Ditto. |
| (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto. |
| (calculate_allocation_cost, do_reload): Use the right |
| format for int64_t values. |
| |
| 2014-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * sreal.h (to_double): New method. |
| (shift): Do not ICE on 0. |
| * sreal.c: Include math.h |
| (sreal::to_double): New. |
| |
| 2014-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/64316 |
| * simplify-rtx.c (simplify_relational_operation_1): For |
| (eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use |
| CONST0_RTX instead of const0_rtx. |
| |
| 2014-12-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/62642 |
| * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves. |
| |
| 2014-12-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-int.h (ira_prohibited_class_mode_regs): Remove. |
| (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to |
| ... |
| * ira.h (struct target_ira): ... here. |
| (ira_prohibited_class_mode_regs): Define. |
| * lra-constraints.c (process_alt_operands): Add one more condition |
| to refuse alternative when reload pseudo of given class can not |
| hold value of given mode. |
| |
| 2014-12-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64312 |
| * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use |
| vuse_ssa_val as callback to walk_non_aliased_vuses. |
| (vn_reference_lookup): Likewise. |
| |
| 2014-12-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot, |
| *add<mode>3_imm_dot2): Change the constraint for the second |
| alternative for operand 1 from "r" to "b". |
| |
| 2014-12-15 Richard Biener <rguenther@suse.de> |
| |
| * vec.h (vec::safe_grow): Guard against a grow to zero size. |
| |
| 2014-12-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64295 |
| * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of |
| fold_binary to compute the constant to multiply with. |
| |
| 2014-12-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64246 |
| * cfgloop.c (mark_loop_for_removal): Make safe against multiple |
| invocations on the same loop. |
| |
| 2014-12-15 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/64292 |
| * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check. |
| |
| 2014-12-15 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes. |
| |
| 2014-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/64265 |
| * tsan.c (instrument_func_entry): Insert __tsan_func_entry |
| call on edge from entry block to single succ instead |
| of after labels of single succ of entry block. |
| |
| 2014-12-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64284 |
| * tree-ssa-threadupdate.c (duplicate_seme_region): Mark |
| the loop for removal if we copied the loop header. |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61602 |
| * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool. |
| * ipa.c (set_writeonly_bit): Track if reference was removed. |
| (ipa_discover_readonly_nonaddressable_vars): Return true if any |
| references was removed. |
| * ipa-reference.c (propagate): Return TODO_remove_functions if |
| reference was removed. |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa.c (process_references): Fix conditoinal on flag_optimize |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61558 |
| * symtab.c (symbol_table::insert_to_assembler_name_hash |
| symbol_table::unlink_from_assembler_name_hash): Do not ICE when |
| DECL_ASSEMBLER_NAME is NULL. |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphunit.c (analyze_functions): Always analyze targets of aliases. |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/64043 |
| * tree.c (virtual_method_call_p): Return false when OTR type has |
| no BINFO. |
| |
| 2014-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphunit.c (analyze_functions): Do not analyze extern inline |
| funtions when not optimizing; skip comdat locals. |
| |
| 2014-12-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-12-12 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment. |
| |
| 2014-12-12 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/64110 |
| * lra-constraints.c (process_alt_operands): Refuse alternative |
| when reload pseudo of given class can not hold value of given |
| mode. |
| |
| 2014-12-12 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check |
| intermediate walk_tree results for for_incr. |
| <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too. |
| <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing. |
| |
| 2014-12-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/64182 |
| * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied |
| cases. |
| * double-int.c (div_and_round_double): Fix handling of unsigned |
| cases. Use same rounding approach as wide-int.h. |
| |
| 2014-12-12 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/64274 |
| * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check. |
| |
| 2014-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/64269 |
| * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if |
| len2 or diff are too large. |
| |
| 2014-12-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64280 |
| * tree-cfg.c (replace_uses_by): Guard assert properly. |
| |
| 2014-12-12 Anthony Green <green@moxielogic.com> |
| |
| * config/moxie/moxie.md: Add use of zex instruction. |
| |
| 2014-12-12 Marc Glisse <marc.glisse@inria.fr> |
| |
| * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS, |
| HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded |
| declarations. |
| * real.c (HONOR_NANS): Fix indentation. |
| (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS, |
| HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads. |
| * builtins.c (fold_builtin_cproj, fold_builtin_signbit, |
| fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument |
| of HONOR_*. |
| * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc): |
| Likewise. |
| * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise. |
| * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise. |
| * omp-low.c (omp_reduction_init): Likewise. |
| * rtlanal.c (may_trap_p_1): Likewise. |
| * simplify-rtx.c (simplify_const_relational_operation): Likewise. |
| * tree-ssa-dom.c (record_equality, record_edge_info): Likewise. |
| * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise. |
| * tree-ssa-reassoc.c (eliminate_using_constants): Likewise. |
| * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. |
| |
| 2014-12-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (ipa_inline): Fix condition on when |
| TODO_remove_unreachable_functions is needed. |
| |
| 2014-12-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (possible_polymorphic_call_targets): Return early |
| if otr_type has no BINFO. |
| |
| 2014-12-12 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| PR rtl-optimization/63917 |
| * ifcvt.c (cc_in_cond): New function. |
| (end_ifcvt_sequence): Make sure new generated insns do not clobber CC. |
| (noce_process_if_block, check_cond_move_block): Check CC references. |
| |
| 2014-12-11 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-protos.h (tune_params): Add align field. |
| * config/aarch64/aarch64.c (generic_tunings): Specify align. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (thunderx_tunings): Likewise. |
| (aarch64_override_options): Set align_loops, align_jumps, |
| align_functions based on what the tuning struct. |
| |
| 2014-12-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/md.texi (Insn Lengths): Fix description of (pc). |
| |
| 2014-12-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61324 |
| * passes.c (execute_todo): Update call of remove_unreachable_nodes. |
| * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions. |
| * cgraphunit.c (symbol_table::process_new_functions): Add |
| IPA_SSA_AFTER_INLINING. |
| (ipa_passes): Update call of remove_unreachable_nodes. |
| (symbol_table::compile): Remove call of remove_unreachable_nodes. |
| * ipa-inline.c (inline_small_functions): Do not ICE with |
| -flto-partition=none |
| (ipa_inline): Update symtab->state; fix formatting |
| update call of remove_unreachable_nodes. |
| * passes.c (execute_todo): Update call of remove_unreachable_nodes. |
| * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. |
| * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING. |
| (remove_unreachable_nodes): Update. |
| * ipa.c (process_references): Keep external references only |
| when optimizing. |
| (walk_polymorphic_call_targets): Keep possible polymorphic call |
| target only when devirtualizing. |
| (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P |
| parameter. |
| (ipa_single_use): Update comment. |
| * ipa-pure-const.c (cdtor_p): New function. |
| (propagate_pure_const): Track if some cdtor was turned pure/const. |
| (execute): Return TODO_remove_functions if needed. |
| * ipa-comdats.c (ipa_comdats): Update comment. |
| |
| 2014-12-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dwarf2out.c (gen_lexical_block_die): Remove unused `depth' |
| parameter. |
| (gen_inlined_subroutine_die): Same. |
| (gen_block_die): Same. |
| (decls_for_scope): Same. |
| |
| 2014-12-11 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to |
| AARCH64_FL_FOR_ARCH8. |
| * config/aarch64/aarch64.c (all_cores): Use FLAGS from |
| aarch64-cores.def file only. |
| |
| 2014-12-11 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR fortran/44054 |
| * diagnostic.c (diagnostic_action_after_output): Make it extern. |
| Take diagnostic_t argument instead of diagnostic_info. Count also |
| DK_WERROR towards max_errors. |
| (diagnostic_report_diagnostic): Update call according to the above. |
| (error_recursion): Likewise. |
| * diagnostic.h (diagnostic_action_after_output): Declare. |
| * pretty-print.c (pp_formatted_text_data): Delete. |
| (pp_append_r): Call output_buffer_append_r. |
| (pp_formatted_text): Call output_buffer_formatted_text. |
| (pp_last_position_in_text): Call output_buffer_last_position_in_text. |
| * pretty-print.h (output_buffer_formatted_text): New. |
| (output_buffer_append_r): New. |
| (output_buffer_last_position_in_text): New. |
| |
| 2014-12-11 Kyrylo Tkachov kyrylo.tkachov@arm.com |
| |
| * config/aarch64/aarch64.c (aarch64_parse_extension): Update error |
| message to say +no only when removing extension. |
| |
| 2014-12-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list |
| for generator file. Add comment indicating it is a generated file. |
| * config/tilepro/mul-tables.c: Update generated file. |
| * config/tilegx/mul-tables.c: Likewise. |
| |
| 2014-12-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Do not allow combining a PARALLEL I2 |
| with a register move I3 if that I2 is an asm. |
| |
| 2014-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm_neon.h (vrndqn_f32): Rename to... |
| (vrndnq_f32): ... this. |
| (vrndqa_f32): Rename to... |
| (vrndaq_f32): ... this. |
| (vrndqp_f32): Rename to... |
| (vrndpq_f32): ... this. |
| (vrndqm_f32): Rename to... |
| (vrndmq_f32): ... this. |
| (vrndx_f32): New intrinsic. |
| (vrndxq_f32): Likewise. |
| |
| 2014-12-11 Marek Polacek <polacek@redhat.com> |
| |
| * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check. |
| (extract_muldiv_1): Likewise. |
| (maybe_canonicalize_comparison_1): Likewise. |
| (fold_comparison): Likewise. |
| (tree_binary_nonnegative_warnv_p): Likewise. |
| (tree_binary_nonzero_warnv_p): Likewise. |
| * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise. |
| * tree-scalar-evolution.c (simple_iv): Likewise. |
| (scev_const_prop): Likewise. |
| * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. |
| * tree-vect-generic.c (expand_vector_operation): Likewise. |
| * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define. |
| (ANY_INTEGRAL_TYPE_P): Define. |
| (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS): |
| Add ANY_INTEGRAL_TYPE_CHECK. |
| (any_integral_type_check): New function. |
| |
| 2014-12-11 Tobias Burnus <burnus@net-b.de> |
| Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * error.c (gfc_get_terminal_width): Renamed from |
| get_terminal_width and use same-named common function. |
| (gfc_error_init_1): Update call. |
| |
| 2014-12-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gdbhooks.py (class DWDieRefPrinter): New class. |
| (build_pretty_printer): Register dw_die_ref's. |
| |
| 2014-12-10 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config.gcc: Support "knl". |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl". |
| * config/i386/i386-c.c (ix86_target_macros_internal): Handle |
| PROCESSOR_KNL. |
| * config/i386/i386.c (m_KNL): Define. |
| (processor_target_table): Add "knl". |
| (PTA_KNL): Define. |
| (ix86_issue_rate): Add PROCESSOR_KNL. |
| (ix86_adjust_cost): Ditto. |
| (ia32_multipass_dfa_lookahead): Ditto. |
| (get_builtin_code_for_version): Handle "knl". |
| (fold_builtin_cpu): Ditto. |
| * config/i386/i386.h (TARGET_KNL): Define. |
| (processor_type): Add PROCESSOR_KNL. |
| * config/i386/i386.md (attr "cpu"): Add knl. |
| * config/i386/x86-tune.def: Add m_KNL. |
| |
| 2014-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi: (-devirtualize-at-ltrans): Document. |
| * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed |
| when it is not streamed to the given ltrans. |
| (compute_ltrans_boundary): Make code adding all polymorphic |
| call targets conditional with !flag_wpa || flag_ltrans_devirtualize. |
| * common.opt (fdevirtualize-at-ltrans): New flag. |
| |
| 2014-12-10 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * varpool.c (varpool_node::get_create): Force output of vars with |
| "omp declare target" attribute. |
| |
| 2014-12-10 Marc Glisse <marc.glisse@inria.fr> |
| |
| * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations. |
| * real.c: Include rtl.h and options.h. |
| (HONOR_NANS): Define three overloads. |
| * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp): |
| Simplify argument of HONOR_NANS. |
| * fold-const.c (combine_comparisons, fold_truth_not_expr, |
| fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm, |
| fold_comparison, fold_binary_loc): Likewise. |
| * ifcvt.c (noce_try_move, noce_try_minmax): Likewise. |
| * ipa-inline-analysis.c (add_clause, |
| set_cond_stmt_execution_predicate): Likewise. |
| * match.pd: Likewise. |
| * rtlanal.c (may_trap_p_1): Likewise. |
| * simplify-rtx.c (simplify_const_relational_operation): Likewise. |
| * tree-if-conv.c (parse_predicate): Likewise. |
| * tree-ssa-ccp.c (valid_lattice_transition): Likewise. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. |
| * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise. |
| * tree-ssa-reassoc.c (eliminate_using_constants): Likewise. |
| * tree-ssa-tail-merge.c (gimple_equal_p): Likewise. |
| |
| 2014-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/62021 |
| * omp-low.c (simd_clone_adjust_return_type): Use |
| vector of pointer_sized_int_node types instead vector of pointer |
| types. |
| (simd_clone_adjust_argument_types): Likewise. |
| |
| 2014-12-10 Jakub Jelinek <jakub@redhat.com> |
| Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/64252 |
| * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p, |
| set dcopy.target to a new pseudo. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*add<mode>3): Remove condition. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/40x.md (ppc403-compare): Remove "compare". |
| config/rs6000/440.md (ppc440-compare): Remove "compare". |
| config/rs6000/476.md (ppc476-compare): Remove "compare". |
| config/rs6000/601.md (ppc601-compare): Remove "compare". |
| config/rs6000/603.md (ppc603-compare): Remove "compare". |
| config/rs6000/6xx.md (ppc604-compare): Remove "compare". |
| config/rs6000/7450.md (ppc7450-compare): Remove "compare". |
| config/rs6000/7xx.md (ppc750-compare): Remove "compare". |
| config/rs6000/8540.md (ppc8540_su): Remove "compare". |
| config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove |
| "compare". |
| config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare". |
| config/rs6000/e500mc.md (e500mc_su): Remove "compare". |
| config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare". |
| config/rs6000/e5500.md (e5500_sfx2): Remove "compare". |
| config/rs6000/e6500.md (e6500_sfx2): Remove "compare". |
| config/rs6000/mpc.md (mpccore-compare): Remove "compare". |
| config/rs6000/power4.md (power4-compare): Remove "compare". |
| config/rs6000/power5.md (power5-compare): Remove "compare". |
| config/rs6000/power6.md (power6-compare): Remove "compare". |
| config/rs6000/power7.md (power7-compare): Remove "compare". |
| config/rs6000/power8.md (power8-compare): Remove "compare". Update |
| comment. |
| config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove |
| (three times). |
| (is_cracked_insn): Remove TYPE_COMPARE case. |
| (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice). |
| config/rs6000/rs6000.md (type): Remove "compare". |
| (cell_micro): Remove "compare". |
| config/rs6000/rs64.md (rs64a-compare): Remove "compare". |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2): |
| Change type from "compare" to "two". |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/predicates.md (unsigned_comparison_operator): New. |
| (signed_comparison_operator): New. |
| * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare. |
| * config/rs6000/rs6000.c (rs6000_emit_eqne): New function. |
| (rs6000_emit_sCOND): Remove ISEL test (move it to the expander). |
| * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode |
| add to addc,adde directly, if !TARGET_POWERPC64. |
| (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly, |
| if !TARGET_POWERPC64. |
| (neg<mode>2): Delete expander. |
| (*neg<mode>2): Rename to "neg<mode>2". |
| (addti3, subti3): Delete. |
| (addti3, subti3): New expanders. |
| (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete. |
| (cstore<mode>4_unsigned): New expander. |
| (cstore<mode>4): Allow GPR as output (not just SI). Rewrite. |
| (cstore<mode>4 for FP): Remove superfluous quotes. |
| (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter, |
| *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter, |
| *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>, |
| compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and |
| splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>, |
| *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>, |
| *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>, |
| *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>, |
| *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>, |
| *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare, |
| *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare, |
| *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters): |
| Delete. |
| (eq<mode>3, ne<mode>3): New. |
| (*neg_eq_<mode>, *neg_ne_<mode>): New. |
| (*plus_eq_<mode>, *plus_ne_<mode>): New. |
| (*minus_eq_<mode>, *minus_ne_<mode>): New. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/predicates.md (adde_operand): New. |
| * config/rs6000/rs6000.md (add<mode>3_carry): New. |
| (*add<mode>3_imm_carry_pos): New. |
| (*add<mode>3_imm_carry_0): New. |
| (*add<mode>3_imm_carry_m1): New. |
| (*add<mode>3_imm_carry_neg): New. |
| (add<mode>3_carry_in): New. |
| (*add<mode>3_carry_in_internal): New. |
| (add<mode>3_carry_in_0): New. |
| (add<mode>3_carry_in_m1): New. |
| (subf<mode>3_carry): New. |
| (*subf<mode>3_imm_carry_0): New. |
| (*subf<mode>3_imm_carry_m1): New. |
| (subf<mode>3_carry_in): New. |
| (*subf<mode>3_carry_in_internal): New. |
| (subf<mode>3_carry_in_0): New. |
| (subf<mode>3_carry_in_m1): New. |
| (subf<mode>3_carry_in_xx): New. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to |
| "*add<mode>3". |
| (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters): |
| Delete. |
| (*add<mode>3_dot, *add<mode>3_dot2): New. |
| (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic |
| alternative. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2, |
| *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives |
| to "b". Increase length. |
| (splitters for these): Split to cmp+addi instead of addic. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative. |
| (macho_low_di): Ditto. |
| * config/rs6000/rs6000.md (*largetoc_low): Ditto. |
| (tocref<mode>): Ditto. |
| (elf_low): Ditto. |
| * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto. |
| (mov_si<mode>_e500_subreg0_elf_low_le): Ditto. |
| (mov_si<mode>_e500_subreg4_elf_low_be): Ditto. Reformat condition. |
| (mov_si<mode>_e500_subreg4_elf_low_le): Ditto. |
| |
| 2014-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64180 |
| * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define. |
| (rs6000_md_asm_clobbers): New function. |
| |
| 2014-12-10 Felix Yang <felix.yang@huawei.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove |
| declaration of removed function. |
| |
| 2014-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c |
| (move_computations_dom_walker::before_dom_children): Clear |
| SSA_NAME_RANGE_INFO on moved stmts. |
| |
| 2014-12-10 Martin Liska <mliska@suse.cz> |
| |
| * sreal.c (sreal::shift_right): New implementation |
| for int64_t as m_sig. |
| (sreal::normalize): Likewise. |
| (sreal::to_int): Likewise. |
| (sreal::operator+): Likewise. |
| (sreal::operator-): Likewise. |
| (sreal::operator*): Likewise. |
| (sreal::operator/): Likewise. |
| (sreal::signedless_minus): Removed. |
| (sreal::signedless_plus): Removed. |
| (sreal::debug): const keyword is added. |
| * sreal.h (sreal::operator<): New implementation |
| for int64_t as m_sig. |
| * ipa-inline.c (recursive_inlining): LONG_MIN is replaced |
| with sreal::min (). |
| |
| 2014-12-10 Martin Liska <mliska@suse.cz> |
| |
| * gimple-iterator.h (gsi_start_bb_nondebug): New function. |
| * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration |
| replaces loop based on precomputed number of non-debug statements. |
| |
| 2014-12-08 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| * config/linux.c (linux_has_ifunc_p): Remove. |
| * config/linux.h (TARGET_HAS_IFUNC_P): Use default version. |
| |
| 2014-12-10 Mantas Mikaitis <mantas.mikaitis@arm.com> |
| |
| * contrib/check_GNU_style.sh (col): Got rid of cut operation |
| from the pipe chain and instead added cut inside awk command. |
| |
| 2014-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64191 |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not |
| mark clobbers as necessary. |
| (eliminate_unnecessary_stmts): Keep clobbers live if we can. |
| |
| 2014-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/63594 |
| * config/i386/sse.md (vec_dupv4sf): Move after |
| <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern. |
| (*vec_dupv4si, *vec_dupv2di): Likewise. |
| (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ... |
| (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this |
| pattern. |
| (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for |
| TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW |
| is set too). |
| * config/i386/i386.c (enum ix86_builtins): Remove |
| IX86_BUILTIN_PBROADCASTQ256_MEM_MASK, |
| IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and |
| IX86_BUILTIN_PBROADCASTQ512_MEM. |
| (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask, |
| __builtin_ia32_pbroadcastq256_gpr_mask and |
| __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask |
| regardless of OPTION_MASK_ISA_64BIT. |
| * config/i386/avx512fintrin.h (_mm512_set1_epi64, |
| _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask |
| builtins regardless of whether TARGET_64BIT is defined or not. |
| * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64, |
| _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64): |
| Likewise. |
| |
| * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2): |
| Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode). |
| |
| 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53513 |
| * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo. |
| |
| 2014-12-10 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/61686 |
| * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of |
| p->high. |
| |
| 2014-12-10 Kito Cheng <kito@0xlab.org> |
| |
| * doc/libgcc.texi: Update text to match implementation in |
| libgcc/libgcc2.c |
| |
| 2014-12-09 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c, |
| gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h, |
| doc/plugins.texi, doc/gty.texi: Remove support for if_marked and |
| param_is. |
| |
| 2014-12-10 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53513 |
| * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr): |
| Document it. |
| |
| 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR middle-end/64225 |
| * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation |
| for BUILT_IN_POW when flag_errno_math is present. |
| |
| 2014-12-09 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * lto-wrapper.c (compile_offload_image): Start processing in_argv |
| from 0 instead of 1. |
| (run_gcc): Put offload objects into offload_argv, put LTO objects and |
| possible preceding arguments into lto_argv. |
| Pass offload_argv to compile_images_for_offload_targets instead of argv. |
| Use lto_argv for LTO recompilation instead of argv. |
| |
| 2014-12-09 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> |
| |
| * doc/install.texi: Describe --with-aix-soname option. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR target/63870 |
| * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane): |
| Delete. |
| * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>): |
| Delete. |
| * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC |
| vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi. |
| (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64, |
| __aarch64_vget_lane_p8, __aarch64_vget_lane_p16, |
| __aarch64_vget_lane_s8, __aarch64_vget_lane_s16, |
| __aarch64_vget_lane_s32, __aarch64_vget_lane_s64, |
| __aarch64_vget_lane_u8, __aarch64_vget_lane_u16, |
| __aarch64_vget_lane_u32, __aarch64_vget_lane_u64, |
| __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64, |
| __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16, |
| __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16, |
| __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64, |
| __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16, |
| __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete. |
| (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove |
| 'q2' argument. |
| (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64, |
| __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16, |
| __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16, |
| __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64, |
| __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16, |
| __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64, |
| __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64, |
| __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16, |
| __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16, |
| __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64, |
| __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16, |
| __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument |
| to __aarch64_vdup_lane_any. |
| (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16, |
| vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64, |
| vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64, |
| vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16, |
| vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64, |
| vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64, |
| vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16, |
| vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32, |
| vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8, |
| vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32, |
| vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64, |
| vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64, |
| vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64, |
| vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32, |
| vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16, |
| vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32, |
| vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32, |
| vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16, |
| vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32, |
| vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16, |
| vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32, |
| vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32, |
| vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16, |
| vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32, |
| vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64, |
| vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64, |
| vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32, |
| vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16, |
| vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16, |
| vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use |
| __aarch64_vget_lane_any. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR target/63870 |
| * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error |
| message for SIMD_ARG_CONSTANT. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR target/63870 |
| * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers, |
| TYPES_BINOPV): Delete. |
| (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and |
| AARCH64_SIMD_PATTERN_START. |
| (aarch64_init_simd_builtins): Register |
| __builtin_aarch64_im_lane_boundsi; use AARCH64_SIMD_PATTERN_START. |
| (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use |
| AARCH64_SIMD_PATTERN_START. |
| |
| * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete. |
| * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete. |
| |
| * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New. |
| (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64, |
| __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64, |
| vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16, |
| vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32, |
| vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8, |
| vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32, |
| vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR target/63950 |
| * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2): |
| New. |
| (aarch64_vset_lane_any): Redefine using previous, same for BE + LE. |
| (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16, |
| vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64, |
| vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove |
| number of lanes. |
| (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16, |
| vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64, |
| vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call |
| __aarch64_vset_lane_any rather than vset_lane_xxx. |
| |
| 2014-12-09 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (absdi2): Remove scratch operand by |
| earlyclobbering result operand. |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers): |
| Remove final qualifier_internal. |
| (aarch64_fold_builtin): Stop folding abs builtins, except on floats. |
| |
| 2014-12-09 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation |
| tuning parameters. |
| * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH): |
| Define. |
| (aarch64_reassociation_width): New function. |
| (generic_tunings): Add reassociation tuning parameters. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (thunderx_tunings): Likewise. |
| |
| 2014-12-09 Andrew Pinski <apinski@cavium.com> |
| Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define. |
| (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops. |
| (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH. |
| |
| 2014-12-09 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/64166 |
| * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch): |
| New function. |
| (gcc::dump_manager::get_dump_file_name): Split out bulk of |
| implementation into a new overloaded variant taking a |
| dump_file_info *. |
| * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch): |
| New function. |
| (gcc::dump_manager::get_dump_file_name): New overloaded variant of |
| this function, taking a dump_file_info *. |
| |
| 2014-12-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR bootstrap/64213 |
| Revert: |
| 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64193 |
| * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter |
| and valueize the VUSE before looking up the def stmt. |
| * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype. |
| * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize |
| to walk_non_aliased_vuses. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize |
| callback to walk_non_aliased_vuses. |
| |
| 2014-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64199 |
| * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P. |
| |
| 2014-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64191 |
| * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are |
| not relevant (nor are their uses). |
| |
| 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * lto/lto-partition.c (privatize_symbol_name): Correctly |
| privatize instrumentation clones. |
| |
| 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * lto-cgraph.c (input_cgraph_1): Don't break existing |
| instrumentation clone references. |
| * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect |
| instrumented_version references appropriately. |
| |
| 2014-12-09 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR bootstrap/63995 |
| * tree-chkp.c (chkp_make_static_bounds): Share bounds var |
| between nodes sharing assembler name. |
| |
| 2014-12-08 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/64204 |
| * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode |
| constant moves if -mupper-regs-df. |
| |
| * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving |
| 0.0L to TFmode. |
| (movtd_64bit_nodm): Likewise. |
| (mov<mode>_32bit, FMOVE128 case): Likewise. |
| |
| 2014-12-08 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_relational_operation_1): Handle |
| simplification identities for BICS patterns. |
| |
| 2014-12-08 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * config/nvptx/nvptx.c: Convert htabs to hash_table. |
| |
| 2014-12-08 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/64226 |
| * config/rs6000/rs6000.c (rs6000_secondary_reload_inner) |
| [SYMBOL_REF]: Do not explicitly call create_TOC_reference for |
| TARGET_TOC. Always use rs6000_emit_move. |
| |
| 2014-12-08 Mark Wielaard <mjw@redhat.com> |
| |
| PR debug/60782 |
| * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC. |
| |
| 2014-11-15 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| PR target/61692 |
| * cfgexpand.c (expand_asm_operands): Count all inline asm params. |
| |
| 2014-12-08 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * cgraph.h (xstrdup_for_dump): New function. |
| * cgraph.c (cgraph_node::get_create): Replace use of xstrdup |
| within fprintf with xstrdup_for_dump. |
| (cgraph_edge::make_speculative): Likewise. |
| (cgraph_edge::resolve_speculation): Likewise. |
| (cgraph_edge::redirect_call_stmt_to_callee): Likewise. |
| (cgraph_node::dump): Likewise. |
| * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. |
| * ipa-cp.c (perhaps_add_new_callers): Likewise. |
| * ipa-inline.c (report_inline_failed_reason): Likewise. |
| (want_early_inline_function_p): Likewise. |
| (edge_badness): Likewise. |
| (update_edge_key): Likewise. |
| (flatten_function): Likewise. |
| (inline_always_inline_functions): Likewise. |
| * ipa-profile.c (ipa_profile): Likewise. |
| * ipa-prop.c (ipa_print_node_jump_functions): Likewise. |
| (ipa_make_edge_direct_to_target): Likewise. |
| (remove_described_reference): Likewise. |
| (propagate_controlled_uses): Likewise. |
| * ipa-utils.c (ipa_merge_profiles): Likewise. |
| |
| 2014-12-08 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR ipa/64049 |
| * ipa-polymorphic-call.c |
| (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL. |
| |
| 2014-12-08 Alex Velenko <Alex.Velenko@arm.com> |
| |
| * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse): |
| New define_insn. |
| * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): |
| Likewise. |
| |
| 2014-12-08 Felix Yang <felix.yang@huawei.com> |
| Haijian Zhang <z.zhanghaijian@huawei.com> |
| Jiji Jiang <jiangjiji@huawei.com> |
| Pengfei Sui <suipengfei@huawei.com> |
| |
| * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using |
| builtin functions. |
| (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64, |
| vfms_f32, vfmsq_f32, vfmsq_f64): Likewise. |
| (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32, |
| vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32, |
| vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66, |
| vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64, |
| vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32, |
| vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16, |
| vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64, |
| vrsubhn_high_u64): Likewise. |
| * config/aarch64/iterators.md (VDQ_SI): New mode iterator. |
| * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE. |
| * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern. |
| * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn, |
| subhn2, rsubhn2, urecpe): New builtins. |
| |
| 2014-12-08 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi. |
| * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi. |
| |
| 2014-12-08 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi. |
| (expand_vec_perm_vpermi2_vpshub2): New. |
| (ix86_expand_vec_perm_const_1): Use it. |
| (ix86_vectorize_vec_perm_const_ok): Handle v64qi. |
| * config/i386/sse.md (VEC_PERM_CONST): Add v64qi. |
| |
| 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * tree-chkp.c (chkp_build_returned_bound): Don't predict |
| return bounds for strchr calls. |
| |
| 2014-12-08 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * tree-chkp.c (chkp_call_returns_bounds_p): New. |
| (chkp_build_returned_bound): Use zero bounds as |
| returned by calls not returning bounds. |
| |
| 2014-12-08 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_0): Remove unused ignore parameter. |
| (fold_builtin_1): Likewise. |
| (fold_builtin_3): Likewise. |
| (fold_builtin_varargs): Likewise. |
| (fold_builtin_2): Likewise. Do not fold stpcpy here. |
| (fold_builtin_n): Adjust. |
| (fold_builtin_stpcpy): Move to gimple-fold.c. |
| (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c. |
| (gimple_fold_builtin): Fold stpcpy here. |
| |
| 2014-12-07 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * symtab.c (symtab_node::verify): Check for section attribute before |
| asserting something isn't in a section and a comdat group. |
| |
| 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/50751 |
| * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1. |
| |
| 2014-12-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * compare-elim.c: Fix head comment. |
| (conforming_compare): Remove redundant test. |
| (can_eliminate_compare): New function extracted from... |
| (before_dom_children): ...here. Use it, replace direct uses of |
| flag_non_call_exceptions and tidy up. |
| (maybe_select_cc_mode): Tidy up. |
| |
| 2014-12-07 Felix Yang <felix.yang@huawei.com> |
| Shanyao Chen <chenshanyao@huawei.com> |
| |
| * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New |
| patterns. |
| * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New |
| builtins. |
| * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8, |
| vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8, |
| vcntq_u8): Rewrite using builtin functions. |
| |
| 2014-12-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * symtab.c (symtab_node::equal_address_to): New function. |
| * cgraph.h (symtab_node::equal_address_to): Declare. |
| * fold-const.c (fold_comparison, fold_binary_loc): Use it. |
| * c-family/c-common.c: Refuse weaks for symbols that can not change |
| visibility. |
| |
| 2014-12-07 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Warning Options): Fix spelling and grammar. |
| |
| 2014-12-06 James Greenhalgh <james.greenhalgh@arm.com> |
| Sebastian Pop <s.pop@samsung.com> |
| Brian Rzycki <b.rzycki@samsung.com> |
| |
| PR tree-optimization/54742 |
| * params.def (max-fsm-thread-path-insns, max-fsm-thread-length, |
| max-fsm-thread-paths): New. |
| |
| * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length, |
| max-fsm-thread-paths): Documented. |
| |
| * tree-cfg.c (split_edge_bb_loc): Export. |
| * tree-cfg.h (split_edge_bb_loc): Declared extern. |
| |
| * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the |
| original value of cond when simplification fails. |
| (fsm_find_thread_path): New. |
| (fsm_find_control_statement_thread_paths): New. |
| (thread_through_normal_block): Call find_control_statement_thread_paths. |
| |
| * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print |
| EDGE_FSM_THREAD. |
| (verify_seme): New. |
| (duplicate_seme_region): New. |
| (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges |
| calling duplicate_seme_region. |
| |
| * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD. |
| |
| 2014-12-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/64200 |
| * config/i386/i386.c (decide_alg): Don't assert "alg != libcall" |
| for TARGET_INLINE_STRINGOPS_DYNAMICALLY. |
| |
| 2014-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/64170 |
| * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is |
| non-NULL, call maybe_get_dominating_check on it even if g is |
| non-NULL. |
| |
| 2014-12-05 Jeff Law <law@redhat.com> |
| |
| * doc/md.texi: Note problems using function calls to determine |
| insn lengths and point readers to a potential workaround. |
| |
| 2014-12-05 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * combine.c (is_parallel_of_n_reg_sets) |
| (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0. |
| |
| 2014-12-05 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather |
| than CF10 so 2 is appended on the code. |
| * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ... |
| (bswap<mode>2): This so it matches for the optabs. |
| |
| 2014-12-05 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * regrename.c (find_best_rename_reg): Rename to ... |
| (find_rename_reg): This. Also add a parameter to skip tick check. |
| * regrename.h: Likewise. |
| * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming. |
| |
| 2014-12-05 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/64192 |
| * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment |
| from bits to bytes after checking they are byte-aligned. |
| |
| 2014-12-05 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED. |
| * config/aarch64/aarch64.h (AARCH64_CORE): Likewise. |
| * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT, |
| IDENT to SCHED. |
| |
| 2014-12-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/aarch64/aarch64.md (load_pair<mode>): Split to |
| load_pairsi, load_pairdi, load_pairsf and load_pairdf. |
| (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split |
| from load_pair<mode>. New alternative to support int/fp |
| registers in fp/int mode patterns. |
| (store_pair<mode>:): Split to store_pairsi, store_pairdi, |
| store_pairsf and store_pairdi. |
| (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split |
| from store_pair<mode>. New alternative to support int/fp |
| registers in fp/int mode patterns. |
| (*load_pair_extendsidi2_aarch64): New pattern. |
| (*load_pair_zero_extendsidi2_aarch64): New pattern. |
| (aarch64-ldpstp.md): Include. |
| * config/aarch64/aarch64-ldpstp.md: New file. |
| * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): |
| New. |
| (extract_base_offset_in_addr): New. |
| (aarch64_operands_ok_for_ldpstp): New. |
| (aarch64_operands_adjust_ok_for_ldpstp): New. |
| * config/aarch64/aarch64.c (enum sched_fusion_type): New enum. |
| (TARGET_SCHED_FUSION_PRIORITY): New hook. |
| (fusion_load_store): New functon. |
| (extract_base_offset_in_addr): New function. |
| (aarch64_gen_adjusted_ldpstp): New function. |
| (aarch64_sched_fusion_priority): New function. |
| (aarch64_operands_ok_for_ldpstp): New function. |
| (aarch64_operands_adjust_ok_for_ldpstp): New function. |
| |
| 2014-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default. |
| * dwarf2cfi.c (init_one_dwarf_reg_size): Honor |
| DWARF_REG_TO_UNWIND_COLUMN. |
| |
| 2014-12-05 Olivier Hainque <hainque@adacore.com> |
| |
| * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing |
| one particular reg for expand_builtin_init_dwarf_reg_sizes. |
| (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and |
| account for dwarf register spans. |
| |
| 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR target/64003 |
| * config/i386/i386.md (*jcc_1_bnd): New. |
| (*jcc_2_bnd): New. |
| (jump_bnd): New. |
| (*jcc_1): Remove bnd prefix. |
| (*jcc_2): Likewise. |
| (jump): Likewise. |
| |
| 2014-12-05 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define |
| selected_tune. |
| (aarch64_override_options): Use selected_cpu's tuning. |
| |
| 2014-12-05 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append |
| alignment to section name. Increase default alignment to word. |
| |
| 2014-12-05 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_node): New method expand_all_artificial_thunks. |
| (cgraph_edge): New method redirect_callee_duplicating_thunks. |
| * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly |
| created thunks. |
| (redirect_edge_duplicating_thunks): Turned into edge method |
| redirect_callee_duplicating_thunks. |
| (cgraph_node::expand_all_artificial_thunks): New method. |
| (create_clone): Call expand_all_artificial_thunks. |
| * ipa-cp.c (perhaps_add_new_callers): Call |
| redirect_callee_duplicating_thunks instead of redirect_callee. |
| Also call expand_all_artificial_thunks. |
| |
| 2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR target/64056 |
| * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target |
| Keywords. |
| |
| 2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * diagnostic.h (diagnostic_expand_location): New inline function. |
| * diagnostic.c (diagnostic_build_prefix): Use it. |
| (diagnostic_show_locus): Likewise. |
| |
| 2014-12-04 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/64189 |
| * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define. |
| * configure: Regenerated. |
| |
| 2014-12-04 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * diagnostic.c (diagnostic_color_init): New. |
| * diagnostic.h: Declare. |
| * gcc.c (driver::global_initializations): Use it. |
| (driver_handle_option): Handle -fdiagnostics-color_. |
| * toplev.c: Do not include diagnostic-color.h. |
| (process_options): Do not initialize color diagnostics here. |
| * common.opt (fdiagnostics-color=): Add Driver. |
| * opts-global.c (init_options_once): Initialize color here. |
| * opts.c (common_handle_option): Use diagnostics_color_init. |
| * diagnostic-color.h: Fix comment. |
| |
| 2014-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * tree-pretty-print.c (INDENT): Rename "buffer" to "pp". |
| (NIY): Likewise. |
| (buffer): Rename this variable to... |
| (tree_pp): ...this. |
| |
| (do_niy): Rename param from "buffer" to "pp". |
| (dump_decl_name): Likewise. |
| (dump_function_name): Likewise. |
| (dump_function_declaration): Likewise. |
| (dump_array_domain): Likewise. |
| (dump_omp_clause): Likewise. |
| (dump_omp_clauses): Likewise. |
| (dump_location): Likewise. |
| (dump_block_node): Likewise. |
| (dump_generic_node): Likewise. |
| (print_declaration): Likewise. |
| (print_struct_decl): Likewise. |
| (print_call_name): Likewise. |
| (pretty_print_string): Likewise. |
| (newline_and_indent): Likewise. |
| |
| (print_generic_decl): Update for renaming of "buffer" to |
| "tree_pp". |
| (print_generic_stmt): Likewise. |
| (print_generic_stmt_indented): Likewise. |
| (print_generic_expr): Likewise. |
| (maybe_init_pretty_print): Likewise. |
| |
| 2014-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * tree-pretty-print.c: Eliminate include of <new>. |
| (buffer): Convert this variable from a pretty_printer to a |
| pretty_printer *. |
| (initialized): Eliminate this variable in favor of the NULL-ness |
| of "buffer". |
| (print_generic_decl): Update for "buffer" becoming a pointer. |
| (print_generic_stmt): Likewise. |
| (print_generic_stmt_indented): Likewise. |
| (print_generic_expr): Likewise. |
| (maybe_init_pretty_print): Likewise, allocating "buffer" on the |
| heap and using its non-NULL-ness to ensure idempotency. |
| |
| 2014-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of |
| ipa_add_new_function on function_insertion_hook_holder being |
| non-NULL. |
| * ipa-reference.c (ipa_reference_c_finalize): Remove |
| node_removal_hook_holder and node_duplication_hook_holder if |
| they've been added to symtab. |
| * toplev.c (toplev::finalize): Call ipa_reference_c_finalize |
| before cgraph_c_finalize so that the former can access "symtab". |
| |
| 2014-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/cfg.texi (GIMPLE statement iterators): Add note about |
| gphi_iterator, and use one in the example. |
| * doc/gimple.texi (Tuple specific accessors): Add missing |
| GIMPLE_GOTO section and menu item. |
| (gimple_build_asm, gimple gimple_build_assign_with_ops) |
| gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove |
| description of removed functions. |
| (gimple_build_assign, gimple_build_bind, gimple_build_call, |
| gimple_build_call_from_tree, gimple_build_call_vec, |
| gimple_build_catch, gimple_build_cond, |
| gimple_build_cond_from_tree, gimple_build_debug_bind, |
| gimple_build_eh_filter, gimple_build_label, gimple_build_goto, |
| gimple_build_omp_atomic_load, gimple_build_omp_atomic_store, |
| gimple_build_omp_continue, gimple_build_omp_critical, |
| gimple_build_omp_for, gimple_build_omp_parallel, |
| gimple_build_omp_sections, gimple_build_omp_single, |
| gimple_build_return, gimple_build_resx, gimple_build_switch, |
| gimple_build_try): Update return type within description to |
| reflect changes in gimple.h to using gimple subclasses. |
| (gimple_build_asm_vec): Update return type, params and |
| description. |
| (gimple_asm_ninputs): Update param. |
| (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op |
| gimple_asm_set_input_op, gimple_asm_output_op |
| gimple_asm_set_output_op, gimple_asm_clobber_op, |
| gimple_asm_set_clobber_op, gimple_asm_string, |
| gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars, |
| gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body, |
| gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq, |
| gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn, |
| gimple_call_return_type, gimple_call_set_chain, |
| gimple_call_set_tail, gimple_call_tail_p, |
| gimple_call_copy_skip_args, gimple_catch_types, |
| gimple_catch_types_ptr, gimple_catch_handler, |
| gimple_catch_set_types, gimple_catch_set_handler, |
| gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs, |
| gimple_cond_true_label, gimple_cond_set_true_label, |
| gimple_cond_set_false_label, gimple_cond_false_label, |
| gimple_cond_make_false, gimple_cond_make_true, |
| gimple_eh_filter_set_types, gimple_eh_filter_set_failure, |
| gimple_eh_must_not_throw_fndecl, |
| gimple_eh_must_not_throw_set_fndecl, gimple_label_label, |
| gimple_label_set_label, gimple_goto_set_dest, |
| gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs, |
| gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs, |
| gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val, |
| gimple_omp_continue_control_def, |
| gimple_omp_continue_control_def_ptr, |
| gimple_omp_continue_set_control_def, |
| gimple_omp_continue_control_use, |
| gimple_omp_continue_control_use_ptr, |
| gimple_omp_continue_set_control_use, gimple_omp_critical_name, |
| gimple_omp_critical_name_ptr, gimple_omp_critical_set_name, |
| gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses, |
| gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr, |
| gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg, |
| gimple_omp_parallel_data_arg_ptr, |
| gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses, |
| gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region, |
| gimple_resx_set_region, gimple_return_retval, |
| gimple_return_set_retval, gimple_switch_num_labels, |
| gimple_switch_set_num_labels, gimple_switch_index, |
| gimple_switch_set_index, gimple_switch_label, |
| gimple_switch_set_label, gimple_switch_default_label, |
| gimple_switch_set_default_label, gimple_try_set_eval, |
| gimple_try_set_cleanup): Update initial param within description |
| to reflect changes in gimple.h to using gimple subclasses. |
| (Adding a new GIMPLE statement code): Update to reflect gimple |
| statement subclassing. |
| |
| 2014-12-04 Sriraman Tallam <tmsriram@google.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if |
| Linux/x86-64 linker supports PIE with copy reloc. |
| * config.in: Regenerated. |
| * configure: Likewise. |
| |
| * config/i386/i386.c (legitimate_pic_address_disp_p): Allow |
| pc-relative address for undefined, non-weak, non-function |
| symbol reference in 64-bit PIE if linker supports PIE with |
| copy reloc. |
| |
| * doc/sourcebuild.texi: Document pie_copyreloc target. |
| |
| 2014-12-04 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/56917 |
| * fold-const.c (fold_unary_loc): Perform the negation in A's type |
| when transforming ~ (A - 1) or ~ (A + -1) to -A. |
| |
| 2014-12-04 Tobias Burnus <burnus@net-b.de> |
| |
| * Makefile.in: Remove CLOOGLIB and CLOOGINC. |
| |
| 2014-12-04 Richard Biener <rguenther@suse.de> |
| |
| * doc/match-and-simplify.texi: Update for recent changes. |
| |
| 2014-12-04 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_alignment): New type. |
| (ipa_jump_func): New field alignment. |
| (ipcp_transformation_summary) New type. |
| (ipcp_grow_transformations_if_necessary): Declare. |
| (ipa_node_agg_replacements): Removed. |
| (ipcp_transformations): Declare. |
| (ipcp_get_transformation_summary): New function. |
| (ipa_get_agg_replacements_for_node): Use it. |
| * ipa-cp.c (ipcp_param_lattices): New field alignment. |
| (print_all_lattices): Also print alignment. |
| (alignment_bottom_p): New function. |
| (set_alignment_to_bottom): Likewise. |
| (set_all_contains_variable): Also set alignment to bottom. |
| (initialize_node_lattices): Likewise. |
| (propagate_alignment_accross_jump_function): New function. |
| (propagate_constants_accross_call): Call it. |
| (ipcp_store_alignment_results): New function. |
| (ipcp_driver): Call it. |
| * ipa-prop.c (ipa_node_agg_replacements): Removed. |
| (ipcp_transformations): New. |
| (ipa_print_node_jump_functions_for_edge): Also print alignment. |
| (ipa_set_jf_unknown): New function. |
| (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown. |
| (ipa_compute_jump_functions_for_edge): Also calculate alignment. |
| (update_jump_functions_after_inlining): Use ipa_set_jf_unknown. |
| (ipcp_grow_transformations_if_necessary): New function. |
| (ipa_set_node_agg_value_chain): Use ipcp_transformations. |
| (ipa_node_removal_hook): Likewise. |
| (ipa_node_duplication_hook): Also duplicate alignment results. |
| (ipa_write_jump_function): Also stream alignments. |
| (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream |
| alignments. |
| (write_agg_replacement_chain): Renamed to |
| write_ipcp_transformation_info, also stream alignments. |
| (read_agg_replacement_chain): Renamed to |
| read_ipcp_transformation_info, also stream alignments. |
| (ipa_prop_write_all_agg_replacement): Renamed to |
| ipcp_write_transformation_summaries. Stream always. |
| (ipa_prop_read_all_agg_replacement): Renamed to |
| ipcp_read_transformation_summaries. |
| (ipcp_update_alignments): New function. |
| (ipcp_transform_function): Call it, free also alignments. |
| |
| 2014-12-04 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (replace_stmt_with_simplification): Properly |
| fail when maybe_push_res_to_seq fails. |
| |
| 2014-12-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> |
| |
| * config/aarch64/aarch64.md (define_insn "prefetch"): New. |
| |
| 2014-12-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * doc/install.texi: Remove mentions of cloog and ppl. |
| * doc/invoke.texi: Likewise |
| |
| 2014-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56493 |
| * convert.c (convert_to_real, convert_to_expr, convert_to_complex): |
| Handle COMPOUND_EXPR. |
| |
| 2014-12-04 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c (target_newline): Export. |
| (target_percent_s_newline): Likewise. |
| (fold_builtin_1): Do not fold printf functions here. |
| (fold_builtin_2): Likewise. |
| (fold_builtin_3): Likewise, do not fold strncat. |
| (fold_builtin_strncat): Move to gimple-fold.c. |
| (fold_builtin_printf): Likewise. |
| * builtins.h (target_newline): Declare. |
| (target_percent_s_newline): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_strncat): Move from |
| builtins.c and gimplify. |
| (gimple_fold_builtin_printf): Likewise. |
| (gimple_fold_builtin): Fold strncat, printf, printf_unlocked, |
| vprintf, printf_chk and vprintf_chk here. |
| |
| 2014-12-03 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap. |
| (floatunssidf2_internal): Same. |
| * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same. |
| (rs6000_emit_int_cmove): Same. |
| (rs6000_sched_reorder): Same. |
| (altivec_expand_vec_perm_const): Same. |
| (rs6000_expand_vec_perm_const_1): Same. |
| |
| 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR rtl-optimization/64010 |
| * reload.c (push_reload): Before reusing a register contained |
| in an operand as input reload register, ensure that it is not |
| used in CALL_INSN_FUNCTION_USAGE. |
| |
| 2014-12-03 Ulrich Drepper <drepper@gmail.com> |
| |
| * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first |
| if it exists. |
| |
| 2014-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * expmed.c (expand_mult): Use std::swap. |
| |
| PR c/59708 |
| * expmed.c (expand_widening_mult): Return const0_rtx if |
| coeff is 0. |
| |
| * doc/gimple.texi (gimple_build_assign_with_ops): Remove. |
| (gimple_build_assign): Document the new overloads. |
| |
| 2014-12-03 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/64019 |
| * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do |
| not create LO_SUM address for constant addresses if the type can |
| go in Altivec registers. |
| |
| 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR fortran/44054 |
| * pretty-print.c (output_buffer::output_buffer): Init flush_p to true. |
| (pp_flush): Flush only if flush_p. |
| (pp_really_flush): New. |
| * pretty-print.h (struct output_buffer): Add flush_p. |
| (pp_really_flush): Declare. |
| |
| 2014-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS), |
| gcc-ar.o, gcc-nm.o and gcc-ranlib.o. |
| (GENGTYPE_OBJS): New. |
| (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o): |
| Remove explicit dependencies. |
| (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o, |
| CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE |
| instead of -DGENERATOR_FILE. |
| (CFLAGS-errors.o): New. |
| * gengtype.c: Instead of testing GENERATOR_FILE define, test |
| HOST_GENERATOR_FILE. If defined, include config.h and define |
| GENERATOR_FILE afterwards, otherwise include bconfig.h. |
| * gengtype-parse.c: Likewise. |
| * gengtype-state.c: Likewise. |
| * gengtype-lex.l: Likewise. |
| * errors.c: Likewise. |
| |
| 2014-12-03 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/epiphany/epiphany.c (epiphany_override_options): |
| If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only. |
| * config/epiphany/epiphany.md (mov<mode>cc): Don't use |
| reverse_condition_maybe_unordered if flag_finite_math_only is set. |
| |
| 2014-12-03 Andrew Stubbs <ams@codesourcery.com> |
| |
| Revert: |
| |
| 2014-09-17 Andrew Stubbs <ams@codesourcery.com> |
| * config/arm/arm.c (arm_option_override): Reject -mfpu=neon |
| when architecture is older than ARMv7. |
| |
| 2014-12-03 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c (target_percent_c): Export. |
| (fold_builtin_fprintf): Move to gimple-fold.c. |
| (fold_builtin_2): Do not fold fprintf functions. |
| (fold_builtin_3): Likewise. |
| (fold_builtin_4): Remove. |
| (fold_builtin_n): Do not call fold_builtin_4. |
| * builtins.h (target_percent_c): Declare. |
| * gimple-fold.c (gimple_fold_builtin_fprintf): Move from |
| builtins.c and gimplify. |
| (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf, |
| fprintf_chk and vfprintf_chk here. |
| |
| 2014-12-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/64153 |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check |
| type sizes before view_converting. |
| |
| 2014-12-03 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64151 |
| PR rtl-optimization/64156 |
| * ira-costs.c (scan_one_insn): Revert r218266. |
| |
| 2014-12-03 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_fpclassify): Change to take |
| array of arguments instead of CALL_EXPR tree. |
| (MAX_ARGS_TO_FOLD_BUILTIN): Remove. |
| (fold_builtin_n): Dispatch to fold_builtin_varargs. |
| (fold_call_expr): Always use fold_builtin_n. |
| (fold_builtin_call_array): Change to not build the unfolded call, |
| always use fold_builtin_n. |
| (fold_builtin_varargs): Change to take array of arguments instead |
| of CALL_EXPR tree. |
| (fold_call_stmt): Always use fold_builtin_n. |
| * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc. |
| * fold-const.c (fold_build_call_array_loc): Build the call |
| if fold_builtin_call_array returned NULL_TREE. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build |
| a CALL_EXPR and use fold_builtin_call_array instead of |
| fold_call_expr. |
| |
| 2014-12-03 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3, |
| bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3, |
| ior<mode>3, xor<mode>3, one_cmpl<mode>2, |
| aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>, |
| aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>, |
| aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed, |
| ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3, |
| reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>, |
| vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>): |
| Change VDQ to VDQ_I. |
| |
| (mul<mode>3): Change VDQM to VDQ_BHSI. |
| (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>, |
| aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3, |
| aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI. |
| |
| (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>, |
| aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>, |
| aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>): |
| Change VDW to VD_BHSI. |
| (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>): |
| Change VDIC to VD_BHSI. |
| |
| * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl, |
| saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n, |
| ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI. |
| |
| * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW, |
| VDIC, VDQQHS): Remove. |
| (Vwtype): Update comment (changing VDW to VD_BHSI). |
| |
| 2014-12-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/14541 |
| * builtins.c (fold_builtin_logarithm): Implement simplifications ... |
| * match.pd: ... here as patterns. |
| |
| 2014-12-03 Prachi Godbole <prachi.godbole@imgtec.com> |
| |
| * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace |
| p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe. |
| (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change |
| reservation order. |
| |
| 2014-12-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/63957 |
| * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra. |
| * final.c (rest_of_handle_final): Replace flag_use_caller_save with |
| flag_ipa_ra. |
| (get_call_reg_set_usage): Same. |
| * lra-assigns.c (lra_assign): Same. |
| * lra-constraints.c (need_for_call_save_p): Same. |
| * lra-lives.c (process_bb_lives): Same. |
| * lra.c (lra): Same. |
| * calls.c (expand_call): Same. |
| (emit_library_call_value_1): Same. |
| * config/arm/arm.c (arm_option_override): Same. |
| * opts.c (default_options_table): Replace OPT_fuse_caller_save with |
| OPT_fipa_ra. |
| * target.def (call_fusage_contains_non_callee_clobbers): Replace |
| fuse-caller-save with fipa-ra. |
| * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same. |
| * common.opt: Same. |
| |
| 2014-12-03 Yury Gribov <y.gribov@samsung.com> |
| |
| * sanopt.c (maybe_get_single_definition): New function. |
| (maybe_get_dominating_check): Ditto. |
| (can_remove_asan_check): Ditto. |
| (struct tree_map_traits): New struct. |
| (struct sanopt_ctx): Use custom traits for asan_check_map. |
| (maybe_optimize_ubsan_null_ifn): Move code to |
| maybe_get_dominating_check. |
| (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions |
| into account when optimizing. |
| (sanopt_optimize_walker): Optimize ASan checks even when |
| recovering. |
| |
| 2014-12-03 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * config/i386/constraints.md (Yr): New. |
| * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives |
| which use only NO_REX_SSE_REGS. |
| (vec_set<mode>_0): Likewise. |
| (*vec_setv4sf_sse4_1): Likewise. |
| (sse4_1_insertps): Likewise. |
| (*sse4_1_extractps): Likewise. |
| (*sse4_1_mulv2siv2di3<mask_name>): Likewise. |
| (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise. |
| (*sse4_1_<code><mode>3<mask_name>): Likewise. |
| (*sse4_1_<code><mode>3): Likewise. |
| (*sse4_1_eqv2di3): Likewise. |
| (sse4_2_gtv2di3): Likewise. |
| (*vec_extractv4si): Likewise. |
| (*vec_concatv2si_sse4_1): Likewise. |
| (vec_concatv2di): Likewise. |
| (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise. |
| (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise. |
| (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise. |
| (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise. |
| (<sse4_1_avx2>_mpsadbw): Likewise. |
| (<sse4_1_avx2>packusdw<mask_name>): Likewise. |
| (<sse4_1_avx2>_pblendvb): Likewise. |
| (sse4_1_pblendw): Likewise. |
| (sse4_1_phminposuw): Likewise. |
| (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise. |
| (sse4_1_<code>v4qiv4si2<mask_name>): Likewise. |
| (sse4_1_<code>v4hiv4si2<mask_name>): Likewise. |
| (sse4_1_<code>v2qiv2di2<mask_name>): Likewise. |
| (sse4_1_<code>v2hiv2di2<mask_name>): Likewise. |
| (sse4_1_<code>v2siv2di2<mask_name>): Likewise. |
| (sse4_1_ptest): Likewise. |
| (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise. |
| (sse4_1_round<ssescalarmodesuffix>): Likewise. |
| * config/i386/subst.md (mask_prefix4): New. |
| * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New. |
| |
| 2014-12-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/52714 |
| * combine.c (try_combine): Allow combining two insns into two |
| new insns if at least one of those is a noop. |
| |
| 2014-12-03 Bin Cheng <bin.cheng@arm.com> |
| |
| * target.def (fusion_priority): Wrap code with @smallexample. |
| * doc/tm.texi: Regenerated. |
| |
| 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * diagnostic.c (diagnostic_show_locus): Honor override_column when |
| placing the caret. |
| |
| 2014-12-02 Dmitry Vyukov <dvyukov@google.com> |
| |
| * asan.c: (asan_finish_file): Use default priority for constructors |
| in kernel mode. |
| |
| 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR target/64115 |
| * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove |
| invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING. |
| |
| 2014-12-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/64108 |
| * config/i386/i386.c (decide_alg): Stop only if there aren't |
| any usable algorithms. |
| |
| 2014-12-02 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/63718 |
| * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for |
| Thumb1. |
| |
| 2014-12-02 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: When combining divisions exclude the degenerate |
| case involving INT_MIN from overflow handling. |
| |
| 2014-12-02 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * ira-costs.c (scan_one_insn): Improve spill cost adjustment. |
| |
| 2014-12-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/63814 |
| * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function. |
| (cgraph_edge_brings_value_p): New parameter dest, use |
| same_node_or_its_all_contexts_clone_p and check availability. |
| (cgraph_edge_brings_value_p): Likewise. |
| (get_info_about_necessary_edges): New parameter dest, pass it to |
| cgraph_edge_brings_value_p. Update caller. |
| (gather_edges_for_value): Likewise. |
| (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check |
| both the destination and availability. |
| |
| 2014-12-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/64113 |
| * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn |
| using post-reload splitter. Use peephole2 pass instead. |
| (call_value_osf_tlsldm): Ditto. |
| (TLS_CALL): New int iterator. |
| (tls): New int attribute. |
| (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd |
| and call_value_tlsldm using TLS_CALL int iterator. |
| |
| 2014-12-02 Richard Biener <rguenther@suse.de> |
| Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c: Include hash-set.h. |
| (fatal_at): Add source_location overload. |
| (parser::record_operlist): New method. |
| (parser::push_simplify): Likewise. |
| (parser::oper_lists_set): New member. |
| (parser::oper_lists): Likewise. |
| (parser::parse_operation): Record seen operator list references. |
| (parser::parse_c_expr): Likewise. |
| (parser::parse_simplify): Init oper_lists_set and oper_lists |
| and use push_simplify. |
| (parser::parser): Init oper_lists_set and oper_lists. |
| |
| 2014-12-02 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Restrict division combining to trunc_div and |
| exact_div. |
| |
| 2014-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): |
| Remove NULL last argument from create_tmp_var calls. |
| * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise. |
| * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise. |
| * config/i386/i386.c (add_condition_to_bb, |
| ix86_atomic_assign_expand_fenv): Likewise. |
| * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise. |
| * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_atomic_assign_expand_fenv): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise. |
| * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise. |
| * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. |
| |
| * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use |
| gimple_build_assign instead of gimple_build_assign_with_ops and swap |
| the order of first two arguments. |
| * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): |
| Likewise. Remove last NULL_TREE argument. |
| |
| 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/59278 |
| * combine (reg_dead_at_p): Consider REG_UNUSED notes. |
| |
| 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more. |
| |
| 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (is_parallel_of_n_reg_sets): New function. |
| (can_split_parallel_of_n_reg_sets): New function. |
| (try_combine): If I2 is a PARALLEL of two SETs, split it into |
| two insns if possible. |
| |
| 2014-12-01 Tobias Burnus <burnus@net-b.de> |
| Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| PR middle-end/64017 |
| * configure.ac (ac_has_isl_schedule_constraints_compute_schedule): |
| New check. |
| * doc/install.texi (ISL): Permit ISL 0.14. |
| * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl): |
| Conditionally use ISL 0.13+ functions. |
| * graphite-interchange.c: Make 'extern "C"' conditional. |
| * graphite-isl-ast-to-gimple.c: Ditto. |
| * graphite-poly.c: Ditto. |
| * graphite-sese-to-poly.c: Ditto. |
| * config.in: Regenerate. |
| * gcc/configure: Regenerate. |
| |
| 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (distribute_links): Handle multiple SETs. |
| |
| 2014-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (struct insn_link): New field `regno'. |
| (alloc_insn_link): New parameter `regno'. Use it. |
| (find_single_use): Check the new field. |
| (can_combine_def_p, can_combine_use_p): New functions. Split |
| off from ... |
| (create_log_links): ... here. Correct data type of `regno'. |
| Adjust call to alloc_insn_link. |
| (adjust_for_new_dest): Find regno, use it in call to |
| alloc_insn_link. |
| (try_combine): Check reg_used_between_p when combining a PARALLEL |
| as earlier insn. Adjust call to alloc_insn_link. |
| (distribute_links): Check the new field. |
| |
| 2014-12-01 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * real.c (real_from_string): Add missing mpfr_clear. |
| |
| 2014-12-01 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing |
| release of stmts by converting it to an auto_vec. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of |
| -Wno-unused-variable and -Wno-unused-but-set-variable to restore |
| bootstrap with old GCC. |
| (generic-match.o-warn): Likewise. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR. |
| Properly handle FIXED_CST shifts by INTEGER_CST. |
| (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR, |
| VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR, |
| VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and |
| VEC_WIDEN_MULT_ODD_EXPR handling here from ... |
| (fold_binary_loc): ... here. Call const_binop overload |
| with result type. |
| |
| 2014-12-01 Marek Polacek <polacek@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/64121 |
| * ubsan.c (instrument_object_size): Stop searching if the base |
| occurs in abnormal phi. |
| |
| 2014-12-01 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63956 |
| * ubsan.c (is_ubsan_builtin_p): Check also built-in class. |
| |
| 2014-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple.h (gimple_build_assign_stat): Remove prototype. |
| (gimple_build_assign): Remove define. Add overload prototypes |
| with tree lhs and either a tree rhs, or enum tree_code and |
| 1, 2 or 3 tree operands. |
| * gimple.c (gimple_build_assign_stat): Renamed to... |
| (gimple_build_assign): ... this. Add overloads with |
| enum tree_code and 1, 2 or 3 tree operands. |
| (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads. |
| Rename the 3 operand overload to ... |
| (gimple_build_assign_1): ... this. Make it static inline. |
| * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign |
| instead of gimple_build_assign_with_ops, swap the order of first |
| two arguments and adjust formatting where necessary. |
| * tree-vect-slp.c (vect_get_constant_vectors, |
| vect_create_mask_and_perm): Likewise. |
| * tree-ssa-forwprop.c (simplify_rotate): Likewise. |
| * asan.c (build_shadow_mem_access, maybe_create_ssa_name, |
| maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise. |
| * tsan.c (instrument_builtin_call): Likewise. |
| * tree-chkp.c (chkp_compute_bounds_for_assignment, |
| chkp_generate_extern_var_bounds): Likewise. |
| * tree-loop-distribution.c (generate_memset_builtin): Likewise. |
| * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise. |
| * gimple-builder.c (build_assign, build_type_cast): Likewise. |
| * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. |
| * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2, |
| gimple_mod_subtract): Likewise. |
| * gimple-match-head.c (maybe_push_res_to_seq): Likewise. |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern, |
| vect_recog_sad_pattern, vect_handle_widen_op_by_const, |
| vect_recog_widen_mult_pattern, vect_recog_pow_pattern, |
| vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type, |
| vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern, |
| vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern, |
| vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern, |
| adjust_bool_pattern_cast, adjust_bool_pattern, |
| vect_recog_bool_pattern): Likewise. |
| * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge, |
| insert_initializers, introduce_cast_before_cand, |
| replace_one_candidate): Likewise. |
| * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1, |
| powi_as_mults, build_and_insert_binop, build_and_insert_cast, |
| pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma): |
| Likewise. |
| * tree-tailcall.c (adjust_return_value_with_ops, |
| update_accumulator_with_ops): Likewise. |
| * tree-predcom.c (reassociate_to_the_same_stmt): Likewise. |
| * tree-ssa-reassoc.c (build_and_add_sum, |
| optimize_range_tests_to_bit_test, update_ops, |
| maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr, |
| negate_value, repropagate_negates, attempt_builtin_powi, |
| reassociate_bb): Likewise. |
| * tree-vect-loop.c (vect_is_simple_reduction_1, |
| get_initial_def_for_induction, vect_create_epilog_for_reduction): |
| Likewise. |
| * ipa-split.c (split_function): Likewise. |
| * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement, |
| abs_replacement, neg_replacement): Likewise. |
| * tree-profile.c (gimple_gen_edge_profiler): Likewise. |
| * tree-vrp.c (simplify_truth_ops_using_ranges, |
| simplify_float_conversion_using_ranges, |
| simplify_internal_call_using_ranges): Likewise. |
| * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise. |
| * tree-vect-generic.c (expand_vector_divmod, |
| optimize_vector_constructor): Likewise. |
| * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn, |
| instrument_bool_enum_load): Likewise. |
| * tree-ssa-loop-manip.c (create_iv): Likewise. |
| * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic, |
| expand_omp_for_static_nochunk, expand_omp_for_static_chunk, |
| expand_cilk_for, simd_clone_adjust): Likewise. |
| * trans-mem.c (expand_transaction): Likewise. |
| * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain, |
| vect_setup_realignment, vect_permute_load_chain, |
| vect_shift_permute_load_chain): Likewise. |
| * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store, |
| vectorizable_simd_clone_call, vect_gen_widened_results_half, |
| vect_create_vectorized_demotion_stmts, vectorizable_conversion, |
| vectorizable_shift, vectorizable_operation, vectorizable_store, |
| permute_vec_elements, vectorizable_load): Likewise. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64111 |
| * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of |
| htab_hash_pointer to not break PCH. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/15346 |
| * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter, |
| add -Wno-unused-but-set-variable. |
| * match.pd: Combine two successive divisions. |
| |
| 2014-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64126 |
| * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A |
| and -1 - A -> ~A. |
| * fold-const.c (fold_binary_loc): Remove transforms here. |
| |
| 2014-12-01 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * config/mips/mips.c (mips16_build_call_stub): Move the save of |
| the return address in $18 ahead of passing arguments to FPRs. |
| |
| 2014-12-01 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR target/64055 |
| * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant |
| values in array domain. |
| |
| 2014-12-01 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| PR tree-optimization/63941 |
| * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that |
| DOM_BB has non-true predicate, conditionally set non-true predicate |
| for BB. |
| |
| 2014-12-01 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/63551 |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert |
| value of the argument to the type of the value in the condition. |
| |
| 2014-12-01 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/63986 |
| PR target/51244 |
| * config/sh/sh.c (sh_unspec_insn_p, |
| sh_insn_operands_modified_between_p): New functions. |
| (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands |
| are modified or if it has side effects, may trap or is volatile. |
| |
| 2014-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-expr.h (create_tmp_var_raw, create_tmp_var, |
| create_tmp_reg): Add default NULL value to last argument. |
| * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise. |
| * gimple-low.c (lower_builtin_posix_memalign): Remove NULL |
| last argument from create_tmp_var_raw, create_tmp_var, |
| create_tmp_reg, make_ssa_name and copy_ssa_name calls. |
| * tree-ssa-strlen.c (get_string_length): Likewise. |
| * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise. |
| * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. |
| * tree-vect-slp.c (vect_get_constant_vectors): Likewise. |
| * ipa-prop.c (ipa_modify_call_arguments): Likewise. |
| * tree-ssa-forwprop.c (simplify_rotate): Likewise. |
| * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise. |
| * asan.c (build_shadow_mem_access, maybe_create_ssa_name, |
| maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise. |
| * tsan.c (instrument_expr, instrument_builtin_call, |
| instrument_func_entry): Likewise. |
| * varpool.c (add_new_static_var): Likewise. |
| * tree-loop-distribution.c (generate_memset_builtin): Likewise. |
| * gimplify.c (internal_get_tmp_var, gimplify_return_expr, |
| gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset, |
| gimplify_init_ctor_eval_range, gimplify_init_constructor, |
| gimplify_omp_atomic, gimplify_expr): Likewise. |
| * gimple-builder.c (build_assign, build_type_cast): Likewise. |
| * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1, |
| slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge, |
| vect_loop_versioning): Likewise. |
| * tree-if-conv.c (version_loop_for_if_conversion): Likewise. |
| * gimple-match-head.c (maybe_push_res_to_seq): Likewise. |
| * tree-vect-patterns.c (vect_handle_widen_op_by_const, |
| vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type, |
| vect_recog_over_widening_pattern): Likewise. |
| * tree-sra.c (build_ref_for_offset, create_access_replacement): |
| Likewise. |
| * tree-cfg.c (make_blocks): Likewise. |
| * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch): |
| Likewise. |
| * tree-ssa-propagate.c (update_call_from_tree): Likewise. |
| * tree-complex.c (get_component_ssa_name, expand_complex_div_wide): |
| Likewise. |
| * tree-ssa-math-opts.c (build_and_insert_cast): Likewise. |
| * tree-tailcall.c (update_accumulator_with_ops): Likewise. |
| * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm, |
| execute_load_motion, reassociate_to_the_same_stmt): Likewise. |
| * tree-ssa-reassoc.c (build_and_add_sum, |
| optimize_range_tests_to_bit_test, update_ops, |
| maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr, |
| negate_value, repropagate_negates): Likewise. |
| * tree-vect-loop.c (vect_is_simple_reduction_1, |
| vect_create_epilog_for_reduction): Likewise. |
| * ipa-split.c (split_function): Likewise. |
| * tree-inline.c (remap_ssa_name, setup_one_parameter, |
| declare_return_variable, tree_function_versioning): Likewise. |
| * tree-cfgcleanup.c (fixup_noreturn_call): Likewise. |
| * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars): |
| Likewise. |
| * tree-ssa-phiopt.c (conditional_replacement, abs_replacement, |
| neg_replacement): Likewise. |
| * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands): |
| Likewise. |
| * tree-vrp.c (simplify_truth_ops_using_ranges, |
| simplify_float_conversion_using_ranges, |
| simplify_internal_call_using_ranges): Likewise. |
| * tree-switch-conversion.c (emit_case_bit_tests, |
| build_one_array, build_arrays, gen_def_assigns): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_memory_op, |
| gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise. |
| * tree-vect-generic.c (expand_vector_divmod, |
| optimize_vector_constructor): Likewise. |
| * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn, |
| ubsan_expand_objsize_ifn, instrument_si_overflow, |
| instrument_bool_enum_load, instrument_nonnull_arg): Likewise. |
| * tree-outof-ssa.c (insert_backedge_copies): Likewise. |
| * tree-ssa-loop-manip.c (create_iv, |
| tree_transform_and_unroll_loop): Likewise. |
| * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses, |
| lower_rec_input_clauses, lower_lastprivate_clauses, |
| expand_parallel_call, expand_omp_for_static_chunk, |
| expand_omp_atomic_pipeline, expand_omp_target, |
| maybe_add_implicit_barrier_cancel, lower_omp_single_simple, |
| lower_omp_critical, lower_omp_for, task_copyfn_copy_decl, |
| lower_depend_clauses, lower_omp_target, lower_omp_1, |
| ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise. |
| * tree-parloops.c (take_address_of, create_phi_for_local_result, |
| create_call_for_reduction_1, separate_decls_in_region, |
| create_parallel_loop): Likewise. |
| * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence, |
| handle_scalar_deps_crossing_scop_limits): Likewise. |
| * trans-mem.c (lower_transaction, build_tm_load, build_tm_store, |
| expand_assign_tm, expand_call_tm, expand_transaction, |
| ipa_tm_insert_gettmclone_call): Likewise. |
| * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment): |
| Likewise. |
| * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store, |
| vectorizable_call, vectorizable_simd_clone_call, |
| vectorizable_conversion, vectorizable_store, permute_vec_elements, |
| vectorizable_load): Likewise. |
| |
| 2014-11-29 Tobias Burnus <burnus@net-b.de> |
| Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * opt-functions.awk (lang_enabled_by): Support || for |
| enabled-by. |
| * optc-gen.awk: Ditto. |
| * doc/options.texi (LangEnabledBy, EnabledBy): Document the |
| || syntax. |
| |
| 2014-11-28 Mike Stump <mikestump@comcast.net> |
| |
| * bitmap.c (bitmap_ior): Zap current as it could be deleted. |
| (bitmap_ior_and_compl): Likewise. |
| |
| 2014-11-28 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/64061 |
| * lra.c (lra_substitute_pseudo): Ignore constant with int mode for |
| subreg. |
| |
| 2014-11-28 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/64093 |
| * config/rs6000/rs6000.md (and<mode>3): Don't generate |
| and<mode>3_imm unless rs6000_gen_cell_microcode is true. |
| |
| 2014-11-28 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/64087 |
| * lra-lives.c (process_bb_lives): Add debug output. |
| (lra_create_live_ranges): Don't remove dead insn on the second |
| call of lra_create_live_ranges_1. |
| |
| 2014-11-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/64037 |
| * combine.c (setup_incoming_promotions): Pass the argument |
| before any promotions happen to promote_function_mode. |
| |
| 2014-11-28 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift |
| permutations to loads group of size 3. |
| |
| 2014-11-28 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/arm/arm.md (copysignsf3): New pattern. |
| (copysigndf3): Likewise. |
| |
| 2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| |
| * omp-low.c (lower_omp_critical): Mark critical sections |
| inside target functions as offloadable. |
| |
| 2014-11-28 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one |
| file contains sections with LTO and offload IR, respectively. |
| |
| 2014-11-28 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * cgraphunit.c (ipa_passes): Handle flag_generate_offload. |
| (symbol_table::compile): Set flag_generate_offload if there is something |
| to offload. |
| * common.opt (flag_generate_offload): New Variable declaration. |
| * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload. |
| * ipa-inline-analysis.c (inline_generate_summary): Do not skip if |
| flag_generate_offload is set. |
| * lto-streamer.c (gate_lto_out): Handle flag_generate_offload. |
| * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload |
| is set. |
| * toplev.c (compile_file): Emit LTO marker if offload info has been |
| previously emitted. Do not emit lto_slim marker if |
| flag_generate_offload is without flag_generate_lto. |
| * tree.c (free_lang_data): Do not skip if flag_generate_offload is set. |
| |
| 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7. |
| * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to |
| MULTILIB_MATCHES. |
| |
| 2014-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list. |
| Include cortex-a17.md. |
| * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17. |
| * config/arm/arm-cores.def (cortex-a17): New entry. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17. |
| * config/arm/cortex-a17.md: New file. |
| * config/arm/cortex-a17-neon.md: New file. |
| * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17. |
| * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES. |
| |
| 2014-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64084 |
| * genmatch.c (dt_node::gen_kids_1): New function, split out |
| from dt_node::gen_kids. |
| (decision_tree::cmp_node): DT_TRUE are generally not equal. |
| (decision_tree::find_node): Treat DT_TRUE as barrier for |
| node CSE on the same level. |
| (dt_node::append_node): Do not keep DT_TRUE last. |
| (dt_node::gen_kids): Emit code after each DT_TRUE node seen. |
| |
| 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for |
| -march=armv8-a+crc. |
| |
| 2014-11-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (preferred_for_size): New attribute |
| (*pushxf): Split Yx*r constraints to r,*r. Use preferred_for_size |
| attribute to conditionally disable alternative 1. |
| (*pushdf): Split Yd*r constraints to r,*r. Use preferred_for_size |
| and prefered_for_speed attributes to conditionally disable |
| alternative 1. |
| (*movxf_internal): Split Yx*r constraints to r,*r. Use |
| preferred_for_size attribute to conditionally disable |
| alternatives 3 and 4. |
| (*movdf_internal): Split Yd*r constraints to r,*r. Use |
| preferred_for_size and prefered_for_speed attributes to conditionally |
| disable alternatives 3 and 4. |
| * config/i386/constraints.md (Yd, Yx): Remove register constraints. |
| |
| 2014-11-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (set_block_origin_self): Skip nested functions. |
| |
| 2014-11-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/63833 |
| * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use |
| R15_REG for 64-bit. |
| * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed. |
| |
| 2014-11-27 Martin Liska <mliska@suse.cz> |
| David Malcolm <dmalcolm@redhat.com> |
| |
| * ipa-icf.c (sem_function::equals_private): int* is replaced with |
| auto_vec. |
| (sem_function::bb_dict_test): Likewise. |
| * ipa-icf.h: Likewise. |
| |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/64088 |
| * fold-const.c (const_unop): Re-instantiate missing condition |
| before calling fold_abs_const. |
| |
| PR tree-optimization/64088 |
| * tree-ssa-tail-merge.c (update_debug_stmt): After resetting |
| the stmt break from the loop over use operands. |
| |
| 2014-11-27 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR): |
| Define. |
| * config/i386/i386.c (get_builtin_code_for_version): Add avx512f. |
| (fold_builtin_cpu): Ditto. |
| * doc/extend.texi: Documment it. |
| |
| 2014-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/64067 |
| * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>: |
| Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL |
| not only if modifier is EXPAND_INITIALIZER, but whenever |
| COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC. |
| |
| PR tree-optimization/64024 |
| * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl |
| field. Add simd_clone_info field. |
| (STMT_VINFO_SIMD_CLONE_FNDECL): Remove. |
| (STMT_VINFO_SIMD_CLONE_INFO): Define. |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for |
| STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of |
| STMT_VINFO_SIMD_CLONE_INFO vector. For linear arguments, remember |
| base and linear_step from analysis phase and use it during transform |
| phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,} |
| multiplied by linear_step. |
| (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO. |
| |
| PR lto/64025 |
| * alias.c (find_base_term): Use std::swap. Prefer tmp2 |
| if it is CONSTANT_P other than CONST_INT. |
| |
| 2014-11-27 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR target/59593 |
| * config/arm/arm.c (dump_minipool): dispatch to consttable pattern |
| based on mode size. |
| * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and |
| make it TARGET_EITHER. |
| (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER |
| and move HFmode handling from consttable_4 to it. |
| (consttable_4): Move HFmode handling to consttable_2 pattern. |
| * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md. |
| (consttable_2): Ditto. |
| |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (try_to_simplify): Allow |
| gimple_fold_stmt_to_constant_1 to follow SSA edges. |
| |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/64083 |
| * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not |
| forcibly mark loop for removal the wrong way. |
| |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63704 |
| * alias.c (mems_in_disjoint_alias_sets_p): Remove assert |
| and instead return false when !fstrict-aliasing. |
| |
| 2014-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61634 |
| * tree-vect-slp.c: Include gimple-walk.h. |
| (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid |
| down the SLP tree for one scalar statement. |
| (vect_detect_hybrid_slp_1): New walker function. |
| (vect_detect_hybrid_slp_2): Likewise. |
| (vect_detect_hybrid_slp): Properly handle pattern statements |
| in a pre-scan over all loop stmts. |
| |
| 2014-11-27 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| Revert: |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| * config/aarch64/aarch64.c (aarch64_code_to_ccmode, |
| aarch64_convert_mode, aarch64_gen_ccmp_first, |
| aarch64_gen_ccmp_next): New functions. |
| (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define. |
| |
| 2014-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread |
| without -pie or -shared, error on -fsanitize=thread -static instead. |
| |
| 2014-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR ipa/61190 |
| * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment. |
| (cgraph_node::function_or_virtual_thunk_symbol): New function. |
| (cgraph_node::call_for_symbol_and_aliases): Fix comment. |
| (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment. |
| Add new optional parameter exclude_virtual_thunks. |
| * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new |
| optional parameter exclude_virtual_thunks. |
| (cgraph_node::set_const_flag): Don't propagate to virtual thunks. |
| (cgraph_node::set_pure_flag): Likewise. |
| (cgraph_node::function_symbol): Simplified. |
| (cgraph_node::function_or_virtual_thunk_symbol): New function. |
| * ipa-pure-const.c (analyze_function): For virtual thunks set |
| pure_const_state to IPA_NEITHER. |
| (propagate_pure_const): Use function_or_virtual_thunk_symbol. |
| |
| 2014-11-26 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63738 |
| * tree-data-ref.c (split_constant_offset_1): Do not follow |
| SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI. |
| |
| 2014-11-26 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.h (const_unop): Declare. |
| (const_binop): Likewise. |
| * fold-const.c (const_binop): Export overload that expects |
| a type parameter and dispatches to fold_relational_const as well. |
| Check both operand kinds for guarding the transforms. |
| (const_unop): New function, with constant folding from fold_unary_loc. |
| (fold_unary_loc): Dispatch to const_unop for tcc_constant operand. |
| Remove constant folding done there from the simplifications. |
| (fold_binary_loc): Check for constants using CONSTANT_CLASS_P. |
| (fold_negate_expr): Remove dead code from the REAL_CST case. |
| Avoid building garbage in the COMPLEX_CST case. |
| * gimple-match-head.c (gimple_resimplify1): Dispatch to |
| const_unop. |
| (gimple_resimplify2): Dispatch to const_binop. |
| (gimple_simplify): Likewise. |
| |
| 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR bootstrap/63995 |
| * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore |
| debug statement when searching for a new position for |
| bounds load/creation statement. |
| |
| 2014-11-26 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63788 |
| * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT |
| var. Conditionally build BUILT_IN_OBJECT_SIZE decl. |
| (ATTR_PURE_NOTHROW_LEAF_LIST): Define. |
| |
| 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| PR lto/64075 |
| * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use |
| proper size for function_code bitfield. |
| (pack_ts_function_decl_value_fields): Likewise. |
| |
| 2014-11-21 Mark Wielaard <mjw@redhat.com> |
| |
| * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5. |
| * opts.c (common_handle_option): Accept -gdwarf-5. |
| * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and |
| DW_LANG_C_plus_plus_14. |
| (lower_bound_default): Likewise. Plus DW_LANG_C11. |
| (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11, |
| DW_LANG_C_plus_plus_14 or DW_LANG_C11. |
| (output_compilation_unit_header): Output at most a DWARFv4 header. |
| (output_skeleton_debug_sections): Likewise. |
| (output_line_info): Likewise. |
| (output_aranges): Document header version number. |
| |
| 2014-11-26 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (get_symbol_constant_value): Allow all |
| GIMPLE register type zero-constants. |
| |
| 2014-11-26 Mark Wielaard <mjw@redhat.com> |
| |
| * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the |
| function decl has TREE_THIS_VOLATILE. |
| |
| 2014-11-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/62238 |
| * tree-predcom.c (ref_at_iteration): Unshare the expression |
| before gimplifying it. |
| (prepare_initializers_chain): Discard unused seq. |
| |
| 2014-11-26 Prachi Godbole <prachi.godbole@imgtec.com> |
| |
| * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost |
| for p5600. |
| |
| 2014-11-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-lives.c (process_bb_node_lives): Make code with conditional |
| REAL_PIC_OFFSET_TABLE_REGNUM. |
| |
| 2014-11-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/63527 |
| * ira-lives.c (process_bb_node_lives): Check and remove conflict |
| of pic pseudo with pic hard reg. |
| |
| 2014-11-25 Rohit <rohitarulraj@freescale.com> |
| |
| PR bootstrap/63703 |
| * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly |
| added GCC hard register numbers for SPE high registers. |
| |
| 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * bt-load.c (migrate_btr_defs): Get the key of a heap entry |
| before removing it, not after. |
| |
| 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove |
| PATTERN call. |
| |
| 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead |
| of addic. |
| |
| 2014-11-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs. |
| (rest of file): Replace those with code resp. CODE. |
| |
| 2014-11-25 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-cfg.c (verify_sese): New function. |
| (move_sese_region_to_fn): Call verify_sese. |
| * tree-cfg.h (verify_sese): Declare. |
| |
| 2014-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR lto/64065 |
| * lto-streamer-out.c (output_struct_function_base): Stream |
| last_clique field. |
| * lto-streamer-in.c (input_struct_function_base): Likewise. |
| |
| 2014-11-25 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/64050 |
| PR ipa/64060 |
| * sreal.c (sreal::operator+): Addition fixed. |
| (sreal::signedless_plus): Negative numbers are |
| handled correctly. |
| (sreal::operator-): Subtraction is fixed. |
| (sreal::signedless_minus): Negative numbers are |
| handled correctly. |
| * sreal.h (sreal::operator<): Equal negative numbers |
| are compared correctly. |
| (sreal::shift): New checking asserts are introduced. |
| Operation is fixed. |
| |
| 2014-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61927 |
| * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering |
| of group and pattern analysis to the one in GCC 4.8. |
| |
| 2014-11-25 Ilya Tocar <ilya.tocar@intel.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr, |
| strlen, strncpy. |
| * lto-wrapper.c (append_offload_options): Likewise. |
| |
| 2014-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not |
| load the static chain if the call was originally direct. |
| |
| 2014-11-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/64059 |
| * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when |
| devirtualization is disabled. |
| |
| 2014-11-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/63965 |
| * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set |
| Altivec & -16 mask if the type is not valid for Altivec registers. |
| (rs6000_secondary_reload_memory): Add support for ((reg + const) + |
| reg) that occurs during push_reload processing. |
| |
| * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction |
| alternative for moving constant vectors which are easy altivec |
| constants to GPRs. Set the length attribute each of the |
| alternatives. |
| |
| * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a |
| work in progress patch was committed instead of the fixes for |
| 63965. |
| * config/rs6000/rs6000.c: Likewise. |
| |
| 2014-11-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/63671 |
| * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises |
| and -fno-devirtualize more carefully. |
| (can_remove_node_now_p): Update. |
| |
| 2014-11-24 Andrew Pinski <apinski@cavium.com> |
| |
| PR rtl-opt/63972 |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also. |
| |
| 2014-11-24 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (vec_shr<mode>): New. |
| |
| 2014-11-24 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): |
| Refactor by combining switch statements and make arrays into scalars. |
| |
| 2014-11-24 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR c++/58561 |
| * dbxout.c: Include stringpool.h |
| (dbxout_type) [default]: Ignore auto type. |
| |
| 2014-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63679 |
| * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h. |
| (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case |
| to properly leave off at -1. |
| (fully_constant_vn_reference_p): Generalize folding from |
| constant initializers. |
| (vn_reference_lookup_3): When looking through aggregate copies |
| handle offsetted reads and try simplifying the result to |
| a constant. |
| * gimple-fold.h (fold_ctor_reference): Export. |
| * gimple-fold.c (fold_ctor_reference): Likewise. |
| |
| 2014-11-24 Petr Murzin <petr.murzin@intel.com> |
| |
| * simplify-rtx.c (simplify_ternary_operation): Simplify |
| vec_merge (vec_duplicate (vec_select)). |
| |
| 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define. |
| (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops. |
| (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR. |
| |
| 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define. |
| (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops. |
| (cortexa57_tunings): Likewise. |
| (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK. |
| |
| 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p |
| in the not conditional jump case. |
| * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description. |
| * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description. |
| |
| 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c: Include tm-constrs.h |
| (AARCH64_FUSE_ADRP_ADD): Define. |
| (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops. |
| (cortexa53_tunings): Likewise. |
| (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD. |
| |
| 2014-11-24 Martin Liska <mliska@suse.cz> |
| |
| * ipa-inline.c (edge_badness): long is replaced by sreal |
| as fibonacci_heap template type. |
| (update_edge_key): Likewise. |
| (inline_small_functions): Likewise. |
| |
| 2014-11-24 Martin Liska <mliska@suse.cz> |
| |
| * predict.c (propagate_freq): More elegant sreal API is used. |
| (estimate_bb_frequencies): Precomputed constants replaced by integer |
| constants. |
| * sreal.c (sreal::normalize): New function. |
| (sreal::to_int): Likewise. |
| (sreal::operator+): Likewise. |
| (sreal::operator-): Likewise. |
| (sreal::signedless_plus): Likewise. |
| (sreal::signedless_minus): Likewise. |
| (sreal::operator/): Negative number support is added. |
| * sreal.h: Definition of new functions added. |
| (inline sreal operator<<): New function. |
| (inline sreal operator>>): Likewise. |
| |
| 2014-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (struct tune_params): Add |
| fuseable_ops field. |
| * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (thunderx_tunings): Likewise. |
| (aarch64_macro_fusion_p): New function. |
| (aarch_macro_fusion_pair_p): Likewise. |
| (TARGET_SCHED_MACRO_FUSION_P): Define. |
| (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise. |
| (AARCH64_FUSE_MOV_MOVK): Likewise. |
| (AARCH64_FUSE_NOTHING): Likewise. |
| |
| 2014-11-24 Martin Liska <mliska@suse.cz> |
| |
| PR lto/63968 |
| * bb-reorder.c (find_traces_1_round): decreate_key is replaced |
| with replace_key method. |
| * fibonacci_heap.h (fibonacci_heap::insert): New argument. |
| (fibonacci_heap::replace_key_data): Likewise. |
| (fibonacci_heap::replace_key): New method that can even increment key, |
| this operation costs O(log N). |
| (fibonacci_heap::extract_min): New argument. |
| (fibonacci_heap::delete_node): Likewise. |
| |
| 2014-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/55334 |
| * function.h (struct function): Add last_clique member. |
| * tree-inline.c (remap_dependence_clique): New function. |
| (remap_gimple_op_r): Remap dependence cliques in MEM_REFs. |
| (copy_tree_body_r): Likewise. |
| (copy_cfg_body): Free dependence map. |
| (copy_gimple_seq_and_replace_locals): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Dump |
| dependence info. |
| * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info |
| to answer alias query. |
| * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h, |
| tree-pretty-print.h and gimple-walk.h. |
| (struct variable_info): Add is_restrict_var flag and ruid |
| member. |
| (new_var_info): Initialize is_restrict_var. |
| (make_constraint_from_restrict): Likewise. |
| (create_variable_info_for): Exclude restricts from global vars |
| from new handling. |
| (intra_create_variable_infos): But not those from parameters. |
| (visit_loadstore): New function. |
| (maybe_set_dependence_info): Likewise. |
| (compute_dependence_clique): Likewise. |
| (compute_may_aliases): Call compute_dependence_clique. |
| * tree-data-ref.c (dr_analyze_indices): Copy dependence info |
| to fake MEM_REF. |
| (dr_may_alias_p): Use recorded dependence info to answer |
| alias query. |
| * tree-core.h (struct tree_base): Add clique, base struct in |
| union. |
| * tree.h (MR_DEPENDENCE_CLIQUE): New macro. |
| (MR_DEPENDENCE_BASE): Likewise. |
| * tree-inline.h (dependence_hasher): New hash-map kind. |
| (struct copy_body_data): Add dependence_map pointer. |
| * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid |
| throwing away dependence info. |
| * tree-streamer-in.c (unpack_value_fields): Stream dependence info. |
| * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise. |
| |
| 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53976 |
| * config/sh/sh_optimize_sett_clrt.cc |
| (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead |
| of void. Abort at complex edges. |
| (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values |
| returned false. |
| |
| 2014-11-22 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR other/63694 |
| * configure.ac: Check for strtol, strtoul, strtoll and strtoull |
| declarations. |
| * configure: Regenerated. |
| * config.in: Regenerated. |
| |
| 2014-11-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline |
| clones as having abstract origin used. |
| * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract |
| origin check. |
| (clone_inlined_nodes): Copy abstract originflag. |
| * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get |
| abstract origin node. |
| |
| 2014-11-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200. |
| * config/i386/i386.c (ix86_option_override_internal): Do not increase |
| PARAM_MAX_COMPLETELY_PEELED_INSNS. |
| |
| 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/63783 |
| PR target/51244 |
| * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn): |
| Do not emit bitwise not insn. Emit logical not insn sequence instead. |
| Adjust related comments throughout the file. |
| |
| 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/63986 |
| PR target/51244 |
| * config/sh/sh.c (sh_is_logical_t_store_expr, |
| sh_try_omit_signzero_extend): Use rtx_insn* for insn argument. |
| (sh_split_movrt_negc_to_movt_xor): New function. |
| (sh_find_set_of_reg): Move to ... |
| * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert |
| to template function. |
| (set_of_reg): Use rtx_insn* for insn member. |
| (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use |
| rtx_insn* for insn argument. |
| * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor |
| sequence using new sh_split_movrt_negc_to_movt_xor function. |
| (movrt_xor): Allow also for SH2A. |
| (*movt_movrt): Delete insns and splits. |
| |
| 2014-11-22 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/60770 |
| * tree-sra.c (clobber_subtree): New function. |
| (sra_modify_constructor_assign): Call it. |
| |
| 2014-11-21 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/63897 |
| * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last |
| argument. |
| (process_bb_lives): Rename dead_insn_p on remove_p |
| and global_live_info_p on dead_insn_p. Calculate local live info |
| unconditionally. Remove last argument in calls mark_regno_live and |
| mark_regno_dead. Reorganize body of EXECUTE_IF_SET_IN_BITMAP. |
| (lra_create_live_ranges): Rename to lra_create_live_ranges_1. |
| Return bool. Rename global_live_info_p on dead_insn_p. Return |
| flag of live info change. |
| (lra_create_live_ranges): New. |
| |
| 2014-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/63848 |
| PR target/63975 |
| * internal-fn.c (expand_arith_overflow_result_store, |
| expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use |
| do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere, |
| adjust arguments to those functions. Use unsignedp = true for |
| EQ, NE, GEU, LEU, LTU and GTU comparisons. |
| |
| PR tree-optimization/64006 |
| * tree-vrp.c (stmt_interesting_for_vrp): Return true |
| for {ADD,SUB,MUL}_OVERFLOW internal calls. |
| (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW |
| internal calls, check if any REALPART_EXPR/IMAGPART_EXPR |
| immediate uses would change their value ranges and return |
| SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING |
| if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses |
| interesting for vrp. |
| |
| 2014-11-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/63965 |
| * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set |
| Altivec & -16 mask if the type is not valid for Altivec registers. |
| (rs6000_secondary_reload_memory): Add support for ((reg + const) + |
| reg) that occurs during push_reload processing. |
| |
| * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction |
| alternative for moving constant vectors which are easy altivec |
| constants to GPRs. Set the length attribute each of the |
| alternatives. |
| |
| 2014-11-21 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * configure.ac: When checking for MIPS .module support ensure that |
| o32 FPXX is supported to avoid a second configure check. |
| * configure: Regenerate. |
| |
| 2014-11-21 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/iterators.md (VS): New mode iterator. |
| (vsi2qi): New mode attribute. |
| (VSI2QI): Likewise. |
| * config/aarch64/aarch64-simd-builtins.def: New entry for ctz. |
| * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz. |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ. |
| |
| 2014-11-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/63784 |
| * configure: Regenerated. |
| |
| 2014-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic. |
| |
| 2014-11-21 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET, |
| OPTION_MASK_ISA_PCOMMIT_SET): New. |
| (ix86_handle_option): Handle OPT_mpcommit. |
| * config.gcc: Add pcommitintrin.h |
| * config/i386/pcommitintrin.h: New file. |
| * config/i386/cpuid.h (bit_PCOMMIT): Define. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __PCOMMIT__. |
| * config/i386/i386.c (ix86_target_string): Add -mpcommit. |
| (PTA_PCOMMIT): Define. |
| (ix86_option_override_internal): Handle new option. |
| (ix86_valid_target_attribute_inner_p): Add pcommit. |
| (ix86_builtins): Add IX86_BUILTIN_PCOMMIT. |
| (bdesc_special_args): Add __builtin_ia32_pcommit. |
| * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define. |
| * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT. |
| (pcommit): New instruction. |
| * config/i386/i386.opt: Add mpcommit. |
| * config/i386/x86intrin.h: Include pcommitintrin.h. |
| |
| 2014-11-20 Mark Wielaard <mjw@redhat.com> |
| |
| PR debug/38757 |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C. |
| * config/darwin.c (darwin_file_end): Use lang_GNU_CXX. |
| (darwin_override_options): Likewise. |
| * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): |
| Likewise. |
| * dbxout.c (get_lang_number): Likewise. |
| (dbxout_type): Likewise. |
| (dbxout_symbol_location): Likewise. |
| * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype |
| also for DW_LANG_{C,C99,ObjC}. |
| (highest_c_language): New function. |
| (gen_compile_unit_die): Call highest_c_language to merge LTO |
| TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to |
| determine if DW_LANG_C99 or DW_LANG_C89 should be returned. |
| * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX. |
| * langhooks.h (struct lang_hooks): Add version comment to name. |
| (lang_GNU_C): New function declaration. |
| (lang_GNU_CXX): Likewise. |
| * langhooks.c (lang_GNU_C): New function. |
| (lang_GNU_CXX): Likewise. |
| * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX. |
| |
| 2014-11-21 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET, |
| OPTION_MASK_ISA_CLWB_SET): New. |
| (ix86_handle_option): Handle OPT_mclwb. |
| * config.gcc: Add clwbintrin.h. |
| * config/i386/clwbintrin.h: New file. |
| * config/i386/cpuid.h (bit_CLWB): Define. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __CLWB__. |
| * config/i386/i386.c (ix86_target_string): Add -mclwb. |
| (PTA_CLWB): Define. |
| (ix86_option_override_internal): Handle new option. |
| (ix86_valid_target_attribute_inner_p): Add clwb. |
| (ix86_builtins): Add IX86_BUILTIN_CLWB. |
| (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb. |
| (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB. |
| * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define. |
| * config/i386/i386.md (unspecv): Add UNSPECV_CLWB. |
| (clwb): New instruction. |
| * config/i386/i386.opt: Add mclwb. |
| * config/i386/x86intrin.h: Include clwbintrin.h. |
| |
| 2014-11-21 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET |
| OPTION_MASK_ISA_AVX512VBMI_UNSET): New. |
| (ix86_handle_option): Handle OPT_mavx512vbmi. |
| * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h. |
| * config/i386/avx512vbmiintrin.h: New file. |
| * config/i386/avx512vbmivlintrin.h: Ditto. |
| * config/i386/cpuid.h (bit_AVX512VBMI): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512VBMI__. |
| * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi. |
| (PTA_AVX512VBMI): Define. |
| (ix86_option_override_internal): Handle new options. |
| (ix86_valid_target_attribute_inner_p): Add avx512vbmi, |
| (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512, |
| IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128, |
| IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512, |
| IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512, |
| IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK, |
| IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ, |
| IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256, |
| IX86_BUILTIN_VPERMI2VARQI128. |
| (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask, |
| __builtin_ia32_vpmultishiftqb256_mask, |
| __builtin_ia32_vpmultishiftqb128_mask, |
| __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask, |
| __builtin_ia32_vpermt2varqi512_maskz, |
| __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask, |
| __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask, |
| __builtin_ia32_vpermt2varqi256_maskz, |
| __builtin_ia32_vpermt2varqi128_mask, |
| __builtin_ia32_vpermt2varqi128_maskz, |
| __builtin_ia32_vpermi2varqi256_mask, |
| __builtin_ia32_vpermi2varqi128_mask. |
| (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI. |
| * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define. |
| * config/i386/i386.opt: Add mavx512vbmi. |
| * config/i386/immintrin.h: Include avx512vbmiintrin.h, |
| avx512vbmivlintrin.h. |
| * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT. |
| (VI1_AVX512VL): New iterator. |
| (<avx512>_permvar<mode><mask_name>): Use it. |
| (<avx512>_vpermi2var<mode>3_maskz): Ditto. |
| (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto. |
| (<avx512>_vpermi2var<mode>3_mask): Ditto. |
| (<avx512>_vpermt2var<mode>3_maskz): Ditto. |
| (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto. |
| (<avx512>_vpermt2var<mode>3_mask): Ditto. |
| (vpmultishiftqb<mode><mask_name>): Ditto. |
| |
| 2014-11-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR rtl-optimization/63952 |
| * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode. |
| * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison. |
| Remove incorrect TARGET_HARD_FLOAT check and no-op expander code. |
| |
| 2014-11-21 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET, |
| OPTION_MASK_ISA_AVX512IFMA_UNSET): New. |
| (ix86_handle_option): Handle OPT_mavx512ifma. |
| * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h. |
| * config/i386/avx512ifmaintrin.h: New file. |
| * config/i386/avx512ifmaivlntrin.h: Ditto. |
| * config/i386/cpuid.h (bit_AVX512IFMA): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| avx512ifma. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512IFMA__. |
| * config/i386/i386.c (ix86_target_string): Add -mavx512ifma. |
| (PTA_AVX512IFMA): Define. |
| (ix86_option_override_internal): Handle new options. |
| (ix86_valid_target_attribute_inner_p): Add avx512ifma. |
| (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512, |
| IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256, |
| IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128, |
| IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ, |
| IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ, |
| IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ, |
| IX86_BUILTIN_VPMADD52HUQ128_MASKZ. |
| (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask, |
| __builtin_ia32_vpmadd52luq512_maskz, |
| __builtin_ia32_vpmadd52huq512_mask, |
| __builtin_ia32_vpmadd52huq512_maskx, |
| __builtin_ia32_vpmadd52luq256_mask, |
| __builtin_ia32_vpmadd52luq256_maskz, |
| __builtin_ia32_vpmadd52huq256_mask, |
| __builtin_ia32_vpmadd52huq256_maskz, |
| __builtin_ia32_vpmadd52luq128_mask, |
| __builtin_ia32_vpmadd52luq128_maskz, |
| __builtin_ia32_vpmadd52huq128_mask, |
| __builtin_ia32_vpmadd52huq128_maskz, |
| * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define. |
| * config/i386/i386.opt: Add mavx512ifma. |
| * config/i386/immintrin.h: Include avx512ifmaintrin.h, |
| avx512ifmavlintrin.h. |
| * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ, |
| UNSPEC_VPMADD52HUQ. |
| (VPMADD52): New iterator. |
| (vpmadd52type): New attribute. |
| (vpamdd52huq<mode>_maskz): New. |
| (vpamdd52luq<mode>_maskz): Ditto. |
| (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto. |
| (vpamdd52<vpmadd52type><mode>_mask): Ditto. |
| |
| 2014-11-21 Alan Lawrence <alan.lawrence@arm.com> |
| |
| Revert: |
| 2014-09-22 Alan Lawrence <alan.lawrence@arm.com> |
| * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs. |
| |
| 2014-11-21 Andrew Bennett <andrew.bennett@imgtec.com> |
| |
| * config/mips/mips.c (mips_process_sync_loop): Place a |
| nop in the delay slot of the branch likely instruction. |
| (mips_output_sync_loop): Ensure mips_branch_likely is |
| set before calling mips_output_sync_loop. |
| (mips_sync_loop_insns): Likewise. |
| |
| 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR/target 63673 |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow |
| the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to |
| double. |
| |
| 2014-11-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| Forward-port from 2014-10-30 4_9-branch r216934 |
| |
| PR target/63633 |
| * config/avr/avr-protos.h (regmask): New inline function. |
| (avr_fix_inputs, avr_emit3_fix_outputs): New protos. |
| * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands) |
| (avr_fix_inputs, avr_emit3_fix_outputs): New functions. |
| * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul) |
| (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3) |
| (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands. |
| * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3) |
| (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4) |
| (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands. |
| * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3) |
| (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3) |
| (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3) |
| (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as |
| needed. |
| |
| 2014-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/61137 |
| * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function. |
| (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it. |
| |
| 2014-11-21 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between |
| output mnemonic and operands. |
| (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise. |
| (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise. |
| |
| 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Increase |
| PARAM_MAX_COMPLETELY_PEELED_INSNS. |
| |
| 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/60451 |
| * config/i386/i386.c (expand_vec_perm_even_odd_pack): New. |
| (expand_vec_perm_even_odd_1): Add new expand for V8HI mode, |
| replace for V16QI, V16HI and V32QI modes. |
| (ix86_expand_vec_perm_const_1): Add new expand. |
| |
| 2014-11-21 Nick Clifton <nickc@redhat.com> |
| |
| * config/rl78/rl78-real.md (movqi_from_es): New pattern. |
| * config/rl78/rl78.c (struct machine_function): Add uses_es field. |
| (rl78_expand_prologue): Save the ES register in interrupt handlers |
| that use it. |
| (rl78_expand_epilogue): Restore the ES register if necessary. |
| (rl78_start_function): Mention if the function uses the ES |
| register. |
| (rl78_lo16): Record the use of the ES register. |
| (transcode_memory_rtx): Likewise. |
| |
| 2014-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/61773 |
| * tree-ssa-strlen.c (get_string_length): Don't assert |
| stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC. |
| |
| PR target/63910 |
| * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer |
| modes wider than MAX_BITSIZE_MODE_ANY_INT. If not using |
| CONST_WIDE_INT, make sure r fits into CONST_DOUBLE. |
| |
| 2014-11-21 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use |
| HOST_WIDE_INT_M1U instead of ~0. |
| (includes_rldicr_lshift_p): Likewise. |
| |
| 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM, |
| we need to look into its operand to determine if it is a valid |
| address. |
| |
| 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new |
| vaarg_p argument and create correct CFI info. |
| (nds32_expand_prologue): Pass true or false to |
| nds32_emit_stack_push_multiple function. |
| |
| 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn |
| as RTX_FRAME_RELATED_P rtx. |
| |
| 2014-11-21 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.opt (march): Add help message. |
| |
| 2014-11-20 Patrick Palka <ppalka@gcc.gnu.org> |
| |
| * tree-vrp.c (test_for_singularity): New parameter |
| strict_overflow_p. Set *strict_overflow_p to true if signed |
| overflow must be undefined for the return value to satisfy the |
| conditional. |
| (simplify_cond_using_ranges): Don't perform the simplification |
| if it violates overflow rules. |
| |
| 2014-11-20 Marek Polacek <polacek@redhat.com> |
| |
| * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo. |
| |
| 2014-11-20 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop |
| condition would be removed due to undefined behaviour. |
| |
| 2014-11-20 Andrew Pinski <apinski@cavium.com> |
| |
| PR ipa/63981 |
| PR ipa/63982 |
| * ipa-polymorphic-call.c (possible_placement_new): |
| Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode). |
| (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise. |
| (extr_type_from_vtbl_ptr_store): Likewise. |
| |
| 2014-11-20 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * config/rs6000/constraints.md: Avoid signed integer overflows. |
| * config/rs6000/predicates.md: Likewise. |
| * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise. |
| (includes_rldic_lshift_p): Likewise. |
| (includes_rldicr_lshift_p): Likewise. |
| * emit-rtl.c (const_wide_int_htab_hash): Likewise. |
| * loop-iv.c (determine_max_iter): Likewise. |
| (iv_number_of_iterations): Likewise. |
| * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise. |
| * varasm.c (get_section_anchor): Likewise. |
| |
| 2014-11-20 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR target/63870 |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass |
| expression to aarch64_simd_lane_bounds. |
| * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update |
| prototype. |
| * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update |
| call to aarch64_simd_lane_bounds. |
| (aarch64_get_lanedi): Likewise. |
| (aarch64_ld2_lane<mode>): Likewise. |
| (aarch64_ld3_lane<mode>): Likewise. |
| (aarch64_ld4_lane<mode>): Likewise. |
| (aarch64_im_lane_boundsi): Likewise. |
| * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp |
| parameter. Report calling function in error message if exp is non-NULL. |
| |
| 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/60111 |
| * config/sh/sh.c: Use signed char for signed field. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with |
| hash_table. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * ipa-utils.c, lto-section-in.c, lto-streamer.h, |
| tree-scalar-evolution.c: Replace htab with hash_table. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * lto-section-in.c (lto_delete_in_decl_state): Adjust. |
| (lto_free_function_in_decl_state): Likewise. |
| * lto-streamer-out.c (copy_function_or_variable): Likewise. |
| * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise. |
| (lto_file_decl_data_num_ ## name ## s): Likewise. |
| (struct lto_tree_ref_table): Remove. |
| (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * hash-map.h (hash_map::iterator): New class. |
| (hash_map::begin): New method. |
| (hash_map::end): Likewise. |
| * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h: |
| replace splay_tree with hash_map. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * hash-table.h (hash_table::hash_table): Call alloc_entries. |
| (hash_table::alloc_entries): new method. |
| (hash_table::expand): Call alloc_entries. |
| (hash_table::empty): Likewise. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * config/i386/i386.c, function.c, trans-mem.c, tree-core.h, |
| tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab. |
| |
| 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * doc/gty.texi: Document the new cache gty attribute. |
| * gengtype.c (finish_cache_funcs): New function. |
| (write_roots): Call gt_clear_cache on global variables with the cache |
| gty attribute. |
| * ggc-common.c (ggc_mark_roots): Call gt_clear_caches. |
| * ggc.h (gt_clear_caches): New declaration. |
| * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc |
| memory. |
| (gt_cleare_cache): New function. |
| * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab. |
| |
| 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Prefer to delete dead SETs inside |
| a PARALLEL over keeping them. |
| |
| 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (combine_validate_cost): Always print the insn costs |
| to the dump file. |
| |
| 2014-11-20 Richard Henderson <rth@redhat.com> |
| |
| PR target/63977 |
| * config/i386/i386.c (ix86_static_chain): Reinstate the check |
| for DECL_STATIC_CHAIN. |
| |
| 2014-11-20 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_classify_symbol): |
| Fixup prototype. |
| * config/aarch64/aarch64.c (aarch64_expand_mov_immediate, |
| aarch64_cannot_force_const_mem, aarch64_classify_address, |
| aarch64_classify_symbolic_expression): Fixup call to |
| aarch64_classify_symbol. |
| (aarch64_classify_symbol): Add range-checking for |
| symbol + offset addressing for tiny and small models. |
| |
| 2014-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63962 |
| * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))): |
| Guard with single-use operand 0. |
| |
| 2014-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63677 |
| * tree-ssa-dom.c: Include gimplify.h for unshare_expr. |
| (avail_exprs_stack): Make a vector of pairs. |
| (struct hash_expr_elt): Replace stmt member with vop member. |
| (expr_elt_hasher::equal): Simplify. |
| (initialize_hash_element): Adjust. |
| (initialize_hash_element_from_expr): Likewise. |
| (dom_opt_dom_walker::thread_across_edge): Likewise. |
| (record_cond): Likewise. |
| (dom_opt_dom_walker::before_dom_children): Likewise. |
| (print_expr_hash_elt): Likewise. |
| (remove_local_expressions_from_table): Restore previous state |
| if requested. |
| (record_equivalences_from_stmt): Record &x + CST as constant |
| &MEM[&x, CST] for further propagation. |
| (vuse_eq): New function. |
| (lookup_avail_expr): For loads use the alias oracle to see |
| whether a candidate from the expr hash is usable. |
| (avail_expr_hash): Do not hash VUSEs. |
| |
| 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/59593 |
| * config/arm/arm.md (*movhi_insn): Use right formatting |
| for immediate. |
| |
| 2014-11-20 Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| PR sanitizer/63845 |
| * function.c (assign_parms): Move init of pic_offset_table_rtx |
| from here to... |
| * cfgexpand.c (expand_used_vars): ...here. |
| |
| 2014-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (free_lang_data_in_type): If BINFO has no important |
| information in it, set it to NULL. |
| (get_binfo_at_offset): Do not walk fields, only bases. |
| * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE |
| to be NULL. |
| * ipa-polymorphic-call.c (record_known_type): Likewise. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each |
| congruence_class_group *. |
| |
| 2014-11-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63947 |
| * config/i386/i386.c (put_condition_code) <case LTU, case GEU>: |
| Output "b" and "nb" suffix for FP mode. |
| |
| 2014-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/63963 |
| * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream |
| out DECL_FUNCTION_SPECIFIC_TARGET |
| * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream |
| in DECL_FUNCTION_SPECIFIC_TARGET. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * lra.c (lra): After creating live ranges in preparation for call |
| to lra_inheritance, set live_p to true. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * tree-ssa-threadedge.c (thread_across_edge): Don't just release |
| "path", delete it. |
| * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from |
| vec<> to auto_vec<> to fix a leak. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * dwarf2out.c (dwarf2out_c_finalize): Free producer_string. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * ira-costs.c (ira_costs_c_finalize): New function. |
| * ira.h (ira_costs_c_finalize): New prototype. |
| * toplev.c (toplev::finalize): Call ira_costs_c_finalize. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * ipa-reference.c (ipa_reference_c_finalize): Release |
| optimization_summary_obstack. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * toplev.c (toplev::finalize): Free opts_obstack. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * toplev.c (toplev::finalize): Clean up save_decoded_options. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * bb-reorder.c |
| (find_rarely_executed_basic_blocks_and_crossing_edges): Convert |
| local bbs_in_hot_partition from vec<> to auto_vec<>. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * config/alpha/alpha.c (alpha_option_override): Remove static from |
| "handle_trap_shadows_info" and "align_insns_info". |
| * config/i386/i386.c (ix86_option_override): Likewise for |
| "insert_vzeroupper_info". |
| * config/rl78/rl78.c (rl78_asm_file_start): Likewise for |
| "rl78_devirt_info" and "rl78_move_elim_info". |
| * config/rs6000/rs6000.c (rs6000_option_override): Likewise for |
| "analyze_swaps_info". |
| * context.c (gcc::context::~context): New. |
| * context.h (gcc::context::~context): New. |
| * dumpfile.c (dump_files): Add "false" initializers for new field |
| "owns_strings". |
| (gcc::dump_manager::~dump_manager): New. |
| (gcc::dump_manager::dump_register): Add param "take_ownership". |
| * dumpfile.h (struct dump_file_info): Add field "owns_strings". |
| (gcc::dump_manager::~dump_manager): New. |
| (gcc::dump_manager::dump_register): Add param "take_ownership". |
| * pass_manager.h (gcc::pass_manager::operator delete): New. |
| (gcc::pass_manager::~pass_manager): New. |
| * passes.c (pass_manager::register_one_dump_file): Pass "true" to |
| new "owns_strings" argument to dump_register. |
| (pass_manager::operator delete): New. |
| (delete_pass_tree): New function. |
| (pass_manager::~pass_manager): New. |
| * statistics.c (statistics_early_init): Pass "false" to |
| new "owns_strings" argument to dump_register. |
| * toplev.c (toplev::finalize): Clean up the context and thus the |
| things it owns. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with |
| obstack_free when cleaning up valid_mode_changes_obstack. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/63854 |
| * opts.c (finalize_options_struct): New. |
| * opts.h (finalize_options_struct): New. |
| * toplev.c (toplev::finalize): Call finalize_options_struct |
| on global_options and global_options_set. |
| |
| 2014-11-19 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/36312 |
| PR driver/63837 |
| * gcc.c (process_command): Don't check for input/output |
| filename equality if output is HOST_BIT_BUCKET. |
| * toplev.c (init_asm_output): Likewise. |
| |
| 2014-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| Merger of git branch "gimple-classes-v2-option-3". |
| |
| * ChangeLog.gimple-classes: New. |
| |
| * coretypes.h (struct gcond): Add forward decl. |
| (struct gdebug): Likewise. |
| (struct ggoto): Likewise. |
| (struct glabel): Likewise. |
| (struct gswitch): Likewise. |
| (struct gassign): Likewise. |
| (struct gasm): Likewise. |
| (struct gcall): Likewise. |
| (struct gtransaction): Likewise. |
| (struct greturn): Likewise. |
| (struct gbind): Likewise. |
| (struct gcatch): Likewise. |
| (struct geh_filter): Likewise. |
| (struct geh_mnt): Likewise. |
| (struct geh_else): Likewise. |
| (struct gresx): Likewise. |
| (struct geh_dispatch): Likewise. |
| (struct gphi): Likewise. |
| (struct gtry): Likewise. |
| (struct gomp_atomic_load): Likewise. |
| (struct gomp_atomic_store): Likewise. |
| (struct gomp_continue): Likewise. |
| (struct gomp_critical): Likewise. |
| (struct gomp_for): Likewise. |
| (struct gomp_parallel): Likewise. |
| (struct gomp_task): Likewise. |
| (struct gomp_sections): Likewise. |
| (struct gomp_single): Likewise. |
| (struct gomp_target): Likewise. |
| (struct gomp_teams): Likewise. |
| |
| * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update |
| for renaming of gimple subclasses. |
| |
| * gdbhooks.py: Update. |
| |
| * gimple-iterator.c (gsi_for_phi): New. |
| (gsi_start_phis): Strengthen return type from gimple_stmt_iterator |
| to gphi_iterator. |
| * gimple-iterator.h (struct gphi_iterator): New subclass of |
| gimple_stmt_iterator. |
| (gsi_for_phi): New prototype. |
| (gsi_start_phis): Strengthen return type from gimple_stmt_iterator |
| to gphi_iterator. |
| (gsi_next_nonvirtual_phi): Strengthen param from |
| gimple_stmt_iterator * to gphi_iterator *, and local "phi" from |
| gimple to gphi *. |
| |
| * gsstruct.def: Update for renamings of classes. |
| |
| * gimple.c (gimple_build_return): Strengthen return type from |
| gimple to greturn *. |
| (gimple_call_reset_alias_info): Strengthen param to gcall *. |
| (gimple_build_call_1): Strengthen return type from gimple to |
| gcall *. |
| (gimple_build_call_vec): Likewise. |
| (gimple_build_call): Likewise. |
| (gimple_build_call_valist): Likewise. |
| (gimple_build_call_internal_1): Likewise. |
| (gimple_build_call_internal): Likewise. |
| (gimple_build_call_internal_vec): Likewise. |
| (gimple_build_call_from_tree): Likewise. |
| (gimple_build_assign_stat): Strengthen return type from gimple to |
| gassign *. |
| (gimple_build_assign_with_ops): Likewise. |
| (gimple_build_assign_with_ops): Likewise. |
| (gimple_build_cond): Strengthen return type from gimple to |
| gcond *. |
| (gimple_build_cond_from_tree): Likewise. |
| (gimple_cond_set_condition_from_tree): Require a gcond *. |
| (gimple_build_label): Strengthen return type from gimple to |
| glabel *. |
| (gimple_build_goto): Strengthen return type from gimple to |
| ggoto *. |
| (gimple_build_bind): Strengthen return type from gimple to |
| gbind *. |
| (gimple_build_asm_1): Strengthen return type from gimple to |
| gasm *. |
| (gimple_build_asm_vec): Likewise. |
| (gimple_build_catch): Strengthen return type from gimple to |
| gcatch *. |
| (gimple_build_eh_filter): Strengthen return type from gimple to |
| geh_filter *. |
| (gimple_build_eh_must_not_throw): Strengthen return type from |
| gimple to geh_mnt *. |
| (gimple_build_eh_else): Strengthen return type from gimple to |
| geh_else *. |
| (gimple_build_try): Update for renaming of gimple_statement_try to |
| gtry. |
| (gimple_build_resx): Strengthen return type from gimple to |
| gresx *. |
| (gimple_build_switch_nlabels): Strengthen return type from gimple |
| to gswitch *. |
| (gimple_build_switch): Likewise. |
| (gimple_build_eh_dispatch): Strengthen return type from gimple to |
| geh_dispatch *. |
| (gimple_build_debug_bind_stat): Strengthen return type from gimple |
| to gdebug *. |
| (gimple_build_debug_source_bind_stat): Strengthen return type from |
| gimple to gdebug *. |
| (gimple_build_omp_critical): Strengthen return type from gimple to |
| gomp_critical *. |
| (gimple_build_omp_for): Strengthen return type from gimple to |
| gomp_for *. |
| (gimple_build_omp_parallel): Strengthen return type from gimple to |
| gomp_parallel *. |
| (gimple_build_omp_task): Strengthen return type from gimple to |
| gomp_task *. |
| (gimple_build_omp_continue): Strengthen return type from gimple to |
| gomp_continue *. |
| (gimple_build_omp_sections): Strengthen return type from gimple to |
| gomp_sections *. |
| (gimple_build_omp_single): Strengthen return type from gimple to |
| gomp_single *. |
| (gimple_build_omp_target): Strengthen return type from gimple to |
| gomp_target *. |
| (gimple_build_omp_teams): Strengthen return type from gimple to |
| gomp_teams *. |
| (gimple_build_omp_atomic_load): Strengthen return type from gimple |
| to gomp_atomic_load *. |
| (gimple_build_omp_atomic_store): Strengthen return type from gimple |
| to gomp_atomic_store *. |
| (gimple_build_transaction): Strengthen return type from gimple |
| to gtransaction *. |
| (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast. |
| (gimple_call_fnspec): Require a const gcall *. |
| (gimple_call_arg_flags): Likewise. |
| (gimple_call_return_flags): Likewise. |
| (gimple_set_bb): Add a checked cast. |
| (gimple_copy): Within the cases, add locals of the appropriate |
| subclass and use in place of "stmt" and "copy" for typesafety. |
| (gimple_has_side_effects): Add a checked cast. |
| (gimple_could_trap_p_1): Likewise. |
| (gimple_call_copy_skip_args): Require a gcall *, and return one. |
| (gimple_asm_clobbers_memory_p): Require a const gasm *. |
| (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a |
| dyn_cast, introducing local "return_stmt" and using ti in place |
| of "stmt". |
| |
| * gimple.h (gimple_vec): Eliminate this typedef. |
| (struct gimple_statement_call): Rename to... |
| (struct gcall): ...this. |
| (struct gimple_statement_bind): Rename to... |
| (struct gbind): ...this. |
| (struct gimple_statement_catch): Rename to... |
| (struct gcatch): ...this. |
| (struct gimple_statement_eh_filter): Rename to... |
| (struct geh_filter): ...this. |
| (struct gimple_statement_eh_else): Rename to... |
| (struct geh_else): ...this. |
| (struct gimple_statement_eh_mnt): Rename to... |
| (struct geh_mnt): ...this. |
| (struct gimple_statement_phi): Rename to... |
| (struct gphi): ...this. |
| (struct gimple_statement_resx): Rename to... |
| (struct gresx): ...this. |
| (struct gimple_statement_eh_dispatch): Rename to... |
| (struct geh_dispatch): ...this. |
| (struct gimple_statement_try): Rename to... |
| (struct gtry): ...this. |
| (struct gimple_statement_asm): Rename to... |
| (struct gasm): ...this. |
| (struct gimple_statement_omp_critical): Rename to... |
| (struct gomp_critical): ...this. |
| (struct gimple_statement_omp_for): Rename to... |
| (struct gomp_for): ...this. |
| (struct gimple_statement_omp_parallel): Rename to... |
| (struct gomp_parallel): ...this. |
| (struct gimple_statement_omp_target): Rename to... |
| (struct gomp_target): ...this. |
| (struct gimple_statement_omp_task): Rename to... |
| (struct gomp_task): ...this. |
| (struct gimple_statement_omp_sections): Rename to... |
| (struct gomp_sections): ...this. |
| (struct gimple_statement_omp_continue): Rename to... |
| (struct gomp_continue): ...this. |
| (struct gimple_statement_omp_single): Rename to... |
| (struct gomp_single): ...this. |
| (struct gimple_statement_omp_teams): Rename to... |
| (struct gomp_teams): ...this. |
| (struct gimple_statement_omp_atomic_load): Rename to... |
| (struct gomp_atomic_load): ...this. |
| (struct gimple_statement_omp_atomic_store :): Rename to... |
| (struct gomp_atomic_store :): ...this. |
| (struct gimple_statement_transaction): Rename to... |
| (struct gtransaction): ...this. |
| (struct gcond): New subclass. |
| (struct gdebug): New subclass. |
| (struct ggoto): New subclass. |
| (struct glabel): New subclass. |
| (struct gswitch): New subclass. |
| (struct gassign): New subclass. |
| (struct greturn): New subclass. |
| (is_a_helper <gimple_statement_asm *>::test): Rename to... |
| (is_a_helper <gasm *>::test): ...this. |
| (is_a_helper <gimple_statement_bind *>::test): Rename to... |
| (is_a_helper <gbind *>::test): ...this. |
| (is_a_helper <gassign *>::test): New. |
| (is_a_helper <gimple_statement_call *>::test): Rename to... |
| (is_a_helper <gcall *>::test): ...this. |
| (is_a_helper <gimple_statement_catch *>::test): Rename to... |
| (is_a_helper <gcatch *>::test): ...this. |
| (is_a_helper <gimple_statement_resx *>::test): Rename to... |
| (is_a_helper <gresx *>::test): ...this. |
| (is_a_helper <gcond *>::test): New. |
| (is_a_helper <gdebug *>::test): New. |
| (is_a_helper <ggoto *>::test): New. |
| (is_a_helper <glabel *>::test): New. |
| (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to... |
| (is_a_helper <geh_dispatch *>::test): ...this. |
| (is_a_helper <gimple_statement_eh_else *>::test): Rename to... |
| (is_a_helper <geh_else *>::test): ...this. |
| (is_a_helper <gimple_statement_eh_filter *>::test): Rename to... |
| (is_a_helper <geh_filter *>::test): ...this. |
| (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to... |
| (is_a_helper <geh_mnt *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to... |
| (is_a_helper <gomp_atomic_load *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to... |
| (is_a_helper <gomp_atomic_store *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_continue *>::test): Rename to... |
| (is_a_helper <gomp_continue *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_critical *>::test): Rename to... |
| (is_a_helper <gomp_critical *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_for *>::test): Rename to... |
| (is_a_helper <gomp_for *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to... |
| (is_a_helper <gomp_parallel *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_target *>::test): Rename to... |
| (is_a_helper <gomp_target *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_sections *>::test): Rename to... |
| (is_a_helper <gomp_sections *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_single *>::test): Rename to... |
| (is_a_helper <gomp_single *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_teams *>::test): Rename to... |
| (is_a_helper <gomp_teams *>::test): ...this. |
| (is_a_helper <gimple_statement_omp_task *>::test): Rename to... |
| (is_a_helper <gomp_task *>::test): ...this. |
| (is_a_helper <gimple_statement_phi *>::test): Rename to... |
| (is_a_helper <gphi *>::test): ...this. |
| (is_a_helper <gimple_statement_transaction *>::test): Rename to... |
| (is_a_helper <gtransaction *>::test): ...this. |
| (is_a_helper <greturn *>::test): New. |
| (is_a_helper <gswitch *>::test): New. |
| (is_a_helper <gimple_statement_try *>::test): Rename to... |
| (is_a_helper <gtry *>::test): ...this. |
| (is_a_helper <const gimple_statement_asm *>::test): Rename to... |
| (is_a_helper <const gasm *>::test): ...this. |
| (is_a_helper <const gimple_statement_bind *>::test): Rename to... |
| (is_a_helper <const gbind *>::test): ...this. |
| (is_a_helper <const gimple_statement_call *>::test): Rename to... |
| (is_a_helper <const gcall *>::test): ...this. |
| (is_a_helper <const gimple_statement_catch *>::test): Rename to... |
| (is_a_helper <const gcatch *>::test): ...this. |
| (is_a_helper <const gimple_statement_resx *>::test): Rename to... |
| (is_a_helper <const gresx *>::test): ...this. |
| (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to... |
| (is_a_helper <const geh_dispatch *>::test): ...this. |
| (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to... |
| (is_a_helper <const geh_filter *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_atomic_load *>::test): |
| Rename to... |
| (is_a_helper <const gomp_atomic_load *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_atomic_store *>::test): |
| Rename to... |
| (is_a_helper <const gomp_atomic_store *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_continue *>::test): |
| Rename to... |
| (is_a_helper <const gomp_continue *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_critical *>::test): |
| Rename to... |
| (is_a_helper <const gomp_critical *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_for *>::test): Rename to... |
| (is_a_helper <const gomp_for *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_parallel *>::test): |
| Rename to... |
| (is_a_helper <const gomp_parallel *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_target *>::test): Rename to... |
| (is_a_helper <const gomp_target *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_sections *>::test): |
| Rename to... |
| (is_a_helper <const gomp_sections *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_single *>::test): Rename to... |
| (is_a_helper <const gomp_single *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to... |
| (is_a_helper <const gomp_teams *>::test): ...this. |
| (is_a_helper <const gimple_statement_omp_task *>::test): Rename to... |
| (is_a_helper <const gomp_task *>::test): ...this. |
| (is_a_helper <const gimple_statement_phi *>::test): Rename to... |
| (is_a_helper <const gphi *>::test): ...this. |
| (is_a_helper <const gimple_statement_transaction *>::test): Rename to... |
| (is_a_helper <const gtransaction *>::test): ...this. |
| (gimple_build_return): Strengthen return type to greturn *. |
| (gimple_call_reset_alias_info): Require a gcall *. |
| (gimple_build_call_vec): Return a gcall *. |
| (gimple_build_call): Likewise. |
| (gimple_build_call_valist): Likewise. |
| (gimple_build_call_internal): Likewise. |
| (gimple_build_call_internal_vec): Likewise. |
| (gimple_build_call_from_tree): Likewise. |
| (gimple_build_assign_stat): Return a gassign *. |
| (gimple_build_assign_with_ops): Likewise. |
| (gimple_build_cond): Return a gcond *. |
| (gimple_build_cond_from_tree): Likewise. |
| (gimple_cond_set_condition_from_tree): Require a gcond *. |
| (gimple_build_label): Return a glabel *. |
| (gimple_build_goto): Return a ggoto *. |
| (gimple_build_bind): Return a gbind *. |
| (gimple_build_asm_vec): Return a gasm *. |
| (gimple_build_catch): Return a gcatch *. |
| (gimple_build_eh_filter): Return a geh_filter *. |
| (gimple_build_eh_must_not_throw): Return a geh_mnt *. |
| (gimple_build_eh_else): Return a geh_else *. |
| (gimple_build_try): Return a gtry *. |
| (gimple_build_resx): Return a gresx *. |
| (gimple_build_switch_nlabels): Return a gswitch *. |
| (gimple_build_switch): Return a gswitch *. |
| (gimple_build_eh_dispatch): Return a geh_dispatch *. |
| (gimple_build_debug_bind_stat): Return a gdebug *. |
| (gimple_build_debug_source_bind_stat): Return a gdebug *. |
| (gimple_build_omp_critical): Return a gomp_critical *. |
| (gimple_build_omp_for): Return a gomp_for *. |
| (gimple_build_omp_parallel): Return a gomp_parallel *. |
| (gimple_build_omp_task): Return a gomp_task *. |
| (gimple_build_omp_continue): Return a gomp_continue *. |
| (gimple_build_omp_sections): Return a gomp_sections *. |
| (gimple_build_omp_single): Return a gomp_single *. |
| (gimple_build_omp_target): Return a gomp_target *. |
| (gimple_build_omp_teams): Return a gomp_teams *. |
| (gimple_build_omp_atomic_load): Return a gomp_atomic_load *. |
| (gimple_build_omp_atomic_store): Return a gomp_atomic_store *. |
| (gimple_build_transaction): Return a gtransaction *. |
| (gimple_call_arg_flags): Require a const gcall *. |
| (gimple_call_return_flags): Likewise. |
| (gimple_call_copy_skip_args): Require and return a gcall *. |
| (gimple_asm_clobbers_memory_p): Require a const gasm *. |
| (gimple_seq_first_stmt_as_a_bind): New. |
| (gimple_assign_nontemporal_move_p): Require a const gassign * |
| rather than a const_gimple. |
| (gimple_call_internal_fn): Update for renaming to gcall. |
| (gimple_call_fntype): Likewise. |
| (gimple_call_set_fntype): Require a gcall * rather than a gimple. |
| (gimple_call_set_fn): Likewise. |
| (gimple_call_set_internal_fn): Likewise. |
| (gimple_call_set_chain): Likewise. |
| (gimple_call_set_tail): Likewise. |
| (gimple_call_tail_p): Likewise. |
| (gimple_call_set_return_slot_opt): Likewise. |
| (gimple_call_return_slot_opt_p): Likewise. |
| (gimple_call_set_from_thunk): Likewise. |
| (gimple_call_from_thunk_p): Likewise. |
| (gimple_call_set_va_arg_pack): Likewise. |
| (gimple_call_va_arg_pack_p): Likewise. |
| (gimple_call_set_nothrow): Likewise. |
| (gimple_call_nothrow_p): Likewise. |
| (gimple_call_set_alloca_for_var): Likewise. |
| (gimple_call_alloca_for_var_p): Likewise. |
| (gimple_call_use_set): Likewise. |
| (gimple_call_clobber_set): Likewise. |
| (gimple_call_return_type): Require a const gcall * rather than a |
| const_gimple. |
| (gimple_call_chain_ptr): Likewise. |
| (gimple_call_copy_flags): Require a pair of gcall *. |
| (gimple_cond_set_code): Require a gcond * rather than a gimple |
| (gimple_cond_set_lhs): Likewise. |
| (gimple_cond_set_rhs): Likewise. |
| (gimple_cond_set_true_label): Likewise. |
| (gimple_cond_set_false_label): Likewise. |
| (gimple_cond_make_false): Likewise. |
| (gimple_cond_make_true): Likewise. |
| (gimple_cond_lhs_ptr): Require a const gcond * rather than a |
| const_gimple. |
| (gimple_cond_rhs_ptr): Likewise. |
| (gimple_cond_true_label): Likewise. |
| (gimple_cond_false_label): Likewise. |
| (gimple_cond_true_p): Likewise. |
| (gimple_cond_false_p): Likewise. |
| (gimple_cond_set_condition): Likewise. |
| (gimple_label_label): Require a const glabel *. |
| (gimple_label_set_label): Require a glabel *. |
| (gimple_goto_set_dest): Require a ggoto *. |
| (gimple_bind_vars): Require a const gbind *. |
| (gimple_bind_block): Likewise. |
| (gimple_bind_set_vars): Require a gbind *. |
| (gimple_bind_append_vars): Likewise. |
| (gimple_bind_body_ptr): Likewise. |
| (gimple_bind_body): Likewise. |
| (gimple_bind_set_body): Likewise. |
| (gimple_bind_add_stmt): Likewise. |
| (gimple_bind_add_seq): Likewise. |
| (gimple_bind_set_block): Likewise. |
| (gimple_asm_ninputs): Require a const gasm *. |
| (gimple_asm_noutputs): Likewise. |
| (gimple_asm_nclobbers): Likewise. |
| (gimple_asm_nlabels): Likewise. |
| (gimple_asm_input_op): Likewise. |
| (gimple_asm_input_op_ptr): Likewise. |
| (gimple_asm_output_op): Likewise. |
| (gimple_asm_output_op_ptr): Likewise. |
| (gimple_asm_clobber_op): Likewise. |
| (gimple_asm_label_op): Likewise. |
| (gimple_asm_string): Likewise. |
| (gimple_asm_volatile_p): Likewise. |
| (gimple_asm_input_p): Likewise. |
| (gimple_asm_set_input_op): Require a gasm *. |
| (gimple_asm_set_output_op): Likewise. |
| (gimple_asm_set_clobber_op): Likewise. |
| (gimple_asm_set_label_op): Likewise. |
| (gimple_asm_set_volatile): Likewise. |
| (gimple_asm_set_input): Likewise. |
| (gimple_catch_types): Require a const gcatch *. |
| (gimple_catch_types_ptr): Require a gcatch *. |
| (gimple_catch_handler_ptr): Likewise. |
| (gimple_catch_handler): Likewise. |
| (gimple_catch_set_types): Likewise. |
| (gimple_catch_set_handler): Likewise. |
| (gimple_eh_filter_types): Update for renaming of subclass to |
| geh_filter. |
| (gimple_eh_filter_types_ptr): Likewise. |
| (gimple_eh_filter_failure_ptr): Likewise. |
| (gimple_eh_filter_set_types): Require a geh_filter *. |
| (gimple_eh_filter_set_failure): Likewise. |
| (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *. |
| (gimple_eh_must_not_throw_set_fndecl): Likewise. |
| (gimple_eh_else_n_body_ptr): Require a geh_else *. |
| (gimple_eh_else_n_body): Likewise. |
| (gimple_eh_else_e_body_ptr): Likewise. |
| (gimple_eh_else_e_body): Likewise. |
| (gimple_eh_else_set_n_body): Likewise. |
| (gimple_eh_else_set_e_body): Likewise. |
| (gimple_try_set_kind): Require a gtry *. |
| (gimple_try_set_catch_is_cleanup): Likewise. |
| (gimple_try_set_eval): Likewise. |
| (gimple_try_set_cleanup): Likewise. |
| (gimple_try_eval_ptr): Update for renaming of subclass to gtry. |
| (gimple_try_cleanup_ptr): Likewise. |
| (gimple_phi_capacity): Update for renaming of subclass to gphi. |
| (gimple_phi_num_args): Likewise. |
| (gimple_phi_result): Likewise. |
| (gimple_phi_result_ptr): Likewise. |
| (gimple_phi_arg): Likewise. |
| (gimple_phi_set_result): Require a gphi *. |
| (gimple_phi_set_arg): Likewise. |
| (gimple_phi_arg_def_ptr): Likewise. |
| (gimple_phi_arg_edge): Likewise. |
| (gimple_phi_arg_location): Likewise. |
| (gimple_phi_arg_location_from_edge): Likewise. |
| (gimple_phi_arg_set_location): Likewise. |
| (gimple_phi_arg_has_location): Likewise. |
| (gimple_resx_region): Require a const gresx *. |
| (gimple_resx_set_region): Require a gresx *. |
| (gimple_eh_dispatch_region): Require a const geh_dispatch *. |
| (gimple_eh_dispatch_set_region): Require a geh_dispatch *. |
| (gimple_switch_num_labels): Require a const gswitch *. |
| (gimple_switch_set_num_labels): Likewise. |
| (gimple_switch_index): Likewise. |
| (gimple_switch_index_ptr): Likewise. |
| (gimple_switch_label): Likewise. |
| (gimple_switch_default_label): Likewise. |
| (gimple_switch_set_index): Require a gswitch *. |
| (gimple_switch_set_label): Likewise. |
| (gimple_switch_set_default_label): Likewise. |
| (gimple_omp_critical_name): Require a const gomp_critical *. |
| (gimple_omp_critical_name_ptr): Require a gomp_critical *. |
| (gimple_omp_critical_set_name): Likewise. |
| (gimple_omp_for_set_kind): Require a gomp_for *. |
| (gimple_omp_for_set_combined_p): Likewise. |
| (gimple_omp_for_set_combined_into_p): Likewise. |
| (gimple_omp_for_clauses): Update for renaming of subclass to |
| gomp_for. |
| (gimple_omp_for_clauses_ptr): Likewise. |
| (gimple_omp_for_set_clauses): Likewise. |
| (gimple_omp_for_collapse): Likewise. |
| (gimple_omp_for_index): Likewise. |
| (gimple_omp_for_index_ptr): Likewise. |
| (gimple_omp_for_set_index): Likewise. |
| (gimple_omp_for_initial): Likewise. |
| (gimple_omp_for_initial_ptr): Likewise. |
| (gimple_omp_for_set_initial): Likewise. |
| (gimple_omp_for_final): Likewise. |
| (gimple_omp_for_final_ptr): Likewise. |
| (gimple_omp_for_set_final): Likewise. |
| (gimple_omp_for_incr): Likewise. |
| (gimple_omp_for_incr_ptr): Likewise. |
| (gimple_omp_for_set_incr): Likewise. |
| (gimple_omp_for_pre_body): Likewise. |
| (gimple_omp_for_set_pre_body): Likewise. |
| (gimple_omp_parallel_clauses): Update for renaming of subclass to |
| gomp_parallel. |
| (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *. |
| (gimple_omp_parallel_set_clauses): Likewise. |
| (gimple_omp_parallel_child_fn_ptr): Likewise. |
| (gimple_omp_parallel_set_child_fn): Likewise. |
| (gimple_omp_parallel_data_arg_ptr): Likewise. |
| (gimple_omp_parallel_set_data_arg): Likewise. |
| (gimple_omp_parallel_child_fn): Require a const gomp_parallel *. |
| (gimple_omp_parallel_data_arg): Likewise. |
| (gimple_omp_task_clauses): Update for renaming of subclass to |
| gomp_task. |
| (gimple_omp_task_clauses_ptr): Likewise. |
| (gimple_omp_task_set_clauses): Likewise. |
| (gimple_omp_task_child_fn): Likewise. |
| (gimple_omp_task_child_fn_ptr): Likewise. |
| (gimple_omp_task_set_child_fn): Likewise. |
| (gimple_omp_task_data_arg): Likewise. |
| (gimple_omp_task_data_arg_ptr): Likewise. |
| (gimple_omp_task_set_data_arg): Likewise. |
| (gimple_omp_taskreg_clauses): Whitespace fixes. |
| (gimple_omp_taskreg_clauses_ptr): Likewise. |
| (gimple_omp_taskreg_set_clauses): Likewise. |
| (gimple_omp_taskreg_child_fn): Likewise. |
| (gimple_omp_taskreg_child_fn_ptr): Likewise. |
| (gimple_omp_taskreg_set_child_fn): Likewise. |
| (gimple_omp_taskreg_data_arg): Likewise. |
| (gimple_omp_taskreg_data_arg_ptr): Likewise. |
| (gimple_omp_taskreg_set_data_arg): Likewise. |
| (gimple_omp_task_copy_fn): Update for renaming of subclass to |
| gomp_task. |
| (gimple_omp_task_copy_fn_ptr): Likewise. |
| (gimple_omp_task_set_copy_fn): Likewise. |
| (gimple_omp_task_arg_size): Likewise. |
| (gimple_omp_task_arg_size_ptr): Likewise. |
| (gimple_omp_task_set_arg_size): Likewise. |
| (gimple_omp_task_arg_align): Likewise. |
| (gimple_omp_task_arg_align_ptr): Likewise. |
| (gimple_omp_task_set_arg_align): Likewise. |
| (gimple_omp_single_clauses): Update for renaming of subclass to |
| gomp_single. |
| (gimple_omp_single_clauses_ptr): Likewise. |
| (gimple_omp_single_set_clauses): Likewise. |
| (gimple_omp_target_clauses): Update for renaming of subclass to |
| gomp_target. |
| (gimple_omp_target_clauses_ptr): Likewise. |
| (gimple_omp_target_set_clauses): Require a gomp_target *. |
| (gimple_omp_target_set_kind): Likewise. |
| (gimple_omp_target_child_fn_ptr): Likewise. |
| (gimple_omp_target_set_child_fn): Likewise. |
| (gimple_omp_target_data_arg_ptr): Likewise. |
| (gimple_omp_target_set_data_arg): Likewise. |
| (gimple_omp_target_child_fn): Require a const gomp_target *. |
| (gimple_omp_target_data_arg): Likewise. |
| (gimple_omp_teams_clauses): Update for renaming of subclass to |
| gomp_teams. |
| (gimple_omp_teams_clauses_ptr): Likewise. |
| (gimple_omp_teams_set_clauses): Require a gomp_teams *. |
| (gimple_omp_sections_clauses): Update for renaming of subclass to |
| gomp_sections. |
| (gimple_omp_sections_clauses_ptr): Likewise. |
| (gimple_omp_sections_set_clauses): Likewise. |
| (gimple_omp_sections_control): Likewise. |
| (gimple_omp_sections_control_ptr): Likewise. |
| (gimple_omp_sections_set_control): Likewise. |
| (gimple_omp_for_set_cond): Likewise. |
| (gimple_omp_for_cond): Likewise. |
| (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *. |
| (gimple_omp_atomic_store_val_ptr): Likewise. |
| (gimple_omp_atomic_load_set_lhs): Likewise. |
| (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *. |
| (gimple_omp_atomic_load_lhs): Likewise. |
| (gimple_omp_atomic_load_rhs): Likewise. |
| (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *. |
| (gimple_omp_atomic_load_set_rhs): Likewise. |
| (gimple_omp_atomic_load_rhs_ptr): Likewise. |
| (gimple_omp_continue_control_def): Require a const gomp_continue *. |
| (gimple_omp_continue_control_use): Likewise. |
| (gimple_omp_continue_control_def_ptr): Require a gomp_continue *. |
| (gimple_omp_continue_set_control_def): Likewise. |
| (gimple_omp_continue_control_use_ptr): Likewise. |
| (gimple_omp_continue_set_control_use): Likewise. |
| (gimple_transaction_body_ptr): Require a gtransaction *. |
| (gimple_transaction_body): Likewise. |
| (gimple_transaction_label_ptr): Likewise. |
| (gimple_transaction_label): Require a const gtransaction *. |
| (gimple_transaction_subcode): Likewise. |
| (gimple_transaction_set_body): Require a gtransaction *. |
| (gimple_transaction_set_label): Likewise. |
| (gimple_transaction_set_subcode): Likewise. |
| (gimple_return_retval_ptr): Require a const greturn *. |
| (gimple_return_retval): Likewise. |
| (gimple_return_set_retval): Require a greturn *. |
| (gimple_expr_type): Introduce local "call_stmt" and use in place of |
| "stmt" for typesafety. |
| |
| * asan.c: Use gimple subclasses. |
| * auto-profile.c: Likewise. |
| * builtins.c: Likewise. |
| * builtins.h: Likewise. |
| * cfgexpand.c: Likewise. |
| * cfgloop.c: Likewise. |
| * cfgloopmanip.c: Likewise. |
| * cgraph.c: Likewise. |
| * cgraph.h: Likewise. |
| * cgraphbuild.c: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * expr.h: Likewise. |
| * gimple-builder.c: Likewise. |
| * gimple-builder.h: Likewise. |
| * gimple-fold.c: Likewise. |
| * gimple-low.c: Likewise. |
| * gimple-pretty-print.c: Likewise. |
| * gimple-ssa-isolate-paths.c: Likewise. |
| * gimple-ssa-strength-reduction.c: Likewise. |
| * gimple-streamer-in.c: Likewise. |
| * gimple-streamer-out.c: Likewise. |
| * gimple-walk.c: Likewise. |
| * gimplify-me.c: Likewise. |
| * gimplify.c: Likewise. |
| * gimplify.h: Likewise. |
| * graphite-scop-detection.c: Likewise. |
| * graphite-sese-to-poly.c: Likewise. |
| * internal-fn.c: Likewise. |
| * internal-fn.def:: Likewise. |
| * internal-fn.h: Likewise. |
| * ipa-icf-gimple.c: Likewise. |
| * ipa-icf-gimple.h: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-inline-analysis.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-prop.h: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * ipa-split.c: Likewise. |
| * lto-streamer-in.c: Likewise. |
| * lto-streamer-out.c: Likewise. |
| * omp-low.c: Likewise. |
| * predict.c: Likewise. |
| * sanopt.c: Likewise. |
| * sese.c: Likewise. |
| * ssa-iterators.h: Likewise. |
| * stmt.c: Likewise. |
| * trans-mem.c: Likewise. |
| * tree-call-cdce.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-cfg.h: Likewise. |
| * tree-cfgcleanup.c: Likewise. |
| * tree-chkp.c: Likewise. |
| * tree-chkp.h: Likewise. |
| * tree-complex.c: Likewise. |
| * tree-data-ref.c: Likewise. |
| * tree-dfa.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-eh.h: Likewise. |
| * tree-emutls.c: Likewise. |
| * tree-if-conv.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-inline.h: Likewise. |
| * tree-into-ssa.c: Likewise. |
| * tree-into-ssa.h: Likewise. |
| * tree-loop-distribution.c: Likewise. |
| * tree-nrv.c: Likewise. |
| * tree-object-size.c: Likewise. |
| * tree-outof-ssa.c: Likewise. |
| * tree-parloops.c: Likewise. |
| * tree-phinodes.c: Likewise. |
| * tree-phinodes.h: Likewise. |
| * tree-predcom.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-scalar-evolution.c: Likewise. |
| * tree-scalar-evolution.h |
| * tree-sra.cn_function): |
| * tree-ssa-alias.c: Likewise. |
| * tree-ssa-alias.h: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-coalesce.c: Likewise. |
| * tree-ssa-copy.c: Likewise. |
| * tree-ssa-copyrename.c: Likewise. |
| * tree-ssa-dce.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa-forwprop.c: Likewise. |
| * tree-ssa-ifcombine.c: Likewise. |
| * tree-ssa-live.c: Likewise. |
| * tree-ssa-loop-im.c: Likewise. |
| * tree-ssa-loop-ivcanon.c: Likewise. |
| * tree-ssa-loop-ivopts.c: Likewise. |
| * tree-ssa-loop-manip.c: Likewise. |
| * tree-ssa-loop-niter.c: Likewise. |
| * tree-ssa-loop-prefetch.c: Likewise. |
| * tree-ssa-loop-unswitch.c: Likewise. |
| * tree-ssa-math-opts.c: Likewise. |
| * tree-ssa-operands.c: Likewise. |
| * tree-ssa-phiopt.c: Likewise. |
| * tree-ssa-phiprop.c: Likewise. |
| * tree-ssa-pre.c: Likewise. |
| * tree-ssa-propagate.c: Likewise. |
| * tree-ssa-propagate.h: Likewise. |
| * tree-ssa-reassoc.c: Likewise. |
| * tree-ssa-sccvn.c: Likewise. |
| * tree-ssa-sccvn.h: Likewise. |
| * tree-ssa-sink.c: Likewise. |
| * tree-ssa-strlen.c |
| * tree-ssa-structalias.c |
| * tree-ssa-tail-merge.c: Likewise. |
| * tree-ssa-ter.c: Likewise. |
| * tree-ssa-threadedge.c: Likewise. |
| * tree-ssa-threadedge.h: Likewise. |
| * tree-ssa-threadupdate.c: Likewise. |
| * tree-ssa-uncprop.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-stdarg.c: Likewise. |
| * tree-switch-conversion.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| * tree-vect-data-refs.c: Likewise. |
| * tree-vect-generic.c: Likewise. |
| * tree-vect-loop-manip.c: Likewise. |
| * tree-vect-loop.c: Likewise. |
| * tree-vect-patterns.c: Likewise. |
| * tree-vect-slp.c: Likewise. |
| * tree-vect-stmts.c: Likewise. |
| * tree-vectorizer.h: Likewise. |
| * tree-vrp.c: Likewise. |
| * tree.c: Likewise. |
| * ubsan.c: Likewise. |
| * value-prof.c: Likewise. |
| * value-prof.h: Likewise. |
| * vtable-verify.c: Likewise. |
| |
| 2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * config/rs6000/constraints.md: Avoid signed integer overflows. |
| * config/rs6000/predicates.md: Likewise. |
| |
| 2014-11-19 Renlin Li <Renlin.Li@arm.com> |
| |
| PR target/63424 |
| * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New. |
| |
| 2014-11-19 Renlin Li <Renlin.Li@arm.com> |
| |
| PR middle-end/63762 |
| * ira.c (ira): Update preferred class. |
| |
| 2014-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple.h (gimple_build_assign_with_ops): Add unary arg overload. |
| (gimple_assign_set_rhs_with_ops_1): Renamed to ... |
| (gimple_assign_set_rhs_with_ops): ... this. Adjust binary arg |
| inline overload to use it. Add unary arg overload. |
| * gimple.c (gimple_build_assign_with_ops): New unary arg overload. |
| (gimple_assign_set_rhs_from_tree): Use |
| gimple_assign_set_rhs_with_ops instead of |
| gimple_assign_set_rhs_with_ops_1. |
| (gimple_assign_set_rhs_with_ops_1): Renamed to ... |
| (gimple_assign_set_rhs_with_ops): ... this. |
| * ipa-split.c (split_function): Remove last NULL argument |
| from gimple_build_assign_with_ops call. |
| * tree-ssa-loop-im.c |
| (move_computations_dom_walker::before_dom_children): Likewise. |
| * tsan.c (instrument_builtin_call): Likewise. |
| * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store, |
| vectorizable_conversion, vectorizable_load): Likewise. |
| * tree-vect-loop.c (vect_is_simple_reduction_1, |
| get_initial_def_for_induction): Likewise. |
| * tree-loop-distribution.c (generate_memset_builtin): Likewise. |
| * tree-vect-patterns.c (vect_handle_widen_op_by_const, |
| vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type, |
| vect_recog_over_widening_pattern, vect_recog_rotate_pattern, |
| vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern, |
| vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast, |
| adjust_bool_pattern, vect_recog_bool_pattern): Likewise. |
| * tree-ssa-phiopt.c (conditional_replacement, abs_replacement, |
| neg_replacement): Likewise. |
| * asan.c (build_shadow_mem_access, maybe_create_ssa_name, |
| maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise. |
| * tree-vect-slp.c (vect_get_constant_vectors): Likewise. |
| * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic, |
| expand_omp_for_static_nochunk, expand_omp_for_static_chunk, |
| simd_clone_adjust): Likewise. |
| * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. |
| * gimple-ssa-strength-reduction.c (introduce_cast_before_cand, |
| replace_one_candidate): Likewise. |
| * gimple-builder.c (build_type_cast): Likewise. |
| * tree-ssa-forwprop.c (simplify_rotate): Likewise. |
| (forward_propagate_addr_expr_1): Remove last NULL argument |
| from gimple_assign_set_rhs_with_ops call. |
| (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops |
| instead of gimple_assign_set_rhs_with_ops_1. |
| * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL |
| argument from gimple_build_assign_with_ops call. |
| (repropagate_negates): Remove last NULL argument from |
| gimple_assign_set_rhs_with_ops call. |
| * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove |
| last NULL argument from gimple_build_assign_with_ops call. |
| (instrument_bool_enum_load): Likewise. Remove last NULL argument |
| from gimple_assign_set_rhs_with_ops call. |
| * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma): |
| Remove last NULL argument from gimple_build_assign_with_ops call. |
| (bswap_replace): Likewise. Use gimple_assign_set_rhs_with_ops instead |
| of gimple_assign_set_rhs_with_ops_1. |
| (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops |
| instead of gimple_assign_set_rhs_with_ops_1. |
| * gimple-fold.c (replace_stmt_with_simplification): Likewise. |
| (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument |
| from gimple_build_assign_with_ops call. |
| * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument |
| from gimple_assign_set_rhs_with_ops call. |
| * tree-vrp.c (simplify_truth_ops_using_ranges, |
| simplify_bit_ops_using_ranges): Remove last NULL argument from |
| gimple_assign_set_rhs_with_ops call. |
| (simplify_float_conversion_using_ranges, |
| simplify_internal_call_using_ranges): Remove last NULL argument from |
| gimple_build_assign_with_ops call. |
| |
| 2014-11-19 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/61915 |
| * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move |
| cost. |
| |
| 2014-11-19 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63690 |
| * ubsan.c (instrument_object_size): Check for MEM_REF. |
| |
| 2014-11-19 Ilya Verbin <ilya.verbin@intel.com> |
| |
| PR regression/63868 |
| * cgraph.c (cgraph_node::create): Guard g->have_offload with |
| ifdef ENABLE_OFFLOADING. |
| * omp-low.c (create_omp_child_function): Likewise. |
| (expand_omp_target): Guard node->mark_force_output and offload_funcs |
| with ifdef ENABLE_OFFLOADING. |
| * varpool.c (varpool_node::get_create): Guard g->have_offload and |
| offload_vars with ifdef ENABLE_OFFLOADING. |
| |
| 2014-11-19 Felix Yang <felix.yang@huawei.com> |
| Shanyao Chen <chenshanyao@huawei.com> |
| |
| PR target/59593 |
| * config/arm/arm.md (define_attr "arch"): Add v6t2. |
| (define_attr "arch_enabled"): Add test for the above. |
| (*movhi_insn_arch4): Add new alternative. |
| |
| 2014-11-19 Richard Henderson <rth@redhat.com> |
| |
| * c-family/c-common.c (c_common_reswords): Add |
| __builtin_call_with_static_chain. |
| * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New. |
| * c/c-parser.c (c_parser_postfix_expression): Handle it. |
| * doc/extend.texi (__builtin_call_with_static_chain): Document it. |
| |
| * calls.c (prepare_call_address): Allow decl or type for first arg. |
| (expand_call): Pass type to prepare_call_address if no decl. |
| * gimple-fold.c (gimple_fold_call): Eliminate the static chain if |
| the function doesn't use it; fold it otherwise. |
| * gimplify.c (gimplify_call_expr): Gimplify the static chain. |
| * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect |
| function calls. |
| |
| * targhooks.c (default_static_chain): Remove check for |
| DECL_STATIC_CHAIN. |
| * config/moxie/moxie.c (moxie_static_chain): Likewise. |
| * config/i386/i386.c (ix86_static_chain): Allow decl or type |
| as the first argument. |
| * config/xtensa/xtensa.c (xtensa_static_chain): Change the name |
| of the unused first parameter. |
| * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter |
| may be a type. |
| * target.def (static_chain): Likewise. |
| |
| 2014-11-19 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define |
| __ARM_FP_FAST, __ARM_FEATURE_FMA, __ARM_FP, |
| __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP. |
| |
| 2014-11-19 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63879 |
| * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return |
| !TYPE_OVERFLOW_SANITIZED. |
| (fold_negate_expr) <case INTEGER_CST>: Fold when overflow |
| does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW |
| is 0. |
| |
| 2014-11-19 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * collect2.c (main): Don't call fatal_error before |
| diagnostic_initialize. |
| * lto-wrapper.c (main): Likewise. |
| |
| 2014-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/62167 |
| * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse |
| conservatively. |
| (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of |
| assigns. |
| |
| 2014-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63915 |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass |
| true instead of false as last argument to gsi_replace. |
| |
| PR sanitizer/63520 |
| * internal-fn.c (expand_ubsan_result_store): New function. |
| (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): |
| Use it instead of just emit_move_insn. |
| |
| 2014-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63844 |
| * omp-low.c (fixup_child_record_type): Use a restrict qualified |
| referece type for the receiver parameter. |
| |
| 2014-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/63913 |
| * ubsan.c: Include tree-eh.h. |
| (instrument_bool_enum_load): Handle loads that can throw. |
| |
| PR rtl-optimization/63843 |
| * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For |
| optimization of ashiftrt of subreg of lshiftrt, check that code |
| is ASHIFTRT. |
| |
| 2014-11-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * attribs.c (decl_attributes): Remove always true condition, |
| TREE_TYPE(x) will never compare equal to a TYPE_DECL. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR target/63937 |
| * target.def (use_by_pieces_infrastructure_p): Take unsigned |
| HOST_WIDE_INT as the size parameter. |
| * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise. |
| * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise. |
| * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise. |
| * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise. |
| * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise. |
| * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise. |
| * config/aarch64/aarch64.c |
| (aarch64_use_by_pieces_infrastructure_p)): Likewise. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn. |
| (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check. |
| (ipa_get_indirect_edge_target_1): Use opt_for_fn. |
| (good_cloning_opportunity_p): Likewise. |
| (ipa-cp gate): Enable ipa-cp with LTO. |
| * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Always build type |
| inheritance. |
| * ipa-inline-transform.c (inline_transform): Check if there are inlines |
| to apply even at -O0. |
| * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn. |
| (analyze_functions): Build type inheritance graph. |
| * ipa-inline.c (can_inline_edge_p): Use opt_for_fn. |
| (want_early_inline_function_p, want_inline_small_function_p): |
| Likewise. |
| (check_callers): Likewise. |
| (edge_badness): Likewise. |
| (inline_small_functions): Always be ready for indirect inlining |
| to happend. |
| (ipa_inline): Always use want_inline_function_to_all_callers_p. |
| (early_inline_small_functions): Use opt_for_fn. |
| * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn. |
| (estimate_function_body_sizes): Likewise. |
| (compute_inline_parameters): Likewise. |
| (estimate_edge_devirt_benefit): Likewise. |
| (inline_analyze_function): Likewise. |
| * ipa-devirt.c (ipa_devirt): Likewise. |
| (gate): Use in_lto_p. |
| * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn. |
| (try_make_edge_direct_virtual_call): Likewise. |
| (update_indirect_edges_after_inlining): Likewise. |
| (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check. |
| * common.opt (findirect-inlining): Turn into optimization. |
| * ipa-pure-const.c (add_new_function): Use opt_for_fn. |
| (pure_const_generate_summary): Likewise. |
| (gate_pure_const): Always enable with in_lto_p. |
| |
| 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * config/mips/mips.md (compression): Add `micromips32' setting. |
| (enabled, length): Handle it. |
| (shift_compression): Replace `micromips' with `micromips32' in |
| the `compression' attribute. |
| (*add<mode>3, sub<mode>3): Likewise. |
| |
| 2014-11-18 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in |
| range, a jump otherwise. |
| |
| 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp): |
| Split into... |
| (cortex_a15_gp_to_vfp): ...This. |
| (cortex_a15_fp_to_gp): ...And this. |
| Define and comment bypass from vfp operations to fp->gp moves. |
| |
| 2014-11-18 Martin Liska <mliska@suse.cz> |
| |
| * var-tracking.c (vt_find_locations): New fibonacci_node is used. |
| |
| 2014-11-18 Martin Liska <mliska@suse.cz> |
| |
| * bt-load.c (add_btr_def): New fibonacci_heap is used. |
| (migrate_btr_defs): Likewise. |
| |
| 2014-11-18 Martin Liska <mliska@suse.cz> |
| |
| * tracer.c (tail_duplicate): New fibonacci_heap class is used. |
| |
| 2014-11-18 Martin Liska <mliska@suse.cz> |
| |
| * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used. |
| (find_traces): Likewise. |
| (find_traces_1_round): Likewise. |
| |
| 2014-11-18 Martin Liska <mliska@suse.cz> |
| |
| * fibonacci_heap.h: New file. |
| (fibonacci_heap::insert): Created from fibheap_insert. |
| (fibonacci_heap::empty): Created from fibheap_empty. |
| (fibonacci_heap::nodes): Created from fibheap_nodes. |
| (fibonacci_heap::min_key): Created from fibheap_min_key. |
| (fibonacci_heap::decrease_key): Created from fibheap_replace_key. |
| (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data. |
| (fibonacci_heap::extract_min): Created from fibheap_extract_min. |
| (fibonacci_heap::min): Created from fibheap_min. |
| (fibonacci_heap::replace_data): Created from fibheap_replace_data. |
| (fibonacci_heap::delete_node): Created from fibheap_delete_node. |
| (fibonacci_heap::union_with): Created from fibheap_union. |
| * ipa-inline.c (update_edge_key): New heap API is used. |
| (update_caller_keys): Likewise. |
| (update_callee_keys): Likewise. |
| (lookup_recursive_calls): Likewise. |
| (recursive_inlining): Likewise. |
| (add_new_edges_to_heap): Likewise. |
| (heap_edge_removal_hook): Likewise. |
| (inline_small_functions): Likewise. |
| |
| 2014-11-18 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63866 |
| * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global", |
| put it into TYPE_NAME and TYPE_STUB_DECL. |
| * ubsan.c (ubsan_type_descriptor_type): New variable. |
| Function renamed to ... |
| (ubsan_get_type_descriptor_type): ... this. Cache |
| return value in ubsan_type_descriptor_type variable. |
| Create a TYPE_DECL for "__ubsan_type_descriptor", put it into |
| TYPE_NAME and TYPE_STUB_DECL. |
| (ubsan_get_source_location_type): Create a TYPE_DECL for |
| "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL. |
| (ubsan_type_descriptor, ubsan_create_data): Call |
| ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type. |
| Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL. |
| |
| 2014-11-18 Felix Yang <felix.yang@huawei.com> |
| |
| * config/aarch64/aarch64.c (doloop_end): New pattern. |
| * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement. |
| |
| 2014-11-18 Jason Merrill <jason@redhat.com> |
| |
| * tree.c (warn_deprecated_use): Show declaration with inform. |
| |
| 2014-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63914 |
| * tree-ssa-ccp.c (canonicalize_value): Remove float value |
| canonicalization. |
| (valid_lattice_transition): Allow (partial) transition |
| from NaN to non-NaN if !HONOR_NANS. |
| (set_lattice_value): Check for valid lattice transitions |
| only when checking is enabled. |
| |
| 2014-11-18 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/nvptx/nvptx.c: Include <sstream> directly after "config.h". |
| |
| 2014-11-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/neon-testgen.ml (emit_prologue): Handle new |
| compile_test_optim argument. |
| (emit_automatics): Rename to emit_variables. Support variable |
| indentation of its output. |
| (compile_test_optim): New function. |
| (test_intrinsic): Call compile_test_optim. |
| * config/arm/neon.ml (features): Add Compiler_optim. |
| (ops): Add Compiler_optim feature to Vbic and Vorn. |
| (type_in_crypto_only): Replace 'or' by '||'. |
| (reinterp): Likewise. |
| (reinterpq): Likewise. |
| |
| 2014-11-18 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8, |
| vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64, |
| vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32, |
| vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16, |
| vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16, |
| vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and |
| pointer dereference. |
| |
| 2014-11-18 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.c (element_mode, integer_truep): New functions. |
| * tree.h (element_mode, integer_truep): Declare them. |
| * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons, |
| fold_cond_expr_with_comparison, fold_real_zero_addition_p, |
| fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p, |
| fold_strip_sign_ops): Use element_mode. |
| (fold_binary_loc): Use element_mode and element_precision. |
| * match.pd: Use integer_truep, element_mode, element_precision, |
| VECTOR_TYPE_P and build_one_cst. Extend some transformations to |
| vectors. Simplify A/-A. |
| |
| 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of |
| manual swapping implementation. |
| (movcond_addsi): Likewise. |
| * config/arm/arm.c (arm_canonicalize_comparison): Likewise. |
| (arm_select_dominance_cc_mode): Likewise. |
| (arm_reload_out_hi): Likewise. |
| (gen_operands_ldrd_strd): Likewise. |
| (output_move_double): Likewise. |
| (arm_print_operand_address): Likewise. |
| (thumb_output_move_mem_multiple): Likewise. |
| (SWAP_RTX): Delete. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete. |
| (COPYSIGNF_QUALIFIERS): Likewise. |
| (CREATE_QUALIFIERS): Likewise. |
| (DUP_QUALIFIERS): Likewise. |
| (FLOAT_WIDEN_QUALIFIERS): Likewise. |
| (FLOAT_NARROW_QUALIFIERS): Likewise. |
| (REINTERP_QUALIFIERS): Likewise. |
| (RINT_QUALIFIERS): Likewise. |
| (SPLIT_QUALIFIERS): Likewise. |
| (FIXCONV_QUALIFIERS): Likewise. |
| (SCALARMUL_QUALIFIERS): Likewise. |
| (SCALARMULL_QUALIFIERS): Likewise. |
| (SCALARMULH_QUALIFIERS): Likewise. |
| (SELECT_QUALIFIERS): Likewise. |
| (VTBX_QUALIFIERS): Likewise. |
| (SHIFTIMM_QUALIFIERS): Likewise. |
| (SCALARMAC_QUALIFIERS): Likewise. |
| (LANEMUL_QUALIFIERS): Likewise. |
| (LANEMULH_QUALIFIERS): Likewise. |
| (LANEMULL_QUALIFIERS): Likewise. |
| (SHIFTACC_QUALIFIERS): Likewise. |
| (SHIFTINSERT_QUALIFIERS): Likewise. |
| (VTBL_QUALIFIERS): Likewise. |
| (LOADSTRUCT_QUALIFIERS): Likewise. |
| (LOADSTRUCTLANE_QUALIFIERS): Likewise. |
| (STORESTRUCT_QUALIFIERS): Likewise. |
| (STORESTRUCTLANE_QUALIFIERS): Likewise. |
| (neon_builtin_type_mode): Delete. |
| (v8qi_UP): Map to V8QImode. |
| (v8qi_UP): Map to V8QImode. |
| (v4hi_UP): Map to V4HImode. |
| (v4hf_UP): Map to V4HFmode. |
| (v2si_UP): Map to V2SImode. |
| (v2sf_UP): Map to V2SFmode. |
| (di_UP): Map to DImode. |
| (v16qi_UP): Map to V16QImode. |
| (v8hi_UP): Map to V8HImode. |
| (v4si_UP): Map to V4SImode. |
| (v4sf_UP): Map to V4SFmode. |
| (v2di_UP): Map to V2DImode. |
| (ti_UP): Map to TImode. |
| (ei_UP): Map to EImode. |
| (oi_UP): Map to OImode. |
| (neon_itype): Delete. |
| (neon_builtin_datum): Remove itype, make mode a machine_mode. |
| (VAR1): Update accordingly. |
| (arm_init_neon_builtins): Use machine_mode directly. |
| (neon_dereference_pointer): Likewise. |
| (arm_expand_neon_args): Use qualifiers to decide operand types. |
| (arm_expand_neon_builtin): Likewise. |
| * config/arm/arm_neon_builtins.def: Remap operation type for |
| many builtins. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_scalar_builtin_types): New. |
| (enum arm_simd_type): Likewise. |
| (struct arm_simd_type_info): Likewise |
| (arm_mangle_builtin_scalar_type): Likewise. |
| (arm_mangle_builtin_vector_type): Likewise. |
| (arm_mangle_builtin_type): Likewise. |
| (arm_simd_builtin_std_type): Likewise. |
| (arm_lookup_simd_builtin_type): Likewise. |
| (arm_simd_builtin_type): Likewise. |
| (arm_init_simd_builtin_types): Likewise. |
| (arm_init_simd_builtin_scalar_types): Likewise. |
| (arm_init_neon_builtins): Rewrite using qualifiers. |
| * config/arm/arm-protos.h (arm_mangle_builtin_type): New. |
| * config/arm/arm-simd-builtin-types.def: New file. |
| * config/arm/t-arm (arm-builtins.o): Depend on it. |
| * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type. |
| * config/arm/arm_neon.h (int8x8_t): Use new internal type. |
| (int16x4_t): Likewise. |
| (int32x2_t): Likewise. |
| (float16x4_t): Likewise. |
| (float32x2_t): Likewise. |
| (poly8x8_t): Likewise. |
| (poly16x4_t): Likewise. |
| (uint8x8_t): Likewise. |
| (uint16x4_t): Likewise. |
| (uint32x2_t): Likewise. |
| (int8x16_t): Likewise. |
| (int16x8_t): Likewise. |
| (int32x4_t): Likewise. |
| (int64x2_t): Likewise. |
| (float32x4_t): Likewise. |
| (poly8x16_t): Likewise. |
| (poly16x8_t): Likewise. |
| (uint8x16_t): Likewise. |
| (uint16x8_t): Likewise. |
| (uint32x4_t): Likewise. |
| (uint64x2_t): Likewise. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New. |
| (neon_itype): Add new types corresponding to the types used in |
| qualifiers names. |
| (arm_unop_qualifiers): New. |
| (arm_bswap_qualifiers): Likewise. |
| (arm_binop_qualifiers): Likewise. |
| (arm_ternop_qualifiers): Likewise. |
| (arm_getlane_qualifiers): Likewise. |
| (arm_lanemac_qualifiers): Likewise. |
| (arm_setlane_qualifiers): Likewise. |
| (arm_combine_qualifiers): Likewise. |
| (arm_load1_qualifiers): Likewise. |
| (arm_load1_lane_qualifiers): Likewise. |
| (arm_store1_qualifiers): Likewise. |
| (arm_storestruct_lane_qualifiers): Likewise. |
| (UNOP_QUALIFIERS): Likewise. |
| (DUP_QUALIFIERS): Likewise. |
| (SPLIT_QUALIFIERS): Likewise. |
| (CONVERT_QUALIFIERS): Likewise. |
| (FLOAT_WIDEN_QUALIFIERS): Likewise. |
| (FLOAT_NARROW_QUALIFIERS): Likewise. |
| (RINT_QUALIFIERS): Likewise. |
| (COPYSIGNF_QUALIFIERS): Likewise. |
| (CREATE_QUALIFIERS): Likewise. |
| (REINTERP_QUALIFIERS): Likewise. |
| (BSWAP_QUALIFIERS): Likewise. |
| (BINOP_QUALIFIERS): Likewise. |
| (FIXCONV_QUALIFIERS): Likewise. |
| (SCALARMUL_QUALIFIERS): Likewise. |
| (SCALARMULL_QUALIFIERS): Likewise. |
| (SCALARMULH_QUALIFIERS): Likewise. |
| (TERNOP_QUALIFIERS): Likewise. |
| (SELECT_QUALIFIERS): Likewise. |
| (VTBX_QUALIFIERS): Likewise. |
| (GETLANE_QUALIFIERS): Likewise. |
| (SHIFTIMM_QUALIFIERS): Likewise. |
| (LANEMAC_QUALIFIERS): Likewise. |
| (SCALARMAC_QUALIFIERS): Likewise. |
| (SETLANE_QUALIFIERS): Likewise. |
| (SHIFTINSERT_QUALIFIERS): Likewise. |
| (SHIFTACC_QUALIFIERS): Likewise. |
| (LANEMUL_QUALIFIERS): Likewise. |
| (LANEMULL_QUALIFIERS): Likewise. |
| (LANEMULH_QUALIFIERS): Likewise. |
| (COMBINE_QUALIFIERS): Likewise. |
| (VTBL_QUALIFIERS): Likewise. |
| (LOAD1_QUALIFIERS): Likewise. |
| (LOADSTRUCT_QUALIFIERS): Likewise. |
| (LOAD1LANE_QUALIFIERS): Likewise. |
| (LOADSTRUCTLANE_QUALIFIERS): Likewise. |
| (STORE1_QUALIFIERS): Likewise. |
| (STORESTRUCT_QUALIFIERS): Likewise. |
| (STORE1LANE_QUALIFIERS): Likewise. |
| (STORESTRUCTLANE_QUALIFIERS): Likewise. |
| (neon_builtin_datum): Keep track of qualifiers. |
| (VAR1): Likewise. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm-builtins.c (VAR1): Add a comma. |
| (VAR2): Rewrite in terms of VAR1. |
| (VAR3-10): Likewise. |
| (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX. |
| * config/arm/arm_neon_builtins.def: Remove trailing commas. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*. |
| (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*. |
| * config/arm/arm-builtins.c: New. |
| * config/arm/t-arm (arm_builtins.o): New. |
| * config/arm/arm-protos.h (arm_expand_builtin): New. |
| (arm_builtin_decl): Likewise. |
| (arm_init_builtins): Likewise. |
| (arm_atomic_assign_expand_fenv): Likewise. |
| * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype. |
| (arm_init_builtins): Likewise. |
| (arm_init_iwmmxt_builtins): Likewise |
| (safe_vector_operand): Likewise |
| (arm_expand_binop_builtin): Likewise |
| (arm_expand_unop_builtin): Likewise |
| (arm_expand_builtin): Likewise |
| (arm_builtin_decl): Likewise |
| (insn_flags): Remove static. |
| (tune_flags): Likewise. |
| (enum arm_builtins): Move to config/arm/arm-builtins.c. |
| (arm_init_neon_builtins): Likewise. |
| (struct builtin_description): Likewise. |
| (arm_init_iwmmxt_builtins): Likewise. |
| (arm_init_fp16_builtins): Likewise. |
| (arm_init_crc32_builtins): Likewise. |
| (arm_init_builtins): Likewise. |
| (arm_builtin_decl): Likewise. |
| (safe_vector_operand): Likewise. |
| (arm_expand_ternop_builtin): Likewise. |
| (arm_expand_binop_builtin): Likewise. |
| (arm_expand_unop_builtin): Likewise. |
| (neon_dereference_pointer): Likewise. |
| (arm_expand_neon_args): Likewise. |
| (arm_expand_neon_builtin): Likewise. |
| (neon_split_vcombine): Likewise. |
| (arm_expand_builtin): Likewise. |
| (arm_builtin_vectorized_function): Likewise. |
| (arm_atomic_assign_expand_fenv): Likewise. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe. |
| * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h. |
| (FL_ARCH3M): Likewise. |
| (FL_MODE26): Likewise. |
| (FL_MODE32): Likewise. |
| (FL_ARCH4): Likewise. |
| (FL_ARCH5): Likewise. |
| (FL_THUMB): Likewise. |
| (FL_LDSCHED): Likewise. |
| (FL_STRONG): Likewise. |
| (FL_ARCH5E): Likewise. |
| (FL_XSCALE): Likewise. |
| (FL_ARCH6): Likewise. |
| (FL_VFPV2): Likewise. |
| (FL_WBUF): Likewise. |
| (FL_ARCH6K): Likewise. |
| (FL_THUMB2): Likewise. |
| (FL_NOTM): Likewise. |
| (FL_THUMB_DIV): Likewise. |
| (FL_VFPV3): Likewise. |
| (FL_NEON): Likewise. |
| (FL_ARCH7EM): Likewise. |
| (FL_ARCH7): Likewise. |
| (FL_ARM_DIV): Likewise. |
| (FL_ARCH8): Likewise. |
| (FL_CRC32): Likewise. |
| (FL_SMALLMUL): Likewise. |
| (FL_IWMMXT): Likewise. |
| (FL_IWMMXT2): Likewise. |
| (FL_TUNE): Likewise. |
| (FL_FOR_ARCH2): Likewise. |
| (FL_FOR_ARCH3): Likewise. |
| (FL_FOR_ARCH3M): Likewise. |
| (FL_FOR_ARCH4): Likewise. |
| (FL_FOR_ARCH4T): Likewise. |
| (FL_FOR_ARCH5): Likewise. |
| (FL_FOR_ARCH5T): Likewise. |
| (FL_FOR_ARCH5E): Likewise. |
| (FL_FOR_ARCH5TE): Likewise. |
| (FL_FOR_ARCH5TEJ): Likewise. |
| (FL_FOR_ARCH6): Likewise. |
| (FL_FOR_ARCH6J): Likewise. |
| (FL_FOR_ARCH6K): Likewise. |
| (FL_FOR_ARCH6Z): Likewise. |
| (FL_FOR_ARCH6ZK): Likewise. |
| (FL_FOR_ARCH6T2): Likewise. |
| (FL_FOR_ARCH6M): Likewise. |
| (FL_FOR_ARCH7): Likewise. |
| (FL_FOR_ARCH7A): Likewise. |
| (FL_FOR_ARCH7VE): Likewise. |
| (FL_FOR_ARCH7R): Likewise. |
| (FL_FOR_ARCH7M): Likewise. |
| (FL_FOR_ARCH7EM): Likewise. |
| (FL_FOR_ARCH8A): Likewise. |
| * config/arm/arm-protos.h: Take definitions moved from arm.c. |
| |
| 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word" |
| parameter, rearrange switch statement accordingly. |
| (arm_evpc_neon_vrev): Remove "Magic Word". |
| * config/arm/unspecs.md (unspec): Split many UNSPECs to |
| rounding, or signed/unsigned variants. |
| * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code. |
| (vcondu<mode><mode>): Likewise. |
| (neon_vadd): Remove "Magic Word" operand. |
| (neon_vaddl): Remove "Magic Word" operand, convert to use |
| signed/unsigned iterator. |
| (neon_vaddw): Likewise. |
| (neon_vhadd): Likewise, also iterate over "rounding" forms. |
| (neon_vqadd): Remove "Magic Word" operand, convert to use |
| signed/unsigned iterator. |
| (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate |
| over "rounding" forms. |
| (neon_vmul): Remove "Magic Word" operand, iterate over |
| polynomial/float instruction forms. |
| (neon_vmla): Remove "Magic Word" operand. |
| (neon_vfma): Likewise. |
| (neon_vfms): Likewise. |
| (neon_vmls): Likewise. |
| (neon_vmlal): Remove "Magic Word" operand, iterate over |
| signed/unsigned forms. |
| (neon_vmlsl): Likewise. |
| (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding" |
| forms. |
| (neon_vqdmlal): Remove "Magic Word" operand, iterate over |
| signed/unsigned forms. |
| (neon_vqdmlsl): Likewise. |
| (neon_vmull): Likewise. |
| (neon_vqdmull): Remove "Magic Word" operand. |
| (neon_vsub): Remove "Magic Word" operand. |
| (neon_vsubl): Remove "Magic Word" operand, convert to use |
| signed/unsigned iterator. |
| (neon_vsubw): Likewise. |
| (neon_vhsub): Likewise. |
| (neon_vqsub): Likewise. |
| (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate |
| over "rounding" forms. |
| (neon_vceq): Remove "Magic Word" operand. |
| (neon_vcge): Likewise. |
| (neon_vcgeu): Likewise. |
| (neon_vcgt): Likewise. |
| (neon_vcgtu): Likewise. |
| (neon_vcle): Likewise. |
| (neon_vclt): Likewise. |
| (neon_vcage): Likewise. |
| (neon_vcagt): Likewise. |
| (neon_vabd): Remove "Magic Word" operand, iterate over |
| signed/unsigned forms, and split out... |
| (neon_vabdf): ...this as new. |
| (neon_vabdl): Remove "Magic Word" operand, iterate over |
| signed/unsigned forms. |
| (neon_vaba): Likewise. |
| (neon_vmax): Remove "Magic Word" operand, iterate over |
| signed/unsigned and max/min forms, and split out... |
| (neon_v<maxmin>f): ...this as new. |
| (neon_vmin): Delete. |
| (neon_vpadd): Remove "Magic Word" operand. |
| (neon_vpaddl): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vpadal): Likewise. |
| (neon_vpmax): Remove "Magic Word" operand, iterate over |
| signed/unsigned and max/min forms, and split out... |
| (neon_vp<maxmin>f): ...this as new. |
| (neon_vpmin): Delete. |
| (neon_vrecps): Remove "Magic Word" operand. |
| (neon_vrsqrts): Likewise. |
| (neon_vabs): Likewise. |
| (neon_vqabs): Likewise. |
| (neon_vneg): Likewise. |
| (neon_vqneg): Likewise. |
| (neon_vcls): Likewise. |
| (neon_vcnt): Likewise. |
| (neon_vrecpe): Likewise. |
| (neon_vrsqrte): Likewise. |
| (neon_vmvn): Likewise. |
| (neon_vget_lane): Likewise. |
| (neon_vget_laneu): New. |
| (neon_vget_lanedi): Remove "Magic Word" operand. |
| (neon_vget_lanev2di): Likewise. |
| (neon_vcvt): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vcvt_n): Likewise. |
| (neon_vmovn): Remove "Magic Word" operand. |
| (neon_vqmovn): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vmovun): Remove "Magic Word" operand. |
| (neon_vmovl): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vmul_lane): Remove "Magic Word" operand. |
| (neon_vmull_lane): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vqdmull_lane): Remove "Magic Word" operand. |
| (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over |
| rounding variants. |
| (neon_vmla_lane): Remove "Magic Word" operand. |
| (neon_vmlal_lane): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vqdmlal_lane): Remove "Magic Word" operand. |
| (neon_vmls_lane): Likewise. |
| (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vqdmlsl_lane): Remove "Magic Word" operand. |
| (neon_vmul_n): Remove "Magic Word" operand. |
| (neon_vmull_n): Rename to... |
| (neon_vmulls_n): ...this, remove "Magic Word" operand. |
| (neon_vmullu_n): New. |
| (neon_vqdmull_n): Remove "Magic Word" operand. |
| (neon_vqdmulh_n): Likewise. |
| (neon_vqrdmulh_n): New. |
| (neon_vmla_n): Remove "Magic Word" operand. |
| (neon_vmls_n): Likewise. |
| (neon_vmlal_n): Rename to... |
| (neon_vmlals_n): ...this, remove "Magic Word" operand. |
| (neon_vmlalu_n): New. |
| (neon_vqdmlal_n): Remove "Magic Word" operand. |
| (neon_vmlsl_n): Rename to... |
| (neon_vmlsls_n): ...this, remove "Magic Word" operand. |
| (neon_vmlslu_n): New. |
| (neon_vqdmlsl_n): Remove "Magic Word" operand. |
| (neon_vrev64): Remove "Magic Word" operand. |
| (neon_vrev32): Likewise. |
| (neon_vrev16): Likewise. |
| (neon_vshl): Remove "Magic Word" operand, iterate over |
| signed/unsigned and "rounding" forms. |
| (neon_vqshl): Likewise. |
| (neon_vshr_n): Likewise. |
| (neon_vshrn_n): Remove "Magic Word" operand, iterate over |
| "rounding" forms. |
| (neon_vqshrn_n): Remove "Magic Word" operand, iterate over |
| signed/unsigned and "rounding" forms. |
| (neon_vqshrun_n): Remove "Magic Word" operand, iterate over |
| "rounding" forms. |
| (neon_vshl_n): Remove "Magic Word" operand. |
| (neon_vqshl_n): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vqshlu_n): Remove "Magic Word" operand. |
| (neon_vshll_n): Remove "Magic Word" operand, iterate over |
| signed/unsigned variants. |
| (neon_vsra_n): Remove "Magic Word" operand, iterate over |
| signed/unsigned and "rounding" forms. |
| * config/arm/iterators.md (VPF): New. |
| (VADDL): Likewise. |
| (VADDW): Likewise. |
| (VHADD): Likewise. |
| (VQADD): Likewise. |
| (VADDHN): Likewise. |
| (VMLAL): Likewise. |
| (VMLAL_LANE): Likewise. |
| (VLMSL): Likewise. |
| (VMLSL_LANE): Likewise. |
| (VQDMULH): Likewise, |
| (VQDMULH_LANE): Likewise. |
| (VMULL): Likewise. |
| (VMULL_LANE): Likewise. |
| (VSUBL): Likewise. |
| (VSUBW): Likewise. |
| (VHSUB): Likewise. |
| (VQSUB): Likewise. |
| (VSUBHN): Likewise. |
| (VABD): Likewise. |
| (VABDL): Likewise. |
| (VMAXMIN): Likewise. |
| (VMAXMINF): Likewise. |
| (VPADDL): Likewise. |
| (VPADAL): Likewise. |
| (VPMAXMIN): Likewise. |
| (VPMAXMINF): Likewise. |
| (VCVT_US): Likewise. |
| (VCVT_US_N): Likewise. |
| (VQMOVN): Likewise. |
| (VMOVL): Likewise. |
| (VSHL): Likewise. |
| (VQSHL): Likewise. |
| (VSHR_N): Likewise. |
| (VSHRN_N): Likewise. |
| (VQSHRN_N): Likewise. |
| (VQSHRUN_N): Likewise. |
| (VQSHL_N): Likewise. |
| (VSHLL_N): Likewise. |
| (VSRA_N): Likewise. |
| (pf): Likewise. |
| (sup): Likewise. |
| (r): Liekwise. |
| (maxmin): Likewise. |
| (shift_op): Likewise. |
| * config/arm/arm_neon_builtins.def (vaddl): Split to... |
| (vaddls): ...this and... |
| (vaddlu): ...this. |
| (vaddw): Split to... |
| (vaddws): ...this and... |
| (vaddwu): ...this. |
| (vhadd): Split to... |
| (vhadds): ...this and... |
| (vhaddu): ...this and... |
| (vrhadds): ...this and... |
| (vrhaddu): ...this. |
| (vqadd): Split to... |
| (vqadds): ...this and... |
| (vqaddu): ...this. |
| (vaddhn): Split to itself and... |
| (vraddhn): ...this. |
| (vmul): Split to... |
| (vmulf): ...this and... |
| (vmulp): ...this. |
| (vmlal): Split to... |
| (vmlals): ...this and... |
| (vmlalu): ...this. |
| (vmlsl): Split to... |
| (vmlsls): ...this and... |
| (vmlslu): ...this. |
| (vqdmulh): Split to itself and... |
| (vqrdmulh): ...this. |
| (vmull): Split to... |
| (vmullp): ...this and... |
| (vmulls): ...this and... |
| (vmullu): ...this. |
| (vmull_n): Split to... |
| (vmulls_n): ...this and... |
| (vmullu_n): ...this. |
| (vmull_lane): Split to... |
| (vmulls_lane): ...this and... |
| (vmullu_lane): ...this. |
| (vqdmulh_n): Split to itself and... |
| (vqrdmulh_n): ...this. |
| (vqdmulh_lane): Split to itself and... |
| (vqrdmulh_lane): ...this. |
| (vshl): Split to... |
| (vshls): ...this and... |
| (vshlu): ...this and... |
| (vrshls): ...this and... |
| (vrshlu): ...this. |
| (vqshl): Split to... |
| (vqshls): ...this and... |
| (vqrshlu): ...this and... |
| (vqrshls): ...this and... |
| (vqrshlu): ...this. |
| (vshr_n): Split to... |
| (vshrs_n): ...this and... |
| (vshru_n): ...this and... |
| (vrshrs_n): ...this and... |
| (vrshru_n): ...this. |
| (vshrn_n): Split to itself and... |
| (vrshrn_n): ...this. |
| (vqshrn_n): Split to... |
| (vqshrns_n): ...this and... |
| (vqshrnu_n): ...this and... |
| (vqrshrns_n): ...this and... |
| (vqrshrnu_n): ...this. |
| (vqshrun_n): Split to itself and... |
| (vqrshrun_n): ...this. |
| (vqshl_n): Split to... |
| (vqshl_s_n): ...this and... |
| (vqshl_u_n): ...this. |
| (vshll_n): Split to... |
| (vshlls_n): ...this and... |
| (vshllu_n): ...this. |
| (vsra_n): Split to... |
| (vsras_n): ...this and... |
| (vsrau_n): ...this and. |
| (vrsras_n): ...this and... |
| (vrsrau_n): ...this and. |
| (vsubl): Split to... |
| (vsubls): ...this and... |
| (vsublu): ...this. |
| (vsubw): Split to... |
| (vsubws): ...this and... |
| (vsubwu): ...this. |
| (vqsub): Split to... |
| (vqsubs): ...this and... |
| (vqsubu): ...this. |
| (vhsub): Split to... |
| (vhsubs): ...this and... |
| (vhsubu): ...this. |
| (vsubhn): Split to itself and... |
| (vrsubhn): ...this. |
| (vabd): Split to... |
| (vabds): ...this and... |
| (vabdu): ...this and... |
| (vabdf): ...this. |
| (vabdl): Split to... |
| (vabdls): ...this and... |
| (vabdlu): ...this. |
| (vaba): Split to... |
| (vabas): ...this and... |
| (vabau): ...this and... |
| (vabal): Split to... |
| (vabals): ...this and... |
| (vabalu): ...this. |
| (vmax): Split to... |
| (vmaxs): ...this and... |
| (vmaxu): ...this and... |
| (vmaxf): ...this. |
| (vmin): Split to... |
| (vmins): ...this and... |
| (vminu): ...this and... |
| (vminf): ...this. |
| (vpmax): Split to... |
| (vpmaxs): ...this and... |
| (vpmaxu): ...this and... |
| (vpmaxf): ...this. |
| (vpmin): Split to... |
| (vpmins): ...this and... |
| (vpminu): ...this and... |
| (vpminf): ...this. |
| (vpaddl): Split to... |
| (vpaddls): ...this and... |
| (vpaddlu): ...this. |
| (vpadal): Split to... |
| (vpadals): ...this and... |
| (vpadalu): ...this. |
| (vget_laneu): New. |
| (vqmovn): Split to... |
| (vqmovns): ...this and... |
| (vqmovnu): ...this. |
| (vmovl): Split to... |
| (vmovls): ...this and... |
| (vmovlu): ...this. |
| (vmlal_lane): Split to... |
| (vmlals_lane): ...this and... |
| (vmlalu_lane): ...this. |
| (vmlsl_lane): Split to... |
| (vmlsls_lane): ...this and... |
| (vmlslu_lane): ...this. |
| (vmlal_n): Split to... |
| (vmlals_n): ...this and... |
| (vmlalu_n): ...this. |
| (vmlsl_n): Split to... |
| (vmlsls_n): ...this and... |
| (vmlslu_n): ...this. |
| (vext): Make type "SHIFTINSERT". |
| (vcvt): Split to... |
| (vcvts): ...this and... |
| (vcvtu): ...this. |
| (vcvt_n): Split to... |
| (vcvts_n): ...this and... |
| (vcvtu_n): ...this. |
| * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word". |
| (vaddl_s16): Likewise. |
| (vaddl_s32): Likewise. |
| (vaddl_u8): Likewise. |
| (vaddl_u16): Likewise. |
| (vaddl_u32): Likewise. |
| (vaddw_s8): Likewise. |
| (vaddw_s16): Likewise. |
| (vaddw_s32): Likewise. |
| (vaddw_u8): Likewise. |
| (vaddw_u16): Likewise. |
| (vaddw_u32): Likewise. |
| (vhadd_s8): Likewise. |
| (vhadd_s16): Likewise. |
| (vhadd_s32): Likewise. |
| (vhadd_u8): Likewise. |
| (vhadd_u16): Likewise. |
| (vhadd_u32): Likewise. |
| (vhaddq_s8): Likewise. |
| (vhaddq_s16): Likewise. |
| (vhaddq_s32): Likewise. |
| (vhaddq_u8): Likewise. |
| (vhaddq_u16): Likewise. |
| (vrhadd_s8): Likewise. |
| (vrhadd_s16): Likewise. |
| (vrhadd_s32): Likewise. |
| (vrhadd_u8): Likewise. |
| (vrhadd_u16): Likewise. |
| (vrhadd_u32): Likewise. |
| (vrhaddq_s8): Likewise. |
| (vrhaddq_s16): Likewise. |
| (vrhaddq_s32): Likewise. |
| (vrhaddq_u8): Likewise. |
| (vrhaddq_u16): Likewise. |
| (vrhaddq_u32): Likewise. |
| (vqadd_s8): Likewise. |
| (vqadd_s16): Likewise. |
| (vqadd_s32): Likewise. |
| (vqadd_s64): Likewise. |
| (vqadd_u8): Likewise. |
| (vqadd_u16): Likewise. |
| (vqadd_u32): Likewise. |
| (vqadd_u64): Likewise. |
| (vqaddq_s8): Likewise. |
| (vqaddq_s16): Likewise. |
| (vqaddq_s32): Likewise. |
| (vqaddq_s64): Likewise. |
| (vqaddq_u8): Likewise. |
| (vqaddq_u16): Likewise. |
| (vqaddq_u32): Likewise. |
| (vqaddq_u64): Likewise. |
| (vaddhn_s16): Likewise. |
| (vaddhn_s32): Likewise. |
| (vaddhn_s64): Likewise. |
| (vaddhn_u16): Likewise. |
| (vaddhn_u32): Likewise. |
| (vaddhn_u64): Likewise. |
| (vraddhn_s16): Likewise. |
| (vraddhn_s32): Likewise. |
| (vraddhn_s64): Likewise. |
| (vraddhn_u16): Likewise. |
| (vraddhn_u32): Likewise. |
| (vraddhn_u64): Likewise. |
| (vmul_p8): Likewise. |
| (vmulq_p8): Likewise. |
| (vqdmulh_s16): Likewise. |
| (vqdmulh_s32): Likewise. |
| (vqdmulhq_s16): Likewise. |
| (vqdmulhq_s32): Likewise. |
| (vqrdmulh_s16): Likewise. |
| (vqrdmulh_s32): Likewise. |
| (vqrdmulhq_s16): Likewise. |
| (vqrdmulhq_s32): Likewise. |
| (vmull_s8): Likewise. |
| (vmull_s16): Likewise. |
| (vmull_s32): Likewise. |
| (vmull_u8): Likewise. |
| (vmull_u16): Likewise. |
| (vmull_u32): Likewise. |
| (vmull_p8): Likewise. |
| (vqdmull_s16): Likewise. |
| (vqdmull_s32): Likewise. |
| (vmla_s8): Likewise. |
| (vmla_s16): Likewise. |
| (vmla_s32): Likewise. |
| (vmla_f32): Likewise. |
| (vmla_u8): Likewise. |
| (vmla_u16): Likewise. |
| (vmla_u32): Likewise. |
| (vmlaq_s8): Likewise. |
| (vmlaq_s16): Likewise. |
| (vmlaq_s32): Likewise. |
| (vmlaq_f32): Likewise. |
| (vmlaq_u8): Likewise. |
| (vmlaq_u16): Likewise. |
| (vmlaq_u32): Likewise. |
| (vmlal_s8): Likewise. |
| (vmlal_s16): Likewise. |
| (vmlal_s32): Likewise. |
| (vmlal_u8): Likewise. |
| (vmlal_u16): Likewise. |
| (vmlal_u32): Likewise. |
| (vqdmlal_s16): Likewise. |
| (vqdmlal_s32): Likewise. |
| (vmls_s8): Likewise. |
| (vmls_s16): Likewise. |
| (vmls_s32): Likewise. |
| (vmls_f32): Likewise. |
| (vmls_u8): Likewise. |
| (vmls_u16): Likewise. |
| (vmls_u32): Likewise. |
| (vmlsq_s8): Likewise. |
| (vmlsq_s16): Likewise. |
| (vmlsq_s32): Likewise. |
| (vmlsq_f32): Likewise. |
| (vmlsq_u8): Likewise. |
| (vmlsq_u16): Likewise. |
| (vmlsq_u32): Likewise. |
| (vmlsl_s8): Likewise. |
| (vmlsl_s16): Likewise. |
| (vmlsl_s32): Likewise. |
| (vmlsl_u8): Likewise. |
| (vmlsl_u16): Likewise. |
| (vmlsl_u32): Likewise. |
| (vqdmlsl_s16): Likewise. |
| (vqdmlsl_s32): Likewise. |
| (vfma_f32): Likewise. |
| (vfmaq_f32): Likewise. |
| (vfms_f32): Likewise. |
| (vfmsq_f32): Likewise. |
| (vsubl_s8): Likewise. |
| (vsubl_s16): Likewise. |
| (vsubl_s32): Likewise. |
| (vsubl_u8): Likewise. |
| (vsubl_u16): Likewise. |
| (vsubl_u32): Likewise. |
| (vsubw_s8): Likewise. |
| (vsubw_s16): Likewise. |
| (vsubw_s32): Likewise. |
| (vsubw_u8): Likewise. |
| (vsubw_u16): Likewise. |
| (vsubw_u32): Likewise. |
| (vhsub_s8): Likewise. |
| (vhsub_s16): Likewise. |
| (vhsub_s32): Likewise. |
| (vhsub_u8): Likewise. |
| (vhsub_u16): Likewise. |
| (vhsub_u32): Likewise. |
| (vhsubq_s8): Likewise. |
| (vhsubq_s16): Likewise. |
| (vhsubq_s32): Likewise. |
| (vhsubq_u8): Likewise. |
| (vhsubq_u16): Likewise. |
| (vhsubq_u32): Likewise. |
| (vqsub_s8): Likewise. |
| (vqsub_s16): Likewise. |
| (vqsub_s32): Likewise. |
| (vqsub_s64): Likewise. |
| (vqsub_u8): Likewise. |
| (vqsub_u16): Likewise. |
| (vqsub_u32): Likewise. |
| (vqsub_u64): Likewise. |
| (vqsubq_s8): Likewise. |
| (vqsubq_s16): Likewise. |
| (vqsubq_s32): Likewise. |
| (vqsubq_s64): Likewise. |
| (vqsubq_u8): Likewise. |
| (vqsubq_u16): Likewise. |
| (vqsubq_u32): Likewise. |
| (vqsubq_u64): Likewise. |
| (vsubhn_s16): Likewise. |
| (vsubhn_s32): Likewise. |
| (vsubhn_s64): Likewise. |
| (vsubhn_u16): Likewise. |
| (vsubhn_u32): Likewise. |
| (vsubhn_u64): Likewise. |
| (vrsubhn_s16): Likewise. |
| (vrsubhn_s32): Likewise. |
| (vrsubhn_s64): Likewise. |
| (vrsubhn_u16): Likewise. |
| (vrsubhn_u32): Likewise. |
| (vrsubhn_u64): Likewise. |
| (vceq_s8): Likewise. |
| (vceq_s16): Likewise. |
| (vceq_s32): Likewise. |
| (vceq_f32): Likewise. |
| (vceq_u8): Likewise. |
| (vceq_u16): Likewise. |
| (vceq_u32): Likewise. |
| (vceq_p8): Likewise. |
| (vceqq_s8): Likewise. |
| (vceqq_s16): Likewise. |
| (vceqq_s32): Likewise. |
| (vceqq_f32): Likewise. |
| (vceqq_u8): Likewise. |
| (vceqq_u16): Likewise. |
| (vceqq_u32): Likewise. |
| (vceqq_p8): Likewise. |
| (vcge_s8): Likewise. |
| (vcge_s16): Likewise. |
| (vcge_s32): Likewise. |
| (vcge_f32): Likewise. |
| (vcge_u8): Likewise. |
| (vcge_u16): Likewise. |
| (vcge_u32): Likewise. |
| (vcgeq_s8): Likewise. |
| (vcgeq_s16): Likewise. |
| (vcgeq_s32): Likewise. |
| (vcgeq_f32): Likewise. |
| (vcgeq_u8): Likewise. |
| (vcgeq_u16): Likewise. |
| (vcgeq_u32): Likewise. |
| (vcle_s8): Likewise. |
| (vcle_s16): Likewise. |
| (vcle_s32): Likewise. |
| (vcle_f32): Likewise. |
| (vcle_u8): Likewise. |
| (vcle_u16): Likewise. |
| (vcle_u32): Likewise. |
| (vcleq_s8): Likewise. |
| (vcleq_s16): Likewise. |
| (vcleq_s32): Likewise. |
| (vcleq_f32): Likewise. |
| (vcleq_u8): Likewise. |
| (vcleq_u16): Likewise. |
| (vcleq_u32): Likewise. |
| (vcgt_s8): Likewise. |
| (vcgt_s16): Likewise. |
| (vcgt_s32): Likewise. |
| (vcgt_f32): Likewise. |
| (vcgt_u8): Likewise. |
| (vcgt_u16): Likewise. |
| (vcgt_u32): Likewise. |
| (vcgtq_s8): Likewise. |
| (vcgtq_s16): Likewise. |
| (vcgtq_s32): Likewise. |
| (vcgtq_f32): Likewise. |
| (vcgtq_u8): Likewise. |
| (vcgtq_u16): Likewise. |
| (vcgtq_u32): Likewise. |
| (vclt_s8): Likewise. |
| (vclt_s16): Likewise. |
| (vclt_s32): Likewise. |
| (vclt_f32): Likewise. |
| (vclt_u8): Likewise. |
| (vclt_u16): Likewise. |
| (vclt_u32): Likewise. |
| (vcltq_s8): Likewise. |
| (vcltq_s16): Likewise. |
| (vcltq_s32): Likewise. |
| (vcltq_f32): Likewise. |
| (vcltq_u8): Likewise. |
| (vcltq_u16): Likewise. |
| (vcltq_u32): Likewise. |
| (vcage_f32): Likewise. |
| (vcageq_f32): Likewise. |
| (vcale_f32): Likewise. |
| (vcaleq_f32): Likewise. |
| (vcagt_f32): Likewise. |
| (vcagtq_f32): Likewise. |
| (vcalt_f32): Likewise. |
| (vcaltq_f32): Likewise. |
| (vtst_s8): Likewise. |
| (vtst_s16): Likewise. |
| (vtst_s32): Likewise. |
| (vtst_u8): Likewise. |
| (vtst_u16): Likewise. |
| (vtst_u32): Likewise. |
| (vtst_p8): Likewise. |
| (vtstq_s8): Likewise. |
| (vtstq_s16): Likewise. |
| (vtstq_s32): Likewise. |
| (vtstq_u8): Likewise. |
| (vtstq_u16): Likewise. |
| (vtstq_u32): Likewise. |
| (vtstq_p8): Likewise. |
| (vabd_s8): Likewise. |
| (vabd_s16): Likewise. |
| (vabd_s32): Likewise. |
| (vabd_f32): Likewise. |
| (vabd_u8): Likewise. |
| (vabd_u16): Likewise. |
| (vabd_u32): Likewise. |
| (vabdq_s8): Likewise. |
| (vabdq_s16): Likewise. |
| (vabdq_s32): Likewise. |
| (vabdq_f32): Likewise. |
| (vabdq_u8): Likewise. |
| (vabdq_u16): Likewise. |
| (vabdq_u32): Likewise. |
| (vabdl_s8): Likewise. |
| (vabdl_s16): Likewise. |
| (vabdl_s32): Likewise. |
| (vabdl_u8): Likewise. |
| (vabdl_u16): Likewise. |
| (vabdl_u32): Likewise. |
| (vaba_s8): Likewise. |
| (vaba_s16): Likewise. |
| (vaba_s32): Likewise. |
| (vaba_u8): Likewise. |
| (vaba_u16): Likewise. |
| (vaba_u32): Likewise. |
| (vabaq_s8): Likewise. |
| (vabaq_s16): Likewise. |
| (vabaq_s32): Likewise. |
| (vabaq_u8): Likewise. |
| (vabaq_u16): Likewise. |
| (vabaq_u32): Likewise. |
| (vabal_s8): Likewise. |
| (vabal_s16): Likewise. |
| (vabal_s32): Likewise. |
| (vabal_u8): Likewise. |
| (vabal_u16): Likewise. |
| (vabal_u32): Likewise. |
| (vmax_s8): Likewise. |
| (vmax_s16): Likewise. |
| (vmax_s32): Likewise. |
| (vmax_f32): Likewise. |
| (vmax_u8): Likewise. |
| (vmax_u16): Likewise. |
| (vmax_u32): Likewise. |
| (vmaxq_s8): Likewise. |
| (vmaxq_s16): Likewise. |
| (vmaxq_s32): Likewise. |
| (vmaxq_f32): Likewise. |
| (vmaxq_u8): Likewise. |
| (vmaxq_u16): Likewise. |
| (vmaxq_u32): Likewise. |
| (vmin_s8): Likewise. |
| (vmin_s16): Likewise. |
| (vmin_s32): Likewise. |
| (vmin_f32): Likewise. |
| (vmin_u8): Likewise. |
| (vmin_u16): Likewise. |
| (vmin_u32): Likewise. |
| (vminq_s8): Likewise. |
| (vminq_s16): Likewise. |
| (vminq_s32): Likewise. |
| (vminq_f32): Likewise. |
| (vminq_u8): Likewise. |
| (vminq_u16): Likewise. |
| (vminq_u32): Likewise. |
| (vpadd_s8): Likewise. |
| (vpadd_s16): Likewise. |
| (vpadd_s32): Likewise. |
| (vpadd_f32): Likewise. |
| (vpadd_u8): Likewise. |
| (vpadd_u16): Likewise. |
| (vpadd_u32): Likewise. |
| (vpaddl_s8): Likewise. |
| (vpaddl_s16): Likewise. |
| (vpaddl_s32): Likewise. |
| (vpaddl_u8): Likewise. |
| (vpaddl_u16): Likewise. |
| (vpaddl_u32): Likewise. |
| (vpaddlq_s8): Likewise. |
| (vpaddlq_s16): Likewise. |
| (vpaddlq_s32): Likewise. |
| (vpaddlq_u8): Likewise. |
| (vpaddlq_u16): Likewise. |
| (vpaddlq_u32): Likewise. |
| (vpadal_s8): Likewise. |
| (vpadal_s16): Likewise. |
| (vpadal_s32): Likewise. |
| (vpadal_u8): Likewise. |
| (vpadal_u16): Likewise. |
| (vpadal_u32): Likewise. |
| (vpadalq_s8): Likewise. |
| (vpadalq_s16): Likewise. |
| (vpadalq_s32): Likewise. |
| (vpadalq_u8): Likewise. |
| (vpadalq_u16): Likewise. |
| (vpadalq_u32): Likewise. |
| (vpmax_s8): Likewise. |
| (vpmax_s16): Likewise. |
| (vpmax_s32): Likewise. |
| (vpmax_f32): Likewise. |
| (vpmax_u8): Likewise. |
| (vpmax_u16): Likewise. |
| (vpmax_u32): Likewise. |
| (vpmin_s8): Likewise. |
| (vpmin_s16): Likewise. |
| (vpmin_s32): Likewise. |
| (vpmin_f32): Likewise. |
| (vpmin_u8): Likewise. |
| (vpmin_u16): Likewise. |
| (vpmin_u32): Likewise. |
| (vrecps_f32): Likewise. |
| (vrecpsq_f32): Likewise. |
| (vrsqrts_f32): Likewise. |
| (vrsqrtsq_f32): Likewise. |
| (vshl_s8): Likewise. |
| (vshl_s16): Likewise. |
| (vshl_s32): Likewise. |
| (vshl_s64): Likewise. |
| (vshl_u8): Likewise. |
| (vshl_u16): Likewise. |
| (vshl_u32): Likewise. |
| (vshl_u64): Likewise. |
| (vshlq_s8): Likewise. |
| (vshlq_s16): Likewise. |
| (vshlq_s32): Likewise. |
| (vshlq_s64): Likewise. |
| (vshlq_u8): Likewise. |
| (vshlq_u16): Likewise. |
| (vshlq_u32): Likewise. |
| (vshlq_u64): Likewise. |
| (vrshl_s8): Likewise. |
| (vrshl_s16): Likewise. |
| (vrshl_s32): Likewise. |
| (vrshl_s64): Likewise. |
| (vrshl_u8): Likewise. |
| (vrshl_u16): Likewise. |
| (vrshl_u32): Likewise. |
| (vrshl_u64): Likewise. |
| (vrshlq_s8): Likewise. |
| (vrshlq_s16): Likewise. |
| (vrshlq_s32): Likewise. |
| (vrshlq_s64): Likewise. |
| (vrshlq_u8): Likewise. |
| (vrshlq_u16): Likewise. |
| (vrshlq_u32): Likewise. |
| (vrshlq_u64): Likewise. |
| (vqshl_s8): Likewise. |
| (vqshl_s16): Likewise. |
| (vqshl_s32): Likewise. |
| (vqshl_s64): Likewise. |
| (vqshl_u8): Likewise. |
| (vqshl_u16): Likewise. |
| (vqshl_u32): Likewise. |
| (vqshl_u64): Likewise. |
| (vqshlq_s8): Likewise. |
| (vqshlq_s16): Likewise. |
| (vqshlq_s32): Likewise. |
| (vqshlq_s64): Likewise. |
| (vqshlq_u8): Likewise. |
| (vqshlq_u16): Likewise. |
| (vqshlq_u32): Likewise. |
| (vqshlq_u64): Likewise. |
| (vqrshl_s8): Likewise. |
| (vqrshl_s16): Likewise. |
| (vqrshl_s32): Likewise. |
| (vqrshl_s64): Likewise. |
| (vqrshl_u8): Likewise. |
| (vqrshl_u16): Likewise. |
| (vqrshl_u32): Likewise. |
| (vqrshl_u64): Likewise. |
| (vqrshlq_s8): Likewise. |
| (vqrshlq_s16): Likewise. |
| (vqrshlq_s32): Likewise. |
| (vqrshlq_s64): Likewise. |
| (vqrshlq_u8): Likewise. |
| (vqrshlq_u16): Likewise. |
| (vqrshlq_u32): Likewise. |
| (vqrshlq_u64): Likewise. |
| (vshr_n_s8): Likewise. |
| (vshr_n_s16): Likewise. |
| (vshr_n_s32): Likewise. |
| (vshr_n_s64): Likewise. |
| (vshr_n_u8): Likewise. |
| (vshr_n_u16): Likewise. |
| (vshr_n_u32): Likewise. |
| (vshr_n_u64): Likewise. |
| (vshrq_n_s8): Likewise. |
| (vshrq_n_s16): Likewise. |
| (vshrq_n_s32): Likewise. |
| (vshrq_n_s64): Likewise. |
| (vshrq_n_u8): Likewise. |
| (vshrq_n_u16): Likewise. |
| (vshrq_n_u32): Likewise. |
| (vshrq_n_u64): Likewise. |
| (vrshr_n_s8): Likewise. |
| (vrshr_n_s16): Likewise. |
| (vrshr_n_s32): Likewise. |
| (vrshr_n_s64): Likewise. |
| (vrshr_n_u8): Likewise. |
| (vrshr_n_u16): Likewise. |
| (vrshr_n_u32): Likewise. |
| (vrshr_n_u64): Likewise. |
| (vrshrq_n_s8): Likewise. |
| (vrshrq_n_s16): Likewise. |
| (vrshrq_n_s32): Likewise. |
| (vrshrq_n_s64): Likewise. |
| (vrshrq_n_u8): Likewise. |
| (vrshrq_n_u16): Likewise. |
| (vrshrq_n_u32): Likewise. |
| (vrshrq_n_u64): Likewise. |
| (vshrn_n_s16): Likewise. |
| (vshrn_n_s32): Likewise. |
| (vshrn_n_s64): Likewise. |
| (vshrn_n_u16): Likewise. |
| (vshrn_n_u32): Likewise. |
| (vshrn_n_u64): Likewise. |
| (vrshrn_n_s16): Likewise. |
| (vrshrn_n_s32): Likewise. |
| (vrshrn_n_s64): Likewise. |
| (vrshrn_n_u16): Likewise. |
| (vrshrn_n_u32): Likewise. |
| (vrshrn_n_u64): Likewise. |
| (vqshrn_n_s16): Likewise. |
| (vqshrn_n_s32): Likewise. |
| (vqshrn_n_s64): Likewise. |
| (vqshrn_n_u16): Likewise. |
| (vqshrn_n_u32): Likewise. |
| (vqshrn_n_u64): Likewise. |
| (vqrshrn_n_s16): Likewise. |
| (vqrshrn_n_s32): Likewise. |
| (vqrshrn_n_s64): Likewise. |
| (vqrshrn_n_u16): Likewise. |
| (vqrshrn_n_u32): Likewise. |
| (vqrshrn_n_u64): Likewise. |
| (vqshrun_n_s16): Likewise. |
| (vqshrun_n_s32): Likewise. |
| (vqshrun_n_s64): Likewise. |
| (vqrshrun_n_s16): Likewise. |
| (vqrshrun_n_s32): Likewise. |
| (vqrshrun_n_s64): Likewise. |
| (vshl_n_s8): Likewise. |
| (vshl_n_s16): Likewise. |
| (vshl_n_s32): Likewise. |
| (vshl_n_s64): Likewise. |
| (vshl_n_u8): Likewise. |
| (vshl_n_u16): Likewise. |
| (vshl_n_u32): Likewise. |
| (vshl_n_u64): Likewise. |
| (vshlq_n_s8): Likewise. |
| (vshlq_n_s16): Likewise. |
| (vshlq_n_s32): Likewise. |
| (vshlq_n_s64): Likewise. |
| (vshlq_n_u8): Likewise. |
| (vshlq_n_u16): Likewise. |
| (vshlq_n_u32): Likewise. |
| (vshlq_n_u64): Likewise. |
| (vqshl_n_s8): Likewise. |
| (vqshl_n_s16): Likewise. |
| (vqshl_n_s32): Likewise. |
| (vqshl_n_s64): Likewise. |
| (vqshl_n_u8): Likewise. |
| (vqshl_n_u16): Likewise. |
| (vqshl_n_u32): Likewise. |
| (vqshl_n_u64): Likewise. |
| (vqshlq_n_s8): Likewise. |
| (vqshlq_n_s16): Likewise. |
| (vqshlq_n_s32): Likewise. |
| (vqshlq_n_s64): Likewise. |
| (vqshlq_n_u8): Likewise. |
| (vqshlq_n_u16): Likewise. |
| (vqshlq_n_u32): Likewise. |
| (vqshlq_n_u64): Likewise. |
| (vqshlu_n_s8): Likewise. |
| (vqshlu_n_s16): Likewise. |
| (vqshlu_n_s32): Likewise. |
| (vqshlu_n_s64): Likewise. |
| (vqshluq_n_s8): Likewise. |
| (vqshluq_n_s16): Likewise. |
| (vqshluq_n_s32): Likewise. |
| (vqshluq_n_s64): Likewise. |
| (vshll_n_s8): Likewise. |
| (vshll_n_s16): Likewise. |
| (vshll_n_s32): Likewise. |
| (vshll_n_u8): Likewise. |
| (vshll_n_u16): Likewise. |
| (vshll_n_u32): Likewise. |
| (vsra_n_s8): Likewise. |
| (vsra_n_s16): Likewise. |
| (vsra_n_s32): Likewise. |
| (vsra_n_s64): Likewise. |
| (vsra_n_u8): Likewise. |
| (vsra_n_u16): Likewise. |
| (vsra_n_u32): Likewise. |
| (vsra_n_u64): Likewise. |
| (vsraq_n_s8): Likewise. |
| (vsraq_n_s16): Likewise. |
| (vsraq_n_s32): Likewise. |
| (vsraq_n_s64): Likewise. |
| (vsraq_n_u8): Likewise. |
| (vsraq_n_u16): Likewise. |
| (vsraq_n_u32): Likewise. |
| (vsraq_n_u64): Likewise. |
| (vrsra_n_s8): Likewise. |
| (vrsra_n_s16): Likewise. |
| (vrsra_n_s32): Likewise. |
| (vrsra_n_s64): Likewise. |
| (vrsra_n_u8): Likewise. |
| (vrsra_n_u16): Likewise. |
| (vrsra_n_u32): Likewise. |
| (vrsra_n_u64): Likewise. |
| (vrsraq_n_s8): Likewise. |
| (vrsraq_n_s16): Likewise. |
| (vrsraq_n_s32): Likewise. |
| (vrsraq_n_s64): Likewise. |
| (vrsraq_n_u8): Likewise. |
| (vrsraq_n_u16): Likewise. |
| (vrsraq_n_u32): Likewise. |
| (vrsraq_n_u64): Likewise. |
| (vabs_s8): Likewise. |
| (vabs_s16): Likewise. |
| (vabs_s32): Likewise. |
| (vabs_f32): Likewise. |
| (vabsq_s8): Likewise. |
| (vabsq_s16): Likewise. |
| (vabsq_s32): Likewise. |
| (vabsq_f32): Likewise. |
| (vqabs_s8): Likewise. |
| (vqabs_s16): Likewise. |
| (vqabs_s32): Likewise. |
| (vqabsq_s8): Likewise. |
| (vqabsq_s16): Likewise. |
| (vqabsq_s32): Likewise. |
| (vneg_s8): Likewise. |
| (vneg_s16): Likewise. |
| (vneg_s32): Likewise. |
| (vneg_f32): Likewise. |
| (vnegq_s8): Likewise. |
| (vnegq_s16): Likewise. |
| (vnegq_s32): Likewise. |
| (vnegq_f32): Likewise. |
| (vqneg_s8): Likewise. |
| (vqneg_s16): Likewise. |
| (vqneg_s32): Likewise. |
| (vqnegq_s8): Likewise. |
| (vqnegq_s16): Likewise. |
| (vqnegq_s32): Likewise. |
| (vmvn_s8): Likewise. |
| (vmvn_s16): Likewise. |
| (vmvn_s32): Likewise. |
| (vmvn_u8): Likewise. |
| (vmvn_u16): Likewise. |
| (vmvn_u32): Likewise. |
| (vmvn_p8): Likewise. |
| (vmvnq_s8): Likewise. |
| (vmvnq_s16): Likewise. |
| (vmvnq_s32): Likewise. |
| (vmvnq_u8): Likewise. |
| (vmvnq_u16): Likewise. |
| (vmvnq_u32): Likewise. |
| (vmvnq_p8): Likewise. |
| (vcls_s8): Likewise. |
| (vcls_s16): Likewise. |
| (vcls_s32): Likewise. |
| (vclsq_s8): Likewise. |
| (vclsq_s16): Likewise. |
| (vclsq_s32): Likewise. |
| (vclz_s8): Likewise. |
| (vclz_s16): Likewise. |
| (vclz_s32): Likewise. |
| (vclz_u8): Likewise. |
| (vclz_u16): Likewise. |
| (vclz_u32): Likewise. |
| (vclzq_s8): Likewise. |
| (vclzq_s16): Likewise. |
| (vclzq_s32): Likewise. |
| (vclzq_u8): Likewise. |
| (vclzq_u16): Likewise. |
| (vclzq_u32): Likewise. |
| (vcnt_s8): Likewise. |
| (vcnt_u8): Likewise. |
| (vcnt_p8): Likewise. |
| (vcntq_s8): Likewise. |
| (vcntq_u8): Likewise. |
| (vcntq_p8): Likewise. |
| (vrecpe_f32): Likewise. |
| (vrecpe_u32): Likewise. |
| (vrecpeq_f32): Likewise. |
| (vrecpeq_u32): Likewise. |
| (vrsqrte_f32): Likewise. |
| (vrsqrte_u32): Likewise. |
| (vrsqrteq_f32): Likewise. |
| (vrsqrteq_u32): Likewise. |
| (vget_lane_s8): Likewise. |
| (vget_lane_s16): Likewise. |
| (vget_lane_s32): Likewise. |
| (vget_lane_f32): Likewise. |
| (vget_lane_u8): Likewise. |
| (vget_lane_u16): Likewise. |
| (vget_lane_u32): Likewise. |
| (vget_lane_p8): Likewise. |
| (vget_lane_p16): Likewise. |
| (vget_lane_s64): Likewise. |
| (vget_lane_u64): Likewise. |
| (vgetq_lane_s8): Likewise. |
| (vgetq_lane_s16): Likewise. |
| (vgetq_lane_s32): Likewise. |
| (vgetq_lane_f32): Likewise. |
| (vgetq_lane_u8): Likewise. |
| (vgetq_lane_u16): Likewise. |
| (vgetq_lane_u32): Likewise. |
| (vgetq_lane_p8): Likewise. |
| (vgetq_lane_p16): Likewise. |
| (vgetq_lane_s64): Likewise. |
| (vgetq_lane_u64): Likewise. |
| (vcvt_s32_f32): Likewise. |
| (vcvt_f32_s32): Likewise. |
| (vcvt_f32_u32): Likewise. |
| (vcvt_u32_f32): Likewise. |
| (vcvtq_s32_f32): Likewise. |
| (vcvtq_f32_s32): Likewise. |
| (vcvtq_f32_u32): Likewise. |
| (vcvtq_u32_f32): Likewise. |
| (vcvt_n_s32_f32): Likewise. |
| (vcvt_n_f32_s32): Likewise. |
| (vcvt_n_f32_u32): Likewise. |
| (vcvt_n_u32_f32): Likewise. |
| (vcvtq_n_s32_f32): Likewise. |
| (vcvtq_n_f32_s32): Likewise. |
| (vcvtq_n_f32_u32): Likewise. |
| (vcvtq_n_u32_f32): Likewise. |
| (vmovn_s16): Likewise. |
| (vmovn_s32): Likewise. |
| (vmovn_s64): Likewise. |
| (vmovn_u16): Likewise. |
| (vmovn_u32): Likewise. |
| (vmovn_u64): Likewise. |
| (vqmovn_s16): Likewise. |
| (vqmovn_s32): Likewise. |
| (vqmovn_s64): Likewise. |
| (vqmovn_u16): Likewise. |
| (vqmovn_u32): Likewise. |
| (vqmovn_u64): Likewise. |
| (vqmovun_s16): Likewise. |
| (vqmovun_s32): Likewise. |
| (vqmovun_s64): Likewise. |
| (vmovl_s8): Likewise. |
| (vmovl_s16): Likewise. |
| (vmovl_s32): Likewise. |
| (vmovl_u8): Likewise. |
| (vmovl_u16): Likewise. |
| (vmovl_u32): Likewise. |
| (vmul_lane_s16): Likewise. |
| (vmul_lane_s32): Likewise. |
| (vmul_lane_f32): Likewise. |
| (vmul_lane_u16): Likewise. |
| (vmul_lane_u32): Likewise. |
| (vmulq_lane_s16): Likewise. |
| (vmulq_lane_s32): Likewise. |
| (vmulq_lane_f32): Likewise. |
| (vmulq_lane_u16): Likewise. |
| (vmulq_lane_u32): Likewise. |
| (vmla_lane_s16): Likewise. |
| (vmla_lane_s32): Likewise. |
| (vmla_lane_f32): Likewise. |
| (vmla_lane_u16): Likewise. |
| (vmla_lane_u32): Likewise. |
| (vmlaq_lane_s16): Likewise. |
| (vmlaq_lane_s32): Likewise. |
| (vmlaq_lane_f32): Likewise. |
| (vmlaq_lane_u16): Likewise. |
| (vmlaq_lane_u32): Likewise. |
| (vmlal_lane_s16): Likewise. |
| (vmlal_lane_s32): Likewise. |
| (vmlal_lane_u16): Likewise. |
| (vmlal_lane_u32): Likewise. |
| (vqdmlal_lane_s16): Likewise. |
| (vqdmlal_lane_s32): Likewise. |
| (vmls_lane_s16): Likewise. |
| (vmls_lane_s32): Likewise. |
| (vmls_lane_f32): Likewise. |
| (vmls_lane_u16): Likewise. |
| (vmls_lane_u32): Likewise. |
| (vmlsq_lane_s16): Likewise. |
| (vmlsq_lane_s32): Likewise. |
| (vmlsq_lane_f32): Likewise. |
| (vmlsq_lane_u16): Likewise. |
| (vmlsq_lane_u32): Likewise. |
| (vmlsl_lane_s16): Likewise. |
| (vmlsl_lane_s32): Likewise. |
| (vmlsl_lane_u16): Likewise. |
| (vmlsl_lane_u32): Likewise. |
| (vqdmlsl_lane_s16): Likewise. |
| (vqdmlsl_lane_s32): Likewise. |
| (vmull_lane_s16): Likewise. |
| (vmull_lane_s32): Likewise. |
| (vmull_lane_u16): Likewise. |
| (vmull_lane_u32): Likewise. |
| (vqdmull_lane_s16): Likewise. |
| (vqdmull_lane_s32): Likewise. |
| (vqdmulhq_lane_s16): Likewise. |
| (vqdmulhq_lane_s32): Likewise. |
| (vqdmulh_lane_s16): Likewise. |
| (vqdmulh_lane_s32): Likewise. |
| (vqrdmulhq_lane_s16): Likewise. |
| (vqrdmulhq_lane_s32): Likewise. |
| (vqrdmulh_lane_s16): Likewise. |
| (vqrdmulh_lane_s32): Likewise. |
| (vmul_n_s16): Likewise. |
| (vmul_n_s32): Likewise. |
| (vmul_n_f32): Likewise. |
| (vmul_n_u16): Likewise. |
| (vmul_n_u32): Likewise. |
| (vmulq_n_s16): Likewise. |
| (vmulq_n_s32): Likewise. |
| (vmulq_n_f32): Likewise. |
| (vmulq_n_u16): Likewise. |
| (vmulq_n_u32): Likewise. |
| (vmull_n_s16): Likewise. |
| (vmull_n_s32): Likewise. |
| (vmull_n_u16): Likewise. |
| (vmull_n_u32): Likewise. |
| (vqdmull_n_s16): Likewise. |
| (vqdmull_n_s32): Likewise. |
| (vqdmulhq_n_s16): Likewise. |
| (vqdmulhq_n_s32): Likewise. |
| (vqdmulh_n_s16): Likewise. |
| (vqdmulh_n_s32): Likewise. |
| (vqrdmulhq_n_s16): Likewise. |
| (vqrdmulhq_n_s32): Likewise. |
| (vqrdmulh_n_s16): Likewise. |
| (vqrdmulh_n_s32): Likewise. |
| (vmla_n_s16): Likewise. |
| (vmla_n_s32): Likewise. |
| (vmla_n_f32): Likewise. |
| (vmla_n_u16): Likewise. |
| (vmla_n_u32): Likewise. |
| (vmlaq_n_s16): Likewise. |
| (vmlaq_n_s32): Likewise. |
| (vmlaq_n_f32): Likewise. |
| (vmlaq_n_u16): Likewise. |
| (vmlaq_n_u32): Likewise. |
| (vmlal_n_s16): Likewise. |
| (vmlal_n_s32): Likewise. |
| (vmlal_n_u16): Likewise. |
| (vmlal_n_u32): Likewise. |
| (vqdmlal_n_s16): Likewise. |
| (vqdmlal_n_s32): Likewise. |
| (vmls_n_s16): Likewise. |
| (vmls_n_s32): Likewise. |
| (vmls_n_f32): Likewise. |
| (vmls_n_u16): Likewise. |
| (vmls_n_u32): Likewise. |
| (vmlsq_n_s16): Likewise. |
| (vmlsq_n_s32): Likewise. |
| (vmlsq_n_f32): Likewise. |
| (vmlsq_n_u16): Likewise. |
| (vmlsq_n_u32): Likewise. |
| (vmlsl_n_s16): Likewise. |
| (vmlsl_n_s32): Likewise. |
| (vmlsl_n_u16): Likewise. |
| (vmlsl_n_u32): Likewise. |
| (vqdmlsl_n_s16): Likewise. |
| (vqdmlsl_n_s32): Likewise. |
| |
| 2014-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS): |
| Add cost of alu.arith in simple SImode case. |
| |
| 2014-11-18 Jiong Wang <jiong.wang@arm.com> |
| |
| * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed |
| registers. |
| |
| 2014-11-18 Marat Zakirov <m.zakirov@samsung.com> |
| |
| * opts.c (finish_options): Disable aggressive opts for sanitizer. |
| (common_handle_option): Move code to finish_options. |
| |
| 2014-11-18 Yury Gribov <y.gribov@samsung.com> |
| |
| PR sanitizer/63802 |
| * stor-layout.c (min_align_of_type): Respect user alignment |
| more. |
| |
| 2014-11-18 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * passes.c (remove_cgraph_node_from_order): New. |
| (do_per_function_toporder): Register cgraph removal |
| hook. |
| |
| 2014-11-17 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7. |
| * config/arm/arm.md (generic_sched): Exclude cortex-m7. |
| (generic_vfp): Likewise. |
| * config/arm/cortex-m7.md: Pipeline description for cortex-m7. |
| |
| 2014-11-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/63906 |
| * lra-remat.c (operand_to_remat): Check SP and |
| frame_pointer_required. |
| |
| 2014-11-17 Mircea Namolaru <mircea.namolaru@inria.fr> |
| |
| * doc/invoke.texi (floop-unroll-and-jam): Document |
| (loop-unroll-jam-size): Likewise. |
| (loop-unroll-jam-depth): Likewise. |
| * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment. |
| (getScheduleForBandList): Replaced unsafe union_map reuse. |
| |
| 2014-11-17 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/thunderx.md: Remove copyright which should not |
| have been there. |
| |
| 2014-11-17 Michael Meissner <meissner@linux.vnet.ibm.com> |
| Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for |
| Altivec style vector loads that ignore the bottom 3 bits of the |
| address. |
| (rs6000_debug_addr_mask): New function to print the addr_mask |
| values if debugging. |
| (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print |
| out addr_mask. |
| (rs6000_setup_reg_addr_masks): Add support for Altivec style |
| vector loads that ignore the bottom 3 bits of the address. Allow |
| pre-increment and pre-decrement on floating point, even if the |
| -mupper-regs-{sf,df} options were used. |
| (rs6000_init_hard_regno_mode_ok): Rework DFmode support if |
| -mupper-regs-df. Add support for -mupper-regs-sf. Rearrange code |
| placement for direct move support. |
| (rs6000_option_override_internal): Add checks for -mupper-regs-df |
| requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector. |
| If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df, |
| depending on the underlying cpu. |
| (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN. |
| (rs6000_secondary_reload_toc_costs): Helper function to identify |
| costs of a TOC load for secondary reload support. |
| (rs6000_secondary_reload_memory): Helper function for secondary |
| reload, to determine if a particular memory operation is directly |
| handled by the hardware, or if it needs support from secondary |
| reload to create a valid address. |
| (rs6000_secondary_reload): Rework code, to be clearer. If the |
| appropriate -mupper-regs-{sf,df} is used, use FPR registers to |
| reload scalar values, since the FPR registers have D-form |
| addressing. Move most of the code handling memory to the function |
| rs6000_secondary_reload_memory, and use the reg_addr structure to |
| determine what type of address modes are supported. Print more |
| debug information if -mdebug=addr. |
| (rs6000_secondary_reload_inner): Rework entire function to be more |
| general. Use the reg_addr bits to determine what type of |
| addressing is supported. |
| (rs6000_preferred_reload_class): Rework. Move constant handling |
| into a single place. Prefer using FLOAT_REGS for scalar floating |
| point. |
| (rs6000_secondary_reload_class): Use a FPR register to move a |
| value from an Altivec register to a GPR, and vice versa. Move VSX |
| handling above traditional floating point. |
| |
| * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case): |
| Delete some spaces in the constraints. |
| (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to |
| allow using FPR registers to load/store an Altivec register for |
| scalar floating point types. |
| (SF->SF move peephole2): Likewise. |
| (DFmode splitter): Add a define_split to move floating point |
| constants to the constant pool before register allocation. |
| Normally constants are put into the pool immediately, but |
| -ffast-math delays putting them into the constant pool for the |
| reciprocal approximation support. |
| (SFmode splitter): Likewise. |
| |
| * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public. |
| (-mupper-regs-sf): Likewise. |
| |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define |
| __UPPER_REGS_DF__ if -mupper-regs-df. Define __UPPER_REGS_SF__ if |
| -mupper-regs-sf. |
| (-mupper-regs): New combination option that sets -mupper-regs-sf |
| and -mupper-regs-df by default if the cpu supports the instructions. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document |
| -mupper-regs, -mupper-regs-sf, and -mupper-regs-df. |
| |
| * config/rs6000/predicates.md (memory_fp_constant): New predicate |
| to return true if the operand is a floating point constant that |
| must be put into the constant pool, before register allocation |
| occurs. |
| |
| * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable |
| -mupper-regs-df by default. |
| (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default. |
| (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the |
| various -mcpu=... options. |
| (power7 cpu): Enable -mupper-regs-df by default. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document |
| -mupper-regs. |
| |
| 2014-11-17 Zhouyi Zhou <yizhouzhou@ict.ac.cn> |
| |
| * ira-conflicts.c (build_conflict_bit_table): Add the current |
| object to OBJECTS_LIVE after traversing OBJECTS_LIVE. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation. |
| (ipa_get_indirect_edge_target): Add SPECULATIVE argument. |
| (devirtualization_time_bonus): Use it. |
| (ipcp_discover_new_direct_edges): Likewise. |
| * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update. |
| * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (free_lang_data_in_decl): Set |
| DECL_FUNCTION_SPECIFIC_OPTIMIZATION to optimization_default_node. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphunit.c (analyze_functions): Use opt_for_fn. |
| * cgraph.h (cgraph_node::optimize_for_size_p): Likewise. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (symbol_table::create_edge): Use opt_for_fn. |
| (cgraph_node::cannot_return_p): Likewise. |
| (cgraph_edge::cannot_lead_to_return_p): Likewise. |
| (cgraph_edge::maybe_hot_p): Likewise. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (maybe_hot_frequency_p): Use opt_for_fn. |
| (optimize_function_for_size_p): Likewise. |
| (probably_never_executed): Likewise; replace cfun by fun. |
| |
| 2014-11-17 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add |
| variant reading from memory and assembling to ld1. |
| |
| * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, |
| vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, |
| vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, |
| vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8, |
| vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32, |
| vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32, |
| vld1q_lane_u64): Replace asm with vset_lane and pointer dereference. |
| |
| 2014-11-17 Jason Merrill <jason@redhat.com> |
| |
| * tree-inline.c (copy_fn): New. |
| * tree-inline.h: Declare it. |
| |
| 2014-11-17 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove. |
| * config/aarch64/aarch64-simd-builtins.def (create): Remove. |
| * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove. |
| * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64, |
| vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts. |
| * config/aarch64/iterators.md (VD1): Remove. |
| |
| 2014-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a53): Remove |
| AARCH64_FL_CRYPTO from feature flags. |
| (cortex-a57): Likewise. |
| (cortex-a57.cortex-a53): Likewise. |
| |
| 2014-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with |
| DECL_FUNCTION_SPECIFIC_TARGET. |
| * i386.c (ix86_set_current_function): Handle explicit default options. |
| |
| 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook |
| instead of BNDmode. |
| (expand_builtin_mempcpy_with_bounds): Likewise. |
| (expand_builtin_memset_with_bounds): Likewise. |
| |
| 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h, |
| ipa-ref.h, plugin-api.h. |
| (get_string_length): Handle calls with bounds. |
| (adjust_last_stmt): Likewise. |
| (handle_builtin_strchr): Likewise. |
| (handle_builtin_strcpy): Likewise. |
| (handle_builtin_memcpy): Likewise. |
| (handle_builtin_strcat): Likewise. |
| |
| 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New. |
| (chkp_get_nochk_fndecl): New. |
| (chkp_optimize_string_function_calls): New. |
| (chkp_opt_execute): Call chkp_optimize_string_function_calls. |
| * tree-cfg.h (insert_cond_bb): New. |
| * tree-cfg.c (insert_cond_bb): New. |
| |
| 2014-11-17 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * tree-core.h (built_in_class): Add builtin codes to be used |
| by Pointer Bounds Checker for instrumented builtin functions. |
| * tree-streamer-in.c: Include ipa-chkp.h. |
| (streamer_get_builtin_tree): Created instrumented decl if |
| required. |
| * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New. |
| * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin |
| function decls. |
| (chkp_maybe_clone_builtin_fndecl): New. |
| (chkp_maybe_create_clone): Support builtin function decls. |
| (chkp_versioning): Clone builtin functions. |
| * tree-chkp.c (chkp_instrument_normal_builtin): New. |
| (chkp_add_bounds_to_call_stmt): Support builtin functions. |
| (chkp_replace_function_pointer): Likewise. |
| * builtins.c (expand_builtin_memcpy_args): New. |
| (expand_builtin_memcpy): Call expand_builtin_memcpy_args. |
| (expand_builtin_memcpy_with_bounds): New. |
| (expand_builtin_mempcpy_with_bounds): New. |
| (expand_builtin_mempcpy_args): Add orig_exp arg. Support |
| BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK |
| (expand_builtin_memset_with_bounds): New. |
| (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK. |
| (expand_builtin_with_bounds): New. |
| * builtins.h (expand_builtin_with_bounds): New. |
| * expr.c (expand_expr_real_1): Support instrumented builtin calls. |
| |
| 2014-11-17 Dodji Seketeli <dodji@redhat.com> |
| |
| * gimple.h (gimple_set_visited, gimple_visited_p) |
| (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more |
| comments to these accessors. |
| |
| 2014-11-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]: |
| Set avr_log_details to "all". |
| |
| 2014-11-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63898 |
| * match.pd: Guard X / CST -> X * CST' transform against |
| zero CST. |
| |
| 2014-11-17 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL |
| format. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * ifcvt.c (HAVE_cbranchcc4): Define. |
| (noce_emit_cmove, noce_get_alt_condition, noce_get_condition): |
| Use HAVE_cbranchcc4. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_code_to_ccmode, |
| aarch64_convert_mode, aarch64_gen_ccmp_first, |
| aarch64_gen_ccmp_next): New functions. |
| (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New. |
| * aarch64.c (aarch64_nzcv_codes): New data. |
| (aarch64_ccmp_mode_to_code): New. |
| (aarch64_print_operand): Output nzcv. |
| config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4): |
| New patterns. |
| (cstore<mode>4): Handle ccmp_cc_register. |
| * config/aarch64/predicates.md (const0_operand): New. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * config/aarch64/aarch64-modes.def: Define ccmp CC mode. |
| * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function |
| extacted from aarch64_get_condition_code. |
| (aarch64_get_condition_code): Call aarch64_get_condition_code_1. |
| config/aarch64/predicates.md (ccmp_cc_register): New predicate. |
| |
| 014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate, |
| aarch64_ccmp_operand): New constraints. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * Makefile.in: Add ccmp.o. |
| * ccmp.c: New file. |
| * ccmp.h: New file. |
| * expr.c: include "ccmp.h" |
| (expand_cond_expr_using_cmove): Handle VOIDmode. |
| (expand_expr_real_1): Try to expand ccmp. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * cfgexpand.c (expand_gimple_cond): Check ccmp. |
| * expmed.c (emit_cstore): Make it global. |
| * expmed.h: #include "insn-codes.h" |
| (emit_cstore): New prototype. |
| * expr.c (expand_operands): Make it global. |
| * expr.h (expand_operands): New prototype. |
| * optabs.c (get_rtx_code): Make it global. |
| * optabs.h (get_rtx_code): New prototype. |
| |
| 2014-11-17 Zhenqiang Chen <zhenqiang.chen@linaro.org> |
| |
| * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks. |
| * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New. |
| * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New. |
| |
| 2014-11-16 Patrick Palka <ppalka@gcc.gnu.org> |
| |
| PR middle-end/63790 |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison_1): |
| Always combine comparisons or conversions from booleans. |
| |
| 2014-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::speculation_consistent_p): Constify. |
| (ipa_polymorphic_call_context::meet_speculation_with): New function. |
| (ipa_polymorphic_call_context::combine_with): Handle types in |
| construction better. |
| (ipa_polymorphic_call_context::equal_to): Do not bother about useless |
| speculation. |
| (ipa_polymorphic_call_context::meet_with): New function. |
| * cgraph.h (class ipa_polymorphic_call_context): Add |
| meet_width, meet_speculation_with; constify speculation_consistent_p. |
| * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine |
| with incomming context. |
| (propagate_context_accross_jump_function): Likewise; be more cureful. |
| about set_contains_variable. |
| (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes. |
| (find_more_scalar_values_for_callers_subset): Fix. |
| (find_more_contexts_for_caller_subset): Perform meet operation. |
| |
| 2014-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * passes.c (execute_one_pass): Do not apply all transforms prior |
| every simple IPA pass. |
| * cgraphunit.c: Do not include fibheap.h |
| (expand_thunk): Use get_untransformed_body. |
| (cgraph_node::expand): Likewise. |
| * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones. |
| * cgraph.c (release_function_body): Do not push cfun when CFG |
| is not there. |
| (cgraph_node::get_untransformed_body): Break out from ... |
| (cgraph_node::get_body): ... here; add code to apply all transforms. |
| * cgraph.h (cgraph_node): Add get_untransformed_body. |
| * ipa-icf.c (sem_function::init): Use get_untransformed_body. |
| * cgraphclones.c (duplicate_thunk_for_node): Likewise. |
| * tree-inline.c (expand_call_inline): LIkewise. |
| * i386.c (ix86_reset_to_default_globals): Break out from ... |
| (ix86_set_current_function): ... here; |
| (ix86_reset_previous_fndecl): Use it. |
| (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl. |
| |
| 2014-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/sh/sh.c: Do not include algorithm. |
| (sh_emit_scc_to_t): Replace open-coded swap with std::swap |
| to swap values. |
| (sh_emit_compare_and_branch): Ditto. |
| (sh_emit_compare_and_set): Ditto. |
| * config/sh/sh.md (replacement peephole2): Ditto. |
| (cstore4_media): Ditto. |
| (*fmasf4): Ditto. |
| |
| 2014-11-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-remat.c (cand_transf_func): Process regno for |
| rematerialization too. |
| * lra.c (lra): Switch on rematerialization pass. |
| |
| 2014-11-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra.c (lra): Switch off rematerialization pass. |
| |
| 2014-11-15 Marc Glisse <marc.glisse@inria.fr> |
| |
| * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps, |
| _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions |
| instead of builtins. |
| * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New |
| typedefs. |
| (_mm_sqrt_sd): Fix comment. |
| (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64, |
| _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64, |
| _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32, |
| _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8, |
| _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128, |
| _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd, |
| _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd, |
| _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64): |
| Use vector extensions instead of builtins. |
| * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64, |
| _mm_mullo_epi32): Likewise. |
| * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu): |
| New typedefs. |
| (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps, |
| _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps): |
| Use vector extensions instead of builtins. |
| * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16, |
| _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8, |
| _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64, |
| _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8, |
| _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64, |
| _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8, |
| _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise. |
| * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu): |
| New typedefs. |
| (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512, |
| _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512, |
| _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32, |
| _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32, |
| _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd, |
| _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd, |
| _mm512_div_ps): Use vector extensions instead of builtins. |
| * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8, |
| _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise. |
| * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise. |
| * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64): |
| Likewise. |
| |
| 2014-11-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-streamer-out.c (hash_tree): Use cl_optimization_hash. |
| * lto-streamer.h (cl_optimization_stream_out, |
| cl_optimization_stream_in): Declare. |
| * optc-save-gen.awk: Generate cl_optimization LTO streaming |
| and hashing routines. |
| * opth-gen.awk: Add prototype of cl_optimization_hash. |
| * tree-streamer-in.c (unpack_ts_optimization): Remove. |
| (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in. |
| * tree-streamer-out.c (pack_ts_optimization): Remove. |
| (streamer_pack_tree_bitfields): Use cl_optimization_stream_out. |
| |
| 2014-11-15 Mircea Namolaru <mircea.namolaru@inria.fr> |
| |
| * common.opt (flag_loop_unroll_and_jam): New flag. |
| * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and |
| jam flag. |
| (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise. |
| * graphite-poly.h (struct poly_bb:map_sepclass): New field |
| * graphite-poly.c (new_poly_bb): Initialization for new field. |
| (apply_poly_transforms): Support for unroll and jam flag. |
| * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the |
| separation class. |
| (generate_luj_sepclass_opt): Build the separation class option. |
| (generate_luj_options): Set unroll and jam options. |
| (set_options): Support for unroll and jam options. |
| (scop_to_isl_ast): Likewise |
| * graphite-optimize-isl.c (getPrevectorMap_full): New function for |
| computing the separating class map. |
| (optimize_isl): Support for the separating class map. |
| (apply_schedule_map_to_scop): Likewise. |
| (getScheduleMap): Likewise. |
| (getScheduleForBand): Likewise. |
| (getScheduleForBandList): Likewise. |
| * graphite.c (gate_graphite_transforms): Add unroll and jam flag. |
| * toplev.c (process_options) Likewise. |
| |
| 2014-11-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-cfg.c (replace_loop_annotate_in_block): New function extracted |
| from... |
| (replace_loop_annotate): ...here. Call it on the header and on the |
| latch block, if any. Restore proper behavior of final cleanup. |
| |
| 2014-11-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message |
| for max-completely-peeled-insns limit. |
| |
| 2014-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.h (ipa_known_type_data): Remove. |
| (ipa_binfo_from_known_type_jfunc): Remove. |
| |
| 2014-11-14 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler |
| over to thunderx. |
| * config/aarch64/aarch64.md: Include thunderx.md. |
| (generic_sched): Set to no for thunderx. |
| * config/aarch64/thunderx.md: New file. |
| |
| 2014-11-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/predicates.md (easy_fp_constant): Delete redunant |
| tests for 0.0. |
| |
| * config/rs6000/vector.md (VEC_R): Move secondary reload support |
| insns to rs6000.md from vector.md. |
| (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise. |
| (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise. |
| (vec_reload_and_plus_<mptrsize>): Likewise. |
| |
| * config/rs6000/rs6000.md (Fa): New mode attribute to give |
| constraint for the Altivec registers for a type. |
| (RELOAD): New mode iterator for all of the types that have |
| secondary reload address support to load up a base register. |
| (extendsfdf2_fpr): Use correct constraint. |
| (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp |
| instruction. |
| (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}. |
| Generate the non-VSX instruction if all registers were FPRs. Do |
| not use the patterns in vsx.md for scalar operations. |
| (floatsi<mode>2_lfiwax_mem): Likewise. |
| (floatunssi<mode>2_lfiwzx): Likewise. |
| (floatunssi<mode>2_lfiwzx_mem): Likewise. |
| (fix_trunc<mode>di2_fctidz): Likewise. |
| (fixuns_trunc<mode>di2_fctiduz): Likewise. |
| (fctiwz_<mode>): Likewise. |
| (fctiwuz_<mode>): Likewise. |
| (friz): Likewise. |
| (floatdidf2_fpr): Likewise. |
| (floatdidf2_mem): Likewise. |
| (floatunsdidf2): Likewise. |
| (floatunsdidf2_fcfidu): Likewise. |
| (floatunsdidf2_mem): Likewise. |
| (floatdisf2_fcfids): Likewise. |
| (floatdisf2_mem): Likewise. |
| (floatdisf2_internal1): Add explicit test for not FCFIDS to make |
| it more obvious that the code is for pre-ISA 2.06 machines. |
| (floatdisf2_internal2): Likewise. |
| (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}. |
| Generate the non-VSX instruction if all registers were FPRs. Do |
| not use the patterns in vsx.md for scalar operations. |
| (floatunsdisf2_mem): Likewise. |
| (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload |
| handlers here from vector.md, and expand the types we generate |
| reload handlers for. |
| (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise. |
| (vec_reload_and_plus_<mptrsize>): Likewise. |
| |
| * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the |
| vector forms of the instructions. Move VSX scalar forms to |
| rs6000.md, and add support for -mupper-regs-sf. |
| (vsx_floatuns<VSi><mode>2): Likewise. |
| (vsx_fix_trunc<mode><VSi>2): Likewise. |
| (vsx_fixuns_trunc<mode><VSi>2): Likewise. |
| (vsx_float_fix_<mode>2): Delete DF version, rename to |
| vsx_float_fix_v2df2. |
| (vsx_float_fix_v2df2): Likewise. |
| |
| 2014-11-14 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE. |
| (ipa_pass_through_data): Removed field type_preserved. |
| (ipa_ancestor_jf_data): removed fields type and type_preserved. |
| (ipa_jump_func): Removed field known_type. |
| (ipa_get_jf_known_type_offset): Removed. |
| (ipa_get_jf_known_type_base_type): Likewise. |
| (ipa_get_jf_known_type_component_type): Likewise. |
| (ipa_get_jf_ancestor_type): Likewise. |
| * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling. |
| (ipa_get_jf_pass_through_result): Likewise. |
| (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses. |
| (values_equal_for_ipcp_p): Removed BINFO handling. |
| (ipa_get_indirect_edge_target_1): Updated comment. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling |
| of IPA_JF_KNOWN_TYPE jump functions. Do not print removed fields. |
| (ipa_set_jf_known_type): Removed. |
| (ipa_set_jf_simple_pass_through): Do not set removed fields. Update |
| all callers. |
| (ipa_set_jf_arith_pass_through): Likewise. |
| (ipa_set_ancestor_jf): Likewise. |
| (ipa_binfo_from_known_type_jfunc): Removed. |
| (prop_type_change_info): Removed fields known_current_type and |
| multiple_types_encountered. |
| (extr_type_from_vtbl_ptr_store): Removed. |
| (check_stmt_for_type_change): Do not attempt to identify changed type. |
| (detect_type_change_from_memory_writes): Do not set the removed fields, |
| always set jfunc to unknown. |
| (compute_complex_assign_jump_func): Do not detect dynamic type change. |
| (compute_complex_ancestor_jump_func): Likewise. |
| (compute_known_type_jump_func): Removed. |
| (ipa_compute_jump_functions_for_edge): Do not detect dynamic type |
| change. Do not comute known type jump functions. |
| (combine_known_type_and_ancestor_jfs): Removed. |
| (update_jump_functions_after_inlining): Removed handling of |
| IPA_JF_KNOWN_TYPE jump functions. Do not set removed fields. |
| (ipa_write_jump_function): Do not stream removed fields or known type |
| jump functions. |
| (ipa_read_jump_function): Likewise. |
| |
| 2014-11-14 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-int.h (lra_create_live_ranges): Add parameter. |
| * lra-lives.c (temp_bitmap): Move higher. |
| (initiate_live_solver): Move temp_bitmap initialization into |
| lra_live_ranges_init. |
| (finish_live_solver): Move temp_bitmap clearing into |
| live_ranges_finish. |
| (process_bb_lives): Add parameter. Use it to control live info |
| update and dead insn elimination. Pass it to mark_regno_live and |
| mark_regno_dead. |
| (lra_create_live_ranges): Add parameter. Pass it to |
| process_bb_lives. |
| (lra_live_ranges_init, lra_live_ranges_finish): See changes in |
| initiate_live_solver and finish_live_solver. |
| * lra-remat.c (do_remat): Process insn non-operand hard regs too. |
| Use temp_bitmap to update avail_cands. |
| * lra.c (lra): Pass new parameter to lra_create_live_ranges. Move |
| check with lra_need_for_spill_p after live range pass. Switch on |
| rematerialization pass. |
| |
| 2014-11-14 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use |
| agg_preserved flag instead. |
| (ipa_get_jf_ancestor_type_preserved): Likewise. |
| (ipa_node_params): Rename known_vals to known_csts, update all users. |
| New field known_contexts. |
| (ipa_get_indirect_edge_target): Update prototype. |
| (ipcp_poly_ctx_values_pool): Declare. |
| (ipa_context_from_jfunc): Likewise. |
| * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype. |
| * cgraph.h (ipa_polymorphic_call_context): New method equal_to. New |
| parameter newline of method dump. |
| * ipa-cp.c (ctxlat): New field. |
| (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users. |
| (ipcp_poly_ctx_values_pool):New variable. |
| (ipa_get_poly_ctx_lat): New function. |
| (print_ipcp_constant_value): New overloaded function for contexts. |
| (print_all_lattices): Also print contexts. |
| (ipa_topo_info): New field contexts; |
| (set_all_contains_variable): Also set the flag in the context lattice. |
| (initialize_node_lattices): Likewise for flag bottom. |
| (ipa_get_jf_ancestor_result): Removed BINFO handling. |
| (ipa_value_from_jfunc): Likewise. |
| (ipa_context_from_jfunc): New function. |
| (values_equal_for_ipcp_p): New overloaded function for contexts. |
| (allocate_and_init_ipcp_value): Construct the value. |
| (allocate_and_init_ipcp_value): New overloaded function for contexts. |
| (propagate_scalar_accross_jump_function): Removed handling of |
| KNOWN_TYPE jump functions. |
| (propagate_context_accross_jump_function): New function. |
| (propagate_constants_accross_call): Also propagate contexts. |
| (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs. |
| (ipa_get_indirect_edge_target): Likewise. |
| (devirtualization_time_bonus): Likewise. |
| (gather_context_independent_values): Create and populate known_contexts |
| vector rather than known_binfos. |
| (perform_estimation_of_a_value): Work on contexts rather than BINFOs. |
| (estimate_local_effects): Likewise. |
| (add_all_node_vals_to_toposort): Also add contexts to teir topological |
| sort. |
| (ipcp_propagate_stage): Also propagate effects of contexts. |
| (ipcp_discover_new_direct_edges): Receive and pass known_contexts to |
| ipa_get_indirect_edge_target_1. |
| (cgraph_edge_brings_value_p): New overloaded function for contexts. |
| (create_specialized_node): Work on contexts rather than BINFOs. |
| (find_more_contexts_for_caller_subset): New function. |
| (known_contexts_useful_p): New function. |
| (copy_useful_known_contexts): Likewise. |
| (modify_known_vectors_with_val): Likewise. |
| (ipcp_val_in_agg_replacements_p): Renamed to |
| ipcp_val_agg_replacement_ok_p, return true for all offset indicating |
| non-aggregate. |
| (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts. |
| (decide_about_value): Work on contexts rather than BINFOs. |
| (decide_whether_version_node): Likewise. |
| (ipcp_driver): Initialize the new alloc pool. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify |
| printing of edge contexts. |
| (ipa_set_ancestor_jf): Replace assert with conditional setting of |
| type_preserved to false. |
| (update_jump_functions_after_inlining): Use access function instead of |
| reading agg_preserved directly. Store combined context in the ancestor |
| case. |
| (try_make_edge_direct_virtual_call): Work on contexts rather than |
| BINFOs. |
| (update_indirect_edges_after_inlining): Get context from |
| ipa_context_from_jfunc. |
| (ipa_free_node_params_substructures): Free also known_contexts. |
| (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool. |
| (ipa_free_all_structures_after_iinln): Likewise. |
| * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on |
| contexts rather than BINFOs. |
| (estimate_edge_devirt_benefit): Likewise. |
| (estimate_edge_size_and_time): Likewise. |
| (estimate_calls_size_and_time): Likewise. |
| (estimate_node_size_and_time): Likewise. |
| (estimate_ipcp_clone_size_and_time): Likewise. |
| (do_estimate_edge_time): Likewise. |
| (do_estimate_edge_size): Likewise. |
| (do_estimate_edge_hints): Likewise. |
| * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New |
| parameter newline, ouput newline only when it is set. |
| (ipa_polymorphic_call_context::equal_to): New method. |
| |
| 2014-11-14 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (ipcp_value_source): Converted to a template class. All |
| users converted to the same specialization as the using class/function |
| or specialization on tree. |
| (ipcp_value): Likewise. |
| (ipcp_lattice): Likewise. |
| (ipcp_agg_lattice): Now derived from tree specialization of |
| ipcp_lattice. |
| (values_topo): Moved to new class value_topo_info. |
| (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const. |
| Updated all callers. |
| (print_lattice): Turned into ipcp_lattice::print. Updated all |
| callers. |
| (value_topo_info): New class template. |
| (ipa_topo_info): New field constants. New constructor. |
| (build_toporder_info): Do not clear stack_top, only checkign assert |
| it. |
| (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom. |
| Updated all callers. |
| (set_lattice_contains_variable): Turned into |
| ipcp_lattice::set_contains_variable. Updated all callers. |
| (add_value_source): Turned into ipcp_value::add_source. Updated all |
| callers. |
| (allocate_and_init_ipcp_value): New function. |
| (add_value_to_lattice): Turned into ipcp_lattice::add_value. Last |
| parameter got default a value. Updated all callers. |
| (add_scalar_value_to_lattice): Removed, users converted to using |
| ipcp_lattice::add_value with default value of the last parameter. |
| (add_val_to_toposort): Turned to value_topo_info::add_val. Updated |
| all callers. |
| (propagate_effects): Made method of value_topo_info. |
| (cgraph_edge_brings_value_p): Now a template function. |
| (get_info_about_necessary_edges): Likewise. |
| (gather_edges_for_value): Likewise. |
| (perhaps_add_new_callers): Likewise. |
| (decide_about_value): Likewise. |
| * ipa-prop.h (ipcp_lattice): Remove fowrward declaration. |
| |
| 2014-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/install.texi (--with-diagnostics-color=): Document. |
| |
| * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate |
| IFN_GOMP_SIMD_LANE without lhs as useless. |
| |
| * ipa-pure-const.c (struct funct_state_d): Add can_free field. |
| (varying_state): Add true for can_free. |
| (check_call): For builtin or internal !nonfreeing_call_p set |
| local->can_free. |
| (check_stmt): For asm volatile and asm with "memory" set |
| local->can_free. |
| (analyze_function): Clear local->can_free initially, continue |
| calling check_stmt until all flags are computed, dump can_free |
| flag. |
| (pure_const_write_summary): Write can_free flag. |
| (pure_const_read_summary): Read it back. |
| (propagate_pure_const): Propagate also can_free flag, set |
| w->nonfreeing_fn if it is false after propagation. |
| * cgraph.h (cgraph_node): Add nonfreeing_fn member. |
| * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h. |
| (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set. |
| Also return true for IFN_ABNORMAL_DISPATCHER. |
| * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag. |
| * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag. |
| (input_overwrite_node): Read it back. |
| |
| 2014-11-14 Jakub Jelinek <jakub@redhat.com> |
| Marek Polacek <polacek@redhat.com> |
| |
| * sanopt.c: Include tree-ssa-operands.h. |
| (struct sanopt_info): Add has_freeing_call_p, |
| has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p, |
| imm_dom_path_with_freeing_call_computed_p, freeing_call_events, |
| being_visited_p fields. |
| (struct sanopt_ctx): Add asan_check_map field. |
| (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn, |
| maybe_optimize_asan_check_ifn): New functions. |
| (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK |
| internal calls. |
| (pass_sanopt::execute): Call sanopt_optimize even for |
| -fsanitize=address. |
| * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF |
| internal calls. |
| |
| 2014-11-14 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for |
| 'if (extract_scalar_result)' to the only place that it is true. |
| |
| 2014-11-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc (default_gnu_indirect_function): Set to yes |
| for i[34567]86-*-linux* and x86_64-*-linux* if not targeting |
| Android nor uclibc. |
| |
| 2014-11-14 Felix Yang <felix.yang@huawei.com> |
| Jiji Jiang <jiangjiji@huawei.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use |
| VALL mode iterator instead of VALLDI. |
| |
| 2014-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * optc-save-gen.awk: Output cl_target_option_eq, |
| cl_target_option_hash, cl_target_option_stream_out, |
| cl_target_option_stream_in functions. |
| * opth-gen.awk: Output prototypes for |
| cl_target_option_eq and cl_target_option_hash. |
| * lto-streamer.h (cl_target_option_stream_out, |
| cl_target_option_stream_in): Declare. |
| * tree.c (cl_option_hash_hash): Use cl_target_option_hash. |
| (cl_option_hash_eq): Use cl_target_option_eq. |
| * tree-streamer-in.c (unpack_value_fields): Stream in |
| TREE_TARGET_OPTION. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow |
| DECL_FUNCTION_SPECIFIC_TARGET. |
| (hash_tree): Hash TREE_TARGET_OPTION; visit |
| DECL_FUNCTION_SPECIFIC_TARGET. |
| * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip |
| TS_TARGET_OPTION. |
| (streamer_write_tree_body): Output TS_TARGET_OPTION. |
| |
| 2014-11-14 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd |
| valueization hook defaulted to no_follow_ssa_edges. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass |
| 2nd valueization hook to gimple_simplify. |
| * tree-ssa-ccp.c (valueize_op_1): New function to be |
| used for gimple_simplify called via gimple_fold_stmt_to_constant_1. |
| (ccp_fold): Adjust. |
| * tree-vrp.c (vrp_valueize_1): New function to be |
| used for gimple_simplify called via gimple_fold_stmt_to_constant_1. |
| (vrp_visit_assignment_or_call): Adjust. |
| |
| 2014-11-14 Marek Polacek <polacek@redhat.com> |
| |
| * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if |
| that overflows when SANITIZE_SI_OVERFLOW is on. Guard -(-A) |
| folding with TYPE_OVERFLOW_SANITIZED. |
| |
| 2014-11-14 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/63839 |
| * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST, |
| ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define. |
| * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): |
| Define. |
| * builtins.c (fold_builtin_0): Don't include ubsan.h. Don't |
| instrument BUILT_IN_UNREACHABLE here. |
| * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make |
| const. |
| * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE. |
| * tree-ssa-ccp.c (optimize_unreachable): Bail out if |
| SANITIZE_UNREACHABLE. |
| * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE. |
| * ubsan.h (ubsan_instrument_unreachable): Adjust declaration. |
| |
| 2014-11-14 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/rs6000/vector.md (vec_shl_<mode>): Remove. |
| (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN. |
| |
| 2014-11-14 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on |
| BYTES_BIG_ENDIAN. |
| * tree-vect-loop.c (calc_vec_perm_mask_for_shift, |
| vect_create_epilog_for_reduction): Likewise. |
| * doc/md.texi (vec_shr_m): Clarify direction of shifting. |
| |
| 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/63724 |
| * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out |
| numerical immediate handling to... |
| (aarch64_internal_mov_immediate): ...this. New. |
| (aarch64_rtx_costs): Use aarch64_internal_mov_immediate. |
| (aarch64_mov_operand_p): Relax predicate. |
| * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs. |
| (*movsi_aarch64): Turn into define_insn_and_split and new alternative |
| for 'n'. |
| (*movdi_aarch64): Likewise. |
| |
| 2014-11-14 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement more binary patterns exercised by |
| fold_stmt. |
| * fold-const.c (sing_bit_p): Export. |
| (exact_inverse): Likewise. |
| (fold_binary_loc): Remove patterns here. |
| (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT. |
| * fold-const.h (sing_bit_p): Declare. |
| (exact_inverse): Likewise. |
| |
| 2014-11-14 Marek Polacek <polacek@redhat.com> |
| |
| * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF. |
| |
| 2014-11-14 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (add_operator): Allow CONSTRUCTOR. |
| (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC. |
| (parser::parse_op): Allow to iterate over predicates. |
| |
| 2014-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure.ac (--with-diagnostics-color): New configure |
| option, default to --with-diagnostics-color=auto. |
| * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT |
| to determine -fdiagnostics-color= option default. |
| * doc/invoke.texi (-fdiagnostics-color=): Document new |
| default. |
| * configure: Regenerated. |
| * config.in: Regenerated. |
| |
| 2014-11-13 Teresa Johnson <tejohnson@google.com> |
| |
| PR tree-optimization/63841 |
| * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. |
| |
| 2014-11-14 Bin Cheng <bin.cheng@arm.com> |
| |
| * timevar.def (TV_SCHED_FUSION): New time var. |
| * passes.def (pass_sched_fusion): New pass. |
| * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New. |
| (extract_base_offset_in_addr, fusion_load_store): New. |
| (arm_sched_fusion_priority): New. |
| (arm_option_override): Disable scheduling fusion by default |
| on non-armv7 processors or ldrd/strd isn't preferred. |
| * sched-int.h (struct _haifa_insn_data): New field. |
| (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New. |
| * sched-rgn.c (rest_of_handle_sched_fusion): New. |
| (pass_data_sched_fusion, pass_sched_fusion): New. |
| (make_pass_sched_fusion): New. |
| * haifa-sched.c (sched_fusion): New. |
| (insn_cost): Handle sched_fusion. |
| (priority): Handle sched_fusion by calling target hook. |
| (enum rfs_decision): New enum value. |
| (rfs_str): New element for RFS_FUSION. |
| (rank_for_schedule): Support sched_fusion. |
| (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion. |
| (schedule_block, fix_tick_ready): Handle sched_fusion. |
| * common.opt (flag_schedule_fusion): New. |
| * tree-pass.h (make_pass_sched_fusion): New. |
| * target.def (fusion_priority): New. |
| * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New. |
| * doc/tm.texi: Regenerated. |
| * doc/invoke.texi (-fschedule-fusion): New. |
| |
| 2014-11-13 Rong Xu <xur@google.com> |
| |
| PR debug/63581 |
| * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the |
| footer, instead of unconditionally overwritten. |
| |
| 2014-11-14 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (clear_outer_type): Make public. Fix comment. |
| * ipa-devirt.c (possible_polymorphic_call_targets): Use |
| clear_outer_type when resetting the context. |
| |
| 2014-11-13 Dominique Dhumieres <dominiq@lps.ens.fr> |
| |
| PR bootstrap/63853 |
| * gcc.c (handle_foffload_option): Replace strchrnul with strchr. |
| * lto-wrapper.c (parse_env_var, append_offload_options): Likewise. |
| |
| 2014-11-13 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR. |
| * tree-cfg.c (verify_gimple_assign_binary): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code): |
| Likewise. |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Remove assertion |
| against VEC_RSHIFT_EXPR. |
| |
| * optabs.h (expand_vec_shift_expr): Remove. |
| * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR. |
| (expand_vec_shift_expr): Remove. |
| * tree.def (VEC_RSHIFT_EXPR): Remove |
| |
| 2014-11-13 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr. |
| (shift_amt_for_vec_perm_mask): New. |
| (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx |
| and mask appropriate. |
| |
| * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New. |
| (have_whole_vector_shift): New. |
| (vect_model_reduction_cost): Call have_whole_vector_shift instead of |
| looking for vec_shr_optab. |
| (vect_create_epilog_for_reduction): Likewise; also rename local variable |
| have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs |
| instead of VEC_RSHIFT_EXPRs. |
| |
| * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment. |
| |
| 2014-11-13 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-vectorizer.h (vect_gen_perm_mask): Remove. |
| (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New. |
| |
| * tree_vec_data_refs.c (vect_permute_load_chain, |
| vec_permute_store_chain, vec_shift_permute_load_chain): Replace |
| vect_gen_perm_mask & assert with vect_gen_perm_mask_checked. |
| |
| * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load): |
| Likewise. |
| (vect_gen_perm_mask_checked): New. |
| (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to... |
| (vect_gen_perm_mask_any): ...this. |
| (perm_mask_for_reverse): Call can_vec_perm_p and |
| vect_gen_perm_mask_checked. |
| |
| 2014-11-13 Felix Yang <felix.yang@huawei.com> |
| |
| * ipa-utils.h: Fix typo in comments. |
| * ipa-profile.c: Likewise. |
| * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps. |
| |
| 2014-11-13 Teresa Johnson <tejohnson@google.com> |
| |
| PR tree-optimization/63841 |
| * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers. |
| |
| 2014-11-13 Teresa Johnson <tejohnson@google.com> |
| |
| PR tree-optimization/63841 |
| * tree.c (initializer_zerop): A clobber does not zero initialize. |
| |
| 2014-11-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * optabs.c (prepare_operand): Gracefully fail if the mode of X |
| does not match the operand mode expected by the insn pattern. |
| |
| 2014-11-13 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Add tcc_comparison, inverted_tcc_comparison |
| and inverted_tcc_comparison_with_nans operator lists. |
| Use tcc_comparison in the truth_valued_p predicate definition. |
| Restrict logical_inverted_value with bit_xor to integral types. |
| Build a boolean true for simplifying x |^ !x because of |
| vector types. Implement patterns from forward_propagate_comparison |
| * tree-ssa-forwprop.c (forward_propagate_comparison): Remove. |
| (get_prop_dest_stmt): Likewise. |
| (pass_forwprop::execute): Do not call it. |
| * fold-const.c (fold_unary_loc): Remove the pattern here. |
| |
| 2014-11-13 Ilya Verbin <ilya.verbin@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| |
| * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to |
| tmake_file. |
| (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the |
| accelerator compiler. |
| * config/i386/intelmic-mkoffload.c: New file. |
| * config/i386/t-intelmic: Ditto. |
| |
| 2014-11-13 Bernd Schmidt <bernds@codesourcery.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| |
| * common.opt (foffload, foffload-abi): New options. |
| * config/i386/i386.c (ix86_offload_options): New static function. |
| (TARGET_OFFLOAD_OPTIONS): Define. |
| * coretypes.h (enum offload_abi): New enum. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document. |
| * gcc.c (offload_targets): New static variable. |
| (handle_foffload_option): New static function. |
| (driver_handle_option): Handle OPT_foffload_. |
| (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES |
| according to offload_targets. |
| * hooks.c (hook_charptr_void_null): New hook. |
| * hooks.h (hook_charptr_void_null): Declare. |
| * lto-opts.c: Include lto-section-names.h. |
| (lto_write_options): Append options from target offload_options hook and |
| store them to offload_lto section. Do not store target-specific, |
| driver and diagnostic options in offload_lto section. |
| * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and |
| OPT_foffload_abi_. |
| (append_compiler_options, append_linker_options) |
| (append_offload_options): New static functions. |
| (compile_offload_image): Add new arguments with options. |
| Call append_compiler_options and append_offload_options. |
| (compile_images_for_offload_targets): Add new arguments with options. |
| (find_and_merge_options): New static function. |
| (run_gcc): Outline options handling into the new functions: |
| find_and_merge_options, append_compiler_options, append_linker_options. |
| * opts.c (common_handle_option): Don't handle OPT_foffload_. |
| Forbid OPT_foffload_abi_ for non-offload compiler. |
| * target.def (offload_options): New target hook. |
| |
| 2014-11-13 Ilya Verbin <ilya.verbin@intel.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * gcc.c (spec_host_machine, accel_dir_suffix): New variables. |
| (process_command): Tweak path construction for the possibility |
| of being configured as an offload compiler. |
| (driver::maybe_putenv_OFFLOAD_TARGETS): New function. |
| (driver::main): Call maybe_putenv_OFFLOAD_TARGETS. |
| (driver::set_up_specs): Tweak path construction for the possibility of |
| being configured as an offload compiler. |
| * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define. |
| (offload_names, offloadbegin, offloadend): New static variables. |
| (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image) |
| (compile_images_for_offload_targets, copy_file, find_offloadbeginend): |
| New static functions. |
| (run_gcc): Determine whether offload sections are present. If so, run |
| compile_images_for_offload_targets and return the names of new generated |
| objects to linker. If there are offload sections, but no LTO sections, |
| then return the copies of input objects without link-time recompilation. |
| |
| 2014-11-13 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_node::gen_kids): Fix placement of break statement. |
| |
| 2014-11-13 Ilya Verbin <ilya.verbin@intel.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * Makefile.in (GTFILES): Add omp-low.h to list of GC files. |
| * cgraphunit.c: Include omp-low.h. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document. |
| * gengtype.c (open_base_files): Add omp-low.h to ifiles. |
| * lto-cgraph.c (output_offload_tables): New function. |
| (input_offload_tables): Likewise. |
| * lto-section-in.c (lto_section_name): Add "offload_table". |
| * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define. |
| (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise. |
| * lto-streamer-out.c (lto_output): Call output_offload_tables. |
| * lto-streamer.h (lto_section_type): Add LTO_section_offload_table. |
| (output_offload_tables, input_offload_tables): Declare. |
| * omp-low.c: Include common/common-target.h and lto-section-names.h. |
| (offload_funcs, offload_vars): New global <tree, va_gc> vectors. |
| (expand_omp_target): Add child_fn into offload_funcs vector. |
| (add_decls_addresses_to_decl_constructor): New function. |
| (omp_finish_file): Likewise. |
| * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare. |
| * target.def (record_offload_symbol): New DEFHOOK. |
| * toplev.c: Include omp-low.h. |
| (compile_file): Call omp_finish_file. |
| * varpool.c: Include omp-low.h. |
| (varpool_node::get_create): Add decl into offload_vars vector. |
| |
| 2014-11-13 Ilya Verbin <ilya.verbin@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cgraph.c: Include context.h. |
| (cgraph_node::create): Set node->offloadable and g->have_offload if |
| decl have "omp declare target" attribute. |
| * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags. |
| * cgraphunit.c: Include lto-section-names.h. |
| (ipa_passes): Call ipa_write_summaries if there is something to write to |
| OFFLOAD_SECTION_NAME_PREFIX sections. |
| (symbol_table::compile): Set flag_generate_lto if there is something to |
| offload. |
| Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init. |
| * context.c (gcc::context::context): Initialize have_offload with false. |
| * context.h (class context): Add have_offload flag. |
| * ipa-inline-analysis.c (inline_generate_summary): Do not exit under |
| flag_generate_lto. |
| (inline_free_summary): Always remove hooks. |
| * lto-cgraph.c (referenced_from_other_partition_p): Ignore references |
| from non-offloadable nodes while streaming a node into offload section. |
| (reachable_from_other_partition_p): Likewise. |
| (select_what_to_stream): New function. |
| (compute_ltrans_boundary): Do not call |
| lto_set_symtab_encoder_in_partition if the node should not be streamed. |
| * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define. |
| (section_name_prefix): Declare. |
| * lto-streamer.c (section_name_prefix): New variable. |
| (lto_get_section_name): Use section_name_prefix instead of |
| LTO_SECTION_NAME_PREFIX. |
| * lto-streamer.h (select_what_to_stream): Declare. |
| * omp-low.c: Include context.h. |
| (is_targetreg_ctx): New function. |
| (scan_sharing_clauses): Use offloadable flag, instead of an attribute. |
| (create_omp_child_function, check_omp_nesting_restrictions): Use new |
| is_targetreg_ctx function. Replace usage of "omp declare target" |
| attribute with a cgraph_node flag offloadable. |
| (expand_omp_target): Set mark_force_output for offloadable functions. |
| (lower_omp_critical): Set offloadable flag for omp critical symbol. |
| * passes.c (ipa_write_summaries): New argument offload_lto_mode. Call |
| select_what_to_stream. Do not call lto_set_symtab_encoder_in_partition |
| if the node should not be streamed out. |
| * tree-pass.h (ipa_write_summaries): New bool argument. |
| * varpool.c: Include context.h. |
| (varpool_node::get_create): Set node->offloadable and g->have_offload if |
| decl have "omp declare target" attribute. |
| |
| 2014-11-13 Bernd Schmidt <bernds@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| |
| * Makefile.in (real_target_noncanonical, accel_dir_suffix) |
| (enable_as_accelerator): New variables substituted by configure. |
| (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of |
| being configured as an offload compiler. |
| (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and |
| ACCEL_DIR_SUFFIX. |
| (install-cpp, install-common, install_driver, install-gcc-ar): Do not |
| install for the offload compiler. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac (real_target_noncanonical, accel_dir_suffix) |
| (enable_as_accelerator): Compute new variables. |
| (ACCEL_COMPILER): Define if the compiler is built as the accel compiler. |
| (OFFLOAD_TARGETS): List of target names suitable for offloading. |
| (ENABLE_OFFLOADING): Define if list of offload targets is not empty. |
| * doc/install.texi (Options specification): Document |
| --enable-as-accelerator-for and --enable-offload-targets. |
| |
| 2014-11-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR tree-optimization/63828 |
| * ipa-polymorphic-call.c (possible_placement_new): Check |
| POINTER_SIZE, instead of BITS_PER_WORD, for pointer size. |
| |
| 2014-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/tm.texi.in (SELECT_CC_MODE): Update example. |
| (REVERSIBLE_CC_MODE): Fix example. |
| (REVERSE_CONDITION): Fix typo. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-13 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (pass_data_expand_omp): Set properties_provided to |
| PROP_gimple_eomp. |
| (pass_expand_omp::gate): Remove function. Move gate expression to ... |
| (pass_expand_omp::execute): ... here, as new variable gate. Add early |
| exit if gate is false. |
| (pass_data pass_data_expand_omp_ssa): New pass_data. |
| (class pass_expand_omp_ssa): New pass. |
| (make_pass_expand_omp_ssa): New function. |
| * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN |
| instead of NEXT_PASS. |
| (pass_expand_omp_ssa): Add after pass_parallelize_loops. |
| * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local. |
| (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg |
| and TODO_rebuild_alias yet. Add TODO_update_ssa. Set |
| cfun->omp_expand_needed. |
| * tree-pass.h: Add define PROP_gimple_eomp. |
| (make_pass_expand_omp_ssa): Declare. |
| |
| 2014-11-13 Marek Polacek <polacek@redhat.com> |
| |
| * tree.h (TYPE_OVERFLOW_SANITIZED): Define. |
| * fold-const.c (fold_binary_loc): Use it. |
| * match.pd: Likewise. |
| |
| 2014-11-14 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * lra-lives.c (struct bb_data): Rename to ... |
| (struct bb_data_pseudos): ... this. |
| (initiate_live_solver): Update struct name. |
| |
| 2014-11-13 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement conditional expression patterns. |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove |
| them here. |
| (combine_cond_exprs): Remove. |
| (pass_forwprop::execute): Do not call combine_cond_exprs. |
| * fold-const.c (fold_ternary_loc): Remove patterns here. |
| (pedantic_omit_one_operand_loc): Remove. |
| |
| 2014-12-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/61559 |
| * match.pd: Implement bswap patterns for transforms checked by |
| gcc.dg/builtin-bswap-8.c. |
| |
| 2014-11-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra.c (lra): Switch off rematerialization pass. |
| |
| 2014-11-12 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * common.opt (flra-remat): New. |
| * opts.c (default_options_table): Add entry for flra_remat. |
| * timevar_def (TV_LRA_REMAT): New. |
| * doc/invoke.texi (-flra-remat): Add description of the new |
| option. |
| * doc/passes.texi (-flra-remat): Remove lra-equivs.c and |
| lra-saves.c. Add lra-remat.c. |
| * Makefile.in (OBJS): Add lra-remat.o. |
| * lra-remat.c: New file. |
| * lra.c: Add info about the rematerialization pass in the top |
| comment. |
| (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): |
| Process unallocatable regs too. |
| (lra_constraint_new_insn_uid_start): Remove. |
| (lra): Add code for calling rematerialization sub-pass. |
| * lra-int.h (lra_constraint_new_insn_uid_start): Remove. |
| (lra_constrain_insn, lra_remat): New prototypes. |
| (lra_eliminate_regs_1): Add parameter. |
| * lra-lives.c (make_hard_regno_born, make_hard_regno_dead): |
| Process unallocatable hard regs too. |
| (process_bb_lives): Ditto. |
| * lra-spills.c (remove_pseudos): Add argument to |
| lra_eliminate_regs_1 call. |
| * lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it |
| for sp offset calculation. |
| (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call. |
| (eliminate_regs_in_insn): Add parameter. Use it for sp offset |
| calculation. |
| (process_insn_for_elimination): Add argument for |
| eliminate_regs_in_insn call. |
| * lra-constraints.c (get_equiv_with_elimination): Add argument |
| for lra_eliminate_regs_1 call. |
| (process_addr_reg): Add parameter. Use it. |
| (process_address_1): Ditto. Add argument for process_addr_reg |
| call. |
| (process_address): Ditto. |
| (curr_insn_transform): Add parameter. Use it. Add argument for |
| process_address calls. |
| (lra_constrain_insn): New function. |
| (lra_constraints): Add argument for curr_insn_transform call. |
| |
| 2014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * opts-global.c (postpone_unknown_option_warning): Fix spelling. |
| (print_ignored_options): Fix quoting. |
| * opts.c (common_handle_option): Likewise. |
| (set_debug_level): Likewise. |
| * toplev.c (process_options): Likewise. |
| |
| 2014-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/63838 |
| * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls |
| chain instead of node->indirect_calls. Put !can_throw into |
| conditions of all the loops. |
| |
| 2014-11-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to |
| set pic_offset_table_rtx. |
| |
| 2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * common/config/mips/mips-common.c (mips_handle_option): Ensure |
| that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64. |
| * config.gcc (--with-fp-32): New option. |
| (--with-odd-spreg-32): Likewise. |
| * config.in (HAVE_AS_DOT_MODULE): New config define. |
| * config/mips/mips-protos.h |
| (mips_secondary_memory_needed): New prototype. |
| (mips_hard_regno_caller_save_mode): Likewise. |
| * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype. |
| (mips_get_arg_info): Assert that V2SFmode is only handled specially |
| with TARGET_PAIRED_SINGLE_FLOAT. |
| (mips_return_mode_in_fpr_p): Likewise. |
| (mips16_call_stub_mode_suffix): Likewise. |
| (mips_get_reg_raw_mode): New static function. |
| (mips_return_fpr_pair): O32 return values span two registers. |
| (mips16_build_call_stub): Likewise. |
| (mips_function_value_regno_p): Support both FP return registers. |
| (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add |
| specific cases for TARGET_FPXX to move via memory. |
| (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger |
| than UNITS_PER_FPREG 'span' one register. |
| (mips_dwarf_frame_reg_mode): New static function. |
| (mips_file_start): Switch to using .module instead of .gnu_attribute. |
| No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6. |
| Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg). |
| (mips_save_reg, mips_restore_reg): Always represent DFmode frame |
| slots with two CFI directives even for O32 FP64. |
| (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when |
| saving/restoring callee-saved registers. |
| (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension. |
| (mips_secondary_memory_needed): New function. |
| (mips_option_override): ABI check for TARGET_FLOATXX. Disable |
| odd-numbered single-precision registers when using TARGET_FLOATXX. |
| Implement -modd-spreg and defaults. |
| (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32 |
| callee-saved behaviour. |
| (mips_hard_regno_caller_save_mode): Implement. |
| (TARGET_GET_RAW_RESULT_MODE): Define target hook. |
| (TARGET_GET_RAW_ARG_MODE): Define target hook. |
| (TARGET_DWARF_FRAME_REG_MODE): Define target hook. |
| * config/mips/mips.h (TARGET_FLOAT32): New macro. |
| (TARGET_O32_FP64A_ABI): Likewise. |
| (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add |
| _MIPS_SPFPSET builtin define. |
| (MIPS_FPXX_OPTION_SPEC): New macro. |
| (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and |
| --with-odd-spreg-32=* to -m[no-]odd-spreg. |
| (ISA_HAS_ODD_SPREG): New macro. |
| (ISA_HAS_MXHC1): True for anything other than -mfp32. |
| (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg. |
| (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG. |
| (HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension |
| (HARD_REGNO_CALL_PART_CLOBBERED): Likewise. |
| (SECONDARY_MEMORY_NEEDED): Likewise. |
| (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions. |
| * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and |
| FP64A ABI extensions. |
| (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of |
| TARGET_FLOAT64. |
| * config/mips/mips.opt (mfpxx): New target option. |
| (modd-spreg): Likewise. |
| * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch. |
| * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove |
| fp64 sysroot. |
| * config/mips/t-mti-elf: Remove fp64 multilib. |
| * config/mips/t-mti-linux: Likewise. |
| * configure.ac: Detect .module support. |
| * configure: Regenerate. |
| * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option. |
| * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new |
| options. |
| |
| 2014-11-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/63815 |
| * config/i386/i386.c (ix86_init_large_pic_reg): New. Extracted |
| from ... |
| (ix86_init_pic_reg): Here. Use ix86_init_large_pic_reg. |
| (x86_output_mi_thunk): Set PIC register to %r11. Call |
| ix86_init_large_pic_reg to initialize PIC register. |
| |
| 2014-11-12 Kai Tietz <ktietz@redhat.com> |
| |
| * sdbout.c (sdbout_symbol): Eliminate register only |
| if decl isn't a global variable. |
| |
| 2014-11-12 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices. |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add |
| qualifier_lane_index. |
| (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to... |
| (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these. |
| (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New. |
| |
| (aarch64_types_getlane_qualifiers): Rename to... |
| (aarch64_types_binop_imm_qualifiers): ...this. |
| (TYPES_SHIFTIMM): Follow renaming. |
| (TYPES_GETLANE): Rename to... |
| (TYPE_GETREG): ...this. |
| |
| (aarch64_types_setlane_qualifiers): Rename to... |
| (aarch64_type_ternop_imm_qualifiers): ...this. |
| (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming. |
| (TYPES_SETLANE): Follow renaming above, and rename self to... |
| (TYPE_SETREG): ...this. |
| |
| (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX. |
| (aarch64_simd_expand_args): Add range check and endianness-flip. |
| |
| (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index. |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to... |
| (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check. |
| (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete. |
| |
| (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to... |
| (aarch64_sq<r>dmulh_lane<mode>): ...this. |
| |
| (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to... |
| (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this. |
| |
| (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to... |
| (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this. |
| |
| (aarch64_sqdmull_lane<mode>_internal *2): Rename to... |
| (aarch64_sqdmull_lane<mode>): ...this. |
| |
| (aarch64_sqdmull_laneq<mode>_internal *2): Rename to... |
| (aarch64_sqdmull_laneq<mode>): ...this. |
| |
| (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>, |
| (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>, |
| aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>, |
| aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete. |
| |
| (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>, |
| aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>, |
| aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove |
| bounds check and lane flip. |
| |
| * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane, |
| get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi, |
| set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG. |
| |
| (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, |
| sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow |
| renaming of TERNOP_LANE to QUADOP_LANE. |
| |
| (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq, |
| sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set |
| qualifiers to TERNOP_LANE. |
| |
| 2014-11-12 Tobias Burnus <burnus@net-b.de> |
| |
| * Makefile.in (CLOOGLIBS, CLOOGINC): Remove. |
| * configure.ac: Ditto. |
| * graphite-interchange.c: Remove HAVE_CLOOG block. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2014-11-12 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as |
| caller-save. |
| (EPILOGUE_USES): Guard the check by epilogue_completed. |
| * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for |
| LR. |
| (aarch64_can_eliminate): Check LR_REGNUM liveness. |
| |
| 2014-11-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo. |
| |
| 2014-11-12 Marek Polacek <polacek@redhat.com> |
| |
| * fold-const.c (fold_binary_loc): Don't fold if the result |
| is undefined. |
| * match.pd (A + (-B) -> A - B, A - (-B) -> A + B, |
| -(-A) -> A): Likewise. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| Merge from match-and-simplify branch |
| 2014-11-04 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (user_id): Add new member is_oper_list. |
| (user_id::user_id): Add new default argument. |
| (parser::parse_operator_list): New function. |
| (parser::parse_for): Allow operator-list. |
| (parser::parse_pattern): Call parser::parse_operator_list. |
| (parser::parse_operation): Reject operator-list. |
| * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs. |
| |
| 2014-10-31 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used. |
| |
| 2014-10-30 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (parser::parse_op): Check if predicate is used in |
| result operand. |
| |
| 2014-10-29 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (parser::parse_for): Make sure to have a valid |
| token to report errors at. |
| |
| 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (parser): Add new member parsing_match_operand. |
| (parser::parse_operation): Check for conditional convert in result |
| operand. |
| (parser::parse_expr): Check for commutative operator in result operand. |
| Check for :type in match operand. |
| (parser::parse_simplify): Set/unset parsing_match_operand. |
| (parser::parser): Initialize parsing_match_operand. |
| |
| 2014-10-28 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (parser::parse_for): Properly check for already |
| defined operators. |
| |
| 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * genmatch.c (error_cb): Adjust for printing warnings. |
| (warning_at): New function. |
| (user_id): Add new member used. |
| (get_operator): Mark user_id as used. |
| (parse_for): Warn for unused operators. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement simple complex operations cancelling. |
| * fold-const.c (fold_unary_loc): Remove them here. |
| |
| 2014-11-12 Joseph Myers <joseph@codesourcery.com> |
| |
| * cppbuiltin.c (define_builtin_macros_for_compilation_flags): |
| Define __NO_MATH_ERRNO__ if -fno-math-errno. |
| * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (::gen_transform): Add capture_info and |
| expand_compares arguments. |
| (struct expr): Add is_generic flag. |
| (lower_cond): New functions lowering [VEC_]COND_EXPR |
| conditions to a GENERIC and a GIMPLE variant. |
| (lower): Call lower_cond. |
| (cmp_operand): Also compare the is_generic flag. |
| (capture_info::cinfo): Add cond_expr_cond_p flag. |
| (capture_info::capture_info): Pass down whether the |
| expression argument is a COND_EXPR condition. |
| (capture_info::walk_match): Likewise, mark captures |
| capturing COND_EXPR conditions with cond_expr_cond_p. |
| (expr::gen_transform): Pass down whether we need to |
| expand compares from COND_EXPR conditions. |
| (capture::gen_transform): Expand compares substituted |
| from COND_EXPR conditions into non-COND_EXPR conditions. |
| (dt_operand::gen_gimple_expr): Handle explicitely marked |
| GENERIC expressions as generic. |
| (dt_simplify::gen): Pass whether we need to expand |
| conditions to gen_transform. Handle capture results |
| which are from COND_EXPR conditions. |
| (main): Pass gimple flag down to lower. |
| |
| 2014-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/59708 |
| * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute. |
| * builtins.c (fold_builtin_arith_overflow): New function. |
| (fold_builtin_3): Use it. |
| * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW, |
| BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW, |
| BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW, |
| BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW, |
| BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW, |
| BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW, |
| BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW, |
| BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW, |
| BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW, |
| BUILT_IN_UMULLL_OVERFLOW): New built-in functions. |
| * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG, |
| BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR, |
| BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR, |
| BT_FN_BOOL_ULONG_ULONG_ULONGPTR, |
| BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New. |
| * expr.c (write_complex_part): Remove prototype, no longer static. |
| * expr.h (write_complex_part): New prototype. |
| * function.c (aggregate_value_p): For internal functions return 0. |
| * gimple-fold.c (arith_overflowed_p): New functions. |
| (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls. |
| * gimple-fold.h (arith_overflowed_p): New prototype. |
| * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h. |
| (find_non_realpart_uses, maybe_optimize_arith_overflow): New |
| functions. |
| (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW |
| into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is |
| never used. |
| * gimplify.c (gimplify_call_expr): Handle gimplification of |
| internal calls with lhs. |
| * internal-fn.c (get_range_pos_neg, get_min_precision, |
| expand_arith_overflow_result_store): New functions. |
| (ubsan_expand_si_overflow_addsub_check): Renamed to ... |
| (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1, |
| UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument. |
| Handle ADD_OVERFLOW and SUB_OVERFLOW expansion. |
| (ubsan_expand_si_overflow_neg_check): Renamed to ... |
| (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN |
| arguments, remove STMT argument. Handle SUB_OVERFLOW with |
| 0 as first argument expansion. |
| (ubsan_expand_si_overflow_mul_check): Renamed to ... |
| (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1, |
| UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument. |
| Handle MUL_OVERFLOW expansion. |
| (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare |
| arguments for it. |
| (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or |
| expand_neg_overflow, prepare arguments for it. |
| (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments |
| for it. |
| (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW, |
| expand_MUL_OVERFLOW): New functions. |
| * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New |
| internal functions. |
| * tree-vrp.c (check_for_binary_op_overflow): New function. |
| (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand |
| is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions. |
| (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW |
| internal functions. |
| * optabs.def (umulv4_optab): New optab. |
| * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands. |
| (*umulv<mode>4, *<u>mulvqi4): New define_insns. |
| * doc/extend.texi (Integer Overflow Builtins): Document |
| __builtin_*_overflow. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (capture_info::capture_info): Add missing |
| COND_EXPR handling. |
| (capture_info::walk_match): Fix COND_EXPR handling. |
| (capture_info::walk_result): Likewise. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63821 |
| * match.pd: Add missing conversion to the -(T)-X pattern. |
| |
| 2014-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/63819 |
| * hash-table.h: Include ggc.h also for generator programs. |
| * genmatch.c (ggc_internal_cleared_alloc): Properly define |
| using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO. |
| |
| 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/63761 |
| * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt |
| rather than taking it as a parameter. Add some comments to explain the |
| gsi_move_before in case of load and why canonicalization of bswap into |
| a rotation is only done for 16bit values. |
| (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi |
| refer to the statement just before cur_stmt. Ignore 16bit bswap that |
| are already in canonical form. Adapt bswap_replace to removal of its |
| gsi parameter. |
| |
| 2014-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete. |
| * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx): |
| (for_each_rtx_in_insn): Delete. |
| (init_rtlanal): Remove initialization of non_rtx_starting_operands. |
| * df-core.c: Remove reference to for_each_rtx in comment. |
| |
| 2014-11-12 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi, |
| arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi. |
| * doc/aarch64-acle-intrinsics.texi: Remove. |
| * doc/arm-acle-intrinsics.texi: Remove. |
| * doc/arm-neon-intrinsics.texi: Remove. |
| * doc/extend.texi: Consolidate sections AArch64 intrinsics, |
| ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language |
| Extension section. Add references to public ACLE specification. |
| |
| 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org> |
| |
| * tree-vrp.c (register_edge_assert_for_2): Change return type to |
| void and adjust accordingly. |
| (register_edge_assert_for_1): Likewise. |
| (register_edge_assert_for): Likewise. |
| (find_conditional_asserts): Likewise. |
| (find_switch_asserts): Likewise. |
| (find_assert_locations_1): Likewise. |
| (find_assert_locations): Likewise. |
| (insert_range_insertions): Inspect the need_assert_for bitmap. |
| |
| 2014-11-11 Andrew Pinski <apinski@cavium.com> |
| |
| Bug target/61997 |
| * config.gcc (aarch64*-*-*): Set target_gtfiles to include |
| aarch64-builtins.c. |
| * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h |
| at the end of the file. |
| |
| 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com> |
| Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR driver/36312 |
| * diagnostic-core.h: Add prototype for fatal_error. |
| * diagnostic.c (fatal_error): New function fatal_error. |
| * gcc.c (store_arg): Remove have_o_argbuf_index. |
| (process_command): Check if input and output files are the same. |
| * toplev.c (init_asm_output): Check if input and output files are |
| the same. |
| |
| 2014-11-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * reorg.c (fill_slots_from_thread): Do not copy frame-related insns. |
| |
| 2014-11-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/61535 |
| * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors |
| smaller than 8 bytes. |
| (sparc_function_arg_1): Tweak. |
| (sparc_function_value_1): Tweak. |
| |
| 2014-11-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * ChangeLog.jit: New. |
| * Makefile.in (doc_build_sys): New variable, set to "sphinx" if |
| sphinx is installed, falling back to "texinfo" otherwise. |
| (FULL_DRIVER_NAME): New variable, adapted from the |
| install-driver target. New target, a symlink within the builddir, |
| linked to "xgcc", for use when running the JIT library from the |
| builddir. |
| (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME. |
| (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it |
| out. |
| * configure.ac (doc_build_sys): New variable, set to "sphinx" if |
| sphinx is installed, falling back to "texinfo" otherwise. |
| (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing |
| GCC_DRIVER_NAME for the benefit of jit/internal-api.c. |
| * configure: Regenerate. |
| * doc/install.texi (--enable-host-shared): Specify that this is |
| required when building libgccjit. |
| (Tools/packages necessary for modifying GCC): Add Sphinx. |
| * timevar.def (TV_JIT_REPLAY): New. |
| (TV_ASSEMBLE): New. |
| (TV_LINK): New. |
| (TV_LOAD): New. |
| |
| 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR target/63610 |
| * configure: Regenerate. |
| |
| 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize. |
| (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we |
| are punning between float vectors and integer vectors. |
| |
| 2014-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace |
| open-coded swap with std::swap to swap values. |
| (alpha_emit_setcc): Ditto. |
| (alpha_emit_conditional_move): Ditto. |
| (alpha_split_tmode_pair): Ditto. |
| |
| 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift |
| permutations on power of 2 cases. |
| |
| 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword. |
| (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET). |
| |
| 2014-11-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-core.h (pedantic_lvalues): Remove. |
| * fold-const.c (pedantic_lvalues): Likewise. |
| (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call. |
| |
| 2014-11-11 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63622 |
| PR ipa/63795 |
| * ipa-icf.c (sem_function::merge): Add new target symbol alias |
| support guard. |
| (sem_variable::merge): Likewise. |
| * ipa-icf.h (target_supports_symbol_aliases_p): New function. |
| |
| 2014-11-11 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement patterns from associate_plusminus |
| and factor in differences from the fold-const.c implementation. |
| * fold-const.c (fold_binary_loc): Remove patterns here. |
| * tree-ssa-forwprop.c (associate_plusminus): Remove. |
| (pass_forwprop::execute): Don't call it. |
| * tree.c (tree_nop_conversion_p): New function, factored |
| from tree_nop_conversion. |
| * tree.h (tree_nop_conversion_p): Declare. |
| |
| 2014-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * system.h: Include algorithm and utility. |
| * rtl.h: Do not include utility here. |
| * wide-int.h: Ditto. |
| * tree-vect-data-refs.c (swap): Remove template. |
| (vect_prune_runtime_alias_test_list): Use std::swap instead of swap. |
| |
| 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR bootstrap/63699 |
| PR bootstrap/63750 |
| * system.h: Include <string> before "safe-ctype.h" |
| * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix |
| calls to min/max with wi namespace. |
| * ipa-chkp.c: Don't include <string>. |
| |
| 2014-11-11 Terry Guo <terry.guo@arm.com> |
| |
| * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo. |
| * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low |
| registers. |
| (*thumb1_movhf): Likewise. |
| |
| 2014-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t) |
| instead of INT64_MAX. |
| |
| 2014-11-11 Tobias Burnus <burnus@net-b.de> |
| |
| * doc/install.texi (Prerequisites): Remove CLooG. |
| |
| 2014-11-10 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * ipa-inline.c (edge_badness): Adjust. |
| (inline_small_functions): Likewise. |
| * predict.c (propagate_freq): Likewise. |
| (estimate_bb_frequencies): Likewise. |
| * sreal.c (sreal::dump): Rename from dump_sreal. |
| (debug): Adjust. |
| (copy): Remove function. |
| (sreal::shift_right): Rename from sreal_sift_right. |
| (sreal::normalize): Rename from normalize. |
| (sreal_init): Remove function. |
| (sreal::to_int): Rename from sreal_to_int. |
| (sreal_compare): Remove function. |
| (sreal::operator+): Rename from sreal_add. |
| (sreal::operator-): Rename from sreal_sub. |
| (sreal::operator*): Rename from sreal_mul. |
| (sreal::operator/): Rename from sreal_div. |
| * sreal.h (class sreal): Adjust. |
| (inline sreal &operator+=): New operator. |
| (inline sreal &operator-=): Likewise. |
| (inline sreal &operator/=): Likewise. |
| (inline sreal &operator*=): Likewise. |
| (inline bool operator!=): Likewise. |
| (inline bool operator>): Likewise. |
| (inline bool operator<=): Likewise. |
| (inline bool operator>=): Likewise. |
| |
| 2014-11-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * sched-deps.c (sched_analyze_1): Check pending list if it is not |
| less than MAX_PENDING_LIST_LENGTH. |
| (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto. |
| |
| 2014-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Replace open-coded |
| swap with std::swap to swap values. |
| (ix86_fixup_binary_operands): Ditto. |
| (ix86_binary_operator_ok): Ditto. |
| (ix86_prepare_fp_compare_args): Ditto. |
| (ix86_expand_branch): Ditto. |
| (ix86_expand_carry_flag_compare): Ditto. |
| (ix86_expand_int_movcc): Ditto. |
| (ix86_prepare_sse_fp_compare_args): Ditto. |
| (ix86_expand_sse_fp_minmax): Ditto. |
| (ix86_expand_int_vcond): Ditto. |
| (ix86_split_long_move): Ditto. |
| (ix86_expand_sse_comi): Ditto. |
| (ix86_expand_sse_compare_and_jump): Ditto. |
| (ix86_expand_sse_compare_mask): Ditto. |
| * config/i386/i386.md (*add<mode>_1): Ditto. |
| (addsi_1_zext): Ditto. |
| (*addhi_1): Ditto. |
| (*addqi_1): Ditto. |
| (*add<mode>_2): Ditto. |
| (*addsi_2_zext): Ditto. |
| (*add<mode>_3): Ditto. |
| (*addsi_3_zext): Ditto. |
| (*add<mode>_5): Ditto. |
| (absneg splitter): Ditto. |
| |
| 2014-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert: |
| 2014-10-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63620 |
| * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare. |
| * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export. |
| * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't |
| be reloaded through memory. |
| (*pushxf): Ditto. |
| (*pushdf): Ditto. |
| |
| 2014-11-11 Jakub Jelinek <jakub@redhat.com> |
| Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo. |
| (func_checker::compare_gimple_call): Compare gimple_call_fn, |
| gimple_call_chain, gimple_call_fntype and call flags. |
| |
| 2014-11-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/63620 |
| PR rtl-optimization/63799 |
| * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped |
| and setting PIC pseudo insns. |
| (lra_create_live_ranges): Fix the typo. |
| |
| 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org> |
| |
| PR middle-end/63748 |
| * tree-ssa-propagate.c (may_propagate_copy): Allow propagating |
| SSA copies whose source and destination names both occur in |
| abnormal PHIs. |
| |
| 2014-11-10 Roman Gareev <gareevroman@gmail.com> |
| |
| * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o. |
| * common.opt: Remove using of fgraphite-code-generator flag. |
| * flag-types.h: Likewise. |
| * graphite.c: Remove using of CLooG. |
| * graphite-blocking.c: Likewise. |
| * graphite-dependences.c: Likewise. |
| * graphite-poly.c: Likewise. |
| * graphite-poly.h: Likewise. |
| * graphite-scop-detection.c: Likewise. |
| * graphite-sese-to-poly.c: Likewise. |
| * graphite-clast-to-gimple.c: Removed. |
| * graphite-clast-to-gimple.h: Likewise. |
| * graphite-htab.h: Likewise. |
| |
| 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]): |
| Add. |
| |
| 2014-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/frv/frv.c (frv_io_handle_use_1): Delete. |
| (frv_io_handle_use): Use find_all_hard_regs. |
| |
| 2014-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather |
| than an rtx *. Take the regstate_t directly rather than via a void *. |
| Return a bool rather than an int. Iterate over all subrtxes here. |
| (frv_registers_conflict_p): Update accordingly. |
| |
| 2014-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/frv/frv.c: Include rtl-iter.h. |
| (frv_acc_group_1): Delete. |
| (frv_acc_group): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h. |
| (frv_clear_registers_used): Delete. |
| (frv_ifcvt_modify_tests): Use find_all_hard_regs. |
| |
| 2014-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/63573 |
| * calls.c (initialize_argument_information): When emitting thunk call |
| use original memory placement of the argument. |
| |
| 2014-11-10 Renlin Li <renlin.li@arm.com> |
| |
| PR middle-end/61529 |
| * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq. |
| |
| 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to |
| bswaphi if available. |
| |
| 2014-11-10 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/nvptx/nvptx.c: New file. |
| * config/nvptx/nvptx.h: New file. |
| * config/nvptx/nvptx-protos.h: New file. |
| * config/nvptx/nvptx.md: New file. |
| * config/nvptx/t-nvptx: New file. |
| * config/nvptx/nvptx.opt: New file. |
| * common/config/nvptx/nvptx-common.c: New file. |
| * config.gcc: Handle nvptx-*-*. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (finalize_ssa_uses): Properly put |
| released operands on the free list. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement pattern from simplify_mult. |
| * tree-ssa-forwprop.c (simplify_mult): Remove. |
| (pass_forwprop::execute): Do not call simplify_mult. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63800 |
| * tree-ssa-pre.c (eliminate_push_avail): Push in a way so |
| we can restore the previous availability in after_dom_children. |
| (eliminate_dom_walker::after_dom_children): Restore |
| previous availability. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63798 |
| * expr.c (expand_expr_real_2): When expanding FMA_EXPRs |
| properly treat the embedded multiplication as commutative |
| when looking for feeding negates. |
| |
| 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define. |
| |
| 2014-11-10 Martin Liska <mliska@suse.cz> |
| |
| * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled |
| for the test because of default char signedness |
| on powerpc64 target. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement pattern from simplify_conversion_from_bitmask. |
| * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove. |
| (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask. |
| |
| 2014-11-10 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Move rest of the conversion combining patterns |
| from tree-ssa-forwprop.c. |
| * tree-ssa-forwprop.c (combine_conversions): Remove. |
| (pass_forwprop::execute): Do not call it. |
| |
| 2014-11-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-low.c (lower_function_body): Clear the location of the first |
| inserted representative return if it also fills in for the fallthru. |
| |
| 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * tree-if-conv.c (add_to_predicate_list): Check unconditionally |
| that bb is always executed to early exit. Use predicate of |
| cd-equivalent block for join blocks if it exists. |
| (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree. |
| (tree_if_conversion): Free post-dominance information. |
| |
| 2014-11-09 Jason Merrill <jason@redhat.com> |
| |
| * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8. |
| * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16) |
| (_mm_mask_cvtusepi32_storeu_epi16) |
| (_mm_mask_cvtsepi64_storeu_epi32): Return void. |
| |
| 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/avr/predicates.md (low_io_address_operand): Fix typo. |
| |
| 2014-11-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/63620 |
| * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the |
| name. Move to lra.c. Make it external. |
| (substitute_pseudo_within_insn): Ditto. |
| (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use |
| the new names. |
| (undo_optional_reloads): Ditto. |
| * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo): |
| New prototypes. |
| (lra_substitute_pseudo_within_insn): Ditto. |
| * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New. |
| (mark_regno_live): Add parameter. Update bb_gen_pseudos. |
| (mark_regno_dead): Add parameter. Update bb_gen_pseudos and |
| bb_killed_pseudos. |
| (struct bb_data, bb_data_t, bb_data): New. |
| (get_bb_data, get_bb_data_by_index): Ditto. |
| (all_hard_regs_bitmap): New. |
| (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New. |
| (initiate_live_solver, finish_live_solver): New. |
| (process_bb_lives): Change return type. Add code updating local |
| live data and removing dead insns. Pass new argument to |
| mark_regno_live and mark_regno_dead. Check changing bb pseudo |
| life info. Return the result. |
| (lra_create_live_ranges): Add code to do global pseudo live |
| analysis. |
| (lra_live_ranges_init): Call initiate_live_solver. |
| (lra_live_ranges_finish): Call finish_live_solver. |
| * lra.c (lra_dump_bitmap_with_title): New. |
| (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move |
| from lra-constraints.c. |
| |
| 2014-11-09 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Add patterns convering two conversions in a row |
| from fold-const.c. |
| * fold-const.c (fold_unary_loc): Remove them here. |
| * tree-ssa-forwprop.c (combine_conversions): Likewise. |
| * genmatch.c (dt_node::gen_kids): Check whether we may |
| follow SSA use-def chains. |
| |
| 2014-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c: Include rtl-iter.h. |
| (aarch64_tls_operand_p_1): Delete. |
| (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/arm.c (arm_note_pic_base): Delete. |
| (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/arm.c: Include rtl-iter.h. |
| (arm_tls_referenced_p_1): Delete. |
| (arm_tls_referenced_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/aarch-common.c: Include rtl-iter.h. |
| (search_term, arm_find_sub_rtx_with_search_term): Delete. |
| (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR. |
| (arm_get_set_operands): Pass the insn pattern rather than the |
| insn itself. |
| (arm_no_early_store_addr_dep): Likewise. |
| |
| 2014-11-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/arm/arm.c (arm_set_return_address): Mark the store as frame |
| related, if any. |
| (thumb_set_return_address): Likewise. |
| |
| 2014-11-07 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/61515 |
| * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding |
| stack rather than looking at every SSA_NAME's value. |
| |
| 2014-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63605 |
| * fold-const.c (fold_binary_loc): Properly use element_precision |
| for types that may not be scalar. |
| |
| 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/63534 |
| * config/i386/i386.md (builtin_setjmp_receiver): Use |
| pic_offset_table_rtx for PIC register. |
| (nonlocal_goto_receiver): Delete. |
| |
| 2014-11-07 Daniel Hellstrom <daniel@gaisler.com> |
| |
| * config.gcc (sparc-*-rtems*): Clean away unused t-elf. |
| * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs. |
| |
| 2014-11-07 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63580 |
| * cgraphunit.c (cgraph_node::create_wrapper): |
| TREE_ADDRESSABLE is set to false for a newly created thunk. |
| |
| 2014-11-07 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63747 |
| * ipa-icf-gimple.c (func_checker::compare_gimple_switch): |
| Missing checking for CASE_LOW and CASE_HIGH added. |
| |
| 2014-11-07 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63595 |
| * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE |
| is correctly handled for thunks created by IPA ICF. |
| |
| 2014-11-07 Jiong Wang <jiong.wang@arm.com> |
| 2014-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63676 |
| * gimple-fold.c (fold_gimple_assign): Do not fold node when |
| TREE_CLOBBER_P be true. |
| |
| 2014-11-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63770 |
| * match.pd: Guard conflicting GENERIC pattern properly. |
| |
| 2014-11-07 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Add patterns for POINTER_PLUS_EXPR association |
| and special patterns from tree-ssa-forwprop.c |
| * fold-const.c (fold_binary_loc): Remove them here. |
| * tree-ssa-forwprop.c (to_purge): New global bitmap. |
| (fwprop_set_lattice_val): New function. |
| (fwprop_invalidate_lattice): Likewise. |
| (remove_prop_source_from_use): Instead of purging dead EH |
| edges record blocks to do that in to_purge. |
| (tidy_after_forward_propagate_addr): Likewise. |
| (forward_propagate_addr_expr): Invalidate the lattice for |
| SSA names we release. |
| (simplify_conversion_from_bitmask): Likewise. |
| (simplify_builtin_call): Likewise. |
| (associate_pointerplus_align): Remove. |
| (associate_pointerplus_diff): Likewise. |
| (associate_pointerplus): Likewise. |
| (fold_all_stmts): Merge with ... |
| (pass_forwprop::execute): ... the original loop over all |
| basic-blocks. Delay purging dead EH edges and invalidate |
| the lattice for SSA names we release. |
| |
| 2014-11-07 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/arm.opt (masm-syntax-unified): New option. |
| * doc/invoke.texi (-masm-syntax-unified): Document new option. |
| * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1. |
| (ASM_APP_ON): Redefined. |
| * config/arm/arm.c (arm_option_override): Thumb2 inline assembly |
| code always use UAL syntax. |
| (arm_output_mi_thunk): Use UAL syntax for Thumb1 target. |
| * config/arm/thumb1.md: Likewise. |
| |
| 2014-11-06 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md (trap): New insn. Add "trap" to attribute type. |
| Don't allow trap insn in in_branch_delay, in_nullified_branch_delay |
| or in_call_delay. |
| |
| 2014-11-06 Steve Ellcey <sellcey@imgtec.com> |
| |
| * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments. |
| Set default_mips_arch and default_mips_abi instead of tm_defines. |
| (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead |
| of tm_defines. |
| (mips*-*-*): Check with_arch and with_abi. Set tm_defines. |
| * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default |
| based on MIPS_ABI_DEFAULT. |
| (STANDARD_STARTFILE_PREFIX_2): Ditto. |
| |
| 2014-11-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner |
| cases of extended identifiers. |
| |
| 2014-11-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here. |
| |
| 2014-11-06 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of |
| conditional. |
| (movhicc_<code>_<mode>): Likewise. |
| * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode |
| subregs. |
| (m32c_eh_return_data_regno): Change to using memregs to avoid |
| tying up all the compute regs. |
| (m32c_legitimate_address_p) Subregs are not valid addresses. |
| |
| 2014-11-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): No longer static. |
| * function.h (thread_prologue_and_epilogue_insns): Declare. |
| |
| * target.def (assemble_undefined_decl): New hooks. |
| * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function. |
| * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare. |
| * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add. |
| * doc/tm.texi: Regenerate. |
| * output.h (assemble_undefined_decl): Declare. |
| (get_fnname_from_decl): Declare. |
| * varasm.c (assemble_undefined_decl): New function. |
| (get_fnname_from_decl): New function. |
| * final.c (rest_of_handle_final): Use it. |
| * varpool.c (varpool_output_variables): Call assemble_undefined_decl |
| for nodes without a definition. |
| |
| * target.def (call_args, end_call_args): New hooks. |
| * hooks.c (hook_void_rtx_tree): New empty function. |
| * hooks.h (hook_void_rtx_tree): Declare. |
| * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add. |
| * doc/tm.texi: Regenerate. |
| * calls.c (expand_call): Slightly rearrange the code. Use the two new |
| hooks. |
| (expand_library_call_value_1): Use the two new hooks. |
| |
| * expr.c (use_reg_mode): Just return for pseudo registers. |
| |
| * combine.c (try_combine): Don't allow a call as one of the source |
| insns. |
| |
| * target.def (decl_end): New hook. |
| * varasm.c (assemble_variable_contents, assemble_constant_contents): |
| Use it. |
| * doc/tm.texi.in (TARGET_ASM_DECL_END): Add. |
| * doc/tm.texi: Regenerate. |
| |
| 2014-11-06 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_architecture_version): New. |
| (processor): New architecture_version field. |
| (aarch64_override_options): Initialize aarch64_architecture_version. |
| * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH, |
| __ARM_ARCH_PROFILE, aarch64_arch_name macro. |
| |
| 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * params.def (sra-max-scalarization-size-Ospeed): New. |
| (sra-max-scalarization-size-Osize): Likewise. |
| * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document. |
| (sra-max-scalarization-size-Osize): Likewise. |
| * toplev.c (process_options): Set default values for new |
| parameters. |
| * tree-sra.c (analyze_all_variable_accesses): Use new parameters. |
| * targhooks.c (get_move_ratio): Remove static designator. |
| * target.h (get_move_ratio): Declare. |
| |
| 2014-11-06 Marek Polacek <polacek@redhat.com> |
| |
| * sanopt.c (sanopt_optimize_walker): Limit removal of the checks. |
| Remove vector limit. |
| |
| 2014-11-06 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement bitwise binary and unary simplifications |
| from tree-ssa-forwprop.c. |
| * fold-const.c (fold_unary_loc): Remove them here. |
| (fold_binary_loc): Likewise. |
| * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove. |
| (truth_valued_ssa_name): Likewise. |
| (lookup_logical_inverted_value): Likewise. |
| (simplify_bitwise_binary_1): Likewise. |
| (hoist_conversion_for_bitop_p): Likewise. |
| (simplify_bitwise_binary_boolean): Likewise. |
| (simplify_bitwise_binary): Likewise. |
| (pass_forwprop::execute): Remove calls to simplify_not_neg_expr |
| and simplify_bitwise_binary. |
| * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent. |
| (decision_tree::insert): Also insert non-expressions. |
| |
| 2014-11-06 Hale Wang <hale.wang@arm.com> |
| |
| * config/arm/arm-cores.def: Add support for |
| -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply, |
| cortex-m1.small-multiply. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/arm.c: Update the rtx-costs for MUL. |
| * config/arm/bpabi.h: Handle |
| -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply, |
| cortex-m1.small-multiply. |
| * doc/invoke.texi: Document |
| -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply, |
| cortex-m1.small-multiply. |
| |
| 2014-11-06 Hale Wang <hale.wang@arm.com> |
| |
| * config/arm/arm.c: Add cortex-m7 tune. |
| * config/arm/arm-cores.def: Use cortex-m7 tune. |
| |
| 2014-11-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63538 |
| * config/i386/i386.c (in_large_data_p): Reject automatic variables. |
| (ix86_encode_section_info): Do not check for non-automatic varibles |
| when setting SYMBOL_FLAG_FAR_ADDR flag. |
| (x86_64_elf_select_section): Do not check ix86_cmodel here. |
| (x86_64_elf_unique_section): Ditto. |
| (x86_elf_aligned_common): Emit tab before .largecomm. |
| |
| 2014-11-05 Joseph Myers <joseph@codesourcery.com> |
| |
| PR preprocessor/9449 |
| * doc/cpp.texi (Character sets, Tokenization) |
| (Implementation-defined behavior): Don't refer to UCNs in |
| identifiers requiring -fextended-identifiers. |
| * doc/cppopts.texi (-fextended-identifiers): Document as enabled |
| by default for C99 and later and C++. |
| * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended |
| identifiers needing -fextended-identifiers. |
| |
| 2014-11-05 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd |
| for 512-bit wide modes. |
| (expand_vec_perm_1): Use correct versions of patterns. |
| * config/i386/sse.md (avx512f_vec_dup<mode>_1): New. |
| (vashr<mode>3<mask_name>): Split V8HImode and V16QImode. |
| |
| 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * ipa-chkp.c: New. |
| * ipa-chkp.h: New. |
| * tree-chkp.c: New. |
| * tree-chkp.h: New. |
| * tree-chkp-opt.c: New. |
| * rtl-chkp.c: New. |
| * rtl-chkp.h: New. |
| * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o |
| tree-chkp-opt.o. |
| (GTFILES): Add tree-chkp.c. |
| * mode-classes.def (MODE_POINTER_BOUNDS): New. |
| * tree.def (POINTER_BOUNDS_TYPE): New. |
| * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS. |
| (POINTER_BOUNDS_MODE): New. |
| (make_pointer_bounds_mode): New. |
| * machmode.h (POINTER_BOUNDS_MODE_P): New. |
| * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS. |
| (layout_type): Support POINTER_BOUNDS_TYPE. |
| * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE. |
| * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE. |
| * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE. |
| (type_contains_placeholder_1): Likewise. |
| (build_common_tree_nodes): Initialize |
| pointer_bounds_type_node. |
| * tree.h (POINTER_BOUNDS_TYPE_P): New. |
| (pointer_bounds_type_node): New. |
| (POINTER_BOUNDS_P): New. |
| (BOUNDED_TYPE_P): New. |
| (BOUNDED_P): New. |
| (CALL_WITH_BOUNDS_P): New. |
| * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS. |
| (gimple_call_with_bounds_p): New. |
| (gimple_call_set_with_bounds): New. |
| (gimple_return_retbnd): New. |
| (gimple_return_set_retbnd): New |
| * gimple.c (gimple_build_return): Increase number of ops |
| for return statement. |
| (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P |
| flag. |
| * gimple-pretty-print.c (dump_gimple_return): Print second op. |
| * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New. |
| * gimplify.c (gimplify_init_constructor): Avoid infinite |
| loop during gimplification of bounds initializer. |
| * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h. |
| (special_function_p): Use original decl name when analyzing |
| instrumentation clone. |
| (arg_data): Add fields special_slot, pointer_arg and |
| pointer_offset. |
| (store_bounds): New. |
| (emit_call_1): Propagate instrumentation flag for CALL. |
| (initialize_argument_information): Compute pointer_arg, |
| pointer_offset and special_slot for pointer bounds arguments. |
| (finalize_must_preallocate): Preallocate when storing bounds |
| in bounds table. |
| (compute_argument_addresses): Skip pointer bounds. |
| (expand_call): Store bounds into tables separately. Return |
| result joined with resulting bounds. |
| * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h. |
| (expand_call_stmt): Propagate bounds flag for CALL_EXPR. |
| (expand_return): Add returned bounds arg. Handle returned bounds. |
| (expand_gimple_stmt_1): Adjust to new expand_return signature. |
| (gimple_expand_cfg): Reset rtx bounds map. |
| * expr.c: Include tree-chkp.h, rtl-chkp.h. |
| (expand_assignment): Handle returned bounds. |
| (store_expr_with_bounds): New. Replaces store_expr with new bounds |
| target argument. Handle bounds returned by calls. |
| (store_expr): Now wraps store_expr_with_bounds. |
| * expr.h (store_expr_with_bounds): New. |
| * function.c: Include tree-chkp.h, rtl-chkp.h. |
| (bounds_parm_data): New. |
| (use_register_for_decl): Do not registerize decls used for bounds |
| stores and loads. |
| (assign_parms_augmented_arg_list): Add bounds of the result |
| structure pointer as the second argument. |
| (assign_parm_find_entry_rtl): Mark bounds are never passed on |
| the stack. |
| (assign_parm_is_stack_parm): Likewise. |
| (assign_parm_load_bounds): New. |
| (assign_bounds): New. |
| (assign_parms): Load bounds and determine a location for |
| returned bounds. |
| (diddle_return_value_1): New. |
| (diddle_return_value): Handle returned bounds. |
| * function.h (rtl_data): Add field for returned bounds. |
| * varasm.c: Include tree-chkp.h. |
| (output_constant): Support POINTER_BOUNDS_TYPE. |
| (output_constant_pool_2): Support MODE_POINTER_BOUNDS. |
| (ultimate_transparent_alias_target): Move up. |
| (make_decl_rtl): For instrumented function use |
| name of the original decl. |
| (assemble_start_function): Mark function as global |
| in case it is instrumentation clone of the global |
| function. |
| (do_assemble_alias): Follow transparent alias chain |
| for identifier. Check if original alias is public. |
| (maybe_assemble_visibility): Use visibility of the |
| original function for instrumented version. |
| (default_unique_section): Likewise. |
| * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS. |
| (init_emit_once): Build pointer bounds zero constants. |
| * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS. |
| * target.def (builtin_chkp_function): New. |
| (chkp_bound_type): New. |
| (chkp_bound_mode): New. |
| (chkp_make_bounds_constant): New. |
| (chkp_initialize_bounds): New. |
| (load_bounds_for_arg): New. |
| (store_bounds_for_arg): New. |
| (load_returned_bounds): New. |
| (store_returned_bounds): New. |
| (chkp_function_value_bounds): New. |
| (setup_incoming_vararg_bounds): New. |
| (function_arg): Update hook description with new possible return |
| value CONST_INT. |
| * targhooks.h (default_load_bounds_for_arg): New. |
| (default_store_bounds_for_arg): New. |
| (default_load_returned_bounds): New. |
| (default_store_returned_bounds): New. |
| (default_chkp_bound_type): New. |
| (default_chkp_bound_mode): New. |
| (default_builtin_chkp_function): New. |
| (default_chkp_function_value_bounds): New. |
| (default_chkp_make_bounds_constant): New. |
| (default_chkp_initialize_bounds): New. |
| (default_setup_incoming_vararg_bounds): New. |
| * targhooks.c (default_load_bounds_for_arg): New. |
| (default_store_bounds_for_arg): New. |
| (default_load_returned_bounds): New. |
| (default_store_returned_bounds): New. |
| (default_chkp_bound_type): New. |
| (default_chkp_bound_mode); New. |
| (default_builtin_chkp_function): New. |
| (default_chkp_function_value_bounds): New. |
| (default_chkp_make_bounds_constant): New. |
| (default_chkp_initialize_bounds): New. |
| (default_setup_incoming_vararg_bounds): New. |
| * builtin-types.def (BT_BND): New. |
| (BT_FN_PTR_CONST_PTR): New. |
| (BT_FN_CONST_PTR_CONST_PTR): New. |
| (BT_FN_BND_CONST_PTR): New. |
| (BT_FN_CONST_PTR_BND): New. |
| (BT_FN_PTR_CONST_PTR_SIZE): New. |
| (BT_FN_PTR_CONST_PTR_CONST_PTR): New. |
| (BT_FN_VOID_PTRPTR_CONST_PTR): New. |
| (BT_FN_VOID_CONST_PTR_SIZE): New. |
| (BT_FN_VOID_PTR_BND): New. |
| (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New. |
| (BT_FN_BND_CONST_PTR_SIZE): New. |
| (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New. |
| (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New. |
| * chkp-builtins.def: New. |
| * builtins.def: include chkp-builtins.def. |
| (DEF_CHKP_BUILTIN): New. |
| * builtins.c: Include tree-chkp.h and rtl-chkp.h. |
| (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS, |
| BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS, |
| BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS, |
| BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS, |
| BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS, |
| BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND, |
| BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL, |
| BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET, |
| BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW, |
| BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER. |
| (std_expand_builtin_va_start): Init bounds for va_list. |
| * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add |
| __CHKP__ macro when Pointer Bounds Checker is on. |
| * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New. |
| * passes.def (pass_ipa_chkp_versioning): New. |
| (pass_early_local_passes): Renamed to pass_build_ssa_passes. |
| (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes. |
| (pass_chkp_instrumentation_passes): New. |
| (pass_ipa_chkp_produce_thunks): New. |
| (pass_local_optimization_passes): New. |
| (pass_chkp_opt): New. |
| * tree-pass.h (make_pass_ipa_chkp_versioning): New. |
| (make_pass_ipa_chkp_produce_thunks): New. |
| (make_pass_chkp): New. |
| (make_pass_chkp_opt): New. |
| (make_pass_early_local_passes): Renamed to ... |
| (make_pass_build_ssa_passes): This. |
| (make_pass_chkp_instrumentation_passes): New. |
| (make_pass_local_optimization_passes): New. |
| * passes.c (pass_manager::execute_early_local_passes): Execute |
| early passes in three steps. |
| (execute_all_early_local_passes): Renamed to ... |
| (execute_build_ssa_passes): This. |
| (pass_data_early_local_passes): Renamed to ... |
| (pass_data_build_ssa_passes): This. |
| (pass_early_local_passes): Renamed to ... |
| (pass_build_ssa_passes): This. |
| (pass_data_chkp_instrumentation_passes): New. |
| (pass_chkp_instrumentation_passes): New. |
| (pass_data_local_optimization_passes): New. |
| (pass_local_optimization_passes): New. |
| (make_pass_early_local_passes): Renamed to ... |
| (make_pass_build_ssa_passes): This. |
| (make_pass_chkp_instrumentation_passes): New. |
| (make_pass_local_optimization_passes): New. |
| * c-family/c.opt (fcheck-pointer-bounds): New. |
| (fchkp-check-incomplete-type): New. |
| (fchkp-zero-input-bounds-for-main): New. |
| (fchkp-first-field-has-own-bounds): New. |
| (fchkp-narrow-bounds): New. |
| (fchkp-narrow-to-innermost-array): New. |
| (fchkp-optimize): New. |
| (fchkp-use-fast-string-functions): New. |
| (fchkp-use-nochk-string-functions): New. |
| (fchkp-use-static-bounds): New. |
| (fchkp-use-static-const-bounds): New. |
| (fchkp-treat-zero-dynamic-size-as-infinite): New. |
| (fchkp-check-read): New. |
| (fchkp-check-write): New. |
| (fchkp-store-bounds): New. |
| (fchkp-instrument-calls): New. |
| (fchkp-instrument-marked-only): New. |
| (Wchkp): New. |
| * c-family/c-common.c (handle_bnd_variable_size_attribute): New. |
| (handle_bnd_legacy): New. |
| (handle_bnd_instrument): New. |
| (c_common_attribute_table): Add bnd_variable_size, bnd_legacy |
| and bnd_instrument. Fix documentation. |
| (c_common_format_attribute_table): Likewsie. |
| * toplev.c: include tree-chkp.h. |
| (process_options): Check Pointer Bounds Checker is supported. |
| (compile_file): Add chkp_finish_file call. |
| * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p |
| to handle instrumentation clones properly. |
| (propagate_constants_accross_call): Do not propagate |
| through instrumentation thunks. |
| * ipa-pure-const.c (propagate_pure_const): Support |
| IPA_REF_CHKP. |
| * ipa-inline.c (early_inliner): Check edge has summary allocated. |
| * ipa-split.c: Include tree-chkp.h. |
| (find_retbnd): New. |
| (split_part_set_ssa_name_p): New. |
| (consider_split): Do not split retbnd and retval |
| producers. |
| (insert_bndret_call_after): new. |
| (split_function): Propagate Pointer Bounds Checker |
| instrumentation marks and handle returned bounds. |
| * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode |
| into bit field and add with_bounds field. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set |
| with_bounds field for instrumented calls. |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore |
| CALL_WITH_BOUNDS_P flag for calls. |
| * tree-ssa-ccp.c: Include tree-chkp.h. |
| (insert_clobber_before_stack_restore): Handle |
| BUILT_IN_CHKP_BNDRET calls. |
| * tree-ssa-dce.c: Include tree-chkp.h. |
| (propagate_necessity): For free call fed by alloc check |
| bounds are also provided by the same alloc. |
| (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET |
| used by free calls. |
| * tree-inline.c: Include tree-chkp.h. |
| (declare_return_variable): Add arg holding |
| returned bounds slot. Create and initialize returned bounds var. |
| (remap_gimple_stmt): Handle returned bounds. |
| Return sequence of statements instead of a single statement. |
| (insert_init_stmt): Add declaration. |
| (remap_gimple_seq): Adjust to new remap_gimple_stmt signature. |
| (copy_bb): Adjust to changed return type of remap_gimple_stmt. |
| Properly handle bounds in va_arg_pack and va_arg_pack_len. |
| (expand_call_inline): Handle returned bounds. Add bounds copy |
| for generated mem to mem assignments. |
| * tree-inline.h (copy_body_data): Add fields retbnd and |
| assign_stmts. |
| * value-prof.c: Include tree-chkp.h. |
| (gimple_ic): Support returned bounds. |
| * ipa.c (cgraph_build_static_cdtor_1): Support contructors |
| with "chkp ctor" and "bnd_legacy" attributes. |
| (symtab_remove_unreachable_nodes): Keep initial values for |
| pointer bounds to be used for checks eliminations. |
| (process_references): Handle IPA_REF_CHKP. |
| (walk_polymorphic_call_targets): Likewise. |
| * ipa-visibility.c (cgraph_externally_visible_p): Mark |
| instrumented 'main' as externally visible. |
| (function_and_variable_visibility): Filter instrumentation |
| thunks. |
| * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args |
| field. |
| (cgraph_node): Add instrumented_version, orig_decl and |
| instrumentation_clone fields. |
| (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference. |
| (varpool_node): Add need_bounds_init field. |
| (cgraph_local_p): New. |
| * cgraph.c: Include tree-chkp.h. |
| (cgraph_node::remove): Fix instrumented_version |
| of the referenced node if any. |
| (cgraph_node::dump): Dump instrumentation_clone and |
| instrumented_version fields. |
| (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP |
| references and instrumentation thunks. |
| (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep |
| all not instrumented instrumentation clones alive. |
| (cgraph_redirect_edge_call_stmt_to_callee): Support |
| returned bounds. |
| * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP |
| reference. |
| (cgraph_rebuild_references): Likewise. |
| * cgraphunit.c: Include tree-chkp.h. |
| (assemble_thunks_and_aliases): Skip thunks calling instrumneted |
| function version. |
| (varpool_finalize_decl): Register statically initialized decls |
| in Pointer Bounds Checker. |
| (walk_polymorphic_call_targets): Do not mark generated call to |
| __builtin_unreachable as with_bounds. |
| (output_weakrefs): If there are both instrumented and original |
| versions, output only one of them. |
| (cgraph_node::expand_thunk): Set with_bounds flag |
| for created call statement. |
| * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP. |
| (ipa_ref): increase size of use field. |
| * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP. |
| * varpool.c (dump_varpool_node): Dump need_bounds_init field. |
| (ctor_for_folding): Do not fold constant bounds vars. |
| * lto-streamer.h (LTO_minor_version): Change minor version from |
| 0 to 1. |
| * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for |
| pointer bounds. |
| (lto_output_node): Output instrumentation_clone, |
| thunk.add_pointer_bounds_args and orig_decl field. |
| (lto_output_ref): Adjust to new ipa_ref::use field size. |
| (input_overwrite_node): Read instrumentation_clone field. |
| (input_node): Read thunk.add_pointer_bounds_args and orig_decl |
| fields. |
| (input_ref): Adjust to new ipa_ref::use field size. |
| (input_cgraph_1): Compute instrumented_version fields and restore |
| IDENTIFIER_TRANSPARENT_ALIAS chains. |
| (lto_output_varpool_node): Output |
| need_bounds_init value. |
| (input_varpool_node): Read need_bounds_init value. |
| * lto-partition.c (add_symbol_to_partition_1): Keep original |
| and instrumented versions together. |
| (privatize_symbol_name): Restore transparent alias chain if required. |
| (add_references_to_partition): Add references to pointer bounds vars. |
| * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE. |
| * dwarf2out.c (gen_subprogram_die): Ignore bound args. |
| (gen_type_die_with_usage): Skip pointer bounds. |
| (dwarf2out_global_decl): Likewise. |
| (is_base_type): Support POINTER_BOUNDS_TYPE. |
| (gen_formal_types_die): Skip pointer bounds. |
| (gen_decl_die): Likewise. |
| * var-tracking.c (vt_add_function_parameters): Skip |
| bounds parameters. |
| * ipa-icf.c (sem_function::merge): Do not merge when instrumentation |
| thunk still exists. |
| (sem_variable::merge): Reset need_bounds_init flag. |
| * doc/extend.texi: Document Pointer Bounds Checker built-in functions |
| and attributes. |
| * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New. |
| (TARGET_STORE_BOUNDS_FOR_ARG): New. |
| (TARGET_LOAD_RETURNED_BOUNDS): New. |
| (TARGET_STORE_RETURNED_BOUNDS): New. |
| (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New. |
| (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New. |
| (TARGET_BUILTIN_CHKP_FUNCTION): New. |
| (TARGET_CHKP_BOUND_TYPE): New. |
| (TARGET_CHKP_BOUND_MODE): New. |
| (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New. |
| (TARGET_CHKP_INITIALIZE_BOUNDS): New. |
| * doc/tm.texi: Regenerated. |
| * doc/rtl.texi (MODE_POINTER_BOUNDS): New. |
| (BND32mode): New. |
| (BND64mode): New. |
| * doc/invoke.texi (-mmpx): New. |
| (-mno-mpx): New. |
| (chkp-max-ctor-size): New. |
| * config/i386/constraints.md (w): New. |
| (Ti): New. |
| (Tb): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__. |
| * config/i386/i386-modes.def (BND32): New. |
| (BND64): New. |
| * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New. |
| * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h. |
| (regclass_map): Add bound registers. |
| (dbx_register_map): Likewise. |
| (dbx64_register_map): Likewise. |
| (svr4_dbx_register_map): Likewise. |
| (isa_opts): Add -mmpx. |
| (PTA_MPX): New. |
| (ix86_option_override_internal): Support MPX ISA. |
| (ix86_conditional_register_usage): Support bound registers. |
| (ix86_code_end): Add MPX bnd prefix. |
| (output_set_got): Likewise. |
| (print_reg): Avoid prefixes for bound registers. |
| (ix86_print_operand): Add '!' (MPX bnd) print prefix support. |
| (ix86_print_operand_punct_valid_p): Likewise. |
| (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and |
| UNSPEC_BNDLDX_ADDR. |
| (ix86_output_call_insn): Add MPX bnd prefix to branch instructions. |
| (ix86_class_likely_spilled_p): Add bound regs support. |
| (ix86_hard_regno_mode_ok): Likewise. |
| (x86_order_regs_for_local_alloc): Likewise. |
| (ix86_bnd_prefixed_insn_p): New. |
| (ix86_builtins): Add |
| IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX, |
| IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL, |
| IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET, |
| IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT, |
| IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER, |
| IX86_BUILTIN_BNDUPPER. |
| (builtin_isa): Add leaf_p and nothrow_p fields. |
| (def_builtin): Initialize leaf_p and nothrow_p. |
| (ix86_add_new_builtins): Handle leaf_p and nothrow_p |
| flags. |
| (bdesc_mpx): New. |
| (bdesc_mpx_const): New. |
| (ix86_init_mpx_builtins): New. |
| (ix86_init_builtins): Call ix86_init_mpx_builtins. |
| (ix86_emit_cmove): New. |
| (ix86_emit_move_max): New. |
| (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK, |
| IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX, |
| IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU, |
| IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW, |
| IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF, |
| IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER. |
| (ix86_function_value_bounds): New. |
| (ix86_builtin_mpx_function): New. |
| (ix86_get_arg_address_for_bt): New. |
| (ix86_load_bounds): New. |
| (ix86_store_bounds): New. |
| (ix86_load_returned_bounds): New. |
| (ix86_store_returned_bounds): New. |
| (ix86_mpx_bound_mode): New. |
| (ix86_make_bounds_constant): New. |
| (ix86_initialize_bounds): |
| (TARGET_LOAD_BOUNDS_FOR_ARG): New. |
| (TARGET_STORE_BOUNDS_FOR_ARG): New. |
| (TARGET_LOAD_RETURNED_BOUNDS): New. |
| (TARGET_STORE_RETURNED_BOUNDS): New. |
| (TARGET_CHKP_BOUND_MODE): New. |
| (TARGET_BUILTIN_CHKP_FUNCTION): New. |
| (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New. |
| (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New. |
| (TARGET_CHKP_INITIALIZE_BOUNDS): New. |
| (ix86_option_override_internal): Do not |
| support x32 with MPX. |
| (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt |
| and force_bnd_pass. |
| (function_arg_advance_32): Return number of used integer |
| registers. |
| (function_arg_advance_64): Likewise. |
| (function_arg_advance_ms_64): Likewise. |
| (ix86_function_arg_advance): Handle pointer bounds. |
| (ix86_function_arg): Likewise. |
| (ix86_function_value_regno_p): Mark fisrt bounds registers as |
| possible function value. |
| (ix86_function_value_1): Handle pointer bounds type/mode |
| (ix86_return_in_memory): Likewise. |
| (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix. |
| (ix86_expand_call): Generate returned bounds. |
| (ix86_setup_incoming_vararg_bounds): New. |
| (ix86_va_start): Initialize bounds for pointers in va_list. |
| (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New. |
| * config/i386/i386.h (TARGET_MPX): New. |
| (TARGET_MPX_P): New. |
| (FIRST_PSEUDO_REGISTER): Fix to new value. |
| (FIXED_REGISTERS): Add bound registers. |
| (CALL_USED_REGISTERS): Likewise. |
| (REG_ALLOC_ORDER): Likewise. |
| (HARD_REGNO_NREGS): Likewise. |
| (VALID_BND_REG_MODE): New. |
| (FIRST_BND_REG): New. |
| (LAST_BND_REG): New. |
| (reg_class): Add BND_REGS. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| (BND_REGNO_P): New. |
| (ANY_BND_REG_P): New. |
| (BNDmode): New. |
| (HI_REGISTER_NAMES): Add bound registers. |
| (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and |
| stdarg fields. |
| * config/i386/i386.md (UNSPEC_BNDMK): New. |
| (UNSPEC_BNDMK_ADDR): New. |
| (UNSPEC_BNDSTX): New. |
| (UNSPEC_BNDLDX): New. |
| (UNSPEC_BNDLDX_ADDR): New. |
| (UNSPEC_BNDCL): New. |
| (UNSPEC_BNDCU): New. |
| (UNSPEC_BNDCN): New. |
| (UNSPEC_MPX_FENCE): New. |
| (UNSPEC_SIZEOF): New. |
| (BND0_REG): New. |
| (BND1_REG): New. |
| (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst. |
| (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst. |
| (prefix_rep): Check for bnd prefix. |
| (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst. |
| (length_nobnd): New. |
| (length): Use length_nobnd when specified. |
| (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst. |
| (BND): New. |
| (bnd_ptr): New. |
| (BNDCHECK): New. |
| (bndcheck): New. |
| (*jcc_1): Add MPX bnd prefix. |
| (*jcc_2): Likewise. |
| (jump): Likewise. |
| (*indirect_jump): Likewise. |
| (*tablejump_1): Likewise. |
| (simple_return_internal): Likewise. |
| (simple_return_internal_long): Likewise. |
| (simple_return_pop_internal): Likewise. |
| (simple_return_indirect_internal): Likewise. |
| (<mode>_mk): New. |
| (*<mode>_mk): New. |
| (mov<mode>): New. |
| (*mov<mode>_internal_mpx): New. |
| (<mode>_<bndcheck>): New. |
| (*<mode>_<bndcheck>): New. |
| (<mode>_ldx): New. |
| (*<mode>_ldx): New. |
| (<mode>_stx): New. |
| (*<mode>_stx): New. |
| move_size_reloc_<mode>): New. |
| * config/i386/predicates.md (address_mpx_no_base_operand): New. |
| (address_mpx_no_index_operand): New. |
| (bnd_mem_operator): New. |
| (symbol_operand): New. |
| (x86_64_immediate_size_operand): New. |
| * config/i386/i386.opt (mmpx): New. |
| * config/i386/i386-builtin-types.def (BND): New. |
| (ULONG): New. |
| (BND_FTYPE_PCVOID_ULONG): New. |
| (VOID_FTYPE_BND_PCVOID): New. |
| (VOID_FTYPE_PCVOID_PCVOID_BND): New. |
| (BND_FTYPE_PCVOID_PCVOID): New. |
| (BND_FTYPE_PCVOID): New. |
| (BND_FTYPE_BND_BND): New. |
| (PVOID_FTYPE_PVOID_PVOID_ULONG): New. |
| (PVOID_FTYPE_PCVOID_BND_ULONG): New. |
| (ULONG_FTYPE_VOID): New. |
| (PVOID_FTYPE_BND): New. |
| |
| 2014-11-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos, |
| pass_variable_tracking, pass_free_cfg, pass_machine_reorg, |
| pass_cleanup_barriers, pass_delay_slots, |
| pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges, |
| pass_shorten_branches, pass_est_nothrow_function_flags, |
| pass_dwarf2_frame, pass_final): Move outside of pass_postreload and |
| into pass_late_compilation. |
| (pass_late_compilation): Add. |
| * passes.c (pass_data_late_compilation, pass_late_compilation, |
| make_pass_late_compilation): New. |
| * timevar.def (TV_LATE_COMPILATION): New. |
| |
| * target.def (omit_struct_return_reg): New data hook. |
| * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG. |
| * doc/tm.texi: Regenerate. |
| * function.c (expand_function_end): Use it. |
| |
| * target.def (no_register_allocation): New data hook. |
| * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION. |
| * doc/tm.texi: Regenerate. |
| * ira.c (gate_ira): New function. |
| (pass_data_ira): Set has_gate. |
| (pass_ira): Add a gate function. |
| (pass_data_reload): Likewise. |
| (pass_reload): Add a gate function. |
| (pass_ira): Use it. |
| * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that |
| no register allocation happens on the target and return. |
| * final.c (alter_subreg): Ensure register is not a pseudo before |
| calling simplify_subreg. |
| (output_operand): Assert that x isn't a pseudo only if doing |
| register allocation. |
| |
| * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for |
| global vars. |
| |
| * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a |
| sorry if necessary. |
| |
| 2014-11-05 Alex Velenko <Alex.Velenko@arm.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Div check added. |
| * rtl.h (SUBREG_P): New macro added. |
| |
| 2014-11-05 Tejas Belagod <tejas.belagod@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_build_scalar_type): Remove. |
| (aarch64_scalar_builtin_types, aarch64_simd_type, |
| aarch64_simd_type, aarch64_mangle_builtin_scalar_type, |
| aarch64_mangle_builtin_vector_type, |
| aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type, |
| aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type, |
| aarch64_init_simd_builtin_types, |
| aarch64_init_simd_builtin_scalar_types): New. |
| (aarch64_init_simd_builtins): Refactor. |
| (aarch64_init_crc32_builtins): Fixup with qualifier. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_mangle_builtin_type): Export. |
| * config/aarch64/aarch64-simd-builtin-types.def: New. |
| * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove. |
| (aarch64_mangle_type): Refactor. |
| * config/aarch64/arm_neon.h: Declare vector types based on |
| internal types. |
| * config/aarch64/t-aarch64: Update dependency. |
| |
| 2014-11-04 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl, |
| atomic_update_decl): Guard declaration with #ifdef. |
| |
| 2014-11-04 Marek Polacek <polacek@redhat.com> |
| |
| * sanopt.c (sanopt_optimize_walker): Remove unused variables. |
| |
| 2014-11-04 Marek Polacek <polacek@redhat.com> |
| |
| * Makefile.in (OBJS): Add sanopt.o. |
| (GTFILES): Add sanopt.c. |
| * asan.h (asan_expand_check_ifn): Declare. |
| * asan.c (asan_expand_check_ifn): No longer static. |
| (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move... |
| * sanopt.c: ...here. New file. |
| |
| 2014-11-04 Jiong Wang <jiong.wang@arm.com> |
| Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/63293 |
| * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before |
| stack adjustment. |
| |
| 2014-11-04 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case, |
| also verify that mode is equal to the mode of op0. |
| |
| * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn, |
| emit into a sequence instead. |
| |
| 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable. |
| |
| 2014-11-04 Alan Lawrence <alan.lawrence@arm.com> |
| |
| config/arm/neon.md (reduc_smin_<mode> *2): Rename to... |
| (reduc_smin_scal_<mode> *2): ...this; extract scalar result. |
| (reduc_smax_<mode> *2): Rename to... |
| (reduc_smax_scal_<mode> *2): ...this; extract scalar result. |
| (reduc_umin_<mode> *2): Rename to... |
| (reduc_umin_scal_<mode> *2): ...this; extract scalar result. |
| (reduc_umax_<mode> *2): Rename to... |
| (reduc_umax_scal_<mode> *2): ...this; extract scalar result. |
| |
| 2014-11-04 Alan Lawrence <alan.lawrence@arm.com> |
| |
| config/arm/neon.md (reduc_plus_*): Rename to... |
| (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result. |
| |
| 2014-11-04 Michael Collison <michael.collison@linaro.org> |
| |
| * config/aarch64/iterators.md (lconst_atomic): New mode attribute |
| to support constraints for CONST_INT in atomic operations. |
| * config/aarch64/atomics.md |
| (atomic_<atomic_optab><mode>): Use lconst_atomic constraint. |
| (atomic_nand<mode>): Likewise. |
| (atomic_fetch_<atomic_optab><mode>): Likewise. |
| (atomic_fetch_nand<mode>): Likewise. |
| (atomic_<atomic_optab>_fetch<mode>): Likewise. |
| (atomic_nand_fetch<mode>): Likewise. |
| |
| 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition |
| of __ARM_FEATURE_IDIV. |
| |
| 2014-11-04 Marek Polacek <polacek@redhat.com> |
| |
| * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses. |
| |
| 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument. |
| |
| 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| Revert: |
| 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition): |
| Allow CC mode if HAVE_cbranchcc4. |
| |
| 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support |
| with -fdump-go-spec. Anonymous substructures are now flattened and |
| replaced by their fields (record) or the first named, non-bitfield |
| field (union). |
| |
| 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * input.c (expand_location_to_spelling_point): Fix typo. |
| (expansion_point_location_if_in_system_header): Fix comment. |
| |
| 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com> |
| |
| * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier. |
| |
| 2014-11-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-eh.c (operation_could_trap_helper_p): Handle conversions |
| like ordinary operations. |
| * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR |
| as NOP_EXPR. |
| |
| 2014-11-03 Joseph Myers <joseph@codesourcery.com> |
| |
| * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define |
| macros. |
| * configure, config.h.in: Regenerate. |
| * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 || |
| (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)] |
| (RS6000_GLIBC_ATOMIC_FENV): New macro. |
| * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 || |
| (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)] |
| (RS6000_GLIBC_ATOMIC_FENV): New macro. |
| * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl) |
| (atomic_update_decl): New static variables. |
| (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]: |
| Generate calls to __atomic_feholdexcept, __atomic_feclearexcept |
| and __atomic_feupdateenv for soft-float and no-FPRs. |
| |
| 2014-11-03 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p. |
| Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR. |
| * fold-const.c (fold_unary_loc): Remove them here. |
| (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT. |
| * gimple-fold.c (fold_gimple_assign): Remove now obsolete |
| GIMPLE_UNARY_RHS case. |
| (gimple_fold_stmt_to_constant_1): Likewise. |
| (replace_stmt_with_simplification): Fix inverted comparison. |
| |
| 2014-11-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/60770 |
| * tree-into-ssa.c (rewrite_update_stmt): Return whether the |
| statement should be removed. |
| (maybe_register_def): Likewise. Replace clobbers with default |
| definitions. |
| (rewrite_dom_walker::before_dom_children): Remove statement if |
| rewrite_update_stmt says so. |
| * tree-ssa-live.c: Include tree-ssa.h. |
| (set_var_live_on_entry): Do not mark undefined variables as live. |
| (verify_live_on_entry): Do not check undefined variables. |
| * tree-ssa.h (ssa_undefined_value_p): New parameter for the case |
| of partially undefined variables. |
| * tree-ssa.c (ssa_undefined_value_p): Likewise. |
| (execute_update_addresses_taken): Do not drop clobbers. |
| |
| 2014-11-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/63666 |
| * fold-const.c: Include "optabs.h". |
| (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a |
| can_vec_perm_p permutation to one that is not. |
| |
| 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * ifcvt.c (noce_try_store_flag_mask): Check rtx cost. |
| |
| 2014-11-03 Andrew Pinski <apinski@cavium.com> |
| |
| * config/mips/mips-cpus.def (octeon3): New cpu. |
| * config/mips/mips.c (mips_rtx_cost_data): Add octeon3. |
| (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode |
| of the comparison no longer matches mode of the operands. |
| (mips_issue_rate): Handle PROCESSOR_OCTEON3. |
| * config/mips/mips.h (TARGET_OCTEON): Add Octeon3. |
| (TARGET_OCTEON2): Likewise. |
| (TUNE_OCTEON): Add Octeon3. |
| * config/mips/mips.md (processor): Add octeon3. |
| * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit. |
| (octeon_arith): Add octeon3. |
| (octeon_condmove): Remove. |
| (octeon_condmove_o1): New reservation. |
| (octeon_condmove_o2): New reservation. |
| (octeon_condmove_o3_int_on_cc): New reservation. |
| (octeon_load_o2): Add octeon3. |
| (octeon_cop_o2): Likewise. |
| (octeon_store): Likewise. |
| (octeon_brj_o2): Likewise. |
| (octeon_imul3_o2): Likewise. |
| (octeon_imul_o2): Likewise. |
| (octeon_mfhilo_o2): Likewise. |
| (octeon_imadd_o2): Likewise. |
| (octeon_idiv_o2_si): Likewise. |
| (octeon_idiv_o2_di): Likewise. |
| (octeon_fpu): Add to the automaton. |
| (octeon_fpu): New cpu unit. |
| (octeon_condmove_o2): Check for non floating point modes. |
| (octeon_load_o2): Add prefetchx. |
| (octeon_cop_o2): Don't check for octeon3. |
| (octeon3_faddsubcvt): New reservation. |
| (octeon3_fmul): Likewise. |
| (octeon3_fmadd): Likewise. |
| (octeon3_div_sf): Likewise. |
| (octeon3_div_df): Likewise. |
| (octeon3_sqrt_sf): Likewise. |
| (octeon3_sqrt_df): Likewise. |
| (octeon3_rsqrt_sf): Likewise. |
| (octeon3_rsqrt_df): Likewise. |
| (octeon3_fabsnegmov): Likewise. |
| (octeon_fcond): Likewise. |
| (octeon_fcondmov): Likewise. |
| (octeon_fpmtc1): Likewise. |
| (octeon_fpmfc1): Likewise. |
| (octeon_fpload): Likewise. |
| (octeon_fpstore): Likewise. |
| * config/mips/mips-tables.opt: Regenerate. |
| * doc/invoke.texi (-march=@var{arch}): Add octeon3. |
| |
| 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition): |
| Allow CC mode if HAVE_cbranchcc4. |
| |
| 2014-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arc/arc.c (write_ext_corereg_1): Delete. |
| (arc_write_ext_corereg): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arc/arc.c (arc600_corereg_hazard_1): Delete. |
| (arc600_corereg_hazard): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument. |
| (small_data_pattern_1): Delete. |
| (small_data_pattern): Use FOR_EACH_SUBRTX. |
| |
| 2014-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arc/arc.c: Include rtl-iter.h. |
| (arc_rewrite_small_data_1): Delete. |
| (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR. |
| |
| 2014-11-02 Michael Collison <michael.collison@linaro.org> |
| |
| * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update |
| to support vector modes. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| |
| 2014-11-01 Andrew MacLeod <amacleod@redhat,com> |
| |
| * optabs.h: Flatten insn-codes.h to source files. Move some prototypes |
| and structs to genopinit.c. Adjust protyoptypes to match optabs.c. |
| * genopinit.c (main): Emit prototypes and structs into insn-opinit.h. |
| * optabs.c: (gen_move_insn): Move to expr.c. |
| * expr.h: Move protypes and enums to optabs.h. |
| * expr.c: (gen_move_insn): Relocate from optabs.c. |
| * genemit.c (main): Include insn-codes.h. |
| * gengtype.c (open_base_files): Include insn-codes.h. |
| * asan.c: Include insn-codes.h. |
| * bb-reorder.c: Ditto. |
| * builtins.c: Ditto. |
| * calls.c: Ditto. |
| * cfgexpand.c: Ditto. |
| * cilk-common.c: Ditto. |
| * combine.c: Ditto. |
| * dojump.c: Ditto. |
| * dse.c: Ditto. |
| * except.c: Ditto. |
| * explow.c: Ditto. |
| * expmed.c: Ditto. |
| * function.c: Ditto. |
| * ifcvt.c: Ditto. |
| * internal-fn.c: Ditto. |
| * loop-unroll.c: Ditto. |
| * lra.c: Ditto. |
| * modulo-sched.c: Ditto. |
| * omp-low.c: Ditto. |
| * postreload.c: Ditto. |
| * ree.c: Ditto. |
| * reload.c: Ditto. |
| * reload1.c: Ditto. |
| * shrink-wrap.c: Ditto. |
| * simplify-rtx.c: Ditto. |
| * stmt.c: Ditto. |
| * target-globals.c: Ditto. |
| * targhooks.c: Ditto. |
| * toplev.c: Ditto. |
| * tree-if-conv.c: Ditto. |
| * tree-ssa-forwprop.c: Ditto. |
| * tree-ssa-loop-prefetch.c: Ditto. |
| * tree-ssa-math-opts.c: Ditto. |
| * tree-ssa-phiopt.c: Ditto. |
| * tree-ssa-reassoc.c: Ditto. |
| * tree-switch-conversion.c: Ditto. |
| * tree-vect-data-refs.c: Ditto. |
| * tree-vect-generic.c: Ditto. |
| * tree-vect-loop.c: Ditto. |
| * tree-vect-patterns.c: Ditto. |
| * tree-vect-slp.c: Ditto. |
| * tree-vect-stmts.c: Ditto. |
| * tree-vrp.c: Ditto. |
| * value-prof.c: Ditto. |
| * config/aarch64/aarch64-builtins.c: Ditto. |
| * config/alpha/alpha.c: Ditto. |
| * config/arm/arm.c: Ditto. |
| * config/cris/cris.c: Ditto. |
| * config/epiphany/epiphany.c: Ditto. |
| * config/frv/frv.c: Ditto. |
| * config/h8300/h8300.c: Ditto. |
| * config/ia64/ia64.c: Ditto. |
| * config/iq2000/iq2000.c: Ditto. |
| * config/m32c/m32c.c: Ditto. |
| * config/mep/mep.c: Ditto. |
| * config/microblaze/microblaze.c: Ditto. |
| * config/mips/mips.c: Ditto. |
| * config/mn10300/mn10300.c: Ditto. |
| * config/moxie/moxie.c: Ditto. |
| * config/msp430/msp430.c: Ditto. |
| * config/nios2/nios2.c: Ditto. |
| * config/pa/pa.c: Ditto. |
| * config/rl78/rl78.c: Ditto. |
| * config/rs6000/rs6000.c: Ditto. |
| * config/rx/rx.c: Ditto. |
| * config/s390/s390.c: Ditto. |
| * config/sh/sh.c: Ditto. |
| * config/sh/sh_treg_combine.cc: Ditto. |
| * config/spu/spu.c: Ditto. |
| * config/stormy16/stormy16.c: Ditto. |
| * config/tilegx/mul-tables.c: Ditto. |
| * config/tilegx/tilegx.c: Ditto. |
| * config/tilepro/mul-tables.c: Ditto. |
| * config/tilepro/tilepro.c: Ditto. |
| * config/vax/vax.c: Ditto. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove. |
| (CLEAR_BY_PIECES_P): Likewise. |
| (SET_BY_PIECES_P): Likewise. |
| (STORE_BY_PIECES_P): Likewise. |
| * doc/tm.texi: Regenerate. |
| * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, |
| SET_BY_PIECES_P, STORE_BY_PIECES_P. |
| * expr.c (MOVE_BY_PIECES_P): Remove. |
| (CLEAR_BY_PIECES_P): Likewise. |
| (SET_BY_PIECES_P): Likewise. |
| (STORE_BY_PIECES_P): Likewise. |
| (can_move_by_pieces): Rewrite in terms of |
| targetm.use_by_pieces_infrastructure_p. |
| (emit_block_move_hints): Likewise. |
| (can_store_by_pieces): Likewise. |
| (store_by_pieces): Likewise. |
| (clear_storage_hints): Likewise. |
| (emit_push_insn): Likewise. |
| (expand_constructor): Likewise. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_use_by_pieces_infrastructre_p): New. |
| (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise. |
| * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/mips/mips.h (MOVE_BY_PIECES_P): Remove. |
| (STORE_BY_PIECES_P): Likewise. |
| * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New. |
| (mips_move_by_pieces_p): Rename to... |
| (mips_use_by_pieces_infrastructure_p): ...this, use new hook |
| parameters, use the default hook implementation as a |
| fall-back. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New. |
| (sh_use_by_pieces_infrastructure_p): Likewise. |
| * config/sh/sh.h (MOVE_BY_PIECES_P): Remove. |
| (STORE_BY_PIECES_P): Likewise. |
| (SET_BY_PIECES_P): Likewise. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New. |
| (arc_use_by_pieces_infrastructure_p): Likewise. |
| * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete. |
| (CAN_MOVE_BY_PIECES): Likewise. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New. |
| (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise. |
| * config/s390/s390.h (MOVE_BY_PIECES_P): Remove. |
| (CLEAR_BY_PIECES): Likewise. |
| (SET_BY_PIECES): Likewise. |
| (STORE_BY_PIECES): Likewise. |
| |
| 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * target.def (use_by_pieces_infrastructure_p): New. |
| * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro |
| is deprecated. |
| (STORE_BY_PIECES_P): Likewise. |
| (CLEAR_BY_PIECES_P): Likewise. |
| (SET_BY_PIECES_P): Likewise. |
| (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook. |
| * doc/tm.texi: Regenerate. |
| * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of |
| TARGET_USE_BY_PIECES_INFRASTRUCTURE_P. |
| (STORE_BY_PIECES_P): Likewise. |
| (CLEAR_BY_PIECES_P): Likewise. |
| (SET_BY_PIECES_P): Likewise. |
| (STORE_MAX_PIECES): Move to... |
| * defaults.h (STORE_MAX_PIECES): ...here. |
| * targhooks.c (get_move_ratio): New. |
| (default_use_by_pieces_infrastructure_p): Likewise. |
| * targhooks.h (default_use_by_pieces_infrastructure_p): New. |
| * target.h (by_pieces_operation): New. |
| |
| 2014-10-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63702 |
| * config/i386/i386.c (ix86_expand_args_builtin): Remove extra |
| assignment to 'nargs' variable. |
| |
| 2014-10-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/63620 |
| * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare. |
| * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export. |
| * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't |
| be reloaded through memory. |
| (*pushxf): Ditto. |
| (*pushdf): Ditto. |
| |
| 2014-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/63659 |
| * ree.c (update_reg_equal_equiv_notes): New function. |
| (combine_set_extension, transform_ifelse): Use it. |
| |
| 2014-10-31 Jeff Law <law@redhat.com> |
| |
| * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+) |
| and Jonny Grant (collect2). |
| |
| 2014-10-31 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_atomic_always_lock_free): Use |
| CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where |
| approprate. |
| (fold_builtin_expect): Likewise. |
| (integer_valued_real_p): Likewise. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise. |
| (find_foldable_builtin_expect): Likewise. |
| * trans-mem.c (thread_private_new_memory): Likewise. |
| * tree-affine.c (aff_combination_expand): Likewise. |
| * tree-data-ref.c (initialize_matrix_A): Likewise. |
| * tree-inline.c (copy_bb): Likewise. |
| * tree-pretty-print.c (dump_function_name): Likewise. |
| (print_call_name): Likewise. |
| * tree-ssa-forwprop.c (constant_pointer_difference): Likewise. |
| * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise. |
| (vect_recog_widen_mult_pattern): Likewise. |
| (vect_operation_fits_smaller_type): Likewise. |
| * tree-vrp.c (find_assert_locations_1): Likewise. |
| * tree-ssa-dom.c (initialize_hash_element): Canonicalize |
| converts to NOP_EXPR. |
| |
| 2014-10-31 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of |
| CONVERT_EXPRs in generated code. |
| (dt_simplify::gen): Likewise. |
| |
| 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/63534 |
| * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to |
| REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling. |
| (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling |
| using mcount in 32bit PIC mode. |
| (ix86_elim_entry_set_got): New. |
| (ix86_expand_prologue): For the mcount profiling emit new SET_GOT |
| in PROLOGUE, delete initial if possible. |
| |
| 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting. |
| (want_inline_function_to_all_callers_p): Fix formatting and simplify. |
| |
| 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/63259 |
| * tree-ssa-math-opts.c (bswap_replace): Replace expression by a |
| rotation left if it is a 16 bit byte swap. |
| (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR |
| and RROTATE_EXPR statements if it is a byte rotation. |
| |
| 2014-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/63697 |
| * tree-vrp.c (simplify_internal_call_using_ranges): For subcode == |
| MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min |
| instead of vr0.min - vr1.min and vr0.max - vr1.max. |
| |
| 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com> |
| |
| PR ipa/63696 |
| * ipa-icf.c (sem_function::~sem_function): Change free to delete |
| to avoid alloc-dealloc mismatch with new, called in |
| ipa_icf::sem_function::init. |
| |
| 2014-10-30 Felix Yang <felix.yang@huawei.com> |
| |
| * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro. |
| * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h. |
| (xtensa_reorg, xtensa_reorg_loops): New. |
| (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New. |
| (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New. |
| (xtensa_emit_loop_end): Emit the zero-overhead loop end label. |
| (xtensa_doloop_hooks): Define. |
| * config/xtensa/xtensa.md (doloop_end, loop_end): New |
| (zero_cost_loop_start): Rewritten. |
| (zero_cost_loop_end): Likewise. |
| |
| 2014-10-30 Steve Ellcey <sellcey@imgtec.com> |
| |
| * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases. |
| |
| 2014-10-30 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c: Remove <map>, <utility> and <string> includes. |
| Include ggc.h and hash-map.h. |
| (ggc_internal_cleared_alloc): Provide stub definition. |
| (ggc_free): Likewise. |
| (struct capture_id_map_hasher): New traits for hash_map. |
| (cid_map_t): New typedef. |
| (everywhere else): Replace std::map use with cid_map_t. |
| * hash-map.h (hash_map::elements): New member function. |
| * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H), |
| hash-map.h and $(GGC_H) as dependency. |
| |
| 2014-10-30 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (capture_info::walk_c_expr): Ignore capture |
| uses inside TREE_TYPE (). |
| * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT. |
| (find_candidates_dom_walker::before_dom_children): Likewise. |
| (replace_mult_candidate): Use CONVERT_EXPR_CODE_P. |
| (replace_profitable_candidates): Likewise. |
| * tree-ssa-dom.c (initialize_hash_element): Canonicalize |
| CONVERT_EXPR_CODE_P to CONVERT_EXPR. |
| * convert.c (convert_to_integer): Use CASE_CONVERT. |
| |
| 2014-10-30 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement more patterns that simplify to a single value. |
| * fold-const.c (fold_binary_loc): Remove them here. |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise. |
| (fwprop_ssa_val): Remove restriction on single uses. |
| |
| 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/avr/driver-avr.c (avr_set_current_device): Remove. |
| |
| 2014-10-30 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63574 |
| PR ipa/63664 |
| * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added. |
| (func_checker::compare_gimple_label): Simlified comparison introduced. |
| * ipa-icf-gimple.h: Missing comment added. |
| |
| 2014-10-30 Jeff Law <law@redhat.com> |
| |
| * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen |
| argument from rtx to rtx_insn *. |
| (compute_movmem_length, compute_clrmem_length): Likewise. |
| (copy_fp_args, length_fp_args): Likewise. |
| * config/pa/pa.c (legitimize_pic_address): Promote local variable |
| "insn" from rtx to rtx_insn *. |
| (legitimize_tls_address, pa_emit_move_sequence): Likewise. |
| (pa_output_block_move, store_reg, store_reg_modify): Likewise. |
| (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise. |
| (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise. |
| (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *. |
| (compute_movmem_length, compute_clrmem_length): Likewise. |
| (copy_fp-args, length_fp_args): Likewise. |
| |
| 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/arm.h (MACHMODE): Treat machine_mode as a |
| scalar typedef. |
| (CUMULATIVE_ARGS): Guard against target includes. |
| (machine_function): Likewise. |
| |
| 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore |
| recog state after aarch64_prev_real_insn call. |
| |
| 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode. |
| |
| 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode. |
| (struct machine_function): Gate definition on |
| !defined(USED_FOR_TARGET). |
| |
| 2014-10-29 DJ Delorie <dj@redhat.com> |
| |
| * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error. |
| |
| 2014-10-29 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63587 |
| * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put |
| to local declarations. |
| * function.c (add_local_decl): Implementation moved from header |
| file, assert introduced for tree type. |
| * function.h: Likewise. |
| |
| 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * godump.c (go_format_type): Represent "float _Complex" and |
| "double _Complex" as complex64 or complex128 in Go, as appropriate. |
| |
| 2014-10-29 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Implement a first set of conversion patterns. |
| * fold-const.c (fold_unary_loc): Remove them here. |
| * tree-ssa-forwprop.c (simplify_vce): Remove. |
| (pass_forwprop::execute): Do not call simplify_vce. |
| |
| 2014-10-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c, |
| builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h, |
| cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c, |
| config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md, |
| config/aarch64/aarch64.c, config/aarch64/aarch64.h, |
| config/aarch64/aarch64.md, config/alpha/alpha-protos.h, |
| config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c, |
| config/arc/arc.h, config/arc/predicates.md, |
| config/arm/aarch-common-protos.h, config/arm/aarch-common.c, |
| config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h, |
| config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md, |
| config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c, |
| config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c, |
| config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md, |
| config/cr16/cr16-protos.h, config/cr16/cr16.c, |
| config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md, |
| config/darwin-protos.h, config/darwin.c, |
| config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c, |
| config/epiphany/epiphany.md, config/fr30/fr30.c, |
| config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md, |
| config/h8300/h8300-protos.h, config/h8300/h8300.c, |
| config/i386/i386-builtin-types.awk, config/i386/i386-protos.h, |
| config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md, |
| config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h, |
| config/ia64/ia64.c, config/iq2000/iq2000-protos.h, |
| config/iq2000/iq2000.c, config/iq2000/iq2000.md, |
| config/lm32/lm32-protos.h, config/lm32/lm32.c, |
| config/m32c/m32c-protos.h, config/m32c/m32c.c, |
| config/m32r/m32r-protos.h, config/m32r/m32r.c, |
| config/m68k/m68k-protos.h, config/m68k/m68k.c, |
| config/mcore/mcore-protos.h, config/mcore/mcore.c, |
| config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c, |
| config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c, |
| config/mips/mips-protos.h, config/mips/mips.c, |
| config/mmix/mmix-protos.h, config/mmix/mmix.c, |
| config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, |
| config/moxie/moxie.c, config/msp430/msp430-protos.h, |
| config/msp430/msp430.c, config/nds32/nds32-cost.c, |
| config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c, |
| config/nds32/nds32-protos.h, config/nds32/nds32.c, |
| config/nios2/nios2-protos.h, config/nios2/nios2.c, |
| config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h, |
| config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c, |
| config/rs6000/altivec.md, config/rs6000/rs6000-c.c, |
| config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, |
| config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c, |
| config/s390/predicates.md, config/s390/s390-protos.h, |
| config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, |
| config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c, |
| config/sh/sh.md, config/sparc/predicates.md, |
| config/sparc/sparc-protos.h, config/sparc/sparc.c, |
| config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c, |
| config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, |
| config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c, |
| config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h, |
| config/tilepro/tilepro.c, config/v850/v850-protos.h, |
| config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h, |
| config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h, |
| config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h, |
| dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi, |
| doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c, |
| dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h, |
| except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c, |
| fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h, |
| fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c, |
| genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c, |
| graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c, |
| internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c, |
| ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h, |
| libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c, |
| loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c, |
| lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c, |
| lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h, |
| output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h, |
| recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c, |
| regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h, |
| rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c, |
| sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c, |
| simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def, |
| targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c, |
| tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c, |
| tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c, |
| tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, |
| tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c, |
| tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c, |
| tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c, |
| tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c, |
| tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, |
| tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c, |
| var-tracking.c, varasm.c: Remove redundant enum from |
| machine_mode. |
| * gengtype.c (main): Treat machine_mode as a scalar typedef. |
| * genmodes.c (emit_insn_modes_h): Hide inline functions if |
| USED_FOR_TARGET. |
| |
| 2014-10-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/63340 (part 2) |
| * rtl.h (invalid_mode_change_p): Delete. |
| (valid_mode_changes_for_regno): New function. |
| * reginfo.c (invalid_mode_change_p): Delete. |
| (valid_mode_changes_for_regno): New function. |
| * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the |
| classes to registers that are allowed by valid_mode_changes_for_regno. |
| (setup_regno_cost_classes_by_mode): Likewise. |
| (print_allocno_costs): Remove invalid_mode_change_p test. |
| (print_pseudo_costs, find_costs_and_classes): Likewise. |
| |
| 2014-10-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/63340 (part 1) |
| * ira-costs.c (all_cost_classes): New variable. |
| (complete_cost_classes): New function, split out from... |
| (setup_cost_classes): ...here. |
| (initiate_regno_cost_classes): Set up all_cost_classes. |
| (restrict_cost_classes): New function. |
| (setup_regno_cost_classes_by_aclass): Restrict the cost classes to |
| registers that are valid for the register's mode. |
| (setup_regno_cost_classes_by_mode): Model the mode cache as a |
| restriction of all_cost_classes to a particular mode. |
| (print_allocno_costs): Remove contains_reg_of_mode check. |
| (print_pseudo_costs, find_costs_and_classes): Likewise. |
| |
| 2014-10-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63666 |
| * tree-vect-slp.c (vect_get_mask_element): Properly handle |
| accessing out-of-bound elements. |
| |
| 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.md |
| (movhi_internal): Always detect maskmov. |
| (movqi_internal): Fix target check. |
| |
| 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/avx512bwintrin.h: Add new intrinsics. |
| * config/i386/avx512vlbwintrin.h: Ditto. |
| * config/i386/avx512vlintrin.h: Ditto. |
| |
| 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * godump.c (precision_to_units): New helper function. |
| (go_append_artificial_name): Ditto. |
| (go_append_decl_name): Ditto. |
| (go_append_bitfield): Ditto. |
| (go_get_uinttype_for_precision): Ditto. |
| (go_append_padding): Ditto. |
| (go_force_record_alignment): Ditto. |
| (go_format_type): Represent unions with an array of uints of the size |
| of the alignment in go. This fixes the 'random' size of the union's |
| representation using just the first field. |
| (go_format_type): Add argument that indicates whether a record is |
| nested (used for generation of artificial go names). |
| (go_output_fndecl): Adapt to new go_format_type signature. |
| (go_output_typedef): Ditto. |
| (go_output_var): Ditto. |
| (go_output_var): Prefer to output type as alias (typedef). |
| (go_format_type): Bitfields in records are simulated as arrays of bytes |
| in go. |
| |
| * godump.c (go_format_type): Fix handling of arrays with zero elements. |
| |
| 2014-10-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * cgraph.h: Flatten. Remove all include files. |
| (symbol_table::initialize): Move to cgraph.c. |
| * cgraph.c: Adjust include files. |
| (symbol_table::initialize): Relocate from cgraph.h. |
| * gengtype.c (open_base_files): Adjust include files. |
| * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to |
| included files. |
| * ipa-inline.h: Remove all include files. |
| * ipa-prop.h: Ditto. |
| * ipa-reference.h: Ditto. |
| * ipa-utils.h: Ditto: |
| * lto-streamer.h: Remove cgraph.h from include list. |
| * asan.c: Adjust include files. |
| * auto-profile.c: Ditto. |
| * bb-reorder.c: Ditto. |
| * calls.c: Ditto. |
| * cfgexpand.c: Ditto. |
| * cgraphbuild.c: Ditto. |
| * cgraphclones.c: Ditto. |
| * cgraphunit.c: Ditto. |
| * combine.c: Ditto. |
| * coverage.c: Ditto. |
| * data-streamer.c: Ditto. |
| * data-streamer-in.c: Ditto. |
| * data-streamer-out.c: Ditto. |
| * dbxout.c: Ditto. |
| * dwarf2out.c: Ditto. |
| * except.c: Ditto. |
| * expr.c: Ditto. |
| * final.c: Ditto. |
| * fold-const.c: Ditto. |
| * ggc-page.c: Ditto. |
| * gimple-fold.c: Ditto. |
| * gimple-iterator.c: Ditto. |
| * gimple-pretty-print.c: Ditto. |
| * gimple-streamer-in.c: Ditto. |
| * gimple-streamer-out.c: Ditto. |
| * gimplify.c: Ditto. |
| * ipa.c: Ditto. |
| * ipa-comdats.c: Ditto. |
| * ipa-cp.c: Ditto. |
| * ipa-devirt.c: Ditto. |
| * ipa-icf.c: Ditto. |
| * ipa-icf-gimple.c: Ditto. |
| * ipa-inline-analysis.c: Ditto. |
| * ipa-inline.c: Ditto. |
| * ipa-inline-transform.c: Ditto. |
| * ipa-polymorphic-call.c: Ditto. |
| * ipa-profile.c: Ditto. |
| * ipa-prop.c: Ditto. |
| * ipa-pure-const.c: Ditto. |
| * ipa-ref.c: Ditto. |
| * ipa-reference.c: Ditto. |
| * ipa-split.c: Ditto. |
| * ipa-utils.c: Ditto. |
| * ipa-visibility.c: Ditto. |
| * langhooks.c: Ditto. |
| * lto-cgraph.c: Ditto. |
| * lto-compress.c: Ditto. |
| * lto-opts.c: Ditto. |
| * lto-section-in.c: Ditto. |
| * lto-section-out.c: Ditto. |
| * lto-streamer.c: Ditto. |
| * lto-streamer-in.c: Ditto. |
| * lto-streamer-out.c: Ditto. |
| * omp-low.c: Ditto. |
| * opts-global.c: Ditto. |
| * passes.c: Ditto. |
| * predict.c: Ditto. |
| * print-tree.c: Ditto. |
| * profile.c: Ditto. |
| * ree.c: Ditto. |
| * stor-layout.c: Ditto. |
| * symtab.c: Ditto. |
| * toplev.c: Ditto. |
| * trans-mem.c: Ditto. |
| * tree.c: Ditto. |
| * tree-cfg.c: Ditto. |
| * tree-eh.c: Ditto. |
| * tree-emutls.c: Ditto. |
| * tree-inline.c: Ditto. |
| * tree-nested.c: Ditto. |
| * tree-pretty-print.c: Ditto. |
| * tree-profile.c: Ditto. |
| * tree-sra.c: Ditto. |
| * tree-ssa-alias.c: Ditto. |
| * tree-ssa-loop-ivcanon.c: Ditto. |
| * tree-ssa-loop-ivopts.c: Ditto. |
| * tree-ssa-pre.c: Ditto. |
| * tree-ssa-structalias.c: Ditto. |
| * tree-streamer.c: Ditto. |
| * tree-streamer-in.c: Ditto. |
| * tree-streamer-out.c: Ditto. |
| * tree-switch-conversion.c: Ditto. |
| * tree-tailcall.c: Ditto. |
| * tree-vect-data-refs.c: Ditto. |
| * tree-vectorizer.c: Ditto. |
| * tree-vect-stmts.c: Ditto. |
| * tsan.c: Ditto. |
| * ubsan.c: Ditto. |
| * value-prof.c: Ditto. |
| * varasm.c: Ditto. |
| * varpool.c: Ditto. |
| * config/arm/arm.c: Ditto. |
| * config/bfin/bfin.c: Ditto. |
| * config/c6x/c6x.c: Ditto. |
| * config/cris/cris.c: Ditto. |
| * config/darwin.c: Ditto. |
| * config/darwin-c.c: Ditto. |
| * config/i386/i386.c: Ditto. |
| * config/i386/winnt.c: Ditto. |
| * config/microblaze/microblaze.c: Ditto. |
| * config/mips/mips.c: Ditto. |
| * config/rs6000/rs6000.c: Ditto. |
| * config/rx/rx.c: Ditto. |
| |
| 2014-10-28 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.h (follow_single_use_edges): Declare. |
| * gimple-fold.c (follow_single_use_edges): New function. |
| (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify. |
| * tree-ssa-propagate.c |
| (substitute_and_fold_dom_walker::before_dom_children): Allow |
| following single-use edges when folding stmts we propagated into. |
| |
| 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/avx512bwintrin.h: New. |
| * config/i386/avx512dqintrin.h: Ditto. |
| * config/i386/avx512vlbwintrin.h: Ditto. |
| * config/i386/avx512vldqintrin.h: Ditto. |
| * config/i386/avx512vlintrin.h: Ditto. |
| * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h, |
| avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h. |
| |
| 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask, |
| avx_shufpd256_mask, avx_vpermilv2df_mask. |
| |
| 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_init_mmx_sse_builtins): |
| Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df, |
| __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df, |
| __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf, |
| __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf, |
| __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di, |
| __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di, |
| __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si, |
| __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si, |
| __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf, |
| __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si, |
| __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf, |
| __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df, |
| __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf, |
| __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df, |
| __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si, |
| __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di, |
| __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si, |
| __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di. |
| |
| 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF, |
| IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI, |
| IX86_BUILTIN_GATHER3ALTDIV8SI. |
| (ix86_expand_builtin): |
| Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI, |
| IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI, |
| IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF, |
| IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF, |
| IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI, |
| IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI, |
| IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI, |
| IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF, |
| IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF, |
| IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI, |
| IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI, |
| IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI, |
| IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF, |
| IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI, |
| IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI, |
| IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI, |
| IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF, |
| IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF. |
| (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode, |
| V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode. |
| |
| 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386-builtin-types.def |
| (SHORT): New. |
| (V32HI): Ditto. |
| (V12QI): Ditto. |
| (V14QI): Ditto. |
| (V32SI): Ditto. |
| (V8UDI): Ditto. |
| (V16USI): Ditto. |
| (V32UHI): Ditto. |
| (PSHORT): Ditto. |
| (PV32QI): Ditto. |
| (PV32HI): Ditto. |
| (PV64QI): Ditto. |
| (PCV8HI): Ditto. |
| (PCV16QI): Ditto. |
| (PCV16HI): Ditto. |
| (PCV32QI): Ditto. |
| (PCV32HI): Ditto. |
| (PCV64QI): Ditto. |
| (V4SF_FTYPE_V2DF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4DF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V8HI_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8HI_V8SF_QI): Ditto. |
| (V16SF_FTYPE_V16HI): Ditto. |
| (V16SF_FTYPE_V16HI_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SI): Ditto. |
| (V4DI_FTYPE_V4DI): Ditto. |
| (V16SI_FTYPE_V16SF): Ditto. |
| (V8DI_FTYPE_PV2DI): Ditto. |
| (V8DF_FTYPE_PV2DF): Ditto. |
| (V4DI_FTYPE_PV2DI): Ditto. |
| (V4DF_FTYPE_PV2DF): Ditto. |
| (V16SI_FTYPE_PV2SI): Ditto. |
| (V16SF_FTYPE_PV2SF): Ditto. |
| (V8SF_FTYPE_FLOAT): Ditto. |
| (V4SF_FTYPE_FLOAT): Ditto. |
| (V4DF_FTYPE_DOUBLE): Ditto. |
| (V8SF_FTYPE_PV4SF): Ditto. |
| (V8SI_FTYPE_PV4SI): Ditto. |
| (V4SI_FTYPE_PV2SI): Ditto. |
| (V8SF_FTYPE_PV2SF): Ditto. |
| (V8SI_FTYPE_PV2SI): Ditto. |
| (V16SF_FTYPE_PV8SF): Ditto. |
| (V16SI_FTYPE_PV8SI): Ditto. |
| (V8DI_FTYPE_V8SF): Ditto. |
| (V4DI_FTYPE_V4SF): Ditto. |
| (V2DI_FTYPE_V4SF): Ditto. |
| (V64QI_FTYPE_QI): Ditto. |
| (V32HI_FTYPE_HI): Ditto. |
| (V16UHI_FTYPE_V16UHI): Ditto. |
| (V32UHI_FTYPE_V32UHI): Ditto. |
| (V2UDI_FTYPE_V2UDI): Ditto. |
| (V4UDI_FTYPE_V4UDI): Ditto. |
| (V8UDI_FTYPE_V8UDI): Ditto. |
| (V4USI_FTYPE_V4USI): Ditto. |
| (V16USI_FTYPE_V16USI): Ditto. |
| (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V8DF_INT): Ditto. |
| (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto. |
| (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto. |
| (V8DF_FTYPE_V8DF_INT): Ditto. |
| (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto. |
| (V4SI_FTYPE_V2DF_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto. |
| (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_INT): Ditto. |
| (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto. |
| (V8SF_FTYPE_V16SF_INT): Ditto. |
| (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto. |
| (V64QI_FTYPE_V32HI_V32HI): Ditto. |
| (V32HI_FTYPE_V16SI_V16SI): Ditto. |
| (V8DF_FTYPE_V8DF_V2DF_INT): Ditto. |
| (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_INT): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI): Ditto. |
| (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI): Ditto. |
| (V32HI_FTYPE_V32HI_INT): Ditto. |
| (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto. |
| (V16SI_FTYPE_V32HI_V32HI): Ditto. |
| (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto. |
| (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto. |
| (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V16SI_INT): Ditto. |
| (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto. |
| (V8DI_FTYPE_V8DI_V4DI_INT): Ditto. |
| (V8DI_FTYPE_V8DI_V2DI_INT): Ditto. |
| (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V16SI_V16SI): Ditto. |
| (V8DI_FTYPE_V64QI_V64QI): Ditto. |
| (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V8DI_INT): Ditto. |
| (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto. |
| (QI_FTYPE_QI): Ditto. |
| (SI_FTYPE_SI): Ditto. |
| (DI_FTYPE_DI): Ditto. |
| (HI_FTYPE_V16QI): Ditto. |
| (SI_FTYPE_V32QI): Ditto. |
| (DI_FTYPE_V64QI): Ditto. |
| (QI_FTYPE_V8HI): Ditto. |
| (HI_FTYPE_V16HI): Ditto. |
| (SI_FTYPE_V32HI): Ditto. |
| (QI_FTYPE_V4SI): Ditto. |
| (QI_FTYPE_V8SI): Ditto. |
| (HI_FTYPE_V16SI): Ditto. |
| (QI_FTYPE_V2DI): Ditto. |
| (QI_FTYPE_V4DI): Ditto. |
| (QI_FTYPE_V8DI): Ditto. |
| (V16QI_FTYPE_HI): Ditto. |
| (V32QI_FTYPE_SI): Ditto. |
| (V64QI_FTYPE_DI): Ditto. |
| (V8HI_FTYPE_QI): Ditto. |
| (V16HI_FTYPE_HI): Ditto. |
| (V32HI_FTYPE_SI): Ditto. |
| (V4SI_FTYPE_QI): Ditto. |
| (V4SI_FTYPE_HI): Ditto. |
| (V8SI_FTYPE_QI): Ditto. |
| (V8SI_FTYPE_HI): Ditto. |
| (V2DI_FTYPE_QI): Ditto. |
| (V4DI_FTYPE_QI): Ditto. |
| (QI_FTYPE_QI_QI): Ditto. |
| (SI_FTYPE_SI_SI): Ditto. |
| (DI_FTYPE_DI_DI): Ditto. |
| (QI_FTYPE_QI_INT): Ditto. |
| (SI_FTYPE_SI_INT): Ditto. |
| (DI_FTYPE_DI_INT): Ditto. |
| (HI_FTYPE_V16QI_V16QI): Ditto. |
| (HI_FTYPE_V16QI_V16QI_HI): Ditto. |
| (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto. |
| (SI_FTYPE_V32QI_V32QI): Ditto. |
| (SI_FTYPE_V32QI_V32QI_SI): Ditto. |
| (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto. |
| (DI_FTYPE_V64QI_V64QI): Ditto. |
| (DI_FTYPE_V64QI_V64QI_DI): Ditto. |
| (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto. |
| (QI_FTYPE_V8HI_V8HI): Ditto. |
| (QI_FTYPE_V8HI_V8HI_QI): Ditto. |
| (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto. |
| (HI_FTYPE_V16HI_V16HI): Ditto. |
| (HI_FTYPE_V16HI_V16HI_HI): Ditto. |
| (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto. |
| (SI_FTYPE_V32HI_V32HI): Ditto. |
| (SI_FTYPE_V32HI_V32HI_SI): Ditto. |
| (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto. |
| (QI_FTYPE_V4SI_V4SI): Ditto. |
| (QI_FTYPE_V4SI_V4SI_QI): Ditto. |
| (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto. |
| (QI_FTYPE_V8SI_V8SI): Ditto. |
| (QI_FTYPE_V8SI_V8SI_QI): Ditto. |
| (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto. |
| (QI_FTYPE_V2DI_V2DI): Ditto. |
| (QI_FTYPE_V2DI_V2DI_QI): Ditto. |
| (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto. |
| (QI_FTYPE_V4DI_V4DI): Ditto. |
| (QI_FTYPE_V4DI_V4DI_QI): Ditto. |
| (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DI_INT): Ditto. |
| (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT): Ditto. |
| (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V4SF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V4SI_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4SF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4SI_V4DF_QI): Ditto. |
| (V2DI_FTYPE_V4SI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V8HI_V2DI_QI): Ditto. |
| (V8DI_FTYPE_V8DF_V8DI_QI): Ditto. |
| (V4DI_FTYPE_V4DF_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V2DF_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V16QI_V2DI_QI): Ditto. |
| (V4DI_FTYPE_V16QI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4SI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V8HI_V4DI_QI): Ditto. |
| (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto. |
| (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto. |
| (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto. |
| (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto. |
| (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto. |
| (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SI_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SI_V8SF_QI): Ditto. |
| (V4SI_FTYPE_V16QI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8HI_V4SI_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V8HI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V16QI_V8SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto. |
| (V16SF_FTYPE_V8SF_V16SF_HI): Ditto. |
| (V16SI_FTYPE_V8SI_V16SI_HI): Ditto. |
| (V4SI_FTYPE_V4DF_V4SI_QI): Ditto. |
| (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto. |
| (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto. |
| (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto. |
| (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto. |
| (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto. |
| (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto. |
| (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto. |
| (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto. |
| (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto. |
| (V16QI_FTYPE_V16SI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_V8DI_V16QI_QI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_SI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI_INT): Ditto. |
| (V32HI_FTYPE_V32QI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V16HI_V16HI_HI): Ditto. |
| (V16HI_FTYPE_V32QI_V32QI_INT): Ditto. |
| (V16HI_FTYPE_V16QI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V16QI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V16QI_V16QI_INT): Ditto. |
| (V8SF_FTYPE_V4SF_V8SF_QI): Ditto. |
| (V4DF_FTYPE_V2DF_V4DF_QI): Ditto. |
| (V8SI_FTYPE_V4SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_SI_V8SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_SI_V4SI_QI): Ditto. |
| (V4DI_FTYPE_V2DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_DI_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_DI_V2DI_QI): Ditto. |
| (V64QI_FTYPE_V64QI_V64QI_DI): Ditto. |
| (V64QI_FTYPE_V16QI_V64QI_DI): Ditto. |
| (V64QI_FTYPE_QI_V64QI_DI): Ditto. |
| (V32QI_FTYPE_V32QI_V32QI_SI): Ditto. |
| (V32QI_FTYPE_V16QI_V32QI_SI): Ditto. |
| (V32QI_FTYPE_QI_V32QI_SI): Ditto. |
| (V16QI_FTYPE_V16QI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_QI_V16QI_HI): Ditto. |
| (V32HI_FTYPE_V8HI_V32HI_SI): Ditto. |
| (V32HI_FTYPE_HI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V8HI_V16HI_HI): Ditto. |
| (V16HI_FTYPE_HI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V8HI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_HI_V8HI_QI): Ditto. |
| (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto. |
| (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto. |
| (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto. |
| (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto. |
| (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto. |
| (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto. |
| (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto. |
| (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto. |
| (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto. |
| (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto. |
| (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto. |
| (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto. |
| (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto. |
| (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto. |
| (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto. |
| (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto. |
| (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto. |
| (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto. |
| (V16QI_FTYPE_V8HI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V16HI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_V4SI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V8SI_V16QI_QI): Ditto. |
| (V8HI_FTYPE_V4SI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V8SI_V8HI_QI): Ditto. |
| (V16QI_FTYPE_V2DI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V4DI_V16QI_QI): Ditto. |
| (V8HI_FTYPE_V2DI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V4DI_V8HI_QI): Ditto. |
| (V4SI_FTYPE_V2DI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4DI_V4SI_QI): Ditto. |
| (V32QI_FTYPE_V32HI_V32QI_SI): Ditto. |
| (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV4DF_V4DF_QI): Ditto. |
| (VOID_FTYPE_PV2DF_V2DF_QI): Ditto. |
| (VOID_FTYPE_PV8SF_V8SF_QI): Ditto. |
| (VOID_FTYPE_PV4SF_V4SF_QI): Ditto. |
| (VOID_FTYPE_PV4DI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV2DI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV8SI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV32HI_V32HI_SI): Ditto. |
| (VOID_FTYPE_PV16HI_V16HI_HI): Ditto. |
| (VOID_FTYPE_PV8HI_V8HI_QI): Ditto. |
| (VOID_FTYPE_PV64QI_V64QI_DI): Ditto. |
| (VOID_FTYPE_PV32QI_V32QI_SI): Ditto. |
| (VOID_FTYPE_PV16QI_V16QI_HI): Ditto. |
| (V8SI_FTYPE_V8SF_V8SI_QI): Ditto. |
| (V4SI_FTYPE_V4SF_V4SI_QI): Ditto. |
| (V8DI_FTYPE_V8SF_V8DI_QI): Ditto. |
| (V4DI_FTYPE_V4SF_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V4SF_V2DI_QI): Ditto. |
| (V8SF_FTYPE_V8DI_V8SF_QI): Ditto. |
| (V4SF_FTYPE_V4DI_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V2DI_V4SF_QI): Ditto. |
| (V8DF_FTYPE_V8DI_V8DF_QI): Ditto. |
| (V4DF_FTYPE_V4DI_V4DF_QI): Ditto. |
| (V2DF_FTYPE_V2DI_V2DF_QI): Ditto. |
| (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto. |
| (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto. |
| (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto. |
| (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto. |
| (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto. |
| (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto. |
| (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto. |
| (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto. |
| (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto. |
| (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto. |
| (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto. |
| (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto. |
| (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto. |
| (QI_FTYPE_V8DF_INT): Ditto. |
| (QI_FTYPE_V4DF_INT): Ditto. |
| (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto. |
| (QI_FTYPE_V2DF_INT): Ditto. |
| (HI_FTYPE_V16SF_INT): Ditto. |
| (QI_FTYPE_V8SF_INT): Ditto. |
| (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto. |
| (QI_FTYPE_V4SF_INT): Ditto. |
| (QI_FTYPE_V8DF_INT_QI): Ditto. |
| (QI_FTYPE_V4DF_INT_QI): Ditto. |
| (QI_FTYPE_V2DF_INT_QI): Ditto. |
| (HI_FTYPE_V16SF_INT_HI): Ditto. |
| (QI_FTYPE_V8SF_INT_QI): Ditto. |
| (QI_FTYPE_V4SF_INT_QI): Ditto. |
| (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto. |
| (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto. |
| (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto. |
| (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto. |
| (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto. |
| (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto. |
| (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto. |
| (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto. |
| (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto. |
| (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto. |
| (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto. |
| (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto. |
| (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto. |
| (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto. |
| (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto. |
| (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto. |
| (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto. |
| (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto. |
| (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto. |
| (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto. |
| (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto. |
| (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto. |
| (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto. |
| (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto. |
| (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto. |
| (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto. |
| (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto. |
| (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto. |
| (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto. |
| (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto. |
| (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto. |
| (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto. |
| (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto. |
| (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto. |
| (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto. |
| (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto. |
| (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto. |
| (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto. |
| (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto. |
| (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto. |
| (V8DI_FTYPE_V8DI_INT): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto. |
| (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove. |
| (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto. |
| (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto. |
| (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto. |
| (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto. |
| (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto. |
| (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto. |
| (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto. |
| (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto. |
| (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto. |
| * config/i386/i386.c (ix86_builtins): |
| Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM, |
| IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM, |
| IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM, |
| IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM, |
| IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM, |
| IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM, |
| IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM, |
| IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM, |
| IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM, |
| IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM, |
| IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM, |
| IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM, |
| IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM, |
| IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM, |
| IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM, |
| IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK, |
| IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK, |
| IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK, |
| IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK, |
| IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK, |
| IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK, |
| IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK, |
| IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK, |
| IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK, |
| IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK, |
| IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK, |
| IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK, |
| IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK, |
| IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK, |
| IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK, |
| IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK, |
| IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK, |
| IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK, |
| IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK, |
| IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK, |
| IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128, |
| IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128, |
| IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128, |
| IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128, |
| IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128, |
| IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128, |
| IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128, |
| IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128, |
| IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z, |
| IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z, |
| IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z, |
| IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z, |
| IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK, |
| IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK, |
| IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK, |
| IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK, |
| IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK, |
| IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK, |
| IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK, |
| IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK, |
| IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK, |
| IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK, |
| IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK, |
| IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK, |
| IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK, |
| IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK, |
| IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK, |
| IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK, |
| IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK, |
| IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK, |
| IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK, |
| IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK, |
| IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK, |
| IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK, |
| IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK, |
| IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256, |
| IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256, |
| IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256, |
| IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256, |
| IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256, |
| IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256, |
| IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256, |
| IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256, |
| IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256, |
| IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK, |
| IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256, |
| IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256, |
| IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK, |
| IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256, |
| IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK, |
| IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK, |
| IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK, |
| IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK, |
| IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK, |
| IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK, |
| IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK, |
| IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK, |
| IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK, |
| IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK, |
| IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK, |
| IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK, |
| IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK, |
| IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK, |
| IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK, |
| IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK, |
| IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK, |
| IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256, |
| IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256, |
| IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256, |
| IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256, |
| IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK, |
| IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK, |
| IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK, |
| IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK, |
| IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK, |
| IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK, |
| IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK, |
| IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK, |
| IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK, |
| IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK, |
| IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK, |
| IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK, |
| IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK, |
| IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK, |
| IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK, |
| IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK, |
| IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ, |
| IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ, |
| IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128, |
| IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128, |
| IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128, |
| IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK, |
| IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK, |
| IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK, |
| IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK, |
| IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK, |
| IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK, |
| IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK, |
| IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK, |
| IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK, |
| IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK, |
| IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK, |
| IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK, |
| IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK, |
| IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK, |
| IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK, |
| IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK, |
| IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK, |
| IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK, |
| IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK, |
| IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK, |
| IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256, |
| IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256, |
| IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256, |
| IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256, |
| IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256, |
| IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256, |
| IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256, |
| IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256, |
| IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256, |
| IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256, |
| IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256, |
| IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256, |
| IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256, |
| IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256, |
| IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256, |
| IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256, |
| IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256, |
| IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256, |
| IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256, |
| IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256, |
| IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128, |
| IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128, |
| IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256, |
| IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128, |
| IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ, |
| IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ, |
| IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ, |
| IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ, |
| IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128, |
| IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK, |
| IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK, |
| IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK, |
| IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK, |
| IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK, |
| IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128, |
| IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK, |
| IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK, |
| IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK, |
| IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK, |
| IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK, |
| IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK, |
| IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK, |
| IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK, |
| IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK, |
| IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK, |
| IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK, |
| IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK, |
| IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK, |
| IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK, |
| IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128, |
| IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK, |
| IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK, |
| IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK, |
| IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK, |
| IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128, |
| IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128, |
| IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128, |
| IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128, |
| IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128, |
| IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128, |
| IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128, |
| IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK, |
| IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK, |
| IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256, |
| IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128, |
| IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ, |
| IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ, |
| IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ, |
| IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ, |
| IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256, |
| IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128, |
| IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3, |
| IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK, |
| IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ, |
| IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3, |
| IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK, |
| IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ, |
| IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3, |
| IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3, |
| IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK, |
| IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK, |
| IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3, |
| IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3, |
| IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3, |
| IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3, |
| IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3, |
| IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK, |
| IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ, |
| IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3, |
| IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK, |
| IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ, |
| IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3, |
| IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3, |
| IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256, |
| IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI, |
| IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK, |
| IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK, |
| IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI, |
| IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK, |
| IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128, |
| IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128, |
| IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128, |
| IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128, |
| IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128, |
| IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK, |
| IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK, |
| IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK, |
| IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128, |
| IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128, |
| IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128, |
| IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128, |
| IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ, |
| IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ, |
| IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256, |
| IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ, |
| IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ, |
| IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256, |
| IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ, |
| IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ, |
| IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128, |
| IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ, |
| IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ, |
| IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128, |
| IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK, |
| IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK, |
| IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK, |
| IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK, |
| IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK, |
| IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK, |
| IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128, |
| IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128, |
| IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128, |
| IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128, |
| IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256, |
| IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK, |
| IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK, |
| IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK, |
| IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK, |
| IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK, |
| IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK, |
| IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK, |
| IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK, |
| IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK, |
| IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256, |
| IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256, |
| IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128, |
| IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128, |
| IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128, |
| IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256, |
| IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS, |
| IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256, |
| IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256, |
| IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256, |
| IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256, |
| IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256, |
| IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256, |
| IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256, |
| IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256, |
| IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK, |
| IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK, |
| IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK, |
| IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK, |
| IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK, |
| IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK, |
| IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK, |
| IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK, |
| IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256, |
| IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256, |
| IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256, |
| IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256, |
| IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256, |
| IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256, |
| IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256, |
| IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256, |
| IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256, |
| IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256, |
| IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128, |
| IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128, |
| IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128, |
| IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128, |
| IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128, |
| IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128, |
| IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128, |
| IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128, |
| IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z, |
| IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z, |
| IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z, |
| IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z, |
| IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK, |
| IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK, |
| IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK, |
| IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK, |
| IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK, |
| IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK, |
| IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK, |
| IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK, |
| IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK, |
| IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK, |
| IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK, |
| IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK, |
| IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK, |
| IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK, |
| IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK, |
| IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK, |
| IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256, |
| IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256, |
| IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK, |
| IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK, |
| IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK, |
| IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128, |
| IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128, |
| IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK, |
| IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256, |
| IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128, |
| IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK, |
| IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK, |
| IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK, |
| IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK, |
| IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK, |
| IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK, |
| IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK, |
| IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK, |
| IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK, |
| IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK, |
| IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI, |
| IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK, |
| IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK, |
| IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK, |
| IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK, |
| IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK, |
| IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK, |
| IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK, |
| IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK, |
| IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK, |
| IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK, |
| IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK, |
| IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256, |
| IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256, |
| IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128, |
| IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128, |
| IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256, |
| IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128, |
| IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK, |
| IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK, |
| IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK, |
| IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK, |
| IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK, |
| IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK, |
| IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256, |
| IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256, |
| IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256, |
| IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256, |
| IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK, |
| IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128, |
| IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128, |
| IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128, |
| IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128, |
| IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK, |
| IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF, |
| IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF, |
| IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF, |
| IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF, |
| IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI, |
| IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI, |
| IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI, |
| IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI, |
| IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF, |
| IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF, |
| IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF, |
| IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF, |
| IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI, |
| IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI, |
| IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI, |
| IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI, |
| IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128, |
| IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ, |
| IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512, |
| IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512, |
| IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512, |
| IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8, |
| IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8, |
| IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK, |
| IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512, |
| IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512, |
| IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512, |
| IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512, |
| IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8, |
| IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512, |
| IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512, |
| IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512, |
| IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512, |
| IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512, |
| IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512, |
| IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512, |
| IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512, |
| IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512, |
| IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512, |
| IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512, |
| IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512, |
| IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK, |
| IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512, |
| IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK, |
| IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512, |
| IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK, |
| IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512, |
| IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512, |
| IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512, |
| IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK, |
| IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK, |
| IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ, |
| IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512, |
| IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512, |
| IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512, |
| IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512, |
| IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512, |
| IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512, |
| IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512, |
| IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512, |
| IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512, |
| IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512, |
| IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512, |
| IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512, |
| IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512, |
| IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK, |
| IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK, |
| IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK, |
| IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512, |
| IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK, |
| IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI, |
| IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512, |
| IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512, |
| IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512, |
| IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512, |
| IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512, |
| IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512, |
| IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512, |
| IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK, |
| IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK, |
| IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512, |
| IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512, |
| IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI, |
| IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512, |
| IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512, |
| IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512, |
| IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512. |
| (bdesc_special_args): |
| Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask, |
| __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask, |
| __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask, |
| __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask, |
| __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask, |
| __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask, |
| __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask, |
| __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask, |
| __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask, |
| __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask, |
| __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask, |
| __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask, |
| __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask, |
| __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask, |
| __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask, |
| __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask, |
| __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask, |
| __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask, |
| __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask, |
| __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask, |
| __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask, |
| __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask, |
| __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask, |
| __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask, |
| __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask, |
| __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask, |
| __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask, |
| __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask, |
| __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask, |
| __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask, |
| __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz, |
| __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz, |
| __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz, |
| __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz, |
| __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask, |
| __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask, |
| __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask, |
| __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask, |
| __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask, |
| __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask, |
| __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask, |
| __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask, |
| __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask, |
| __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask, |
| __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask, |
| __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask, |
| __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask, |
| __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask, |
| __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask, |
| __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask, |
| __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask, |
| __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask, |
| __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask, |
| __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask, |
| __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask, |
| __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask, |
| __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask, |
| __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask, |
| __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask, |
| __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask, |
| __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask, |
| __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask, |
| __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask, |
| __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask, |
| __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask, |
| __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask, |
| __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask, |
| __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask, |
| __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask, |
| __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask, |
| __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask, |
| __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask, |
| __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask, |
| __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask, |
| __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask, |
| __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask, |
| __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask, |
| __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask, |
| __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask, |
| __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask, |
| __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask, |
| __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask, |
| __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask, |
| __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask, |
| __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask, |
| __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask, |
| __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask, |
| __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask, |
| __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask, |
| __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask, |
| __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask, |
| __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask, |
| __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask, |
| __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask, |
| __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask, |
| __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask, |
| __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask, |
| __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask, |
| __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask, |
| __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask, |
| __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask, |
| __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask, |
| __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask, |
| __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask, |
| __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask, |
| __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask, |
| __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask, |
| __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask, |
| __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask, |
| __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask, |
| __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask, |
| __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask, |
| __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask, |
| __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask, |
| __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask, |
| __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask, |
| __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask, |
| __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask, |
| __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask, |
| __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask, |
| __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask, |
| __builtin_ia32_reducesd, __builtin_ia32_reducess, |
| __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask, |
| __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz, |
| __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz, |
| __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask, |
| __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask, |
| __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask, |
| __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask, |
| __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask, |
| __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask, |
| __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask, |
| __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask, |
| __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask, |
| __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask, |
| __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask, |
| __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask, |
| __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask, |
| __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask, |
| __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask, |
| __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask, |
| __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask, |
| __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask, |
| __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask, |
| __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask, |
| __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask, |
| __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask, |
| __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask, |
| __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask, |
| __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask, |
| __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask, |
| __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask, |
| __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask, |
| __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask, |
| __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask, |
| __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask, |
| __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask, |
| __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask, |
| __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask, |
| __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask, |
| __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask, |
| __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask, |
| __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask, |
| __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask, |
| __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask, |
| __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask, |
| __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask, |
| __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask, |
| __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask, |
| __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask, |
| __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask, |
| __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask, |
| __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask, |
| __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256, |
| __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz, |
| __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask, |
| __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128, |
| __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz, |
| __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask, |
| __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask, |
| __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask, |
| __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask, |
| __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask, |
| __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask, |
| __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask, |
| __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask, |
| __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask, |
| __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask, |
| __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask, |
| __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask, |
| __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask, |
| __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask, |
| __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask, |
| __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask, |
| __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask, |
| __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask, |
| __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask, |
| __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask, |
| __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask, |
| __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask, |
| __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask, |
| __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask, |
| __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask, |
| __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask, |
| __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask, |
| __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask, |
| __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask, |
| __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask, |
| __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask, |
| __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask, |
| __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask, |
| __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask, |
| __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask, |
| __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask, |
| __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask, |
| __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz, |
| __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz, |
| __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz, |
| __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz, |
| __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask, |
| __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask, |
| __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3, |
| __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask, |
| __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz, |
| __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3, |
| __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask, |
| __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz, |
| __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3, |
| __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3, |
| __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask, |
| __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask, |
| __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3, |
| __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3, |
| __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3, |
| __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3, |
| __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3, |
| __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask, |
| __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz, |
| __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3, |
| __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask, |
| __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz, |
| __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3, |
| __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3, |
| __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask, |
| __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask, |
| __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask, |
| __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask, |
| __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask, |
| __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask, |
| __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask, |
| __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask, |
| __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask, |
| __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask, |
| __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask, |
| __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask, |
| __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask, |
| __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask, |
| __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask, |
| __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask, |
| __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask, |
| __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask, |
| __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz, |
| __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz, |
| __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask, |
| __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz, |
| __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz, |
| __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask, |
| __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz, |
| __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz, |
| __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask, |
| __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz, |
| __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz, |
| __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask, |
| __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask, |
| __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask, |
| __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask, |
| __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask, |
| __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask, |
| __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask, |
| __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask, |
| __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask, |
| __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask, |
| __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask, |
| __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask, |
| __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask, |
| __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask, |
| __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask, |
| __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask, |
| __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask, |
| __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask, |
| __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask, |
| __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask, |
| __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask, |
| __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask, |
| __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask, |
| __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask, |
| __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask, |
| __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask, |
| __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask, |
| __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss, |
| __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256, |
| __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256, |
| __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256, |
| __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256, |
| __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256, |
| __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256, |
| __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256, |
| __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256, |
| __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask, |
| __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask, |
| __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask, |
| __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask, |
| __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask, |
| __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask, |
| __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask, |
| __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask, |
| __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256, |
| __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256, |
| __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256, |
| __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256, |
| __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256, |
| __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256, |
| __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256, |
| __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256, |
| __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256, |
| __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256, |
| __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask, |
| __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask, |
| __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask, |
| __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask, |
| __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask, |
| __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask, |
| __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask, |
| __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask, |
| __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz, |
| __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz, |
| __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz, |
| __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz, |
| __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask, |
| __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask, |
| __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask, |
| __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask, |
| __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask, |
| __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask, |
| __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask, |
| __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask, |
| __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask, |
| __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask, |
| __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask, |
| __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask, |
| __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask, |
| __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask, |
| __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask, |
| __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask, |
| __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask, |
| __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask, |
| __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask, |
| __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask, |
| __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask, |
| __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask, |
| __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask, |
| __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask, |
| __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask, |
| __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask, |
| __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask, |
| __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask, |
| __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask, |
| __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask, |
| __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask, |
| __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask, |
| __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask, |
| __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask, |
| __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask, |
| __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask, |
| __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask, |
| __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask, |
| __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask, |
| __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask, |
| __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask, |
| __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask, |
| __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask, |
| __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask, |
| __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask, |
| __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask, |
| __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask, |
| __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask, |
| __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask, |
| __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask, |
| __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask, |
| __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask, |
| __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask, |
| __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask, |
| __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask, |
| __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask, |
| __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask, |
| __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask, |
| __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask, |
| __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask, |
| __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask, |
| __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask, |
| __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask, |
| __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask, |
| __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask, |
| __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask, |
| __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask, |
| __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask, |
| __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask, |
| __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask, |
| __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask, |
| __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask, |
| __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask, |
| __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask, |
| __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask, |
| __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask, |
| __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask, |
| __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask, |
| __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask, |
| __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask, |
| __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask, |
| __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask, |
| __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask, |
| __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512, |
| __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512, |
| __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi, |
| __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask, |
| __builtin_ia32_pslldq512, __builtin_ia32_psrldq512, |
| __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512, |
| __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask, |
| __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512, |
| __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask, |
| __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask, |
| __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask, |
| __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask, |
| __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz, |
| __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask, |
| __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask, |
| __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask, |
| __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask, |
| __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask, |
| __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask, |
| __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask, |
| __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask, |
| __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask, |
| __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask, |
| __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask, |
| __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask, |
| __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask, |
| __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask, |
| __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask, |
| __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask, |
| __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask, |
| __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask, |
| __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask, |
| __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask, |
| __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask, |
| __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask, |
| __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask, |
| __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask, |
| __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512, |
| __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512, |
| __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask, |
| __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask, |
| __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512, |
| __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512, |
| __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask, |
| __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask, |
| __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask, |
| __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask, |
| __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask, |
| __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round, |
| __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask, |
| __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask, |
| __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask, |
| __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask, |
| __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask, |
| __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask, |
| __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask. |
| (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI, |
| DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI, |
| V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI, |
| V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI, |
| HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI, |
| HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI, |
| V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI, |
| SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT, |
| QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT, |
| V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI, |
| V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI, |
| V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI, |
| V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI, |
| V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI, |
| V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI, |
| V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI, |
| V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI, |
| V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI, |
| V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI, |
| V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI, |
| V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI, |
| V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI, |
| V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI, |
| V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI, |
| V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, |
| V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI, |
| V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI, |
| V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI, |
| V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI, |
| V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI, |
| V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI, |
| V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI, |
| V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI, |
| V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI, |
| HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI, |
| DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI, |
| HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI, |
| QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI, |
| QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI, |
| V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI, |
| V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI, |
| V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI, |
| V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI, |
| V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI, |
| V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI, |
| V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI, |
| V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI, |
| V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI, |
| V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI, |
| V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI, |
| V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI, |
| V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI, |
| V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI, |
| V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI, |
| V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI, |
| V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI, |
| V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI, |
| V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT, |
| V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI, |
| QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI, |
| HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI, |
| QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT, |
| V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI, |
| V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI, |
| V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI, |
| V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI, |
| V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI, |
| V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI, |
| V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI, |
| V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI, |
| V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI, |
| V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI, |
| V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI, |
| V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI, |
| V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI, |
| V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI, |
| V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI, |
| V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI, |
| V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI, |
| V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI, |
| V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI, |
| V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI, |
| QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI, |
| QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI, |
| QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI, |
| SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI, |
| SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI, |
| QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI, |
| V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI, |
| V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI, |
| V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI, |
| V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI, |
| V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI, |
| V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI, |
| V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI, |
| V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI, |
| V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI, |
| V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI, |
| V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI, |
| V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI, |
| V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI, |
| V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI, |
| V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI, |
| V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI, |
| V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI, |
| V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI, |
| V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI, |
| V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI, |
| V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI, |
| V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT, |
| V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT, |
| V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT, |
| V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI, |
| VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI, |
| VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI, |
| VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI, |
| VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI, |
| VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI, |
| VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI, |
| VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI, |
| VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI, |
| VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI, |
| VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI, |
| VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI, |
| VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI, |
| V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI, |
| V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI, |
| V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI, |
| V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI, |
| V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI, |
| V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI, |
| V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI. |
| |
| 2014-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t |
| type for the left shift in CASE_CONVERT case. |
| |
| 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com> |
| |
| * asan.h (asan_intercepted_p): New function. |
| * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from |
| hash value construction. Call iterative_hash_expr instead of explicit |
| hash building. |
| (asan_mem_ref_hasher::equal): Change condition. |
| (has_mem_ref_been_instrumented): Likewise. |
| (update_mem_ref_hash_table): Likewise. |
| (maybe_update_mem_ref_hash_table): New function. |
| (instrument_strlen_call): Removed. |
| (get_mem_refs_of_builtin_call): Handle new parameter. |
| (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead |
| of instrument_mem_region_access if intercepted_p is true. |
| (instrument_mem_region_access): Instrument only base with len instead of |
| base and end with 1. |
| (build_check_stmt): Remove start_instrumented and end_instrumented |
| parameters. |
| (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and |
| ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST. |
| (asan_expand_check_ifn): Remove start_instrumented and end_instrumented. |
| * builtins.c (expand_builtin): Include asan.h. Don't expand |
| string/memory builtin functions that have interceptors if ASan is |
| enabled. |
| |
| 2014-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63665 |
| * fold-const.c (fold_comparison): Properly guard simplifying |
| against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS. |
| |
| 2014-10-28 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR. |
| * fold-const.c (const_binop): Likewise. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * optabs.c (optab_for_tree_code): Likewise. |
| (expand_vec_shift_expr): Likewise, update comment. |
| * tree.def: Delete VEC_LSHIFT_EXPR, remove comment. |
| * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR. |
| * optabs.def: Remove vec_shl_optab. |
| * doc/md.texi: Remove references to vec_shr_m. |
| |
| 2014-10-28 Yury Gribov <y.gribov@samsung.com> |
| |
| * asan.c (report_error_func): Add noabort path. |
| (check_func): Ditto. Formatting. |
| (asan_expand_check_ifn): Handle noabort path. |
| * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS |
| to default value. |
| * doc/invoke.texi (-fsanitize-recover=): Mention KASan. |
| * opts.c (finish_options): Reword comment. |
| * sanitizer.def: Add noabort ASan builtins. |
| |
| 2014-10-28 Yury Gribov <y.gribov@samsung.com> |
| |
| * asan.c (set_asan_shadow_offset): New function. |
| (asan_shadow_offset): Likewise. |
| (asan_emit_stack_protection): Call asan_shadow_offset. |
| (build_shadow_mem_access): Likewise. |
| * asan.h (set_asan_shadow_offset): Declare. |
| * common.opt (fasan-shadow-offset): New option. |
| (frandom-seed): Fixed parameter name. |
| * doc/invoke.texi (fasan-shadow-offset): Describe new option. |
| (frandom-seed): Fixed parameter name. |
| * opts-global.c (handle_common_deferred_options): Handle |
| -fasan-shadow-offset. |
| * opts.c (common_handle_option): Likewise. |
| |
| 2014-10-27 Jiong Wang <jiong.wang@arm.com> |
| |
| PR target/63442 |
| * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode". |
| |
| 2014-10-27 DJ Delorie <dj@redhat.com> |
| |
| * tree.c (build_common_tree_nodes): Don't even store the |
| __int128 types if they're not supported. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c (ix86_loop_memcount): Delete. |
| (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c (find_constant_1): Delete. |
| (find_constant): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c (extended_reg_mentioned_1): Delete. |
| (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c: Include rtl-iter.h |
| (ix86_check_avx256_register): Take a const_rtx and return a bool. |
| (ix86_check_avx256_stores): Update call accordingly. |
| (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise. |
| (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/alpha/alpha-protos.h (some_small_symbolic_operand_int): |
| Take an rtx and return a bool. |
| * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise. |
| Use FOR_EACH_SUBRTX_VAR. |
| * config/alpha/predicates.md (some_small_symbolic_operand): Update |
| accordingly. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return |
| a bool. |
| * config/alpha/alpha.c (find_lo_sum_using_gp): Delete. |
| (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/alpha/alpha.c (alpha_set_memflags_1): Delete. |
| (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/alpha/alpha.c: Include rtl-iter.h. |
| (split_small_symbolic_operand_1): Delete. |
| (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/s390/s390.c: Include rtl-iter.h. |
| (check_dpu): Delete. |
| (s390_loop_unroll_adjust): Only iterate over patterns. |
| Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/spu/spu.c: Include rtl-iter.h |
| (ea_symbol_ref): Replace with... |
| (ea_symbol_ref_p): ...this new function. |
| (spu_legitimate_address_p): Update call accordingly. |
| (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX. |
| |
| 2014-10-27 Phil Muldoon <pmuldoon@redhat.com> |
| Tom Tromey <tromey@redhat.com> |
| |
| * aclocal.m4, configure: Rebuild. |
| * Makefile.in (aclocal_deps): Add gcc-plugin.m4. |
| * configure.ac: Use GCC_ENABLE_PLUGINS. |
| * stor-layout.c (finish_bitfield_layout): Now public. Change |
| argument type to 'tree'. |
| (finish_record_layout): Update. |
| * stor-layout.h (finish_bitfield_layout): Declare. |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again. |
| * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): |
| Restore, enable for bigendian, update to use __builtin..._scal... |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_, |
| reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove. |
| (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_, |
| reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New. |
| |
| * config/aarch64/aarch64-simd.md |
| (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to... |
| (reduc_<maxmin_uns>_internal<mode>): ...this. |
| (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI). |
| (reduc_<maxmin_uns>_scal_<mode>): New (*2). |
| |
| (reduc_<maxmin_uns>_v2si): Combine with below, renaming... |
| (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming... |
| (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF). |
| |
| * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16, |
| vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64, |
| vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32, |
| vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8, |
| vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32, |
| vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16, |
| vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use |
| __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper. |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def |
| (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf): |
| Remove. |
| (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New. |
| |
| * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove. |
| (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New. |
| |
| (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to... |
| (aarch64_reduc_plus_internal<mode>): ...this. |
| |
| (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to... |
| (aarch64_reduc_plus_internalv2si): ...this. |
| |
| (reduc_splus_<mode>/V2F): Rename to... |
| (aarch64_reduc_plus_internal<mode>): ...this. |
| |
| * config/aarch64/iterators.md |
| (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove. |
| (UNSPEC_ADDV): New. |
| (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV. |
| |
| * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8, |
| vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64, |
| vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32, |
| vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to |
| __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper. |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/61114 |
| * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal |
| optabs, and note in reduc_[us](plus|min|max) to prefer the former. |
| |
| * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall |
| back to old reduc_... + BIT_FIELD_REF only if not. |
| |
| * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR, |
| return the reduce-to-scalar (reduc_..._scal) optab. |
| (scalar_reduc_to_vector): New. |
| |
| * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab, |
| reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab): |
| New. |
| |
| * optabs.h (scalar_reduc_to_vector): Declare. |
| |
| * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing |
| to either scalar or vector. |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/61114 |
| * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add |
| extract_bit_field around optab result. |
| |
| * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce |
| scalar not vector. |
| |
| * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type |
| for REDUC_{MIN,MAX,PLUS}_EXPR. |
| |
| * tree-vect-loop.c (vect_analyze_loop): Update comment. |
| (vect_create_epilog_for_reduction): For direct vector reduction, use |
| result of tree code directly without extract_bit_field. |
| |
| * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update |
| comment. |
| |
| 2014-10-27 Andrew MacLeod <amacleod@redhat.com> |
| |
| * basic-block.h: Remove all includes. |
| (enum profile_status_d, struct control_flow_graph): Move to cfg.h |
| * cfg.h (profile_status_d, struct control_flow_graph): Relocate here. |
| * Makefile.in (GTFILES): Add cfg.h to list. |
| * cgraph.h (symbol_table::create_empty): Move to cgraph.c. |
| * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h. |
| * genconditions.c (write_header): Add predict.h and basic-block.h to |
| lits of includes. |
| * genemit.c (main): Ditto. |
| * genpreds.c (write_insn_preds_c): Ditto. |
| * genrecog.c (write_header): Ditto. |
| * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h |
| to list of includes. |
| * alias.c: Adjust include files. |
| * asan.c: Ditto. |
| * auto-inc-dec.c: Ditto. |
| * auto-profile.c: Ditto. |
| * bb-reorder.c: Ditto. |
| * bt-load.c: Ditto. |
| * builtins.c: Ditto. |
| * caller-save.c: Ditto. |
| * calls.c: Ditto. |
| * cfg.c: Ditto. |
| * cfganal.c: Ditto. |
| * cfgbuild.c: Ditto. |
| * cfgcleanup.c: Ditto. |
| * cfgexpand.c: Ditto. |
| * cfghooks.c: Ditto. |
| * cfgloop.c: Ditto. |
| * cfgloopanal.c: Ditto. |
| * cfgloopmanip.c: Ditto. |
| * cfgrtl.c: Ditto. |
| * cgraphbuild.c: Ditto. |
| * cgraphclones.c: Ditto. |
| * cgraphunit.c: Ditto. |
| * combine-stack-adj.c: Ditto. |
| * combine.c: Ditto. |
| * compare-elim.c: Ditto. |
| * coverage.c: Ditto. |
| * cprop.c: Ditto. |
| * cse.c: Ditto. |
| * cselib.c: Ditto. |
| * data-streamer-in.c: Ditto. |
| * data-streamer-out.c: Ditto. |
| * data-streamer.c: Ditto. |
| * dce.c: Ditto. |
| * ddg.c: Ditto. |
| * ddg.h: Ditto. |
| * df-core.c: Ditto. |
| * df-problems.c: Ditto. |
| * df-scan.c: Ditto. |
| * df.h: Ditto. |
| * dojump.c: Ditto. |
| * dominance.c: Ditto. |
| * domwalk.c: Ditto. |
| * dse.c: Ditto. |
| * dwarf2cfi.c: Ditto. |
| * emit-rtl.c: Ditto. |
| * et-forest.c: Ditto. |
| * except.c: Ditto. |
| * expmed.c: Ditto. |
| * expr.c: Ditto. |
| * final.c: Ditto. |
| * fold-const.c: Ditto. |
| * function.c: Ditto. |
| * fwprop.c: Ditto. |
| * gcc-plugin.h: Ditto. |
| * gcse.c: Ditto. |
| * generic-match-head.c: Ditto. |
| * ggc-page.c: Ditto. |
| * gimple-builder.c: Ditto. |
| * gimple-expr.c: Ditto. |
| * gimple-fold.c: Ditto. |
| * gimple-iterator.c: Ditto. |
| * gimple-low.c: Ditto. |
| * gimple-match-head.c: Ditto. |
| * gimple-pretty-print.c: Ditto. |
| * gimple-ssa-isolate-paths.c: Ditto. |
| * gimple-ssa-strength-reduction.c: Ditto. |
| * gimple-streamer-in.c: Ditto. |
| * gimple-streamer-out.c: Ditto. |
| * gimple-streamer.h: Ditto. |
| * gimple-walk.c: Ditto. |
| * gimple.c: Ditto. |
| * gimplify-me.c: Ditto. |
| * gimplify.c: Ditto. |
| * graph.c: Ditto. |
| * graphite-blocking.c: Ditto. |
| * graphite-clast-to-gimple.c: Ditto. |
| * graphite-dependences.c: Ditto. |
| * graphite-interchange.c: Ditto. |
| * graphite-isl-ast-to-gimple.c: Ditto. |
| * graphite-optimize-isl.c: Ditto. |
| * graphite-poly.c: Ditto. |
| * graphite-scop-detection.c: Ditto. |
| * graphite-sese-to-poly.c: Ditto. |
| * graphite.c: Ditto. |
| * haifa-sched.c: Ditto. |
| * hw-doloop.c: Ditto. |
| * ifcvt.c: Ditto. |
| * init-regs.c: Ditto. |
| * internal-fn.c: Ditto. |
| * ipa-cp.c: Ditto. |
| * ipa-devirt.c: Ditto. |
| * ipa-icf-gimple.c: Ditto. |
| * ipa-icf.c: Ditto. |
| * ipa-inline-analysis.c: Ditto. |
| * ipa-inline.c: Ditto. |
| * ipa-polymorphic-call.c: Ditto. |
| * ipa-profile.c: Ditto. |
| * ipa-prop.c: Ditto. |
| * ipa-pure-const.c: Ditto. |
| * ipa-reference.c: Ditto. |
| * ipa-split.c: Ditto. |
| * ipa-utils.c: Ditto. |
| * ipa.c: Ditto. |
| * ira-build.c: Ditto. |
| * ira-color.c: Ditto. |
| * ira-conflicts.c: Ditto. |
| * ira-costs.c: Ditto. |
| * ira-emit.c: Ditto. |
| * ira-lives.c: Ditto. |
| * ira.c: Ditto. |
| * jump.c: Ditto. |
| * lcm.c: Ditto. |
| * loop-doloop.c: Ditto. |
| * loop-init.c: Ditto. |
| * loop-invariant.c: Ditto. |
| * loop-iv.c: Ditto. |
| * loop-unroll.c: Ditto. |
| * lower-subreg.c: Ditto. |
| * lra-assigns.c: Ditto. |
| * lra-coalesce.c: Ditto. |
| * lra-constraints.c: Ditto. |
| * lra-eliminations.c: Ditto. |
| * lra-lives.c: Ditto. |
| * lra-spills.c: Ditto. |
| * lra.c: Ditto. |
| * lto-cgraph.c: Ditto. |
| * lto-compress.c: Ditto. |
| * lto-opts.c: Ditto. |
| * lto-section-in.c: Ditto. |
| * lto-section-out.c: Ditto. |
| * lto-streamer-in.c: Ditto. |
| * lto-streamer-out.c: Ditto. |
| * lto-streamer.c: Ditto. |
| * mcf.c: Ditto. |
| * mode-switching.c: Ditto. |
| * modulo-sched.c: Ditto. |
| * omp-low.c: Ditto. |
| * optabs.c: Ditto. |
| * opts-global.c: Ditto. |
| * passes.c: Ditto. |
| * postreload-gcse.c: Ditto. |
| * postreload.c: Ditto. |
| * predict.c: Ditto. |
| * print-rtl.c: Ditto. |
| * profile.c: Ditto. |
| * recog.c: Ditto. |
| * ree.c: Ditto. |
| * reg-stack.c: Ditto. |
| * regcprop.c: Ditto. |
| * regcprop.h: Ditto. |
| * reginfo.c: Ditto. |
| * regrename.c: Ditto. |
| * regstat.c: Ditto. |
| * reload.c: Ditto. |
| * reload1.c: Ditto. |
| * reorg.c: Ditto. |
| * resource.c: Ditto. |
| * rtlanal.c: Ditto. |
| * sched-deps.c: Ditto. |
| * sched-ebb.c: Ditto. |
| * sched-int.h: Ditto. |
| * sched-rgn.c: Ditto. |
| * sched-vis.c: Ditto. |
| * sel-sched-dump.c: Ditto. |
| * sel-sched-ir.c: Ditto. |
| * sel-sched-ir.h: Ditto. |
| * sel-sched.c: Ditto. |
| * sese.c: Ditto. |
| * shrink-wrap.c: Ditto. |
| * stack-ptr-mod.c: Ditto. |
| * stmt.c: Ditto. |
| * store-motion.c: Ditto. |
| * symtab.c: Ditto. |
| * toplev.c: Ditto. |
| * tracer.c: Ditto. |
| * trans-mem.c: Ditto. |
| * tree-affine.c: Ditto. |
| * tree-call-cdce.c: Ditto. |
| * tree-cfg.c: Ditto. |
| * tree-cfgcleanup.c: Ditto. |
| * tree-chrec.c: Ditto. |
| * tree-complex.c: Ditto. |
| * tree-data-ref.c: Ditto. |
| * tree-dfa.c: Ditto. |
| * tree-eh.c: Ditto. |
| * tree-emutls.c: Ditto. |
| * tree-if-conv.c: Ditto. |
| * tree-inline.c: Ditto. |
| * tree-into-ssa.c: Ditto. |
| * tree-loop-distribution.c: Ditto. |
| * tree-nested.c: Ditto. |
| * tree-nrv.c: Ditto. |
| * tree-object-size.c: Ditto. |
| * tree-outof-ssa.c: Ditto. |
| * tree-parloops.c: Ditto. |
| * tree-phinodes.c: Ditto. |
| * tree-predcom.c: Ditto. |
| * tree-pretty-print.c: Ditto. |
| * tree-profile.c: Ditto. |
| * tree-scalar-evolution.c: Ditto. |
| * tree-sra.c: Ditto. |
| * tree-ssa-address.c: Ditto. |
| * tree-ssa-alias.c: Ditto. |
| * tree-ssa-ccp.c: Ditto. |
| * tree-ssa-coalesce.c: Ditto. |
| * tree-ssa-copy.c: Ditto. |
| * tree-ssa-copyrename.c: Ditto. |
| * tree-ssa-dce.c: Ditto. |
| * tree-ssa-dom.c: Ditto. |
| * tree-ssa-dse.c: Ditto. |
| * tree-ssa-forwprop.c: Ditto. |
| * tree-ssa-ifcombine.c: Ditto. |
| * tree-ssa-live.c: Ditto. |
| * tree-ssa-loop-ch.c: Ditto. |
| * tree-ssa-loop-im.c: Ditto. |
| * tree-ssa-loop-ivcanon.c: Ditto. |
| * tree-ssa-loop-ivopts.c: Ditto. |
| * tree-ssa-loop-manip.c: Ditto. |
| * tree-ssa-loop-niter.c: Ditto. |
| * tree-ssa-loop-prefetch.c: Ditto. |
| * tree-ssa-loop-unswitch.c: Ditto. |
| * tree-ssa-loop.c: Ditto. |
| * tree-ssa-math-opts.c: Ditto. |
| * tree-ssa-operands.c: Ditto. |
| * tree-ssa-phiopt.c: Ditto. |
| * tree-ssa-phiprop.c: Ditto. |
| * tree-ssa-pre.c: Ditto. |
| * tree-ssa-propagate.c: Ditto. |
| * tree-ssa-reassoc.c: Ditto. |
| * tree-ssa-sccvn.c: Ditto. |
| * tree-ssa-sink.c: Ditto. |
| * tree-ssa-strlen.c: Ditto. |
| * tree-ssa-structalias.c: Ditto. |
| * tree-ssa-tail-merge.c: Ditto. |
| * tree-ssa-ter.c: Ditto. |
| * tree-ssa-threadedge.c: Ditto. |
| * tree-ssa-threadupdate.c: Ditto. |
| * tree-ssa-uncprop.c: Ditto. |
| * tree-ssa-uninit.c: Ditto. |
| * tree-ssa.c: Ditto. |
| * tree-ssanames.c: Ditto. |
| * tree-stdarg.c: Ditto. |
| * tree-streamer-in.c: Ditto. |
| * tree-streamer-out.c: Ditto. |
| * tree-streamer.c: Ditto. |
| * tree-switch-conversion.c: Ditto. |
| * tree-tailcall.c: Ditto. |
| * tree-vect-data-refs.c: Ditto. |
| * tree-vect-generic.c: Ditto. |
| * tree-vect-loop-manip.c: Ditto. |
| * tree-vect-loop.c: Ditto. |
| * tree-vect-patterns.c: Ditto. |
| * tree-vect-slp.c: Ditto. |
| * tree-vect-stmts.c: Ditto. |
| * tree-vectorizer.c: Ditto. |
| * tree-vrp.c: Ditto. |
| * tree.c: Ditto. |
| * tsan.c: Ditto. |
| * ubsan.c: Ditto. |
| * valtrack.c: Ditto. |
| * valtrack.h: Ditto. |
| * value-prof.c: Ditto. |
| * var-tracking.c: Ditto. |
| * varasm.c: Ditto. |
| * varpool.c: Ditto. |
| * vtable-verify.c: Ditto. |
| * web.c: Ditto. |
| * config/aarch64/aarch64-builtins.c: Ditto. |
| * config/aarch64/aarch64.c: Ditto. |
| * config/alpha/alpha.c: Ditto. |
| * config/arc/arc.c: Ditto. |
| * config/arm/arm.c: Ditto. |
| * config/avr/avr.c: Ditto. |
| * config/bfin/bfin.c: Ditto. |
| * config/c6x/c6x.c: Ditto. |
| * config/cr16/cr16.c: Ditto. |
| * config/cris/cris.c: Ditto. |
| * config/darwin-c.c: Ditto. |
| * config/darwin.c: Ditto. |
| * config/epiphany/epiphany.c: Ditto. |
| * config/epiphany/mode-switch-use.c: Ditto. |
| * config/epiphany/resolve-sw-modes.c: Ditto. |
| * config/fr30/fr30.c: Ditto. |
| * config/frv/frv.c: Ditto. |
| * config/h8300/h8300.c: Ditto. |
| * config/i386/i386.c: Ditto. |
| * config/i386/winnt.c: Ditto. |
| * config/ia64/ia64.c: Ditto. |
| * config/iq2000/iq2000.c: Ditto. |
| * config/lm32/lm32.c: Ditto. |
| * config/m32c/m32c.c: Ditto. |
| * config/m32r/m32r.c: Ditto. |
| * config/m68k/m68k.c: Ditto. |
| * config/mcore/mcore.c: Ditto. |
| * config/mep/mep.c: Ditto. |
| * config/microblaze/microblaze.c: Ditto. |
| * config/mips/mips.c: Ditto. |
| * config/mmix/mmix.c: Ditto. |
| * config/mn10300/mn10300.c: Ditto. |
| * config/moxie/moxie.c: Ditto. |
| * config/msp430/msp430.c: Ditto. |
| * config/nds32/nds32-cost.c: Ditto. |
| * config/nds32/nds32-fp-as-gp.c: Ditto. |
| * config/nds32/nds32-intrinsic.c: Ditto. |
| * config/nds32/nds32-isr.c: Ditto. |
| * config/nds32/nds32-md-auxiliary.c: Ditto. |
| * config/nds32/nds32-memory-manipulation.c: Ditto. |
| * config/nds32/nds32-pipelines-auxiliary.c: Ditto. |
| * config/nds32/nds32-predicates.c: Ditto. |
| * config/nds32/nds32.c: Ditto. |
| * config/nios2/nios2.c: Ditto. |
| * config/pa/pa.c: Ditto. |
| * config/pdp11/pdp11.c: Ditto. |
| * config/rl78/rl78.c: Ditto. |
| * config/rs6000/rs6000.c: Ditto. |
| * config/rx/rx.c: Ditto. |
| * config/s390/s390.c: Ditto. |
| * config/sh/sh-mem.cc: Ditto. |
| * config/sh/sh.c: Ditto. |
| * config/sh/sh_optimize_sett_clrt.cc: Ditto. |
| * config/sh/sh_treg_combine.cc: Ditto. |
| * config/sparc/sparc.c: Ditto. |
| * config/spu/spu.c: Ditto. |
| * config/stormy16/stormy16.c: Ditto. |
| * config/tilegx/tilegx.c: Ditto. |
| * config/tilepro/tilepro.c: Ditto. |
| * config/v850/v850.c: Ditto. |
| * config/vax/vax.c: Ditto. |
| * config/xtensa/xtensa.c: Ditto. |
| |
| 2014-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out. |
| * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): |
| Remove using preprocessor directives. |
| |
| 2014-10-27 Richard Biener <rguenther@suse.de> |
| |
| * match.pd (0 % X): Properly use the iterator iterating over |
| all modulo operators. |
| (X % 1): Likewise. |
| |
| 2014-10-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h. |
| (lattice): New global. |
| (fwprop_ssa_val): New function. |
| (fold_all_stmts): Likewise. |
| (pass_forwprop::execute): Finally fold all stmts. |
| |
| 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c++/53061 |
| * doc/invoke.texi (fmessage-length): Update text to match reality. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/microblaze/microblaze.c: Include rtl-iter.h. |
| (microblaze_tls_referenced_p_1): Delete. |
| (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_at_reg_p): Delete. |
| (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_record_lo_sum): Replace with... |
| (mips_record_lo_sums): ...this new function. |
| (mips_reorg_process_insns): Update accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_sim_insn): Update comment. |
| (mips_sim_wait_regs_2): Delete. |
| (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx |
| and return a bool. Iterate over all subrtxes here. |
| (r10k_needs_protection_p): Update accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx |
| rather than an rtx pointer. Change type of insn from "void *" |
| to its real type. Return bool rather than int. Iterate over |
| all subrtxes here. |
| (r10k_needs_protection_p_store): Update accordingly. |
| (r10k_needs_protection_p): Likewise. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete. |
| (mips16_rewrite_pool_refs): Take the insn and constant pool as |
| parameters. Iterate over the instruction's pattern and return void. |
| (mips16_lay_out_constants): Update accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_kernel_reg_p): Replace with... |
| (mips_refers_to_kernel_reg_p): ...this new function. |
| (mips_expand_prologue): Update accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_rewrite_small_data_1): Take the context |
| as a parameter instead of the containing MEM. Iterate over all |
| subrtxes. Don't return a value. |
| (mips_rewrite_small_data): Update call accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c: Include rtl-iter.h. |
| (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer. |
| Take the context as a parameter instead of the containing MEM. |
| Iterate over all subrtxes. |
| (mips_small_data_pattern_p): Update call accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete. |
| (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mep/mep.c (mep_store_find_set): Take a const_rtx and |
| return a bool. Replace "void *" with specific type. Iterate |
| over all subrtxes. |
| (mep_store_data_bypass_1): Update calls accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mep/mep.c: Include rtl-iter.h. |
| (global_reg_mentioned_p_1): Take a const_rtx and return a bool. |
| (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/xtensa/xtensa.c: Include rtl-iter.h. |
| (xtensa_tls_referenced_p_1): Delete. |
| (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/sh/sh.c (sh_contains_memref_p_1): Delete. |
| (sh_contains_memref_p): Use FOR_EACH_SUBRTX. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an |
| rtx as argument and return the number of changes. |
| * config/sh/sh.c: Include rtl-iter.h. |
| (shmedia_cleanup_truncate): Take an rtx as argument and iterate |
| over all subrtxes. Return the number of changes made. |
| * config/sh/sh.md: Update caller accordingly. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete. |
| (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR. |
| |
| 2014-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/m68k/m68k.c: Include rtl-iter.h. |
| (m68k_final_prescan_insn_1): Delete. |
| (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR. |
| |
| 2014-10-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63641 |
| * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high |
| to low + prec - 1 - clz (mask) instead of low + prec - clz (mask). |
| |
| 2014-10-25 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/63615 |
| * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on |
| decomposing PLUS or MINUS if operands are not placed adjacent |
| in the "ops" array. |
| |
| 2014-10-25 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do |
| not allow e500 double in registers not satisyfing |
| SPE_SIMD_REGNO_P. |
| |
| 2014-10-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dwarf2out.c (declare_in_namespace): Only emit external |
| declarations in the local scope once. |
| |
| 2014-10-24 Jonathan Wakely <jwakely@redhat.com> |
| |
| * ginclude/stdbool.h: Do not define bool, true or false in C++11. |
| |
| 2014-10-24 Charles Baylis <charles.baylis@linaro.org> |
| |
| * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins, |
| update uses to use new macro arguments. |
| (__LD3_LANE_FUNC): Likewise. |
| (__LD4_LANE_FUNC): Likewise. |
| |
| 2014-10-24 Charles Baylis <charles.baylis@linaro.org> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_types_loadstruct_lane_qualifiers): Define. |
| * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane, |
| ld4_lane): New builtins. |
| * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>): |
| New pattern. |
| (aarch64_vec_load_lanesci_lane<mode>): Likewise. |
| (aarch64_vec_load_lanesxi_lane<mode>): Likewise. |
| (aarch64_ld2_lane<mode>): New expand. |
| (aarch64_ld3_lane<mode>): Likewise. |
| (aarch64_ld4_lane<mode>): Likewise. |
| * config/aarch64/aarch64.md (define_c_enum "unspec"): Add |
| UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE. |
| |
| 2014-10-24 Georg-Johann Lay <avr@gjlay.de> |
| |
| * avr-protos.h (avr_out_sign_extend): New. |
| * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle. |
| (avr_out_sign_extend): New function. |
| * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2) |
| (extendhisi2, extendpsisi2): Use it. |
| (adjust_len) [sext]: New. |
| |
| 2014-10-24 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison |
| added. |
| |
| 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define. |
| (LINK_SPEC): Include CA53_ERR_835769_SPEC. |
| * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define. |
| (LINK_SPEC): Include CA53_ERR_835769_SPEC. |
| |
| 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in |
| do while (0). |
| * config/aarch64/aarch64.c (is_mem_p): Delete. |
| (is_memory_op): Rename to... |
| (has_memory_op): ... This. Use FOR_EACH_SUBRTX. |
| (dep_between_memop_and_curr): Assert that the input is a SET. |
| (aarch64_madd_needs_nop): Add comment. Do not call |
| dep_between_memop_and_curr on NULL body. |
| (aarch64_final_prescan_insn): Add comment. |
| Include rtl-iter.h. |
| |
| 2014-10-24 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV) |
| to genmatch BUILD_LIBS instead. |
| |
| 2014-10-24 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (expr::gen_transform): Use fold_buildN_loc |
| and build_call_expr_loc. |
| (dt_simplify::gen): Drop non_lvalue for GIMPLE, use |
| non_lvalue_loc to build it for GENERIC. |
| (decision_tree::gen_generic): Add location argument to |
| generic_simplify prototype. |
| (capture_info): New class. |
| (capture_info::capture_info): New constructor. |
| (capture_info::walk_match): New method. |
| (capture_info::walk_result): New method. |
| (capture_info::walk_c_expr): New method. |
| (dt_simplify::gen): Handle preserving side-effects for |
| GENERIC code generation. |
| (decision_tree::gen_generic): Do not reject operands |
| with TREE_SIDE_EFFECTS. |
| * generic-match.h: New file. |
| * generic-match-head.c: Include generic-match.h, not gimple-match.h. |
| * match.pd: Add some constant folding patterns from fold-const.c. |
| * fold-const.c: Include generic-match.h. |
| (fold_unary_loc): Dispatch to generic_simplify. |
| (fold_ternary_loc): Likewise. |
| (fold_binary_loc): Likewise. Remove patterns now implemented |
| by generic_simplify. |
| * gimple-fold.c (replace_stmt_with_simplification): New function. |
| (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify. |
| (no_follow_ssa_edges): New function. |
| (fold_stmt): New overload with valueization hook. Use |
| no_follow_ssa_edges for the overload without hook. |
| (fold_stmt_inplace): Likewise. |
| * gimple-fold.h (no_follow_ssa_edges): Declare. |
| |
| 2014-10-24 Felix Yang <felix.yang@huawei.com> |
| Jiji Jiang <jiangjiji@huawei.com> |
| |
| PR target/63173 |
| * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro. |
| (__LD3R_FUNC): Ditto. |
| (__LD4R_FUNC): Ditto. |
| (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64, |
| vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16 |
| vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8, |
| vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64, |
| vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64 |
| vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions. |
| (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8 |
| vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32 |
| vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32 |
| vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16 |
| vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16 |
| vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise. |
| (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8 |
| vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32 |
| vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32 |
| vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16 |
| vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16 |
| vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise. |
| * config/aarch64/aarch64.md (define_c_enum "unspec"): Add |
| UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP. |
| * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New |
| builtins. |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern. |
| (aarch64_simd_ld3r<mode>): Likewise. |
| (aarch64_simd_ld4r<mode>): Likewise. |
| (aarch64_ld2r<mode>): New expand. |
| (aarch64_ld3r<mode>): Likewise. |
| (aarch64_ld4r<mode>): Likewise. |
| |
| 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com> |
| |
| * rtlanal.c (get_base_term): Handle SCRATCH. |
| |
| 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com> |
| |
| * haifa-sched.c (sched_init): Disable max_issue when scheduling for |
| register pressure. |
| |
| 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com> |
| |
| * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,) |
| (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead. |
| (max_issue, choose_ready, sched_init): Update. |
| |
| 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com> |
| |
| * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field. |
| * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro. |
| (rfs_result): Set INSN_LAST_RFS_WIN. Update signature. |
| (rank_for_schedule): Update calls to rfs_result to pass new parameters. |
| (print_rank_for_schedule_stats): Print out elements of ready list that |
| ended up on their respective places due to each of the sorting |
| heuristics. |
| (ready_sort): Update. |
| (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL. |
| (schedule_block): Update. |
| |
| 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com> |
| |
| * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static |
| arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num. |
| (print_curr_reg_pressure, setup_insn_reg_pressure_info,) |
| (model_update_pressure, model_spill_cost): Use sched_class_regs_num. |
| (model_start_schedule): Update. |
| (sched_pressure_start_bb): New static function. Calculate |
| sched_class_regs_num. |
| (schedule_block): Use it. |
| (alloc_global_sched_pressure_data): Calculate call_used_regs_num. |
| |
| 2014-10-24 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (BUILD_CPPLIB): When in stage2+ use the |
| host library and make sure to pull in the required libintl |
| and libiconv dependencies. |
| |
| 2014-10-24 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Fix copy-and-pasto. |
| |
| 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR bootstrap/63632 |
| * collect2.c (main): Filter out -fno-lto. |
| |
| 2014-10-24 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard |
| division by zero in dumps. |
| (sem_item_optimizer::merge_classes): Ditto. |
| |
| 2014-10-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_can_combine_p): Fix typo in last change. |
| |
| 2014-10-23 Ian Lance Taylor <iant@google.com> |
| |
| * tree-vrp.c (extract_range_from_assert): Fix typo in comment. |
| |
| 2014-10-23 Ian Lance Taylor <iant@google.com> |
| |
| * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine. |
| |
| 2014-10-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63623 |
| * var-tracking.c (stack_adjust_offset_pre_post_cb): New function. |
| (stack_adjust_offset_pre_post): Use it through for_each_inc_dec, |
| instead of only handling autoinc in dest if it is a MEM. |
| (vt_stack_adjustments): Fix up formatting. |
| |
| 2014-10-23 DJ Delorie <dj@redhat.com> |
| |
| * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is |
| independend of -mlarge. |
| * config/msp430/constraints.md (Ys): Update comment. |
| |
| 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/63534 |
| PR target/63618 |
| * cse.c (delete_trivially_dead_insns): Consider PIC register is used |
| while it is pseudo. |
| * dse.c (deletable_insn_p): Likewise. |
| |
| 2014-10-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c: Fix GNU coding rules and typos. |
| * config/avr/avr.h: Dito. |
| * config/avr/avr-c.c: Dito. |
| * config/avr/avr.md: Dito. |
| |
| 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW): |
| New. |
| (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode |
| iterator. |
| (define_expand "abs<mode>2"): Ditto. |
| |
| 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * tree-core.h (tree_var_decl): Extend `function_code' field |
| by one bit, move `regdecl_flag' field to ... |
| (tree_decl_with_vis): Here. |
| * tree.h (DECL_STATIC_CHAIN): Update struct name. |
| |
| 2014-10-23 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (BUILD_CPPLIB): Add. |
| (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB. |
| Drop LIBIBERTY. |
| |
| 2014-10-23 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Preserve side-effects of |
| X - X when simplifying to 0. |
| * stor-layout.c (finish_bitfield_representative): Strip |
| side-effects of evaluating the difference of two DECL_FIELD_OFFSET. |
| |
| 2014-10-22 Richard Biener <rguenther@suse.de> |
| Tobias Burnus <burnus@net-b.de> |
| |
| PR lto/63603 |
| * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}. |
| |
| 2014-10-22 Dehao Chen <dehao@google.com> |
| |
| * auto-profile.c: Change order of header files. |
| |
| 2014-10-22 Guozhi Wei <carrot@google.com> |
| |
| PR tree-optimization/63530 |
| tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set |
| pointer alignment according to DR_MISALIGNMENT. |
| |
| 2014-10-22 David Malcolm <dmalcolm@redhat.com> |
| |
| * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done. |
| |
| 2014-10-22 Andrew MacLeod <amacleod@redhat.com> |
| |
| * cfgbuild.h: New. Add prototypes for cfgbuild.c. |
| * cfgcleanup.h: New. Add prototypes for cfgcleanup.c. |
| * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c. |
| * dominance.h: New. Add prototypes for dominance.c. |
| * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it. |
| * cfghooks.h: (struct profile_record) Relocate here. |
| Relocate 2 prototypes from basic-block.h. |
| * basic-block.h: Move prototypes and struct to new header files. |
| Include cfgbuild.h, cfgcleanup.h, and dominance.h. |
| * rtl.h: Move a few prototypes to new header files. |
| * cfgcleanup.c (merge_memattrs): Make static. |
| * genopinit.c (main): Add predict.h to list of includes. |
| * predict.h: Update prototype list to match predict.c. |
| * predict.c (maybe_hot_count_p): Export. |
| (cgraph_edge::maybe_hot_p): Move to cgraph.c. |
| (cgraph_node::optimize_for_size_p): Move to cgraph.h. |
| * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here. |
| * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here. |
| * profile.h: Adjust prototypes. |
| * ifcvt.h: New. Relocate struct ce_if_block here. |
| * ifcvt.c: Include ifcvt.h. |
| * config/frv/frv.c: Include ifcvt.h. |
| * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters. |
| |
| 2014-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * lra.c (lra): Remove call to recog_init. |
| * config/i386/i386.md (preferred_for_speed): New attribute |
| (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of |
| "enabled". Remove check for sched1. |
| |
| 2014-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * recog.h (recog_data_d): Remove enabled_alternatives. |
| * recog.c (extract_insn): Don't set it. |
| * reload.c (find_reloads): Call get_enabled_alternatives. |
| |
| 2014-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * recog.h (constrain_operands): Add an alternative_mask parameter. |
| (constrain_operands_cached): Likewise. |
| (get_preferred_alternatives): Declare new form. |
| * recog.c (get_preferred_alternatives): New bb-taking instance. |
| (constrain_operands): Take the set of available alternatives as |
| a parameter. |
| (check_asm_operands, insn_invalid_p, extract_constrain_insn) |
| (extract_constrain_insn_cached): Update calls to constrain_operands. |
| * caller-save.c (reg_save_code): Likewise. |
| * ira.c (setup_prohibited_mode_move_regs): Likewise. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. |
| * ree.c (combine_reaching_defs): Likewise. |
| * reload.c (can_reload_into): Likewise. |
| * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise. |
| (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns) |
| (emit_insn_if_valid_for_reload): Likewise. |
| * reorg.c (fill_slots_from_thread): Likewise. |
| * config/i386/i386.c (ix86_attr_length_address_default): Likewise. |
| * config/pa/pa.c (pa_can_combine_p): Likewise. |
| * config/rl78/rl78.c (insn_ok_now): Likewise. |
| * config/sh/sh.md (define_peephole2): Likewise. |
| * final.c (final_scan_insn): Update call to constrain_operands_cached. |
| |
| 2014-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed" |
| attributes. |
| * genattr.c (main): Handle "preferred_for_size" and |
| "preferred_for_speed" in the same way as "enabled". |
| * recog.h (bool_attr): New enum. |
| (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks. |
| (get_preferred_alternatives, check_bool_attrs): Declare. |
| * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached) |
| (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs): |
| New functions. |
| (get_enabled_alternatives): Use get_bool_attr_mask. |
| * ira-costs.c (record_reg_classes): Use get_preferred_alternatives |
| instead of recog_data.enabled_alternatives. |
| * ira.c (ira_setup_alts): Likewise. |
| * postreload.c (reload_cse_simplify_operands): Likewise. |
| * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise. |
| * ira-lives.c (preferred_alternatives): New variable. |
| (process_bb_node_lives): Set it. |
| (check_and_make_def_conflict, make_early_clobber_and_input_conflicts) |
| (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead |
| of recog_data.enabled_alternatives. |
| * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives |
| to preferred_alternatives. |
| * lra-constraints.c (process_alt_operands): Update accordingly. |
| * lra.c (lra_set_insn_recog_data): Likewise. |
| (lra_update_insn_recog_data): Assert check_bool_attrs. |
| |
| 2014-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * recog.h (extract_constrain_insn): Declare. |
| * recog.c (extract_constrain_insn): New function. |
| * lra.c (check_rtl): Use it. |
| * postreload.c (reload_cse_simplify_operands): Likewise. |
| * reg-stack.c (check_asm_stack_operands): Likewise. |
| (subst_asm_stack_regs): Likewise. |
| * regcprop.c (copyprop_hardreg_forward_1): Likewise. |
| * regrename.c (build_def_use): Likewise. |
| * sel-sched.c (get_reg_class): Likewise. |
| * config/arm/arm.c (note_invalid_constants): Likewise. |
| * config/s390/predicates.md (execute_operation): Likewise. |
| |
| 2014-10-22 Jakub Jelinek <jakub@redhat.com> |
| Yury Gribov <y.gribov@samsung.com> |
| |
| * common.opt (flag_sanitize_recover): New variable. |
| (fsanitize-recover): Remove Var/Init, deprecate. |
| (fsanitize-recover=): New option. |
| * doc/invoke.texi (fsanitize-recover): Update docs. |
| * opts.c (finish_options): Use opts->x_flag_sanitize |
| instead of flag_sanitize. Prohibit -fsanitize-recover |
| for anything besides UBSan. Formatting. |
| (common_handle_option): Handle OPT_fsanitize_recover_ |
| and OPT_fsanitize_recover. Use opts->x_flag_sanitize |
| instead of flag_sanitize. |
| * asan.c (pass_sanopt::execute): Fix up formatting. |
| * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn, |
| ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin, |
| instrument_bool_enum_load, ubsan_instrument_float_cast, |
| instrument_nonnull_arg, instrument_nonnull_return): Check |
| bits in flag_sanitize_recover bitmask instead of |
| flag_sanitize_recover as bool flag. |
| |
| 2014-10-22 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'. |
| |
| 2014-10-22 Renlin Li <renlin.li@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define |
| __ARM_FEATURE_IDIV__. |
| |
| 2014-10-22 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (s-match): Adjust dependencies to only catch |
| match.pd. |
| |
| 2014-10-22 Richard Biener <rguenther@suse.de> |
| Prathamesh Kulkarni <bilbotheelffriend@gmail.com> |
| |
| * Makefile.in (OBJS): Add gimple-match.o and generic-match.o. |
| (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c. |
| (gimple-match.c): Generate by triggering s-match. |
| (generic-match.c): Likewise. |
| (s-match): Rule to build gimple-match.c and generic-match.c |
| by running the genmatch generator program. |
| (build/hash-table.o): Dependencies to build hash-table.c for the host. |
| (build/genmatch.o): Dependencies to build genmatch. |
| (genprog): Add match. |
| (build/genmatch): Likewise. |
| (TEXI_GCCINT_FILES): Add match-and-simplify.texi. |
| * generic-match-head.c: New file. |
| * gimple-match-head.c: Likewise. |
| * gimple-match.h: Likewise. |
| * genmatch.c: Likewise. |
| * match.pd: Likewise. |
| * builtins.h (fold_builtin_n): Export. |
| * builtins.c (fold_builtin_n): Likewise. |
| * gimple-fold.h (gimple_build): Declare various overloads. |
| (gimple_simplify): Likewise. |
| (gimple_convert): Re-implement in terms of gimple_build. |
| * gimple-fold.c (gimple_convert): Remove. |
| (gimple_build): New functions. |
| * doc/match-and-simplify.texi: New file. |
| * doc/gccint.texi: Add menu item Match and Simplify and include |
| match-and-simplify.texi. |
| |
| 2014-10-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/63594 |
| * config/i386/i386.c (ix86_expand_vector_init_duplicate): For |
| V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value |
| even for just TARGET_AVX2, not only for |
| TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode, |
| call ix86_vector_duplicate_value only if TARGET_AVX512BW, |
| otherwise build it using concatenation of 256-bit |
| broadcast. |
| * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after |
| avx512 broadcast patterns. |
| (vec_dup<mode>): Likewise. For avx2 use |
| v<sseintprefix>broadcast<bcstscalarsuff> instead of |
| vbroadcast<ssescalarmodesuffix>. |
| (AVX2_VEC_DUP_MODE): New mode iterator. |
| (*vec_dup<mode>): New TARGET_AVX2 define_insn with |
| AVX2_VEC_DUP_MODE iterator, add a splitter for that. |
| |
| PR target/63542 |
| * config/i386/i386.c (ix86_pic_register_p): Also return |
| true if x is a hard register with ORIGINAL_REGNO equal to |
| pic_offset_table_rtx pseudo REGNO. |
| (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg () |
| after reload, subtract GOT_SYMBOL_NAME symbol if possible. |
| |
| 2014-10-22 Alan Modra <amodra@gmail.com> |
| |
| * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast. |
| * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise. |
| (gcc_obstack_init): Use obstack_specify_allocation in place of |
| _obstack_begin. |
| * genautomata.c (next_sep_el): Cast result of obstack_base to (char *). |
| (regexp_representation): Likewise. |
| * godump.c (go_output_type): Likewise. |
| |
| 2014-10-21 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2. |
| * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY. |
| * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment. |
| |
| 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (pedantic-errors): Explain better. |
| |
| 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com> |
| Vidya Praveen <vidya.praveen@atmel.com> |
| Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com> |
| Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com> |
| Pitchumani Sivanupandi <Pitchumani.S@atmel.com> |
| |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define |
| __MEMX for avrtiny. |
| * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny. |
| (avr_nonconst_pointer_addrspace): Likewise. |
| * config/avr/avr.h (AVR_HAVE_LPM): Define. |
| |
| Added AVRTINY architecture to avr target. |
| * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture. |
| (base_arch_s): member added for AVRTINY architecture. |
| * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY |
| alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and |
| AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO |
| and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO |
| respectively. LAST_CALLEE_SAVED_REG macro added for the last register |
| in callee saved register list. |
| (avr_option_override): CCP address updated for AVRTINY. |
| (avr_init_expanders): tmp and zero rtx initialized as per arch. |
| Reset avr_have_dimode if AVRTINY. |
| (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number. |
| (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number. |
| (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY. |
| Use LAST_CALLEE_SAVED_REG to refer last callee saved register. |
| (expand_epilogue): Likewise. |
| (avr_print_operand): Print CCP address in case of AVRTINY also. |
| <TBD>bad address |
| (function_arg_regno_p): Check different register list for arguments |
| if AVRTINY. |
| (init_cumulative_args): Check for AVRTINY to update number of argument |
| registers. |
| (tiny_valid_direct_memory_access_range): New function. Return false if |
| direct memory access range is not in accepted range for AVRTINY. |
| (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register |
| indirect load (with displacement) for AVRTINY. |
| (out_movqi_r_mr): Updated instruction length for AVRTINY. Call |
| avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement. |
| (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register |
| indirect load (no displacement) for AVRTINY. |
| (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register |
| indirect load (with displacement) for AVRTINY. |
| (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register |
| indirect load for pre-decrement address. |
| (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load |
| functions. Update instruction length for AVRTINY. |
| (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for |
| SImode. |
| (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode. |
| (out_movsi_r_mr): Likewise, for SImode. |
| (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register |
| indirect store (no displacement) for AVRTINY. |
| (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register |
| indirect store (with displacement) for AVRTINY. |
| (out_movsi_mr_r): Emit out insn for IO address store. Update store |
| instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect |
| store functions. |
| (avr_out_load_psi_reg_no_disp_tiny): New function to handle register |
| indirect load (no displacement) for PSImode in AVRTINY. |
| (avr_out_load_psi_reg_disp_tiny): New function to handle register |
| indirect load (with displacement) for PSImode in AVRTINY. |
| (avr_out_load_psi): Call PSImode register indirect load functions for |
| AVRTINY. Update instruction length for AVRTINY. |
| (avr_out_store_psi_reg_no_disp_tiny): New function to handle register |
| indirect store (no displacement) for PSImode in AVRTINY. |
| (avr_out_store_psi_reg_disp_tiny): New function to handle register |
| indirect store (with displacement) for PSImode in AVRTINY. |
| (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny |
| register indirect store functions for AVRTINY. |
| (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode |
| register indirect store (with displacement) for AVRTINY. |
| (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny |
| register indirect store function for QImode in AVRTINY. |
| (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY. |
| (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register |
| indirect store (no displacement) for HImode in AVRTINY. |
| (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register |
| indirect store (with displacement) for HImode in AVRTINY. |
| (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register |
| indirect store for post-increment address in HImode. |
| (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny |
| register indirect store function for HImode in AVRTINY. |
| (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw |
| in case of AVRTINY. |
| (order_regs_for_local_alloc): Updated register allocation order for |
| AVRTINY. |
| (avr_conditional_register_usage): New function. It is a target hook |
| (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call |
| used registers list and register allocation order for AVRTINY. |
| (avr_return_in_memory): Update return value size for AVRTINY. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros |
| for AVRTINY arch and tiny program memory base address. |
| * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch. |
| (avr_texinfo): Added description for AVRTINY arch. |
| * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated |
| STATIC_CHAIN_REGNUM for AVRTINY. |
| * config/avr/avr-mcus.def: Added AVRTINY arch devices. |
| * config/avr/avr.md: Added constants for tmp/ zero registers in |
| AVRTINY. Attributes for AVRTINY added. |
| (mov<mode>): Move src/ dest address to register if it is not in AVRTINY |
| memory access range. |
| (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not |
| in AVRTINY memory access range. |
| (*mov<mode>): Likewise for HImode and SImode. |
| (*movsf): Likewise for SFmode. |
| (delay_cycles_2): Updated instructions to be emitted as AVRTINY does |
| not have sbiw. |
| * config/avr/avr-protos.h: Added function prototype for |
| tiny_valid_direct_memory_access_range. |
| * config/avr/avr-tables.opt: Regenerate. |
| * gcc/config/avr/t-multilib: Regenerate. |
| * doc/avr-mmcu.texi: Regenerate. |
| |
| 2014-10-21 Andrew Pinski <apinski@cavium.com> |
| |
| * doc/invoke.texi (AARCH64/mtune): Document thunderx as an |
| available option also. |
| * config/aarch64/aarch64-cost-tables.h: New file. |
| * config/aarch64/aarch64-cores.def (thunderx): New core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead |
| of config/arm/aarch-cost-tables.h. |
| (thunderx_regmove_cost): New variable. |
| (thunderx_tunings): New variable. |
| |
| 2014-10-21 Dehao Chen <dehao@google.com> |
| |
| * auto-profile.c: New file. |
| * auto-profile.h: New file. |
| * basic-block.h (maybe_hot_count_p): New export func. |
| (add_working_set): New export func. |
| * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag. |
| (GCOV_TAG_AFDO_FUNCTION): Likewise. |
| (GCOV_TAG_AFDO_WORKING_SET): Likewise. |
| * opts.c (enable_fdo_optimizations): New func. |
| (common_handle_option): Handle -fauto-profile flag. |
| * ipa-inline.c (want_early_inline_function_p): Iterative-einline. |
| (class pass_early_inline): Export early_inliner. |
| (early_inliner): Likewise. |
| (pass_early_inline::execute): Likewise. |
| * ipa-inline.h (early_inliner): Likewise. |
| * predict.c (maybe_hot_count_p): New export func. |
| (counts_to_freqs): AutoFDO logic. |
| (rebuild_frequencies): Likewise. |
| * tree-profile.c (pass_ipa_tree_profile::gate): Likewise. |
| * profile.c (add_working_set): New func. |
| * Makefile.in (auto-profile.o): New object file. |
| * passes.def (pass_ipa_auto_profile): New pass. |
| * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic. |
| * tree-pass.h (make_pass_ipa_auto_profile): New pass. |
| * toplev.c (compile_file): AutoFDO logic. |
| * doc/invoke.texi (-fauto-profile): New doc. |
| * coverage.c (coverage_init): AutoFDO logic. |
| * common.opt (-fauto-profile): New flag. |
| * timevar.def (TV_IPA_AUTOFDO): New tag. |
| * value-prof.c (gimple_alloc_histogram_value): New export func. |
| (check_ic_target): Likewise. |
| * value-prof.h (gimple_alloc_histogram_value): Likewise. |
| (check_ic_target): Likewise. |
| |
| 2014-10-21 David Malcolm <dmalcolm@redhat.com> |
| |
| * cgraph.c (cgraph_c_finalize): New function. |
| * cgraph.h (cgraph_c_finalize): New prototype. |
| (cgraphunit_c_finalize): New prototype. |
| * cgraphunit.c (first_analyzed): Move from analyze_functions |
| to file-scope. |
| (first_analyzed_var): Likewise. |
| (analyze_functions): Move static variables into file-scope. |
| (cgraphunit_c_finalize): New function. |
| * diagnostic.c (diagnostic_finish): Free the memory for |
| context->classify_diagnostic and context->printer, running the |
| destructor for the latter. |
| (bt_stop): Use toplev::main. |
| * dwarf2out.c (dwarf2out_finalize): New function. |
| * dwarf2out.h (dwarf2out_c_finalize): New prototype. |
| * gcse.c (gcse_c_finalize): New function. |
| * gcse.h (gcse_c_finalize): New prototype. |
| * ggc-page.c (init_ggc): Make idempotent. |
| * input.c (input_location): Initialize to UNKNOWN_LOCATION. |
| * ipa-cp.c (ipa_cp_c_finalize): New function. |
| * ipa-prop.h (ipa_cp_c_finalize): New prototype. |
| * ipa-pure-const.c (function_insertion_hook_holder): Move to be |
| a field of class pass_ipa_pure_const. |
| (node_duplication_hook_holder): Likewise. |
| (node_removal_hook_holder): Likewise. |
| (register_hooks): Convert to method... |
| (pass_ipa_pure_const::register_hooks): ...here, converting |
| static variable init_p into... |
| (pass_ipa_pure_const::init_p): ...new field. |
| (pure_const_generate_summary): Update invocation of |
| register_hooks to invoke as a method of current_pass. |
| (pure_const_read_summary): Likewise. |
| (propagate): Convert to... |
| (pass_ipa_pure_const::execute): ...method. |
| * ipa-reference.c (ipa_init): Move static bool init_p from here |
| to... |
| (ipa_init_p): New file-scope variable, so that it can be reset |
| when repeatedly invoking the compiler within one process by... |
| (ipa_reference_c_finalize): New function. |
| * ipa-reference.h (ipa_reference_c_finalize): New. |
| * main.c (main): Replace invocation of toplev_main with |
| construction of a toplev instance, and call its "main" method. |
| * params.c (global_init_params): Add an assert that |
| params_finished is false. |
| (params_c_finalize): New. |
| * params.h (params_c_finalize): New. |
| * passes.c (execute_ipa_summary_passes): Set "current_pass" before |
| invoking generate_summary, for the benefit of pass_ipa_pure_const. |
| (ipa_write_summaries_2): Assign "pass" to "current_pass" global |
| before calling write_summary hook. |
| (ipa_write_optimization_summaries_1): Likewise when calling |
| write_optimization_summary hook. |
| (ipa_read_summaries_1): Likewise for read_summary hook. |
| (ipa_read_optimization_summaries_1): Likewise for |
| read_optimization_summary hook. |
| (execute_ipa_stmt_fixups): Likewise. |
| * stringpool.c (init_stringpool): Clean up if we're called more |
| than once. |
| * timevar.c (timevar_init): Ignore repeated calls. |
| * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h", |
| "ipa-prop.h". |
| (general_init): Reset "input_location" to UNKNOWN_LOCATION. |
| (initialize_rtl): Move static local "initialized_once" |
| into file scope, and rename to... |
| (rtl_initialized): New variable. |
| (do_compile): Move timevar initialization from here to |
| toplev::start_timevars. |
| (toplev::toplev, toplev::~toplev, toplev::start_timevars, |
| toplev::finalize): New functions. |
| (toplev_main): Rename to... |
| (toplev::main): ...this. |
| * toplev.h (class toplev): New class. |
| |
| 2014-10-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * loop-doloop.c: Include loop-unroll.h. |
| |
| 2014-10-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * cfg.h: New. Header file for cfg.c. |
| * cfganal.h: New. Header file for cfganal.c. |
| * lcm.h: New. Header file for lcm.c. |
| * loop-unroll.h: New. Header file for loop-unroll.h. |
| * cfgloop.h: (unroll_loops): Remove prototype. |
| * basic-block.h: Move prototypes and structs to new header files. |
| Include cfg.h, cfganal.h, and lcm.h. |
| * loop-init.c: Include loop-unroll.h. |
| * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static. |
| * modulo-sched.c: Include loop-unroll.h. |
| |
| 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of |
| MARKER_BYTE_UNKNOWN markers when handling casts. |
| |
| 2014-10-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-phiopt.c (value_replacement): Properly verify we |
| are the non-singleton PHI. |
| |
| 2014-10-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63563 |
| * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out |
| if either dra or drb stmts are not normal loads/stores. |
| |
| 2014-10-21 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/i386.c (expand_vec_perm_1): Fix |
| expand_vec_perm_palignr case. |
| * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use |
| VI1_AVX512. |
| |
| 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * cfgloopanal.c (seq_cost): Delete. |
| * rtl.h (seq_cost): New prototype. |
| * rtlanal.c (seq_cost): New function. |
| * tree-ssa-loop-ivopts.c (seq_cost): Delete. |
| |
| 2014-10-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| * cfgrtl.h: New. Add prototypes for cfgrtl.c. |
| * basic-block.h: Remove prototypes for cfgrtl.c. |
| * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move |
| prototypes to cfgrtl.h. |
| * profile.h (profile_info): Add extern export declaration. |
| * rtl.h: Remove prototypes for cfgrtl.h. |
| * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here. |
| * ipa-inline.c: Include profile.h. |
| * loop-unroll.c: Ditto. |
| * modulo-sched.c: Ditto. |
| * postreload-gcse.c: Ditto. |
| * predict.c: Ditto. |
| * sched-ebb.c: Ditto. |
| * sched-rgn.c: Ditto. |
| * tracer.c: Ditto. |
| * tree-ssa-loop-ivcanon.c: Ditto. |
| |
| 2014-10-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping |
| operands to get a def operand kind match. Signal mismatches |
| to the parent so we can try swapping its operands. |
| (vect_build_slp_tree): Try swapping operands if they have |
| a mismatched operand kind. |
| |
| 2014-10-20 Alan Modra <amodra@gmail.com> |
| |
| PR debug/60655 |
| * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops". |
| Increase "ops" array size. Correct array size tests. Init |
| n_constants in loop. Break out of innermost loop when finding |
| a trivial CONST expression. |
| |
| 2014-10-20 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/63583 |
| * ipa-icf-gimple.c (func_checker::compare_gimple_asm): |
| Gimple tempate string is compared. |
| |
| 2014-10-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * varasm.c (const_alias_set): Remove. |
| (init_varasm_once): Remove initialization of const_alias_set. |
| (build_constant_desc): Do not set alias set to const_alias_set. |
| |
| 2014-10-19 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * configure: Regenerate. |
| * configure.ac: Move the test for section attribute specifier "e" in GAS |
| out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings. |
| * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag. |
| * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with |
| ifdef HAVE_GAS_SECTION_EXCLUDE. |
| |
| 2014-10-19 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent |
| match_operand expression. |
| |
| 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com> |
| David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New |
| function. |
| (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define. |
| |
| 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Options to Request or Suppress Warnings): |
| Explain options precedence. |
| (Wtrampolines): Do not indent paragraph. |
| |
| 2014-10-18 John David Anglin <danglin@gcc.gnu.org> |
| |
| * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option. |
| * config/pa/pa-protos.h (pa_following_call): Delete declaration. |
| (pa_jump_in_call_delay): Likewise. |
| * config/pa/pa.c (pa_option_override): Remove jump in call delay |
| override. |
| (pa_output_millicode_call): Remove support for jump in call delay. |
| (pa_output_call): Likewise. |
| (pa_jump_in_call_delay): Delete. |
| (pa_following_call): Likewise. |
| * config/pa/pa.md (in_call_delay): Remove jump in delay check. |
| (uncond_branch): Remove following call check from attribute length. |
| |
| 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53513 |
| * config/sh/sh-modes.def (PSI): Remove. |
| * config/sh/sh-protos.h (get_fpscr_rtx): Remove. |
| * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove. |
| (sh_reorg): Remove commented out FPSCR code. |
| (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr |
| insn instead of move insn. |
| (sh_hard_regno_mode_ok): Return SImode for FPSCR. |
| (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode |
| handling. |
| (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns. |
| (sh1_builtin_p): Uncomment. |
| (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros. |
| (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr. |
| * config/sh/sh/predicates.md (fpscr_operand): Simplify. |
| (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates. |
| (general_movsrc_operand, general_movdst_operand): Disallow |
| fpscr_operand. |
| * config/sh/sh.md (FPSCR_FR): New constant. |
| (push_fpscr): Emit sts_fpscr insn. |
| (pop_fpscr): Emit lds_fpscr_insn. |
| (movsi_ie): Disallow FPSCR operands. |
| (fpu_switch, unnamed related split, extend_psi_si, |
| truncate_si_psi): Remove insns. |
| (lds_fpscr, sts_fpscr): New insns. |
| (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode. |
| |
| 2014-10-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New. |
| (clone_inlined_nodes): Do not overwrite the clone if above predicate |
| returns true. |
| |
| 2014-10-17 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/i386.c (MAX_VECT_LEN): Move earlier. |
| (expand_vec_perm_d): Ditto. |
| (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode, |
| V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode, |
| V4DFmode. |
| (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2. |
| (ix86_expand_sse_unpack): Handle V64QImode. |
| (expand_vec_perm_blend): Update conditions for TARGET, handle |
| V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode. |
| (expand_vec_perm_pshufb): Handle V64QImode. |
| (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode, |
| V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode. |
| (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2. |
| (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode. |
| (ix86_expand_vecop_qihi): Handle V64QImode. |
| * config/i386/sse.md (define_mode_iterator VI1_AVX512): New. |
| (define_mode_iterator VEC_PERM_AVX2): Add V32HI. |
| (define_mode_iterator VEC_PERM_CONST): Add V32HI. |
| (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking. |
| (mul<mode>3): Use VI1_AVX512. |
| (<sse2_avx2>_packsswb): Ditto. |
| (<sse2_avx2>_packuswb): Ditto. |
| (<ssse3_avx2>_pshufb<mode>3): Ditto. |
| (<shift_insn><mode>3): Ditto. |
| |
| 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor |
| conditions to fix bootstrap. |
| |
| 2014-10-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| gcc-plugin.h: Add tm.h and flattened includes from function.h. |
| |
| 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI |
| and V32HI modes, update V8HI, V16QI, V32QI modes handling. |
| (ix86_expand_vector_init_general): Handle V64QI and V32HI modes. |
| * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ... |
| (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes. |
| (define_expand "vec_init<mode>"): Use VF48_I1248. |
| |
| 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend |
| expand_sse2_mulvxdi3. |
| |
| 2014-10-17 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (fold_comparison): Remove redundant constant |
| folding and operand swapping. |
| (fold_binary_loc): Do comparison operand swapping here. |
| (fold_ternary_loc): Canonicalize operand order for |
| commutative ternary operations. |
| * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR |
| and FMA_EXPR. |
| |
| 2014-10-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63464 |
| * gimple.h (gimple_seq_discard): New prototype. |
| * gimple.c: Include stringpool.h and tree-ssanames.h. |
| (gimple_seq_discard): New function. |
| * optabs.h (lshift_cheap_p): New prototype. |
| * optabs.c (lshift_cheap_p): New function, moved from... |
| * tree-switch-conversion.c (lshift_cheap_p): ... here. |
| * tree-ssa-reassoc.c: Include gimplify.h and optabs.h. |
| (reassoc_branch_fixups): New variable. |
| (update_range_test): Add otherrangep and seq arguments. |
| Unshare exp. If otherrange is NULL, use for other ranges |
| array of pointers pointed by otherrangep instead. |
| Emit seq before gimplified statements for tem. |
| (optimize_range_tests_diff): Adjust update_range_test |
| caller. |
| (optimize_range_tests_xor): Likewise. Fix up comment. |
| (extract_bit_test_mask, optimize_range_tests_to_bit_test): New |
| functions. |
| (optimize_range_tests): Adjust update_range_test caller. |
| Call optimize_range_tests_to_bit_test. |
| (branch_fixup): New function. |
| (execute_reassoc): Call branch_fixup. |
| |
| PR tree-optimization/63302 |
| * tree-ssa-reassoc.c (optimize_range_tests_xor, |
| optimize_range_tests_diff): Use !integer_pow2p () instead of |
| tree_log2 () < 0. |
| |
| 2014-10-17 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_function::merge): Local flags are set to false |
| to enforce equal calling convention to be used. |
| * opts.c (common_handle_option): Indentation fix. |
| |
| 2014-10-17 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree-into-ssa.c (is_old_name): Replace "new" with "old". |
| |
| 2014-10-17 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/61605 |
| * regcprop.c (copyprop_hardreg_forward_1): Use |
| regs_invalidated_by_this_call instead of regs_invalidated_by_call. |
| |
| 2014-10-17 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/61605 |
| * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. |
| Don't notice stores for noops. Don't regard noops as copies. |
| |
| 2014-10-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx |
| register in a special way. |
| (__cpuid_count): Ditto. |
| * config/i386/driver-i386.h: Protect with |
| "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))". |
| (host_detect_local_cpu): Mention that GCC with non-fixed %ebx |
| is required to compile the function. |
| |
| 2014-10-16 DJ Delorie <dj@redhat.com> |
| |
| * flag-types.h (sanitize_code): Don't assume targets have 32-bit |
| integers. |
| |
| * config/rs6000/rs6000-c.c (rid_int128): New. |
| (rs6000_macro_to_expand): Use instead of RID_INT128. |
| |
| 2014-10-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * function.h: Flatten file. Remove includes, adjust prototypes to |
| reflect only what is in function.h. |
| (enum direction, struct args_size, struct locate_and_pad_arg_data, |
| ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate |
| from expr.h. |
| (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h. |
| (optimize_function_for_size_p, optimize_function_for_speed_p): Move |
| prototypes to predict.h. |
| (init_varasm_status): Move prototype to varasm.h. |
| * expr.h: Adjust include files. |
| (enum direction, struct args_size, struct locate_and_pad_arg_data, |
| ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move |
| to function.h. |
| (locate_and_pad_parm): Move prototype to function.h. |
| * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD, |
| assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type, |
| assign_temp, reposition_prologue_and_epilogue_notes, |
| prologue_epilogue_contains, sibcall_epilogue_contains, |
| update_temp_slot_address, maybe_copy_prologue_epilogue_insn, |
| set_return_jump_label): Move prototypes to function.h. |
| * predict.h (optimize_function_for_size_p, |
| optimize_function_for_speed_p): Relocate prototypes from function.h. |
| * shrink-wrap.h (emit_return_into_block, active_insn_between, |
| convert_jumps_to_returns, emit_return_for_exit): Move prototypes to |
| function.h. |
| * varasm.h (init_varasm_status): Relocate prototype from function.h. |
| * genattrtab.c (write_header): Add predict.h to include list. |
| * genconditions.c (write_header): Add predict.h to include list. |
| * genemit.c (main): Adjust header file includes. |
| * gengtype.c (ifiles): Add flattened function.h header files. |
| * genoutput.c (output_prologue): Add predict.h to include list. |
| * genpreds.c (write_insn_preds_c): Adjust header file includes. |
| * genrecog.c (write_header): Add flattened function.h header files. |
| * alias.c: Adjust include files. |
| * auto-inc-dec.c: Likewise. |
| * basic-block.h: Likewise. |
| * bb-reorder.c: Likewise. |
| * bt-load.c: Likewise. |
| * builtins.c: Likewise. |
| * caller-save.c: Likewise. |
| * calls.c: Likewise. |
| * cfgbuild.c: Likewise. |
| * cfgcleanup.c: Likewise. |
| * cfgexpand.c: Likewise. |
| * cfgloop.c: Likewise. |
| * cfgloop.h: Likewise. |
| * cfgrtl.c: Likewise. |
| * cgraph.h: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * combine-stack-adj.c: Likewise. |
| * combine.c: Likewise. |
| * coverage.c: Likewise. |
| * cprop.c: Likewise. |
| * cse.c: Likewise. |
| * cselib.c: Likewise. |
| * dbxout.c: Likewise. |
| * ddg.c: Likewise. |
| * df-core.c: Likewise. |
| * df-problems.c: Likewise. |
| * df-scan.c: Likewise. |
| * dojump.c: Likewise. |
| * dwarf2cfi.c: Likewise. |
| * dwarf2out.c: Likewise. |
| * emit-rtl.c: Likewise. |
| * except.c: Likewise. |
| * explow.c: Likewise. |
| * expr.c: Likewise. |
| * final.c: Likewise. |
| * function.c: Likewise. |
| * gcse.c: Likewise. |
| * gimple-fold.c: Likewise. |
| * gimple-low.c: Likewise. |
| * gimple-streamer.h: Likewise. |
| * haifa-sched.c: Likewise. |
| * ifcvt.c: Likewise. |
| * ira.c: Likewise. |
| * jump.c: Likewise. |
| * lcm.c: Likewise. |
| * loop-invariant.c: Likewise. |
| * lra-assigns.c: Likewise. |
| * lra-coalesce.c: Likewise. |
| * lra-constraints.c: Likewise. |
| * lra-eliminations.c: Likewise. |
| * lra-lives.c: Likewise. |
| * lra-spills.c: Likewise. |
| * lra.c: Likewise. |
| * lto-cgraph.c: Likewise. |
| * lto-section-in.c: Likewise. |
| * lto-section-out.c: Likewise. |
| * lto-streamer-in.c: Likewise. |
| * lto-streamer-out.c: Likewise. |
| * mode-switching.c: Likewise. |
| * modulo-sched.c: Likewise. |
| * omp-low.c: Likewise. |
| * optabs.c: Likewise. |
| * passes.c: Likewise. |
| * postreload-gcse.c: Likewise. |
| * postreload.c: Likewise. |
| * predict.c: Likewise. |
| * profile.c: Likewise. |
| * recog.c: Likewise. |
| * ree.c: Likewise. |
| * reg-stack.c: Likewise. |
| * regcprop.c: Likewise. |
| * reginfo.c: Likewise. |
| * regrename.c: Likewise. |
| * reload.c: Likewise. |
| * reload1.c: Likewise. |
| * reorg.c: Likewise. |
| * resource.c: Likewise. |
| * rtlanal.c: Likewise. |
| * sched-deps.c: Likewise. |
| * sched-ebb.c: Likewise. |
| * sched-rgn.c: Likewise. |
| * sel-sched-dump.c: Likewise. |
| * sel-sched-ir.c: Likewise. |
| * sel-sched.c: Likewise. |
| * shrink-wrap.c: Likewise. |
| * simplify-rtx.c: Likewise. |
| * statistics.c: Likewise. |
| * stmt.c: Likewise. |
| * stor-layout.c: Likewise. |
| * store-motion.c: Likewise. |
| * symtab.c: Likewise. |
| * targhooks.c: Likewise. |
| * toplev.c: Likewise. |
| * trans-mem.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-cfgcleanup.c: Likewise. |
| * tree-dfa.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-into-ssa.c: Likewise. |
| * tree-nested.c: Likewise. |
| * tree-nrv.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-ssa-alias.c: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-copy.c: Likewise. |
| * tree-ssa-copyrename.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa-operands.c: Likewise. |
| * tree-ssa-propagate.c: Likewise. |
| * tree-ssa-structalias.c: Likewise. |
| * tree-ssa-tail-merge.c: Likewise. |
| * tree-ssa-threadedge.c: Likewise. |
| * tree-ssa-threadupdate.c: Likewise. |
| * tree-ssa-uncprop.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-stdarg.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| * tree.c: Likewise. |
| * tsan.c: Likewise. |
| * valtrack.c: Likewise. |
| * varasm.c: Likewise. |
| * vmsdbgout.c: Likewise. |
| * web.c: Likewise. |
| * config/aarch64/aarch64.c: Add flattened includes from function.h. |
| * config/alpha/alpha.c: Likewise. |
| * config/arc/arc.c: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/avr/avr-log.c: Likewise. |
| * config/avr/avr.c: Likewise. |
| * config/bfin/bfin.c: Likewise. |
| * config/c6x/c6x.c: Likewise. |
| * config/cr16/cr16.c: Likewise. |
| * config/cris/cris.c: Likewise. |
| * config/darwin.c: Likewise. |
| * config/epiphany/epiphany.c: Likewise. |
| * config/epiphany/mode-switch-use.c: Likewise. |
| * config/epiphany/resolve-sw-modes.c: Likewise. |
| * config/fr30/fr30.c: Likewise. |
| * config/frv/frv.c: Likewise. |
| * config/h8300/h8300.c: Likewise. |
| * config/i386/i386.c: Likewise. |
| * config/ia64/ia64.c: Likewise. |
| * config/iq2000/iq2000.c: Likewise. |
| * config/lm32/lm32.c: Likewise. |
| * config/m32c/m32c.c: Likewise. |
| * config/m32r/m32r.c: Likewise. |
| * config/m68k/m68k.c: Likewise. |
| * config/mcore/mcore.c: Likewise. |
| * config/mep/mep-pragma.c: Likewise. |
| * config/mep/mep.c: Likewise. |
| * config/microblaze/microblaze.c: Likewise. |
| * config/mips/mips.c: Likewise. |
| * config/mmix/mmix.c: Likewise. |
| * config/mn10300/mn10300.c: Likewise. |
| * config/moxie/moxie.c: Likewise. |
| * config/msp430/msp430.c: Likewise. |
| * config/nds32/nds32-cost.c: Likewise. |
| * config/nds32/nds32-fp-as-gp.c: Likewise. |
| * config/nds32/nds32-intrinsic.c: Likewise. |
| * config/nds32/nds32-isr.c: Likewise. |
| * config/nds32/nds32-md-auxiliary.c: Likewise. |
| * config/nds32/nds32-memory-manipulation.c: Likewise. |
| * config/nds32/nds32-pipelines-auxiliary.c: Likewise. |
| * config/nds32/nds32-predicates.c: Likewise. |
| * config/nds32/nds32.c: Likewise. |
| * config/nios2/nios2.c: Likewise. |
| * config/pa/pa.c: Likewise. |
| * config/pdp11/pdp11.c: Likewise. |
| * config/rl78/rl78.c: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| * config/rx/rx.c: Likewise. |
| * config/s390/s390.c: Likewise. |
| * config/score/score.c: Likewise. |
| * config/sh/sh.c: Likewise. |
| * config/sparc/sparc.c: Likewise. |
| * config/spu/spu.c: Likewise. |
| * config/stormy16/stormy16.c: Likewise. |
| * config/tilegx/tilegx.c: Likewise. |
| * config/tilepro/tilepro.c: Likewise. |
| * config/v850/v850.c: Likewise. |
| * config/vax/vax.c: Likewise. |
| * config/xtensa/xtensa.c: Likewise. |
| |
| 2014-10-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_legitimize_address): New function. |
| (TARGET_LEGITIMIZE_ADDRESS): Redefine. |
| |
| 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh-protos.h (fldi_ok): Remove. |
| * config/sh/sh.c (fldi_ok): Likewise. |
| (sh_secondary_reload): Don't use fldi_ok. |
| * config/sh/constraints.md (G constraint, H constraint): Don't use |
| fldi_ok. |
| |
| 2014-10-16 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::process_cong_reduction): |
| Cast to unsigned long. |
| (sem_item_optimizer::dump_cong_classes): Likewise. |
| |
| 2014-10-16 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand |
| with SSA_NAME_IN_FREELIST. |
| |
| 2014-10-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63554 |
| * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk. |
| (fold_builtin_strncat_chk): Move ... |
| * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here. |
| (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk. |
| |
| 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/59401 |
| * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set |
| GBR to 0. |
| |
| 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI, |
| V64QI modes. |
| |
| 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF, |
| V16SI, V32HI, V64QI modes. |
| |
| 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/53513 |
| * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop, |
| expand_sf_binop, expand_df_unop, expand_df_binop): Remove. |
| |
| * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern |
| to match fp insn patterns. |
| (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore |
| list. |
| (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop, |
| expand_df_unop, expand_df_binop): Remove. |
| (sh_conditional_register_usage): Mark FPSCR_MODES_REG and |
| FPSCR_STAT_REG as not call clobbered. |
| (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of |
| invoking fpscr_set_from_mem. |
| |
| * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6. |
| (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and |
| FPSCR_STAT_REG. |
| (REGISTER_NAMES): Adjust. |
| (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG. |
| (FIRST_PSEUDO_REGISTER): Increase to 156. |
| (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and |
| FPSCR_STAT_REG. |
| (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include |
| FPSCR_MODES_REG and FPSCR_STAT_REG. |
| (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG. |
| |
| * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR, |
| FPSCR_SZ): Add new constants. |
| (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants. |
| |
| (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch. |
| (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG. |
| Use TARGET_FPU_ANY condition. |
| (fpu_switch peephole2): Remove. |
| (fpu_switch split): Use simple_mem_operand to capture the mem and |
| adjust split implementation. |
| (extend_psi_si, truncate_si_psi): New insns. |
| (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add |
| set of FPSCR_MODES_REG. |
| |
| (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie, |
| reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel, |
| calli_pcrel, call_pcrel, call_compact, call_compact_rettramp, |
| call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel, |
| call_value_compact, call_value_compact_rettramp, call, |
| call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli, |
| sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact, |
| sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel, |
| sibcall_value_compact, sibcall_value, call_value_pop_compact, |
| call_value_pop_compact_rettramp, various unnamed splits): |
| Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_* |
| function uses. |
| |
| (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4. |
| (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4. |
| (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t. |
| (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t. |
| (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t. |
| |
| (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i, |
| *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t, |
| cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i, |
| subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i, |
| cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4, |
| truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG |
| and use of FPSCR_MODES_REG. Adjust gen_* function uses. |
| |
| 2014-10-16 Martin Liska <mliska@suse.cz> |
| Jan Hubicka <hubicka@ucw.cz> |
| |
| * Makefile.in: New object files included. |
| * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged |
| is printed. |
| (verify_edge_corresponds_to_fndecl): More sensitive verification |
| of nodes that are merged by IPA ICF. |
| * cgraph.h (cgraph_node::num_references): New function. |
| * cgraphunit.c (cgraph_node::expand_thunk): White space fixed. |
| * common.opt: New options ipa-icf, ipa-icf-functions and |
| ipa-icf-variables introduced. |
| * doc/invoke.texi: Documentation of new options introduced. |
| * ipa-icf-gimple.c: New file. |
| * ipa-icf-gimple.h: New file. |
| * ipa-icf.c: New file. |
| * ipa-icf.h: New file. |
| * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added. |
| (input_overwrite_node): Likewise. |
| * lto-section-in.c: New icf section added. |
| * lto-streamer.h (enum lto_section_type): Likewise. |
| * opts.c (common_handle_option): New option added. |
| * passes.def: New pass included. |
| * timevar.def: Time variable for IPA ICF added. |
| * tree-pass.h: New IPA ICF pass entry point added. |
| |
| 2014-10-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63168 |
| * tree-cfg.c (gimple_can_merge_blocks_p): Only protect |
| latches if after merging they are no longer simple. |
| * cfghooks.c (merge_blocks): Handle merging a latch block |
| into another block. |
| |
| 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to |
| support AVX-512VL instructions. |
| |
| 2014-10-16 DJ Delorie <dj@redhat.com> |
| |
| * tree-core.h: Fix comment to not assume pointers are multiples of |
| bytes. |
| |
| 2014-10-15 Tom Tromey <tromey@redhat.com> |
| |
| * timevar.h (class auto_timevar): New class. |
| |
| 2014-10-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR go/59432 |
| * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): |
| Remove the second alternative. |
| (regprefix): Remove mode attribute. |
| (atomic_compare_and_swap<mode>): Do not fixup operand 2. |
| * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove. |
| |
| Revert: |
| 2013-11-05 Ian Lance Taylor <iant@google.com> |
| |
| * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): |
| If possible, add .cfi directives to record change to bx. |
| * config/i386/i386.c (ix86_emit_cfi): New function. |
| * config/i386/i386-protos.h (ix86_emit_cfi): Declare. |
| |
| 2014-10-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/62026 |
| * cgraphclones.c (duplicate_thunk_for_node): Get body to have args |
| to duplicate. |
| * lto-streamer-out.c (lto_output): Handle correctly thunks that was |
| born at WPA time. |
| |
| 2014-10-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/63448 |
| * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove. |
| (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New. |
| (LRA_MAX_INHERITANCE_PASSES): Use it. |
| (lra_constraint_iter_after_spill): Remove. |
| (lra_assignment_iter): New. |
| (lra_assignment_iter_after_spill): New. |
| * lra-assigns.c (lra_assignment_iter): New. |
| (lra_assignment_iter_after_spill): New. |
| (former_reload_pseudo_spill_p): New. |
| (spill_for): Set up former_reload_pseudo_spill_p. |
| (setup_live_pseudos_and_spill_after_risky): Ditto. |
| (assign_by_spills): Ditto. |
| (lra_assign): Increment lra_assignment_iter. Print the iteration |
| number. Reset former_reload_pseudo_spill_p. Check |
| lra_assignment_iter_after_spill. |
| * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize |
| lra_assignment_iter and lra_assignment_iter_after_spill. |
| * lra-constraints.c (lra_constraint_iter_after_spill): Remove. |
| (lra_constraints): Remove code with |
| lra_assignment_iter_after_spill. |
| |
| 2014-10-15 Teresa Johnson <tejohnson@google.com> |
| |
| PR bootstrap/63432 |
| * tree-ssa-threadupdate.c (recompute_probabilities): Better |
| overflow checking. |
| |
| 2014-10-15 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define |
| __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE, |
| __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV, |
| __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T. |
| |
| 2014-10-15 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_call): Properly keep virtual |
| SSA form up-to-date when devirtualizing a call to |
| __builtin_unreachable and avoid fixing up EH info here. |
| |
| 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend |
| to support AVX-512BW. |
| (define_mode_iterator VI124_AVX2_48_AVX512F): Remove. |
| (define_expand "<plusminus_insn><mode>3"): Remove masking support. |
| (define_insn "*<plusminus_insn><mode>3"): Ditto. |
| (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New. |
| (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. |
| (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto. |
| (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. |
| (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support. |
| (define_insn "*andnot<mode>3"): Ditto. |
| (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New. |
| (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto. |
| (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto. |
| (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto. |
| (define_insn "*abs<mode>2"): Remove masking support. |
| (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New. |
| (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto. |
| (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator. |
| |
| 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/predicates.md (define_predicate "constm1_operand"): New. |
| * config/i386/sse.md |
| (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK. |
| (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New. |
| (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto. |
| (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto. |
| (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto. |
| (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto. |
| (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto. |
| |
| 2014-10-15 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete. |
| |
| 2014-10-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform |
| MINUS_EXPR in unsigned type to avoid undefined behavior. |
| |
| 2014-10-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (self_referential_size): Do not promote arguments. |
| |
| 2014-10-15 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Update to reflect that GNU11 is the default |
| mode for C. |
| * c-common.h (c_language_kind): Update comment. |
| |
| 2014-10-15 Richard Biener <rguenther@suse.de> |
| |
| * hash-table.c: Include bconfig.h if building for the host. |
| * hash-table.h: Do not include ggc.h on the host but just declare |
| a few ggc allocation templates. |
| |
| 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com> |
| Jeff Law <law@redhat.com> |
| |
| * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers |
| multiple hard registers, use smaller mode derived from MODE. |
| |
| 2014-10-15 Andreas Schwab <schwab@suse.de> |
| |
| * explow.c (convert_memory_address_addr_space_1): Mark in_const |
| as ATTRIBUTE_UNUSED. |
| |
| 2014-10-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * loop-unroll.c (decide_unrolling_and_peeling): Rename to |
| (decide_unrolling): ... this one. |
| (peel_loops_completely): Remove. |
| (decide_peel_simple): Remove. |
| (decide_peel_once_rolling): Remove. |
| (decide_peel_completely): Remove. |
| (peel_loop_simple): Remove. |
| (peel_loop_completely): Remove. |
| (unroll_and_peel_loops): Rename to ... |
| (unroll_loops): ... this one; handle only unrolling. |
| * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and LPT_PEEL_SIMPLE. |
| (UAP_PEEL): Remove. |
| (unroll_and_peel_loops): Remove. |
| (unroll_loops): New. |
| * passes.def: Replace pass_rtl_unroll_and_peel_loops |
| by pass_rtl_unroll_loops. |
| * loop-init.c (gate_rtl_unroll_and_peel_loops, |
| rtl_unroll_and_peel_loops): Rename to ... |
| (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update. |
| (pass_rtl_unroll_and_peel_loops): Rename to ... |
| (pass_rtl_unroll_loops): ... this one. |
| * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove. |
| (make_pass_rtl_unroll_loops): New. |
| * tree-ssa-loop-ivcanon.c (estimated_peeled_sequence_size, |
| try_peel_loop): New. |
| (canonicalize_loop_induction_variables): Update. |
| |
| 2014-10-14 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro. |
| * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on |
| !TARGET_HARD_FLOAT_POSTINC. |
| (*lsip, *ssip): new instructions. |
| |
| 2014-10-14 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2): |
| remove. |
| |
| 2014-10-14 Andrew Pinski <apinski@cavium.com> |
| |
| * explow.c (convert_memory_address_addr_space): Rename to ... |
| (convert_memory_address_addr_space_1): This. Add in_const argument. |
| Inside a CONST RTL, permute the conversion and addition of constant |
| for zero and sign extended pointers. |
| (convert_memory_address_addr_space): New function. |
| |
| 2014-10-14 Andrew Pinski <apinski@cavium.com> |
| |
| Revert: |
| 2011-08-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/49721 |
| * explow.c (convert_memory_address_addr_space): Also permute the |
| conversion and addition of constant for zero-extend. |
| |
| 2014-10-14 DJ Delorie <dj@redhat.com> |
| |
| * config/msp430/msp430-modes.def (PSI): Add. |
| |
| * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): |
| New. |
| (msp430_hard_regno_nregs_with_padding): New. |
| * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New. |
| (msp430_hard_regno_nregs_has_padding): New. |
| (msp430_hard_regno_nregs_with_padding): New. |
| (msp430_unwind_word_mode): Use PSImode instead of SImode. |
| (msp430_addr_space_legitimate_address_p): New. |
| (msp430_asm_integer): New. |
| (msp430_init_dwarf_reg_sizes_extra): New. |
| (msp430_print_operand): Use X suffix for PSImode even in small model. |
| * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32. |
| (PTR_SIZE): ...but 4 bytes for EH. |
| (SIZE_TYPE): Use __int20. |
| (PTRDIFF_TYPE): Likewise. |
| (INCOMING_FRAME_SP_OFFSET): Adjust. |
| * config/msp430/msp430.md (movqi_topbyte): New. |
| (movpsi): Use fixed suffixes. |
| (movsipsi2): Enable for 430X, not large model. |
| (extendhipsi2): Likewise. |
| (zero_extendhisi2): Likewise. |
| (zero_extendhisipsi2): Likewise. |
| (extend_and_shift1_hipsi2): Likewise. |
| (extendpsisi2): Likewise. |
| (*bitbranch<mode>4_z): Fix suffix logic. |
| |
| 2014-10-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/62019 |
| * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really |
| do not choke on null node. |
| <VAR_DECL>: Likewise. |
| |
| 2014-10-14 DJ Delorie <dj@redhat.com> |
| |
| * machmode.h (int_n_data_t): New. |
| (int_n_enabled_p): New. |
| (int_n_data): New. |
| * tree.c (int_n_enabled_p): New. |
| (int_n_trees): New. |
| (make_or_reuse_type): Check for all __intN types, not just __int128. |
| (build_common_tree_nodes): Likewise. Also fill in integer_typs[] |
| entries. |
| * tree.h (int128_integer_type_node): Remove. |
| (int128_unsigned_type_node): Remove. |
| (int_n_trees_t): New. |
| (int_n_enabled_p): New. |
| (int_n_trees): New. |
| * toplev.c (standard_type_bitsize): New. |
| (do_compile): Check which __intN types are enabled for the current run. |
| * builtin-types.def (BT_INT128): Remove. |
| (BT_UINT128): Remove. |
| * machmode.def: Add macro to create __int128 for all targets. |
| * stor-layout.c (mode_for_size): Support __intN types. |
| (smallest_mode_for_size): Likewise. |
| (initialize_sizetypes): Support __intN types. |
| * genmodes.c (struct mode_data): Add int_n field. |
| (blank_mode): Likewise. |
| (INT_N): New. |
| (make_int_n): New. |
| (emit_insn_modes_h): Count __intN entries and define NUM_INT_N_ENTS. |
| (emit_mode_int_n): New. |
| (emit_insn_modes_c): Call it. |
| * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN |
| types, not just __int128. |
| * tree-core.h (integer_type_kind): Remove __int128-specific |
| entries, reserve spots for __intN entries. |
| |
| * config/msp430/msp430-modes.def (PSI): Add. |
| |
| 2014-10-14 Kito Cheng <kito@0xlab.org> |
| |
| * ira.c: Fix typo in comment. |
| * ira.h: Ditto. |
| * ira-build.c: Ditto. |
| * ira-color.c: Ditto. |
| * ira-emit.c: Ditto. |
| * ira-int.h: Ditto. |
| * ira-lives.c: Ditto. |
| |
| 2014-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/63475 |
| * alias.c (true_dependence_1): Always use get_addr to extract |
| true address operands from x_addr and mem_addr. Use extracted |
| address operands to check for references with alignment ANDs. |
| Use extracted address operands with find_base_term and |
| base_alias_check. For noncanonicalized operands call canon_rtx with |
| extracted address operand. |
| (write_dependence_1): Ditto. |
| (may_alias_p): Ditto. Remove unused calls to canon_rtx. |
| |
| 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| PR target/63534 |
| * config/i386/i386.c (ix86_expand_split_stack_prologue): Make |
| __morestack local. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_sse_movcc): Handle V64QI and V32HI mode. |
| (ix86_expand_int_vcond): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (emit_reduc_half): Handle V64QI and V32HI mode. |
| * config/i386/sse.md |
| (define_mode_iterator VI_AVX512BW): New. |
| (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes. |
| * config/i386/sse.md |
| (define_mode_iterator VI): Add V64QI and V32HI modes. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking. |
| (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New. |
| (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_c_enum "unspec"): Add UNSPEC_PMADDWD512. |
| (define_mode_iterator VI2_AVX2): Add V32HI mode. |
| (define_expand "mul<mode>3<mask_name>"): Add masking. |
| (define_insn "*mul<mode>3<mask_name>"): Ditto. |
| (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto. |
| (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto. |
| (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New. |
| (define_mode_attr SDOT_PMADD_SUF): Ditto. |
| (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>. |
| (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking. |
| (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto. |
| (define_insn "avx2_packusdw"): Delete. |
| (define_insn "sse4_1_packusdw"): Ditto. |
| (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "vec_dup<mode>"): Update constraints. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_iterator SSESCALARMODE): Add V4TI mode. |
| (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New. |
| (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "mul<mode>3<mask_name>"): Add masking. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking. |
| (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512. |
| (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New. |
| (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"): |
| Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking, |
| use VF_128_256 mode iterator and update assembler emit code. |
| (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New. |
| (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"): |
| Add masking, use VF_128_256 mode iterator. |
| (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New. |
| (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"): |
| Add masking, use VF_128_256 mode iterator and update assembler emit |
| code. |
| (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New. |
| (define_mode_attr avx512flogicsuff): Delete. |
| (define_insn "avx512f_<logic><mode>"): Ditto. |
| (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI, |
| MODE_TI. |
| (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete. |
| (define_expand "vashr<mode>3<mask_name>"): Add masking, |
| use VI12_128 mode iterator. |
| (define_expand "ashrv2di3<mask_name>"): New. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask, |
| CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask, |
| CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask, |
| CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask, |
| CODE_FOR_avx512vl_ucmpv4si3_mask. |
| * config/i386/sse.md |
| (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete. |
| "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New. |
| (define_insn |
| "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto. |
| (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto. |
| (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto. |
| (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto. |
| (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto. |
| (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking. |
| (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto. |
| (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto. |
| (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto. |
| (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto. |
| (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto. |
| (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto. |
| (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto. |
| (define_insn "avx512dq_mul<mode>3<mask_name>"): New. |
| |
| 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx512f_blendm<mode>"): Delete. |
| (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New. |
| (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto.. |
| (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF, |
| V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes. |
| (define_insn |
| "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"): |
| Remove. |
| (define_insn |
| "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"): |
| New. |
| (define_insn |
| "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"): |
| Ditto. |
| (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete. |
| (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New. |
| (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto. |
| (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"): |
| Delete. |
| (define_insn |
| "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"): |
| New. |
| (define_insn |
| "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"): |
| Ditto. |
| (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"): |
| Delete. |
| (define_insn |
| "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"): |
| New. |
| (define_insn |
| "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"): |
| Ditto. |
| |
| 2014-10-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63512 |
| * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts |
| modified. |
| |
| 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/63260 |
| * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2, |
| abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use |
| of FPSCR. |
| (negsf2_i): Rename to *negsf2_i. |
| (abssf2_i): Rename to *abssf2_i. |
| (negdf2_i): Rename to *negdf2_i. |
| (absdf2_i): Rename to *absdf2_i. |
| |
| 2014-10-14 Felix Yang <felix.yang@huawei.com> |
| Jeff Law <law@redhat.com> |
| |
| * ira.c (struct equivalence): Change member "is_arg_equivalence" and |
| "replace" into boolean bitfields; turn member "loop_depth" into a short |
| integer; add new member "no_equiv" and "reserved". |
| (no_equiv): Set no_equiv of struct equivalence if register is marked |
| as having no known equivalence. |
| (update_equiv_regs): Check all definitions for a multiple-set |
| register to make sure that the RHS have the same value. |
| |
| 2014-10-13 Richard Henderson <rth@redhat.com> |
| |
| * combine-stack-adj.c (no_unhandled_cfa): New. |
| (maybe_merge_cfa_adjust): New. |
| (combine_stack_adjustments_for_block): Use them. |
| |
| 2014-10-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (TAGS): Tag ../include files. |
| |
| 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument |
| to rs6000_dbx_register_number. |
| (DWARF_FRAME_REGNUM): Redefine as identity map. |
| (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number. |
| * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update. |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format |
| argument to handle .debug_frame and .eh_frame directly. Always |
| translate SPE high register numbers. Add special treatment for CR, |
| but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING. |
| |
| * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine. |
| * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove. |
| (RS6000_USE_DWARF_NUMBERING): Define. |
| * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove. |
| (RS6000_USE_DWARF_NUMBERING): Define. |
| * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove. |
| (RS6000_USE_DWARF_NUMBERING): Define. |
| * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove. |
| (RS6000_USE_DWARF_NUMBERING): Define. |
| * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define. |
| * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define. |
| |
| 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * config/i386/i386.c (ix86_address_cost): Lower cost for |
| when address contains GOT register. |
| |
| 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com> |
| Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/8340 |
| PR middle-end/47602 |
| PR rtl-optimization/55458 |
| * config/i386/i386.c (ix86_use_pseudo_pic_reg): New. |
| (ix86_init_pic_reg): New. |
| (ix86_select_alt_pic_regnum): Add check on pseudo register. |
| (ix86_save_reg): Likewise. |
| (ix86_expand_prologue): Remove PIC register initialization |
| now performed in ix86_init_pic_reg. |
| (ix86_output_function_epilogue): Add check on pseudo register. |
| (set_pic_reg_ever_alive): New. |
| (legitimize_pic_address): Replace df_set_regs_ever_live with new |
| set_pic_reg_ever_alive. |
| (legitimize_tls_address): Likewise. |
| (ix86_pic_register_p): New check. |
| (ix86_delegitimize_address): Add check on pseudo register. |
| (ix86_expand_call): Insert move from pseudo PIC register to ABI |
| defined REAL_PIC_OFFSET_TABLE_REGNUM. |
| (TARGET_INIT_PIC_REG): New. |
| (TARGET_USE_PSEUDO_PIC_REG): New. |
| * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM |
| if pic_offset_table_rtx exists. |
| * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG): |
| Document. |
| * doc/tm.texi: Regenerate. |
| * function.c (assign_parms): Generate pseudo register for PIC. |
| * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC |
| register. |
| * ira-color.c (color_pass): Add check on pseudo register. |
| * ira-emit.c (change_loop): Don't create copies for PIC pseudo |
| register. |
| * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo |
| register. |
| (ira): Add target specific PIC register initialization. |
| (do_reload): Keep PIC pseudo register. |
| * lra-assigns.c (spill_for): Add checks on pseudo register. |
| * lra-constraints.c (contains_symbol_ref_p): New. |
| (lra_constraints): Enable lra risky transformations when PIC is pseudo |
| register. |
| * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register. |
| * target.def (use_pseudo_pic_reg): New. |
| (init_pic_reg): New. |
| |
| 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): |
| Remove m_SILVERMONT and m_INTEL from the tune. |
| |
| 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR libfortran/63471 |
| * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT |
| when _HPUX_SOURCE is defined. |
| |
| 2014-10-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/62127 |
| * tree.c (remap_type_1): When remapping array, remap |
| also its type. |
| |
| 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no |
| longer impact parallelization. |
| |
| 2014-10-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/63496 |
| * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto. |
| |
| 2014-10-13 Marat Zakirov <m.zakirov@samsung.com> |
| |
| * asan.c (instrument_derefs): BIT_FIELD_REF added. |
| |
| 2014-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63419 |
| * gimple-fold.h (gimple_convert): New function. |
| * gimple-fold.c (gimple_convert): Likewise. |
| * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert |
| to split out required conversions early. |
| |
| 2014-10-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue): |
| Add the parts of an insn in reverse order, with the pattern at |
| the top of the queue. Detect when we're iterating over a SEQUENCE |
| pattern and in that case just consider patterns of subinstructions. |
| |
| 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/59401 |
| * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead |
| of rtx. |
| * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of |
| insn walking. |
| (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR |
| address. Use def chains to handle GBR clobbering call insns. |
| |
| 2014-10-12 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h, |
| config/darwin.c, config/m32c/m32c.c, config/mep/mep.c, |
| config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c, |
| function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c, |
| output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c, |
| tree-ssa.c, varasm.c: Use hash-table instead of hashtab. |
| * doc/gty.texi (for_user): Document new option. |
| * gengtype.c (create_user_defined_type): Don't try to get a struct for |
| char. |
| (walk_type): Don't error out on for_user option. |
| (write_func_for_structure): Emit user marking routines if requested by |
| for_user option. |
| (write_local_func_for_structure): Likewise. |
| (main): Mark types with for_user option as used. |
| * ggc.h (gt_pch_nx): Add overload for unsigned int. |
| * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads. |
| * hash-table.h (ggc_hasher): New struct. |
| (hash_table::create_ggc): New function. |
| (gt_pch_nx): New overload for hash_table. |
| |
| 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro. |
| * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A. |
| * config/sh/sh.c: Likewise. |
| * config/sh/sh-mem.cc: Likewise. |
| * config/sh/sh.md: Likewise. |
| * config/sh/predicates.md: Likewise. |
| * config/sh/sync.md: Likewise. |
| |
| 2014-10-11 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/63376 |
| * cgraphunit.c (symbol_table::process_new_functions): Missing call |
| for call_cgraph_insertion_hooks added. |
| |
| 2014-10-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/63495 |
| * stor-layout.c (min_align_of_type): Don't decrease alignment |
| through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if |
| TYPE_USER_ALIGN is set. |
| |
| 2014-10-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/63483 |
| * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P |
| references when alignment ANDs are involved. |
| (write_dependence_p): Ditto. |
| (may_alias_p): Ditto. |
| |
| 2014-10-10 Marek Polacek <polacek@redhat.com> |
| |
| * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE. |
| * doc/invoke.texi: Document -fsanitize=object-size. |
| * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and |
| or it into SANITIZE_UNDEFINED. |
| * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE. |
| * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function. |
| * internal-fn.def (UBSAN_OBJECT_SIZE): Define. |
| * opts.c (common_handle_option): Handle -fsanitize=object-size. |
| * ubsan.c: Include tree-object-size.h. |
| (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi. |
| (ubsan_expand_bounds_ifn): Use false instead of 0. |
| (ubsan_expand_objsize_ifn): New function. |
| (instrument_object_size): New function. |
| (pass_ubsan::execute): Add object size instrumentation. |
| * ubsan.h (ubsan_expand_objsize_ifn): Declare. |
| |
| 2014-10-10 Richard Henderson <rth@redhat.com> |
| |
| PR target/63404 |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set. |
| Restrict the set of expressions we're willing to move. |
| |
| 2014-10-10 Jeff Law <law@redhat.com> |
| |
| * ira.c (struct equivalence): Promote INIT_INSNs field to |
| an rtx_insn_list. Add comments. |
| (no_equiv): Promote LIST to an rtx_insn_list. Update |
| testing for and creating the special marker. Use methods |
| to extract the insn and next pointers. Promote INSN to an |
| rtx_insn. |
| (update_equiv_regs): Update test for special marker in the |
| INIT_INSNs list. |
| |
| 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * configure.ac: Add --enable-fix-cortex-a53-835769 option. |
| * configure: Regenerate. |
| * config/aarch64/aarch64.c (aarch64_override_options): Handle |
| TARGET_FIX_ERR_A53_835769_DEFAULT. |
| * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init |
| value to 2. |
| * doc/install.texi (aarch64*-*-*): Document |
| new --enable-fix-cortex-a53-835769 option. |
| |
| 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define. |
| (ADJUST_INSN_LENGTH): Define. |
| * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option. |
| * config/aarch64/aarch64.c (is_mem_p): New function. |
| (is_memory_op): Likewise. |
| (aarch64_prev_real_insn): Likewise. |
| (is_madd_op): Likewise. |
| (dep_between_memop_and_curr): Likewise. |
| (aarch64_madd_needs_nop): Likewise. |
| (aarch64_final_prescan_insn): Likewise. |
| * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769 |
| and -mno-fix-cortex-a53-835769 options. |
| |
| 2014-10-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63464 |
| * tree-switch-conversion.c (struct case_bit_test): Remove |
| hi and lo fields, add wide_int mask field. |
| (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of |
| hi/lo fields into wide_int mask operations, optimize by pretending |
| minval to be 0 if maxval is small enough. |
| (process_switch): Adjust caller. |
| |
| 2014-10-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63379 |
| * tree-vect-slp.c (vect_get_constant_vectors): Do not compute |
| a neutral operand for min/max when it is not a reduction chain. |
| |
| 2014-10-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63476 |
| * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member. |
| (BB_LIVE_VOP_ON_EXIT): New define. |
| (create_expression_by_pieces): Assign VUSEs to stmts. |
| (compute_avail): Track BB_LIVE_VOP_ON_EXIT. |
| (pass_pre::execute): Assert virtual SSA form is up-to-date |
| after insertion. |
| |
| 2014-10-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lra-assigns.c (assign_by_spills): Error out on spill failure. |
| |
| 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * pa-polymorphic-call.c (check_stmt_for_type_change): Move |
| assertion. |
| |
| 2014-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63380 |
| * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that |
| may trap. |
| |
| 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/avr/avr.opt (mmcu=): Change to have a string value. |
| (mn-flash=, mskip-bug, march=, mrmw): New options. |
| (HeaderInclude): New. |
| (mmcu=): Remove Var / Init clauses. |
| * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a |
| -specs option. |
| (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define. |
| (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss. |
| (SYMBOL_FLAG_IO_LOW): Define. |
| (avr_device_to_as, avr_device_to_ld): Don't declare. |
| (avr_device_to_data_start, avr_device_to_startfiles): Likewise. |
| (avr_device_to_devicelib, avr_device_to_sp8): Likewise. |
| (EXTRA_SPEC_FUNCTIONS): Don't define. |
| (ASM_SPEC): Translate -arch= option to -mmcu= option. |
| (LINK_SPEC): Translate -arch= option to -m= option. |
| Don't use device_to_ld / device_to_data_start. |
| (STARTFILE_SPEC): Now empty. |
| (ASM_SPEC): Add -%{mrelax: --mlink-relax}. |
| * config/avr/gen-avr-mmcu-specs.c: New file. |
| * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule. |
| (s-device-specs): Likewise. |
| (GCC_PASSES): Add s-device-specs. |
| (install-driver): Depend on install-device-specs. |
| (install-device-specs): New rule. |
| * config/avr/avr.c (avr_option_override): Look up mcu arch by |
| avr_arch_index and provide fallback initialization for avr_n_flash. |
| (varasm.h): #include. |
| (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO; |
| (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions. |
| (avr_attribute_table): Add "io", "address" and "io_low". |
| (avr_asm_output_aligned_decl_common): Change type of decl to tree. |
| Add special handling for symbols with "io" and/or "address" attributes. |
| (avr_asm_asm_output_aligned_bss): New function. |
| (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS |
| as appropriate. Handle io_low attribute. |
| (avr_out_sbxx_branch): Handle symbolic io addresses. |
| (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use |
| avr_n_flash instead of avr_current_device->n_flash. |
| (avr_pgm_check_var_decl, avr_insert_attributes): Likewise. |
| (avr_emit_movmemhi): Likewise. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise. |
| Use TARGET_RMW instead of avr_current_device->dev_attributes. |
| Don't define avr_current_device->macro (that's the specfile's job). |
| Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip. |
| * config/avr/avr.c (avr_2word_insn_p): Likewise. |
| * config/avr/avr.md (*cpse.ne): Likewise. |
| (mov<mode>): Use avr_eval_addr_attrib. |
| (cbi): Change constraint for low_io_address_operand operand to "i". |
| (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise. |
| * config/avr/predicates.md (io_address_operand): |
| Allow SYMBOL_REF with SYMBOL_FLAG_IO. |
| (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW. |
| * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common): |
| Update prototype. |
| (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype. |
| * config/avr/genmultilib.awk: Use -march=. |
| Remove Multilib matches processing. |
| * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate. |
| * config/avr/avr-arch.h: Add double include guard. |
| (avr_mcu_t) <library_name>: Update comment. |
| * config/avr/driver-avr.c (avr_device_to_as): Delete. |
| (avr_device_to_ld, avr_device_to_data_start): Likewise. |
| (avr_device_to_startfiles, avr_device_to_devicelib): Likewise. |
| (avr_device_to_sp8): Likewise. |
| * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch. |
| |
| * doc/extend.texi (io, address): Document new AVR variable attributes. |
| (io_low): Likewise. |
| |
| 2014-10-09 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum. |
| |
| 2014-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61969 |
| * tree-nrv.c (pass_nrv::execute): Properly test for automatic |
| variables. |
| |
| 2014-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/63445 |
| * tree-vrp.c (simplify_cond_using_ranges): Only warn about |
| overflow for non-equality compares. |
| |
| 2014-10-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/57003 |
| * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, |
| also check CALL_INSN_FUNCTION_USAGE for clobbers again after |
| killing regs_invalidated_by_call. |
| |
| 2014-10-08 Teresa Johnson <tejohnson@google.com> |
| |
| PR bootstrap/63432. |
| * tree-ssa-threadupdate.c (estimated_freqs_path): New function. |
| (ssa_fix_duplicate_block_edges): Invoke it. |
| (mark_threaded_blocks): Make two passes to avoid ordering dependences. |
| |
| 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/52941 |
| * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard, |
| atomic_fetch_<fetchop_name>si_hard, |
| atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard, |
| atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard, |
| atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard, |
| atomic_nand_fetch<mode>_hard): Add missing set of T_REG. |
| |
| 2014-10-08 Rong Xu <xur@google.com> |
| |
| * gcov-tool.c (profile_overlap): New driver function |
| to compute profile overlap. |
| (print_overlap_usage_message): New. |
| (overlap_usage): New. |
| (do_overlap): New. |
| (print_usage): Add calls to overlap function. |
| (main): Ditto. |
| * doc/gcov-tool.texi: Add documentation. |
| |
| 2014-10-08 Steve Ellcey <sellcey@mips.com> |
| |
| * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change |
| LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS |
| |
| 2014-10-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better |
| pattern matching of MEM_REF. |
| (check_stmt_for_type_change): Update. |
| |
| 2014-10-08 Steve Ellcey <sellcey@mips.com> |
| |
| * config/mips/linux64.h: Remove. |
| * config/mips/gnu-user64.h: Remove. |
| * gcc.config (mips*-*-*): Remove references to linux64.h and |
| gnu-user64.h |
| * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace |
| with modified version from gnu-user64.h. |
| (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h. |
| (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h. |
| * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from |
| linux64.h. |
| (GNU_USER_LINK_EMULATION64): Ditto. |
| (GNU_USER_LINK_EMULATIONN32): Ditto. |
| (GLIBC_DYNAMIC_LINKER32): Ditto. |
| (GLIBC_DYNAMIC_LINKER64): Ditto. |
| (GLIBC_DYNAMIC_LINKERN32): Ditto. |
| (UCLIBC_DYNAMIC_LINKER32): Ditto. |
| (UCLIBC_DYNAMIC_LINKER64): Ditto. |
| (UCLIBC_DYNAMIC_LINKERN32): Ditto. |
| (BIONIC_DYNAMIC_LINKERN32): Ditto. |
| (GNU_USER_DYNAMIC_LINKERN32): Ditto. |
| (GLIBC_DYNAMIC_LINKER): Delete. |
| (UCLIBC_DYNAMIC_LINKER): Delete. |
| |
| 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>: |
| Get address space from operand 0 (BASE). |
| |
| 2014-10-07 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/61387 |
| * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout. |
| |
| 2014-10-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dwarf2out.c: Remove current_function_has_inlines. |
| (gen_subprogram_die): Same. |
| (gen_inlined_subroutine_die): Same. |
| |
| 2014-10-07 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/adxintrin.h (_subborrow_u64): Use long long for param |
| type. |
| (_addcarry_u64): Ditto. |
| (_addcarryx_u64): Ditto. |
| |
| 2014-10-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cgraph.h (cgraph_node::get_fun): Declare. |
| * cgraph.c (cgraph_node::get_fun): New method. |
| * ipa-inline.c (can_inline_edge_p): Use it. |
| |
| 2014-10-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros |
| and -ftrapping-math. |
| * lto-wrapper.c (merge_and_complain): Likewise. |
| (run_gcc): Likewise. |
| |
| 2014-10-06 Rong Xu <xur@google.com> |
| |
| * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param. |
| * tree-profile.c: (params.h): New include. |
| (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee |
| and __gcov_indirect_call_topn_counters for |
| indirect_call_topn_profile. |
| (gimple_init_edge_profiler): New decls for |
| __gcov_indirect_call_topn_profiler. |
| (gimple_gen_ic_profiler): Generate the correct profiler call. |
| (gimple_gen_ic_func_profiler): Fix format. |
| * value-prof.c (params.h): New include. |
| (dump_histogram_value): Hanlde indirect_call_topn counters. |
| (stream_in_histogram_value): Ditto. |
| (gimple_indirect_call_to_profile): Use indirect_call_topn |
| profile when PARAM_INDIR_CALL_TOPN_PROFILE is set. |
| (gimple_find_values_to_profile): Hanlde indirect_call_topn |
| counters. |
| * value-prof.h (enum hist_type): Histrogram type for |
| indirect_call_topn counters. |
| * profile.c (instrument_values): Instrument |
| indirect_call_topn counters. |
| |
| 2014-10-06 Rong Xu <xur@google.com> |
| |
| * Makefile.in: Fix dependence. |
| * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add |
| indirect call topn profiler. |
| * gcov-io.h: Ditto. |
| |
| 2014-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * calls.c (expand_call): Do not use the target as the return slot if |
| it is not sufficiently aligned. |
| |
| 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (analyze_swaps commentary): Add |
| discussion of permutes and why we don't handle them. |
| |
| 2014-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/predicates.md (int_register_operand): Delete. |
| |
| 2014-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering. |
| |
| 2014-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * ubsan.h (ubsan_get_source_location): New prototype. |
| * ubsan.c (ubsan_source_location_type): New variable. |
| Function renamed to ... |
| (ubsan_get_source_location_type): ... this. Cache |
| return value in ubsan_source_location_type variable. |
| (ubsan_source_location, ubsan_create_data): Use |
| ubsan_get_source_location_type instead of |
| ubsan_source_location_type. |
| * asan.c (asan_protect_global): Don't protect globals |
| with ubsan_get_source_location_type () type. |
| (asan_add_global): Provide global decl location info |
| if possible. |
| |
| 2014-10-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive |
| sanity check. |
| |
| 2014-10-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c (possible_placement_new): Fix condition |
| on size. |
| (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk |
| into vptr pointer. |
| (ipa_polymorphic_call_context::dump): Fix formating. |
| (walk_ssa_copies): Add logic avoiding loops; update uses. |
| * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed. |
| |
| 2014-10-02 Mark Wielaard <mjw@redhat.com> |
| |
| PR debug/63239 |
| * dwarf2out.c (gen_subprogram_die): When a member function is |
| explicitly deleted then add a DW_AT_GNU_deleted attribute. |
| * langhooks.h (struct lang_hooks_for_decls): Add |
| function_decl_deleted_p langhook. |
| * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define. |
| (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P. |
| |
| 2014-10-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c (walk_ssa_copies): Recognize |
| NULL pointer checks. |
| (ipa_polymorphic_call_context::get_dynamic_type): Return true |
| if type doesn't change. |
| * cgraph.h (cgraph_indirect_call_info): New flag. |
| * cgraph.c (cgraph_node::create_indirect_edge): Initialize it. |
| (cgraph_node::dump): Dump it. |
| * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud |
| of context.get_dynamic_type. |
| (ipa_make_edge_direct_to_target): Do not speculate |
| edge that is already speuclative. |
| (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not |
| speculate to __builtin_unreachable |
| (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream |
| vptr_changed. |
| * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed. |
| |
| 2014-10-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call |
| get_dynamic_type; drop TODO. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::get_dynamic_type): Be ready |
| for otr_type to be unknown. |
| |
| 2014-10-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * common/config/score/score-common.c: Remove. |
| * config.gcc: Remove support for score-*. |
| * config/score/constraints.md: Remove. |
| * config/score/elf.h: Remove. |
| * config/score/predicates.md: Remove. |
| * config/score/score-conv.h: Remove. |
| * config/score/score-generic.md: Remove. |
| * config/score/score-modes.def: Remove. |
| * config/score/score-protos.h: Remove. |
| * config/score/score.c: Remove. |
| * config/score/score.h: Remove. |
| * config/score/score.md: Remove. |
| * config/score/score.opt: Remove. |
| * doc/md.texi: Don't document score-*. |
| |
| 2014-10-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| PR pch/63429 |
| * genconditions.c: Directly include ggc.h before rtl.h. |
| |
| 2014-10-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix |
| code determining speculative type. |
| (ipa_polymorphic_call_context::combine_with): Fix speculation merge. |
| |
| 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * altivec.md (altivec_lvsl): New define_expand. |
| (altivec_lvsl_direct): Rename define_insn from altivec_lvsl. |
| (altivec_lvsr): New define_expand. |
| (altivec_lvsr_direct): Rename define_insn from altivec_lvsr. |
| * rs6000.c (rs6000_expand_builtin): Change to use |
| altivec_lvs[lr]_direct; remove commented-out code. |
| |
| 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Issue a warning message when vec_lvsl or vec_lvsr is used with a |
| little endian target. |
| |
| 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * tree-pretty-print.c (dump_location): Make it extern. Dump also |
| the column. |
| * tree-pretty-print.h (dump_location): Declare. |
| * gimple-pretty-print.c (dump_gimple_phi): Use dump_location. |
| (pp_gimple_stmt_1): Likewise. |
| (dump_implicit_edges): Likewise. |
| * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and |
| LOCATION_LINE. |
| |
| |
| 2014-10-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc.c (driver::global_initializations): Remove "const" so |
| that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options |
| and decoded_options_count. |
| |
| 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove |
| macro. |
| * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle |
| TARGET_E500_DOUBLE case here. |
| |
| 2014-10-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/54427 |
| PR c++/57198 |
| PR c++/58845 |
| * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++. |
| |
| 2014-10-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR |
| * lto-cgraph.c (lto_output_edge, input_edge): Stream |
| in_polymorphic_cdtor |
| * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor. |
| (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor. |
| * cgraphclones.c (cgraph_edge::clone): Likewise. |
| * ipa-prop.c (update_jump_functions_after_inlining, |
| try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor |
| to possible_dynamic_type_change. |
| (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE. |
| (ipa_polymorphic_call_context::possible_dynamic_type_change): Add |
| IN_POLY_CDOTR argument. |
| |
| * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready |
| for BASE and OUTER_TYPE being NULL. |
| (ipa_polymorphic_call_context::possible_dynamic_type_change): Add |
| in_poly_cdtor parameter. |
| |
| 2014-10-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting. |
| (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if |
| TARGET_AVX512F. |
| (expand_vec_perm_1): Likewise. |
| |
| 2014-10-03 Jakub Jelinek <jakub@redhat.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/61403 |
| * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling |
| error in comment. Also optimize 256-bit vectors for AVX2 |
| or AVX (floating vectors only), provided the first permutation |
| can be performed in one insn. |
| |
| 2014-10-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc.c (class driver): New class. |
| (main): Reimplement in terms of driver::main, moving most of the |
| locals to be locals within individual methods of class driver. |
| The remaining locals "explicit_link_files", "decoded_options" and |
| "decoded_options_count" are used by multiple driver:: methods, and |
| so become member data. Doing so isolates the argc/argv reads and |
| writes. Replace "goto out" with a special exit code from |
| new method driver::prepare_infiles. Split out the old |
| implementation of main into the following... |
| (driver::main): New function, corresponding to the old "main" |
| implementation. |
| (driver::set_progname): New function, taken from the old |
| "main" implementation. |
| (driver::expand_at_files): Likewise. |
| (driver::decode_argv): Likewise. |
| (driver::global_initializations): Likewise. |
| (driver::build_multilib_strings): Likewise. |
| (driver::set_up_specs): Likewise. |
| (driver::putenv_COLLECT_GCC): Likewise. |
| (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise. |
| (driver::handle_unrecognized_options): Likewise. |
| (driver::maybe_print_and_exit): Likewise. |
| (driver::prepare_infiles): Likewise. |
| (driver::do_spec_on_infiles): Likewise. |
| (driver::maybe_run_linker): Likewise. |
| (driver::final_actions): Likewise. |
| (driver::get_exit_code): Likewise. |
| |
| 2014-10-03 Yury Gribov <y.gribov@samsung.com> |
| |
| * asan.c (asan_finish_file): Disable __asan_init calls for KASan; |
| don't emit empty ctors. |
| |
| 2014-10-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * convert.c (convert_to_integer): Do not introduce useless conversions |
| between integral types. |
| |
| 2014-10-03 David Sherwood <david.sherwood@arm.com> |
| |
| * ira-int.h (ira_allocno): Mark hard_regno as signed. |
| |
| 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * lra-constraints.c (inherit_in_ebb): Handle calls with |
| multiple return values. |
| * caller-save.c (save_call_clobbered_regs): Likewise. |
| |
| 2014-10-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_permute_load_chain, |
| vect_shift_permute_load_chain): Fix a typo in temporary var names, |
| suffle3 to shuffle3. |
| |
| PR libgomp/61200 |
| * omp-low.c (taskreg_contexts): New variable. |
| (scan_omp_parallel): Push newly created context into taskreg_contexts |
| vector and move record layout code to finish_taskreg_scan. |
| (scan_omp_task): Likewise. |
| (finish_taskreg_scan): New function. |
| (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts |
| vector elements and release it. |
| |
| PR target/62128 |
| * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order |
| of palignr arguments can't be used due to min 0 or max - min |
| too high, try also op0, op1 order of palignr arguments. |
| |
| 2014-10-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (ipa_polymorphic_call_context): |
| Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE |
| private, add POSSIBLE_DYNAMIC_TYPE_CHANGE. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses |
| past end of dynamic types. |
| (ipa_polymorphic_call_context::stream_out, |
| speculative_outer_type): Stream dynamic flag. |
| (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): |
| Clear DYNAMIC. |
| (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC; |
| set it. |
| (ipa_polymorphic_call_context::combine_with): Propagate dynamic. |
| * ipa-prop.c (update_jump_functions_after_inlining, |
| try_make_edge_direct_virtual_call): Use possible_dynamic_type_change. |
| |
| 2014-10-02 Teresa Johnson <tejohnson@google.com> |
| |
| * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies |
| up when synthesizing counts to avoid rounding errors. |
| |
| 2014-10-02 Teresa Johnson <tejohnson@google.com> |
| |
| PR middle-end/63422 |
| * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove |
| asserts to handle incoming insanities. |
| |
| 2014-10-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/63375 |
| * tree-sra.c (build_access_from_expr_1): Disqualify volatile |
| references. |
| |
| 2014-10-02 Olivier Hainque <hainque@adacore.com> |
| |
| * Makefile.in (CROSS): Define, to @CROSS. |
| |
| 2014-10-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/62128 |
| * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr |
| if it expands to a single insn only. |
| (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true, |
| fail unless in_order is true. Add forward declaration. |
| (expand_vec_perm_vperm2f128): Fix up comment about which permutation |
| is useful for one_operand_p. |
| (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller. |
| |
| 2014-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphclones.c (build_function_type_skip_args): Do not make new |
| type variant of old. |
| |
| 2014-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE |
| when speculation is added. |
| (ipa_edge_args): Add polymorphic_call_contexts. |
| (ipa_get_ith_polymorhic_call_context): New accesor. |
| (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts. |
| (ipa_compute_jump_functions_for_edge): Compute contexts. |
| (update_jump_functions_after_inlining): Update contexts. |
| (ipa_make_edge_direct_to_target): Add SPECULATIVE argument; |
| update dumping; add speculative edge creation. |
| (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle |
| context updating. |
| (update_indirect_edges_after_inlining): Pass down context. |
| (ipa_edge_duplication_hook): Duplicate contexts. |
| (ipa_write_node_info): Stream out contexts. |
| (ipa_read_node_info): Stream in contexts. |
| * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR |
| types. |
| (try_speculative_devirtualization): New function. |
| * ipa-utils.h (try_speculative_devirtualization): Declare. |
| |
| 2014-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa.c (walk_polymorphic_call_targets): Avoid ICE when |
| dumping during WPA. |
| |
| 2014-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.c (ipa_modify_formal_parameters): Do not merge |
| type variants. |
| |
| 2014-10-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_class): |
| Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late; |
| use speculation_consistent_p to do so; Add CONSDER_BASES |
| and CONSIDER_PLACEMENT_NEW parameters. |
| (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES; |
| short circuit obvious cases. |
| (ipa_polymorphic_call_context::dump): Improve formatting. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use |
| combine_speculation_with to record speculations; Do not ICE when |
| object is located in pointer type decl; do not ICE for methods |
| of UNION_TYPE; do not record nonpolymorphic types. |
| (ipa_polymorphic_call_context::speculation_consistent_p): New method. |
| (ipa_polymorphic_call_context::combine_speculation_with): New method. |
| (ipa_polymorphic_call_context::combine_with): New method. |
| (ipa_polymorphic_call_context::make_speculative): Move here; use |
| combine speculation. |
| * cgraph.h (ipa_polymorphic_call_context): Update |
| restrict_to_inner_class prototype; add offset_by, make_speculative, |
| combine_with, useless_p, combine_speculation_with and |
| speculation_consistent_p methods. |
| (ipa_polymorphic_call_context::offset_by): New method. |
| (ipa_polymorphic_call_context::useless_p): New method. |
| |
| 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/62151 |
| * combine.c (can_combine_p): Allow the destination register of INSN |
| to be clobbered in I3. |
| (subst): Do not substitute into clobbers of registers. |
| |
| 2014-10-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63342 |
| * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero |
| offset, TARGET_MEM_REF and SSA_NAME. |
| |
| * config/i386/i386.c (expand_vec_perm_palignr): Handle |
| 256-bit vectors for TARGET_AVX2. |
| |
| * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize |
| dfirst permutation. |
| |
| PR target/63428 |
| * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0] |
| argument to avx2_permv2ti. |
| |
| 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it. |
| |
| 2014-09-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only. |
| (fmod<mode>3): Ditto. |
| (fpremxf4_i387): Ditto. |
| (reminderxf3): Ditto. |
| (reminder<mode>3): Ditto. |
| (fprem1xf4_i387): Ditto. |
| |
| 2014-09-30 Teresa Johnson <tejohnson@google.com> |
| |
| * tree-ssa-threadupdate.c (struct ssa_local_info_t): New |
| duplicate_blocks bitmap. |
| (remove_ctrl_stmt_and_useless_edges): Ditto. |
| (create_block_for_threading): Ditto. |
| (compute_path_counts): New function. |
| (update_profile): Ditto. |
| (recompute_probabilities): Ditto. |
| (update_joiner_offpath_counts): Ditto. |
| (freqs_to_counts_path): Ditto. |
| (clear_counts_path): Ditto. |
| (ssa_fix_duplicate_block_edges): Update profile info. |
| (ssa_create_duplicates): Pass new parameter. |
| (ssa_redirect_edges): Remove old profile update. |
| (thread_block_1): New duplicate_blocks bitmap, |
| remove old profile update. |
| (thread_single_edge): Pass new parameter. |
| |
| 2014-09-30 Ilya Tocar <ilya.tocar@intel.com> |
| |
| PR middle-end/62120 |
| * varasm.c (decode_reg_name_and_count): Check availability for |
| registers from ADDITIONAL_REGISTER_NAMES. |
| |
| 2014-09-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR plugins/63410 |
| * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h. |
| (PLUGIN_HEADERS): Add pass-instances.def. |
| |
| 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand |
| iterator. |
| * config/aarch64/aarch64-simd.md |
| (aarch64_sqdmull_laneq<mode>): Expand iterator. |
| * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New. |
| (vqdmulls_lane_s32): Fix return type. |
| (vqdmulls_laneq_s32): New. |
| |
| 2014-09-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR inline-asm/63282 |
| * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1 |
| or invert_jump_1 if jump isn't any_condjump_p. |
| |
| 2014-09-30 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/arm-cores.def (cortex-m7): New core name. |
| * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name. |
| (fpv5-d16): Ditto. |
| * config/arm/arm-tables.opt: Regenerated. |
| * config/arm/arm-tune.md: Regenerated. |
| * config/arm/arm.h (TARGET_VFP5): New macro. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7. |
| * config/arm/vfp.md (<vrint_pattern><SDF:mode>2, |
| smax<mode>3, smin<mode>3): Enabled for FPU FPv5. |
| * doc/invoke.texi: Document new cpu and fpu names. |
| |
| 2014-09-30 Jiong Wang <jiong.wang@arm.com> |
| |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal" |
| before sinking insn. |
| |
| 2014-09-30 David Sherwood <david.sherwood@arm.com> |
| |
| * ira-int.h (ira_allocno): Add "wmode" field. |
| * ira-build.c (create_insn_allocnos): Add new "parent" function |
| parameter. |
| * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers |
| that cannot be accessed in wmode. |
| |
| 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * data-streamer.c (bp_unpack_var_len_int): Avoid signed |
| integer overflow. |
| |
| 2014-09-29 Andi Kleen <ak@linux.intel.com> |
| |
| * opts.c (print_filtered_help): Print --param min/max/default |
| with -Q. |
| |
| 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv". |
| |
| 2014-09-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-vrp.c (get_single_symbol): New function. |
| (build_symbolic_expr): Likewise. |
| (symbolic_range_based_on_p): New predicate. |
| (extract_range_from_binary_expr_1): Deal with single-symbolic ranges |
| for PLUS and MINUS. Do not drop symbolic ranges at the end. |
| (extract_range_from_binary_expr): Try harder for PLUS and MINUS if |
| operand is symbolic and based on the other operand. |
| |
| 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com> |
| |
| * config/microblaze/microblaze.md (call_internal1): Use VOID |
| instead of SI to fix "((void (*)(void)) 0)()" issue |
| |
| 2014-09-29 Nick Clifton <nickc@redhat.com> |
| |
| * config/msp430/msp430.c (msp430_expand_prologue): Return a |
| CLOBBER rtx for naked functions. |
| (msp430_expand_epilogue): Likewise. |
| (msp430_use_f5_series_hwmult): Cache result. |
| (use_32bit_hwmult): Cache result. |
| (msp430_no_hwmult): New function. |
| (msp430_output_labelref): Use it. |
| |
| 2014-09-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/63247 |
| * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER |
| of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION |
| use the alignment of avar rather than ovar. |
| |
| 2014-09-28 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_output_function_epilogue): Only update |
| last_address when a nonnote insn is found. |
| |
| 2014-09-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/60665 |
| * ipa-devirt.c (possible_polymorphic_call_targets): Silence |
| clang warning. |
| |
| 2014-09-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/62121 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_class): Fix pasto |
| in checking array size. |
| |
| 2014-09-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/35545 |
| * passes.def (pass_tracer): Move before last dominator pass. |
| |
| 2014-09-26 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * gcc.c (try_generate_repro): Remove argument "prog". Change all |
| users. |
| (run_attempt): Handle errors of "pex_run" invocation. |
| |
| 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define. |
| (CC1_SPEC): Define. |
| * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function. |
| (TARGET_ASAN_SHADOW_OFFSET): Define. |
| |
| 2014-09-26 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::release_body): New argument keep_arguments |
| introduced. |
| * cgraph.h: Likewise. |
| * cgraphunit.c (cgraph_node::create_wrapper): Usage of new |
| argument introduced. |
| * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos |
| created by Java. |
| * tree-ssa-alias.c (ao_ref_base_alias_set): Static function |
| transformed to global. |
| * tree-ssa-alias.h: Likewise. |
| |
| 2014-09-26 Jakub Jelinek <jakub@redhat.com> |
| Max Ostapenko <m.ostapenko@partner.samsung.com> |
| |
| * common.opt: New option. |
| * doc/invoke.texi: Describe new option. |
| * gcc.c (execute): Don't free first string early, but at the end |
| of the function. Call retry_ice if compiler exited with |
| ICE_EXIT_CODE. |
| (main): Factor out common code. |
| (print_configuration): New function. |
| (files_equal_p): Likewise. |
| (check_repro): Likewise. |
| (run_attempt): Likewise. |
| (do_report_bug): Likewise. |
| (append_text): Likewise. |
| (try_generate_repro): Likewise |
| |
| 2014-09-25 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386.c (x86_print_call_or_nop): New function. |
| (x86_function_profiler): Support -mnop-mcount and |
| -mrecord-mcount. |
| * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add |
| * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount. |
| |
| 2014-09-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove. |
| * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove. |
| * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children): |
| Remove. |
| |
| 2014-09-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.h (subbinfo_with_vtable_at_offset, |
| type_all_derivations_known_p, type_known_to_have_no_deriavations_p, |
| types_must_be_same_for_odr, types_odr_comparable): Declare. |
| (polymorphic_type_binfo_p): Move here from ipa-devirt.c |
| * ipa-polymorphic-call.c: New file. |
| (contains_polymorphic_type_p, possible_placement_new, |
| ipa_polymorphic_call_context::restrict_to_inner_class, |
| contains_type_p, decl_maybe_in_construction_p, |
| ipa_polymorphic_call_context::stream_out, |
| ipa_polymorphic_call_context::debug, |
| ipa_polymorphic_call_context::stream_in, |
| ipa_polymorphic_call_context::set_by_decl, |
| ipa_polymorphic_call_context::set_by_invariant, |
| walk_ssa_copies, |
| ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| type_change_info, noncall_stmt_may_be_vtbl_ptr_store, |
| extr_type_from_vtbl_ptr_store, record_known_type |
| check_stmt_for_type_change, |
| ipa_polymorphic_call_context::get_dynamic_type): Move here from |
| ipa-devirt.c |
| * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h |
| and streamer-hooks.h |
| (contains_polymorphic_type_p, possible_placement_new, |
| ipa_polymorphic_call_context::restrict_to_inner_class, |
| contains_type_p, decl_maybe_in_construction_p, |
| ipa_polymorphic_call_context::stream_out, |
| ipa_polymorphic_call_context::debug, |
| ipa_polymorphic_call_context::stream_in, |
| ipa_polymorphic_call_context::set_by_decl, |
| ipa_polymorphic_call_context::set_by_invariant, |
| walk_ssa_copies, |
| ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| type_change_info, noncall_stmt_may_be_vtbl_ptr_store, |
| extr_type_from_vtbl_ptr_store, record_known_type |
| check_stmt_for_type_change, |
| ipa_polymorphic_call_context::get_dynamic_type): Move to |
| ipa-polymorphic-call.c |
| (type_all_derivations_known_p, types_odr_comparable, |
| types_must_be_same_for_odr): Export. |
| (type_known_to_have_no_deriavations_p): New function. |
| * Makefile.in: Add ipa-polymorphic-call.c |
| |
| 2014-09-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder |
| for better storage. |
| (polymorphic_call_target_hasher::hash): Hash SPECULATIVE. |
| (possible_polymorphic_call_targets): Instead of computing both |
| speculative and non-speculative answers, do just one at a time. |
| Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag. |
| (dump_targets): Break out from ... |
| (dump_possible_polymorphic_call_targets): ... here; dump both |
| speculative and non-speculative lists. |
| (ipa_devirt): Update for new possible_polymorphic_call_targets API. |
| * ipa-utils.h (possible_polymorphic_call_targets): Update. |
| |
| 2014-09-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/63348 |
| * emit-rtl.c (try_split): Do not emit extra barrier. |
| |
| 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete. |
| * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use |
| new predicates. |
| (aarch64_<sur>shll2_n<mode>): Likewise. |
| (aarch64_<sur>shr_n<mode>): Likewise. |
| (aarch64_<sur>sra_n<mode>: Likewise. |
| (aarch64_<sur>s<lr>i_n<mode>): Likewise. |
| (aarch64_<sur>qshl<u>_n<mode>): Likewise. |
| * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete. |
| * config/aarch64/iterators.md (ve_mode): New. |
| (offsetlr): Remap to infix text for use in new predicates. |
| * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New. |
| (aarch64_simd_shift_imm_hi): Likewise. |
| (aarch64_simd_shift_imm_si): Likewise. |
| (aarch64_simd_shift_imm_di): Likewise. |
| (aarch64_simd_shift_imm_offset_qi): Likewise. |
| (aarch64_simd_shift_imm_offset_hi): Likewise. |
| (aarch64_simd_shift_imm_offset_si): Likewise. |
| (aarch64_simd_shift_imm_offset_di): Likewise. |
| (aarch64_simd_shift_imm_bitsize_qi): Likewise. |
| (aarch64_simd_shift_imm_bitsize_hi): Likewise. |
| (aarch64_simd_shift_imm_bitsize_si): Likewise. |
| (aarch64_simd_shift_imm_bitsize_di): Likewise. |
| |
| 2014-09-25 Jiong Wang <jiong.wang@arm.com> |
| |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of |
| new created BB as the intersection of live-in from "old_dest" and |
| live-out from "bb". |
| |
| 2014-09-25 Felix Yang <felix.yang@huawei.com> |
| |
| * lra.c (lra_set_insn_recog_data): Fix typo in comment. |
| * genautomata.c (merge_states): Ditto. |
| |
| 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/62218 |
| * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo |
| in instruction sequence. |
| |
| 2014-09-25 Nick Clifton <nickc@redhat.com> |
| |
| PR target/62218 |
| * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo |
| in instruction sequence. |
| |
| 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/63335 |
| * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): |
| Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling. |
| |
| 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ... |
| (define_expand "<avx2_avx512>_perm<mode>"): ... this. |
| (define_expand "avx512f_perm<mode>_mask"): Rename to ... |
| (define_expand "<avx512>_perm<mode>_mask"): ... this. |
| Use VI8F_256_512 mode iterator. |
| (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ... |
| (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this. |
| |
| 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx_movshdup256<mask_name>"): Add masking. |
| (define_insn "sse3_movshdup<mask_name>"): Ditto. |
| (define_insn "avx_movsldup256<mask_name>"): Ditto. |
| (define_insn "sse3_movsldup<mask_name>"): Ditto. |
| (define_insn "vec_dupv2df<mask_name>"): Ditto. |
| (define_insn "*vec_concatv2df"): Add EVEX version. |
| |
| 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "vec_set<mode>_0"): Add EVEX version. |
| |
| 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn |
| "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"): |
| New. |
| (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto. |
| (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto. |
| (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change |
| "nonimmediate_operand" to "<round_saeonly_nimm_predicate>". |
| (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking. |
| (define_expand "sse2_cvtpd2ps_mask): New. |
| (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking. |
| (define_insn "sse2_cvtps2pd<mask_name>"): Add masking. |
| |
| 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ... |
| (ufix_notruncv8dfv8si2_mask_round): ... this. |
| * config/i386/sse.md |
| (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check. |
| (define_insn "avx_cvtdq2pd256_2"): Add EVEX version. |
| (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking. |
| (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto. |
| (define_expand "sse2_cvtpd2dq"): Delete. |
| (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and |
| make 2nd operand const0 vector. |
| (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"): |
| Delete. |
| (define_mode_attr pd2udqsuff): New. |
| (define_insn |
| "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto. |
| (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto. |
| (define_insn "*avx_cvttpd2dq256_2"): Delete. |
| (define_expand "sse2_cvttpd2dq"): Ditto. |
| (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and |
| make 2nd operand const0 vector. |
| |
| 2014-09-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/63341 |
| * tree-vectorizer.h (vect_create_data_ref_ptr, |
| vect_create_addr_base_for_vector_ref): Add another tree argument |
| defaulting to NULL_TREE. |
| * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset |
| argument, pass it down to vect_create_addr_base_for_vector_ref. |
| (vect_create_addr_base_for_vector_ref): Add byte_offset argument, |
| add that to base_offset too if non-NULL. |
| * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable, |
| for dr_explicit_realign_optimized set it to vector byte size |
| - 1 instead of setting offset, pass byte_offset down to |
| vect_create_data_ref_ptr. |
| |
| 2014-09-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (possible_polymorphic_call_targets): Remove |
| forgotten debug output; canonicalize querries more wtih LTO. |
| |
| 2014-09-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (class ipa_polymorphic_call_context): Move here from |
| ipa-utils.h; add stream_int and stream_out methods. |
| (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET, |
| OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION |
| MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE; |
| add CONTEXT. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| ipa_polymorphic_call_context::clear_speculation, |
| ipa_polymorphic_call_context::clear_outer_type): Move here from |
| ipa-utils.h |
| * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| ipa_polymorphic_call_context::ipa_polymorphic_call_context, |
| ipa_polymorphic_call_context::clear_speculation, |
| ipa_polymorphic_call_context::clear_outer_type): Likewise. |
| * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and |
| streamer-hooks.h |
| (ipa_polymorphic_call_context::stream_out): New method. |
| (ipa_polymorphic_call_context::stream_in): New method. |
| (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static. |
| * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about |
| OUTER_TYPE. |
| (ipa_analyze_call_uses): Simplify. |
| (update_indirect_edges_after_inlining): Do not care about outer_type. |
| (ipa_write_indirect_edge_info): Update. |
| (ipa_write_indirect_edge_info): Likewise. |
| * cgraph.c (cgraph_node::create_indirect_edge): Simplify. |
| (dump_edge_flags): Break out from ... |
| (cgraph_node::dump): ... here; dump indirect edges. |
| |
| 2014-09-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.h (polymorphic_call_context): Add |
| metdhos dump, debug and clear_outer_type. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify. |
| (ipa_polymorphic_call_context::clear_outer_type): New method. |
| * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset. |
| * ipa-devirt.c (types_odr_comparable): New function. |
| (types_must_be_same_for_odr): New function. |
| (odr_subtypes_equivalent_p): Simplify. |
| (possible_placement_new): Break out from ... |
| (ipa_polymorphic_call_context::restrict_to_inner_type): ... here; |
| be more cuatious about returning false in cases the context may be |
| valid in derived type or via placement new. |
| (contains_type_p): Clear maybe_derived_type |
| (ipa_polymorphic_call_context::dump): New method. |
| (ipa_polymorphic_call_context::debug): New method. |
| (ipa_polymorphic_call_context::set_by_decl): Cleanup comment. |
| (ipa_polymorphic_call_context::set_by_invariant): Simplify. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify. |
| (possible_polymorphic_call_targets): Trust |
| context.restrict_to_inner_class to suceed on all valid cases; |
| remove confused sanity check. |
| (dump_possible_polymorphic_call_targets): Simplify. |
| |
| 2014-09-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c, |
| lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c, |
| tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h, |
| varpool.c: Rename all instances of DECL_ABSTRACT to |
| DECL_ABSTRACT_P. |
| |
| 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide |
| special handling for stores whose SET_SRC is an UNSPEC (such as |
| UNSPEC_STVE). |
| |
| 2014-09-24 Jiong Wang <jiong.wang@arm.com> |
| |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when |
| !REG_P (src) to release more instruction sink opportunities. |
| |
| 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register |
| move costs for 128-bit types. |
| |
| 2014-09-24 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count |
| when duplicating a PASS_THROUGH jump function when creating a |
| speculative edge. |
| |
| 2014-09-24 Marek Polacek <polacek@redhat.com> |
| |
| PR c/61405 |
| PR c/53874 |
| * asan.c (maybe_instrument_call): Add default case. |
| * ipa-pure-const.c (special_builtin_state): Likewise. |
| * predict.c (expr_expected_value_1): Likewise. |
| * lto-streamer-out.c (write_symbol): Initialize variable. |
| |
| 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting |
| the lane. |
| (vmuld_laneq_f64): Likewise. |
| (vmuls_lane_f32): Likewise. |
| (vmuls_laneq_f32): Likewise. |
| |
| 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR bootstrap/63235 |
| * varpool.c (varpool_node::add): Pass decl attributes |
| to lookup_attribute. |
| |
| 2014-09-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/63316 |
| * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization. |
| |
| 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/63266 |
| * tree-ssa-math-opts.c (struct symbolic_number): Add comment about |
| marker for unknown byte value. |
| (MARKER_MASK): New macro. |
| (MARKER_BYTE_UNKNOWN): New macro. |
| (HEAD_MARKER): New macro. |
| (do_shift_rotate): Mark bytes with unknown values due to sign |
| extension when doing an arithmetic right shift. Replace hardcoded |
| mask for marker by new MARKER_MASK macro. |
| (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic |
| numbers accordingly. |
| |
| 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn |
| "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"): |
| Add masking. |
| (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto. |
| (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto. |
| |
| 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW. |
| (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New. |
| (define_expand "avx512vl_pshuflwv3_mask"): Ditto. |
| (define_insn "avx2_pshuflw_1<mask_name>"): Add masking. |
| (define_expand "avx512vl_pshuflw_mask"): New. |
| (define_insn "sse2_pshuflw_1<mask_name>"): Add masking. |
| (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New. |
| (define_expand "avx512vl_pshufhwv3_mask"): Ditto. |
| (define_insn "avx2_pshufhw_1<mask_name>"): Add masking. |
| (define_expand "avx512vl_pshufhw_mask"): New. |
| (define_insn "sse2_pshufhw_1<mask_name>"): Add masking. |
| |
| 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd, |
| CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask, |
| CODE_FOR_sse2_avx512dq_shuf_i64x2_mask, |
| CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and |
| CODE_FOR_sse2_avx512vl_shuf_f32x4_mask. |
| * config/i386/sse.md |
| (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New. |
| (define_insn |
| "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto. |
| (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto. |
| (define_insn |
| "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto. |
| (define_expand "avx512vl_pshufdv3_mask"): Ditto. |
| (define_insn "avx2_pshufd_1<mask_name>"): Add masking. |
| (define_expand "avx512vl_pshufd_mask"): New. |
| (define_insn "sse2_pshufd_1<mask_name>"): Add masking. |
| |
| 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (CODE_FOR_avx2_extracti128): Rename to ... |
| (CODE_FOR_avx_vextractf128v4di): this. |
| (CODE_FOR_avx2_inserti128): Rename to ... |
| (CODE_FOR_avx_vinsertf128v4di): this. |
| (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di, |
| CODE_FOR_avx_vextractf128v4di. |
| (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask, |
| CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df, |
| CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf, |
| CODE_FOR_avx512vl_vinsertv8si. |
| * config/i386/sse.md |
| (define_expand |
| "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use |
| AVX512_VEC mode iterator. |
| (define_insn |
| "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"): |
| Ditto. |
| (define_expand |
| "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use |
| AVX512_VEC_2 mode iterator. |
| (define_insn "vec_set_lo_<mode><mask_name>"): New. |
| (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. |
| (define_expand "avx512vl_vinsert<mode>"): Ditto. |
| (define_insn "avx2_vec_set_lo_v4di"): Delete. |
| (define_insn "avx2_vec_set_hi_v4di"): Ditto. |
| (define_insn "vec_set_lo_<mode><mask_name>"): Add masking. |
| (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. |
| (define_insn "vec_set_lo_<mode><mask_name>"): Ditto. |
| (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. |
| (define_expand "avx2_extracti128"): Delete. |
| (define_expand "avx2_inserti128"): Ditto. |
| |
| 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking. |
| (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New. |
| (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking. |
| (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto. |
| (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto. |
| (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto. |
| (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto. |
| (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto. |
| (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto. |
| (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto. |
| (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto. |
| (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto. |
| (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto. |
| |
| 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| PR rtl-optimization/63210 |
| * ira-color.c (assign_hard_reg): Ignore conflict cost if the |
| HARD_REGNO is not available for CONFLICT_A. |
| |
| 2014-09-23 Andi Kleen <ak@linux.intel.com> |
| |
| * cgraph.h (symtab_node): Add no_reorder attribute. |
| (symbol_table::output_asm_statements): Remove. |
| * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder. |
| (cgraph_node::create_version_clone): Dito. |
| (symbol_table::output_asm_statements): Remove. |
| * trans-mem.c (ipa_tm_create_version_alias): Dito. |
| * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder. |
| (output_in_order): Add no_reorder flag. Only handle no_reorder |
| nodes when set. |
| (symbol_table::compile): Add separate pass for no_reorder nodes. |
| (process_common_attributes): Set no_reorder flag in symtab node. |
| Add node argument. |
| (process_function_and_variable_attributes): Pass symtab nodes to |
| process_common_attributes. |
| * doc/extend.texi (no_reorder): Document no_reorder attribute. |
| * lto-cgraph.c (lto_output_node): Serialize no_reorder. |
| (lto_output_varpool_node): Dito. |
| (input_overwrite_node): Dito. |
| (input_varpool_node): Dito. |
| * varpool.c (varpool_node::add): Set no_reorder attribute. |
| (symbol_table::remove_unreferenced_decls): Handle no_reorder. |
| (symbol_table::output_variables): Dito. |
| * symtab.c (symtab_node::dump_base): Print no_reorder. |
| |
| 2014-09-23 Jiong Wang <jiong.wang@arm.com> |
| |
| * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM |
| not be INVALID_REGNUM. |
| |
| 2014-09-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * configure: Regenerate. |
| |
| 2014-09-23 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor)) |
| when result_mode == shift_mode. |
| |
| 2014-09-23 Kostya Serebryany <kcc@google.com> |
| |
| Update to match the changed asan API. |
| * asan.c (asan_global_struct): Update the __asan_global definition |
| to match the new API. |
| (asan_add_global): Ditto. |
| * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3 |
| to __asan_init_v4. |
| |
| 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (f32_vsx): New mode attributes to |
| refine the constraints used on 32/64-bit floating point moves. |
| (f32_av): Likewise. |
| (f64_vsx): Likewise. |
| (f64_dm): Likewise. |
| (f64_av): Likewise. |
| (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa. |
| (BOOL_REGS_OP1): Likewise. |
| (BOOL_REGS_OP2): Likewise. |
| (BOOL_REGS_UNARY): Likewise. |
| (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for |
| 32/64-bit floating point moves. Do not use wa, instead use ww/ws |
| for moves involving VSX registers. Do not use constraints that |
| target VSX registers for decimal types. |
| (mov<mode>_hardfloat32, DFmode/DDmode): Likewise. |
| (mov<mode>_hardfloat64, DFmode/DDmode): Likewise. |
| |
| 2014-09-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.h (int_bit_position): Turn into inline function; |
| implement using wide int. |
| * tree.c (int_bit_position): Remove. |
| |
| 2014-09-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR bootstrap/63280 |
| * target-globals.c (target_globals::~target_globals): Fix location |
| of ira_int destruction. |
| |
| 2014-09-23 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.md (return): New. |
| (simple_return): Likewise. |
| * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New. |
| * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New. |
| |
| 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * common/config/aarch64/aarch64-common.c: |
| (default_options aarch_option_optimization_table): |
| Default to -fsched-pressure. |
| |
| 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com> |
| |
| * cfgcleanup.c (try_optimize_cfg): Do not remove label |
| with LABEL_PRESERVE_P flag set. |
| |
| 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking. |
| (define_insn "avx_shufpd256_1<mask_name>"): Ditto. |
| (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto. |
| (define_insn "sse2_shufpd_v2df_mask"): New. |
| |
| 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "avx_shufps256<mask_expand4_name>"): Add masking. |
| (define_insn "avx_shufps256_1<mask_name>"): Ditto. |
| (define_expand "sse_shufps<mask_expand4_name>"): Ditto. |
| (define_insn "sse_shufps_v4sf_mask"): New. |
| |
| 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx_unpckhps256<mask_name>"): Add masking. |
| (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto. |
| (define_insn "avx_unpcklps256<mask_name>"): Ditto. |
| (define_insn "unpcklps128_mask"): New. |
| |
| 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "avx_unpckhpd256<mask_name>"): Add masking. |
| (define_insn "avx512vl_unpckhpd128_mask"): New. |
| (define_expand "avx_movddup256<mask_name>"): Add masking. |
| (define_expand "avx_unpcklpd256<mask_name>"): Ditto. |
| (define_insn "*avx_unpcklpd256<mask_name>"): Ditto. |
| (define_insn "avx512vl_unpcklpd128_mask"): New. |
| |
| 2014-09-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * doc/tm.texi: Regenerate. |
| * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison. |
| * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): |
| Remove. |
| * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): |
| Remove. |
| * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove. |
| * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): |
| Remove. |
| |
| 2014-09-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-ccp.c (prop_value_d): Rename to ... |
| (ccp_prop_value_t): ... this one to avoid ODR violation; update uses. |
| * ipa-prop.c (struct type_change_info): Rename to ... |
| (prop_type_change_info): ... this; update uses. |
| * ggc-page.c (globals): Rename to ... |
| (static struct ggc_globals): ... this; update uses. |
| * tree-ssa-loop-im.c (mem_ref): Rename to ... |
| (im_mem_ref): ... this; update uses. |
| * ggc-common.c (loc_descriptor): Rename to ... |
| (ggc_loc_descriptor): ... this; update uses. |
| * lra-eliminations.c (elim_table): Rename to ... |
| (lra_elim_table): ... this; update uses. |
| * bitmap.c (output_info): Rename to ... |
| (bitmap_output_info): ... this; update uses. |
| * gcse.c (expr): Rename to ... |
| (gcse_expr) ... this; update uses. |
| (occr): Rename to ... |
| (gcse_occr): .. this; update uses. |
| * tree-ssa-copy.c (prop_value_d): Rename to ... |
| (prop_value_t): ... this. |
| * predict.c (block_info_def): Rename to ... |
| (block_info): ... this; update uses. |
| (edge_info_def): Rename to ... |
| (edge_info): ... this; update uses. |
| * profile.c (bb_info): Rename to ... |
| (bb_profile_info): ... this; update uses. |
| * alloc-pool.c (output_info): Rename to ... |
| (pool_output_info): ... this; update uses. |
| * ipa-cp.c (topo_info): Rename to .. |
| (ipa_topo_info): ... this; update uses. |
| * tree-nrv.c (nrv_data): Rename to ... |
| (nrv_data_t): ... this; update uses. |
| * ipa-split.c (bb_info): Rename to ... |
| (split_bb_info): ... this one. |
| * profile.h (edge_info): Rename to ... |
| (edge_profile_info): ... this one; update uses. |
| * dse.c (bb_info): Rename to ... |
| (dse_bb_info): ... this one; update uses. |
| * cprop.c (occr): Rename to ... |
| (cprop_occr): ... this one; update uses. |
| (expr): Rename to ... |
| (cprop_expr): ... this one; update uses. |
| |
| 2014-09-22 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in (check-parallel-%): Add @. |
| |
| 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/geniterators.sh: New. |
| * config/aarch64/iterators.md (VDQF_DF): New. |
| * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h. |
| * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove. |
| |
| 2014-09-22 Peter A. Bigot <pab@pabigot.com> |
| |
| * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of |
| -lnosys when -msim absent. |
| |
| 2014-09-22 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs. |
| |
| 2014-09-22 Richard Biener <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_init_constructor): Do not leave |
| non-GIMPLE vector constructors around. |
| * tree-cfg.c (verify_gimple_assign_single): Verify that |
| CONSTRUCTORs have gimple elements. |
| |
| 2014-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63328 |
| * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts |
| insert a debug source bind stmt setting DEBUG_EXPR_DECL |
| instead of a normal gimple assignment stmt. |
| |
| 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/bfin/bfin.md: Fix use of constraints in define_split. |
| |
| 2014-09-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c (ix86_cannot_change_mode_class): Remove |
| GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test. |
| |
| 2014-09-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h: Include hash-table.h. |
| (target_hard_regs): Add a finalize method and a x_simplifiable_subregs |
| field. |
| * target-globals.c (target_globals::~target_globals): Call |
| hard_regs->finalize. |
| * rtl.h (subreg_shape): New structure. |
| (shape_of_subreg): New function. |
| (simplifiable_subregs): Declare. |
| * reginfo.c (simplifiable_subreg): New structure. |
| (simplifiable_subregs_hasher): Likewise. |
| (simplifiable_subregs): New function. |
| (invalid_mode_changes): Delete. |
| (alid_mode_changes, valid_mode_changes_obstack): New variables. |
| (record_subregs_of_mode): Remove subregs_of_mode parameter. |
| Record valid mode changes in valid_mode_changes. |
| (find_subregs_of_mode): Remove subregs_of_mode parameter. |
| Update calls to record_subregs_of_mode. |
| (init_subregs_of_mode): Remove invalid_mode_changes and bitmap |
| handling. Initialize new variables. Update call to |
| find_subregs_of_mode. |
| (invalid_mode_change_p): Check new variables instead of |
| invalid_mode_changes. |
| (finish_subregs_of_mode): Finalize new variables instead of |
| invalid_mode_changes. |
| (target_hard_regs::finalize): New function. |
| * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p |
| even when CLASS_CANNOT_CHANGE_MODE is undefined. |
| |
| 2014-09-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * combine.c (subst): Use simplify_subreg_regno rather than |
| REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes. |
| |
| 2014-09-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (subreg_info): Expand commentary |
| * rtlanal.c (subreg_get_info): Likewise. |
| |
| 2014-09-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET) |
| (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) |
| (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant. |
| |
| 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * config/arm/arm.c: #include "tm-constrs.h" |
| (thumb1_size_rtx_costs): Adjust rtx costs. |
| |
| 2014-09-22 Hans-Peter Nilsson <hp@axis.com> |
| |
| * configure.ac (target_header_dir): Move block defining |
| this to before the block setting inhibit_libc. |
| (inhibit_libc): When considering $with_headers, just |
| check it it's explicitly "no". If not, also check if |
| $target_header_dir/stdio.h is present. If not, set |
| inhibit_libc=true. |
| * configure: Regenerate. |
| |
| 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com> |
| |
| * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different |
| insn for divides by integer powers of two. |
| (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New. |
| (mod<mode>3): Fix formatting. |
| (three anonymous define_insn and two define_split): Delete. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64, |
| *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO. |
| (floatdisf2_internal2): Ditto. |
| (ashrdi3_no_power): Ditto. Fix formatting. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2, |
| popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb): |
| Tidy. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a |
| constant, use addsi3 directly. |
| (three anonymous define_insn, two define_split): Delete. |
| (sub<mode>3): Move. Do not allow constant second operand. |
| Generate different insn for constant first operand. |
| (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New. |
| (subf<mode>3_imm): New. |
| (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required. |
| (*plus_ltu<mode>): Only handle registers. |
| (*plus_ltu<mode>_1): New. Handle integer third operand. |
| (*plus_gtu<mode>): Only handle registers. |
| (*plus_gtu<mode>_1): New. Handle integer third operand. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (iorxor): New code_iterator. |
| (iorxor): New code_attr. |
| (IORXOR): New code_attr. |
| (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete. |
| (ior<mode>3, xor<mode>3): Delete. |
| (<iorxor><mode>3): New. |
| (splitter for "big" integer ior, xor): New. |
| (*bool<mode>3): Move. Also handle AND. |
| (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND. |
| (splitter for "big" integer ior, xor): Delete. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete. |
| (two anonymous define_insn and two define_split): Delete. |
| (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn. |
| (two anonymous define_insn and two define_split): Delete. |
| (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New. |
| |
| 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (ca_operand): Allow subregs. |
| (input_operand): Do not allow ca_operand. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the |
| carry bit, allow SImode and Pmode. |
| (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS. |
| |
| 2014-09-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra |
| clobbered registers using clobber_reg. Remove UNSPEC decoration. |
| * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove. |
| (*call_rex64_ms_sysv): Remove. |
| (*call_value_rex64_ms_sysv): Ditto. |
| * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove. |
| |
| 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of |
| operand 3 to "CnL". |
| |
| 2014-09-20 Andreas Schwab <schwab@suse.de> |
| |
| * config/ia64/ia64.md: Remove constraints from define_split |
| patterns. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; |
| add ctors. |
| (possible_polymorphic_call_targets, |
| dump_possible_polymorphic_call_targets, |
| possible_polymorphic_call_target_p, |
| possible_polymorphic_call_target_p): Simplify. |
| (get_dynamic_type): Remove. |
| * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove. |
| (clear_speculation): Bring to ipa-deivrt.h |
| (get_class_context): Rename to ... |
| (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one. |
| (contains_type_p): Update. |
| (get_dynamic_type): Rename to ... |
| ipa_polymorphic_call_context::get_dynamic_type(): ... this one. |
| (possible_polymorphic_call_targets): UPdate. |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update. |
| * ipa-prop.c (ipa_analyze_call_uses): Update. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-visibility.c (varpool_node::externally_visible_p): Do not |
| privatize dynamic TLS variables. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * diagnostic.c (warning_n): New function. |
| * diagnostic-core.h (warning_n): Declare. |
| * ipa-devirt.c (ipa_devirt): Handle singulars correctly; |
| output dynamic counts when available. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/63255 |
| * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering |
| issue in setting body_removed flag. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR c++/61825 |
| * c-family/c-common.c (handle_alias_ifunc_attribute): Check |
| that visibility change is possible |
| (handle_weakref_attribute): Likewise. |
| * cgraph.h (symtab_node): Add method get_create and |
| field refuse_visibility_changes. |
| (symtab_node::get_create): New method. |
| * fold-const.c (tree_single_nonzero_warnv_p): Use get_create. |
| * varasm.c (mark_weak): Verify that visibility change is possible. |
| |
| 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing |
| for base_reg_operand to be common between LO_SUM and PLUS. |
| (fusion_gpr_mem_combo): New predicate to match a fused address |
| that combines the addis and memory offset address. |
| |
| * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change |
| calling signature. |
| (emit_fusion_gpr_load): Likewise. |
| |
| * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling |
| signature to pass each argument separately, rather than |
| using an operands array. Rewrite the insns found by peephole2 to |
| be a single insn, rather than hoping the insns will still be |
| together when the peephole pass is done. Drop being called via a |
| normal peephole. |
| (emit_fusion_gpr_load): Change calling signature to be called from |
| the fusion_gpr_load_<mode> insns with a combined memory address |
| instead of the peephole pass passing the addis and offset |
| separately. |
| |
| * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR |
| fusion. |
| (power8 fusion peephole): Drop support for doing power8 via a |
| normal peephole that was created by the peephole2 pass. |
| (power8 fusion peephole2): Create a new insn with the fused |
| address, so that the fused operation is kept together after |
| register allocation is done. |
| (fusion_gpr_load_<mode>): Likewise. |
| |
| 2014-09-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/63286 |
| * tree.c (need_assembler_name_p): Do not mangle variadic types. |
| |
| 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * recog.c (scratch_operand): Do not simply allow all hard registers: |
| only allow those that are allocatable. |
| |
| 2014-09-19 Felix Yang <felix.yang@huawei.com> |
| |
| * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update |
| comments and fix spacing to conform to coding style. |
| |
| 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * genrecog.c (validate_pattern): Allow empty constraints in |
| a match_scratch. |
| |
| 2014-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dwarf2out.c (decl_ultimate_origin): Update comment. |
| * tree.c (block_ultimate_origin): Same. |
| |
| 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): |
| Update GCC version name to GCC 5. |
| (rs6000_function_arg_boundary): Likewise. |
| (rs6000_function_arg): Likewise. |
| |
| 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/sh/sh.md: Fix use of constraints in define_split. |
| |
| 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR ipa/61998 |
| * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL. |
| |
| 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/md.texi (Modifiers): Consistently use "read/write" |
| nomenclature rather than "input/output". |
| * genrecog.c (constraints_supported_in_insn_p): New. |
| (validate_pattern): If needed, also check constraints on |
| MATCH_SCRATCH operands. |
| * genoutput.c (validate_insn_alternatives): Catch earlyclobber |
| operands with no '=' or '+' modifier. |
| |
| 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark |
| scratch register as written. |
| |
| 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_epilogue): Remove bogus |
| assignment. |
| |
| 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New |
| expanders. |
| |
| 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| PR target/62662 |
| * config/s390/s390.c (s390_emit_epilogue): When doing the return |
| address load optimization force s390_optimize_prologue to leave it |
| that way. Only do the optimization if we already decided to push |
| r14 into a stack slot. |
| |
| 2014-09-19 Marat Zakirov <m.zakirov@samsung.com> |
| |
| * asan.c (build_check_stmt): Alignment arg was added. |
| (asan_expand_check_ifn): Optimization for alignment >= 8. |
| |
| 2014-09-19 Olivier Hainque <hainque@adacore.com> |
| |
| * config/i386/vxworksae.h: Remove obsolete definitions. |
| (STACK_CHECK_PROTECT): Define. |
| * config/i386/vx-common.h: Remove. Merge contents within |
| config/i386/vxworks.h. |
| * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of |
| i386/vx-common.h. |
| |
| 2014-09-19 Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (powerpc-wrs-vxworksmils): New configuration. |
| * config/rs6000/t-vxworksmils: New file. |
| * config/rs6000/vxworksmils.h: New file. |
| |
| 2014-09-19 Olivier Hainque <hainque@adacore.com> |
| |
| * varasm.c (default_section_type_flags): Flag .persistent.bss |
| sections as SECTION_BSS. |
| |
| 2014-09-19 Nick Clifton <nickc@redhat.com> |
| |
| * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the |
| pop'ed registers so that DCE does not eliminate them. |
| |
| 2014-09-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/63298 |
| * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition. |
| |
| 2014-09-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * system.h (LIBGCC2_TF_CEXT): Poison. |
| * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove. |
| * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise. |
| * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise. |
| |
| 2014-09-19 Kito Cheng <kito@0xlab.org> |
| |
| * except.h: Fix header guard. |
| * addresses.h: Add missing header guard. |
| * cfghooks.h: Likewise. |
| * collect-utils.h: Likewise. |
| * collect2-aix.h: Likewise. |
| * conditions.h: Likewise. |
| * cselib.h: Likewise. |
| * dwarf2asm.h: Likewise. |
| * graphds.h: Likewise. |
| * graphite-scop-detection.h: Likewise. |
| * gsyms.h: Likewise. |
| * hw-doloop.h: Likewise. |
| * incpath.h: Likewise. |
| * ipa-inline.h: Likewise. |
| * ipa-ref.h: Likewise. |
| * ira-int.h: Likewise. |
| * ira.h: Likewise. |
| * lra-int.h: Likewise. |
| * lra.h: Likewise. |
| * lto-section-names.h: Likewise. |
| * read-md.h: Likewise. |
| * reload.h: Likewise. |
| * rtl-error.h: Likewise. |
| * sdbout.h: Likewise. |
| * targhooks.h: Likewise. |
| * tree-affine.h: Likewise. |
| * xcoff.h: Likewise. |
| * xcoffout.h: Likewise. |
| |
| 2014-09-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR debug/63285 |
| * haifa-sched.c (schedule_block): Advance cycle at the end of BB |
| if advance != 0. |
| |
| 2014-09-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/61360 |
| * lra.c (lra): Call recog_init. |
| |
| 2014-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/62017 |
| * asan.c (transform_statements): Don't instrument clobber statements. |
| |
| 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type |
| to neon_load1_1reg<q>. |
| |
| 2014-09-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/63284 |
| * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block |
| if there are only debug stmts after the noreturn call, instead |
| remove the debug stmts. |
| |
| 2014-09-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (type_pair, default_hashset_traits): New types. |
| (odr_types_equivalent_p): Use pair hash. |
| (odr_subtypes_equivalent_p): Likewise, do structural compare |
| on ODR types that may be mismatched. |
| (warn_odr): Support warning when only one field is given. |
| (odr_types_equivalent_p): Strenghten comparsions made; |
| support VOIDtype. |
| (add_type_duplicate): Update VISITED hash set. |
| |
| 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config.gcc (*-*-rtems*): Default to 'rtems' thread model. |
| Enable selection of 'posix' or no thread model. |
| |
| 2014-09-17 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_option_override): Reject -mfpu=neon |
| when architecture is older than ARMv7. |
| |
| 2014-09-16 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/61853 |
| * config/pa/pa.c (pa_function_value): Directly handle aggregates |
| that fit exactly in a word or double word. |
| |
| 2014-09-16 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of |
| zmm/k regs support. |
| |
| 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_vector_extract): Handle V32HI and V64QI modes. |
| * config/i386/sse.md |
| (define_mode_iterator VI48F_256): New. |
| (define_mode_attr extract_type): Ditto. |
| (define_mode_attr extract_suf): Ditto. |
| (define_mode_iterator AVX512_VEC): Ditto. |
| (define_expand |
| "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use |
| AVX512_VEC. |
| (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New. |
| (define_insn |
| "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"): |
| Ditto. |
| (define_mode_attr extract_type_2): Ditto. |
| (define_mode_attr extract_suf_2): Ditto. |
| (define_mode_iterator AVX512_VEC_2): Ditto. |
| (define_expand |
| "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use |
| AVX512_VEC_2 mode iterator. |
| (define_insn "vec_extract_hi_<mode>_maskm"): Ditto. |
| (define_expand "avx512vl_vextractf128<mode>"): Ditto. |
| (define_insn_and_split "vec_extract_lo_<mode>"): Delete. |
| (define_insn "vec_extract_lo_<mode><mask_name>"): New. |
| (define_split for V16FI mode): Ditto. |
| (define_insn_and_split "vec_extract_lo_<mode>"): Delete. |
| (define_insn "vec_extract_lo_<mode><mask_name>"): New. |
| (define_split for VI8F_256 mode): Ditto. |
| (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking. |
| (define_insn_and_split "vec_extract_lo_<mode>"): Delete. |
| (define_insn "vec_extract_lo_<mode><mask_name>"): New. |
| (define_split for VI4F_256 mode): Ditto. |
| (define_insn "vec_extract_lo_<mode>_maskm"): Ditto. |
| (define_insn "vec_extract_hi_<mode>_maskm"): Ditto. |
| (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking. |
| (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes. |
| (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition. |
| (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto. |
| (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"): |
| Update `type' attribute, remove explicit `memory' attribute calculation. |
| |
| 2014-09-16 Kito Cheng <kito@0xlab.org> |
| |
| * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and |
| ira_spilled_reg_stack_slots_num if using lra. |
| (do_reload): Remove release ira_spilled_reg_stack_slots part. |
| * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to |
| make sure not using lra. |
| (ira_reuse_stack_slot): Likewise. |
| (ira_mark_new_stack_slot): Likewise. |
| |
| 2014-09-15 Andi Kleen <ak@linux.intel.com> |
| |
| * function.c (allocate_struct_function): Force |
| DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when |
| profiling is disabled. |
| |
| 2014-09-15 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c, |
| config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c, |
| emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c, |
| reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P |
| macro with statically checked member functions. |
| * rtl.h (rtx_insn::deleted): New method. |
| (rtx_insn::set_deleted): Likewise. |
| (rtx_insn::set_undeleted): Likewise. |
| (INSN_DELETED_P): Remove. |
| |
| 2014-09-15 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the |
| result of emit_jump_insn_before to a new variable. |
| * jump.c (mark_jump_label): Change the type of insn to rtx_insn *. |
| (mark_jump_label_1): Likewise. |
| (mark_jump_label_asm): Likewise. |
| * reload1.c (gen_reload): Change type of tem to rtx_insn *. |
| * rtl.h (mark_jump_label): Adjust. |
| |
| 2014-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (dg_target_exps): Remove. |
| (check_gcc_parallelize): Change to just an upper bound number. |
| (check-%-subtargets): Always print the non-parallelized goals. |
| (check_p_vars, check_p_comma, check_p_subwork): Remove. |
| (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2, |
| check_p_numbers3, check_p_numbers4, check_p_numbers5, |
| check_p_numbers6): New variables. |
| (check_p_numbers): Set to sequence from 1 to 9999. |
| (check_p_subdirs): Set to sequence from 1 to minimum of |
| $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set, |
| or 128. |
| (check-%, check-parallel-%): Rewritten so that for parallelized |
| testing each job runs all the *.exp files, with |
| GCC_RUNTEST_PARALLELIZE_DIR set in environment. |
| |
| 2014-09-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/arc/arc-protos.h (arc_attr_type): Strengthen param from |
| rtx to rtx_insn *. |
| (arc_sets_cc_p): Likewise. |
| * config/arc/arc.c (arc_print_operand): Use methods of |
| "final_sequence" for clarity, and to enable strengthening of |
| locals "jump" and "delay" from rtx to rtx_insn *. |
| (arc_adjust_insn_length): Strengthen local "prev" from rtx to |
| rtx_insn *; use method of rtx_sequence for typesafety. |
| (arc_get_insn_variants): Use insn method of rtx_sequence for |
| typesafety. |
| (arc_pad_return): Likewise. |
| (arc_attr_type): Strengthen param from rtx to rtx_insn *. |
| (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a |
| dyn_cast to rtx_sequence *, using insn method for typesafety. |
| * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to |
| rtx_sequence * and use insn method when invoking get_attr_length. |
| * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx |
| to rtx_insn *. Replace a GET_CODE check with a dyn_cast to |
| rtx_sequence *, introducing a local "seq", using its insn method |
| from typesafety and clarity. |
| (add_sched_insns_for_speculation): Strengthen local "next" from |
| rtx to rtx_insn *. |
| * config/c6x/c6x.c (get_insn_side): Likewise for param "insn". |
| (predicate_insn): Likewise. |
| * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for |
| second param. |
| * config/cris/cris.c (cris_notice_update_cc): Likewise. |
| * config/epiphany/epiphany-protos.h |
| (extern void epiphany_insert_mode_switch_use): Likewise for param |
| "insn". |
| (get_attr_sched_use_fpu): Likewise for param. |
| * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use): |
| Likewise for param "insn". |
| * config/epiphany/mode-switch-use.c (insert_uses): Likewise for |
| param "insn" of "target_insert_mode_switch_use" callback. |
| * config/frv/frv.c (frv_insn_unit): Likewise for param "insn". |
| (frv_issues_to_branch_unit_p): Likewise. |
| (frv_pack_insn_p): Likewise. |
| (frv_compare_insns): Strengthen locals "insn1" and "insn2" from |
| const rtx * (i.e. mutable rtx_def * const *) to |
| rtx_insn * const *. |
| * config/i386/i386-protos.h (standard_sse_constant_opcode): |
| Strengthen first param from rtx to rtx_insn *. |
| (output_fix_trunc): Likewise. |
| * config/i386/i386.c (standard_sse_constant_opcode): Likewise. |
| (output_fix_trunc): Likewise. |
| (core2i7_first_cycle_multipass_filter_ready_try): Likewise for |
| local "insn". |
| (min_insn_size): Likewise for param "insn". |
| (get_mem_group): Likewise. |
| (is_cmp): Likewise. |
| (get_insn_path): Likewise. |
| (get_insn_group): Likewise. |
| (count_num_restricted): Likewise. |
| (fits_dispatch_window): Likewise. |
| (add_insn_window): Likewise. |
| (add_to_dispatch_window): Likewise. |
| (debug_insn_dispatch_info_file): Likewise. |
| * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for |
| first param. |
| * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param |
| "cmp" and local "prev". |
| (m32c_output_compare): Likewise for param "insn". |
| * config/m32r/predicates.md (define_predicate "small_insn_p"): Add |
| a checked cast to rtx_insn * on "op" after we know it's an INSN_P. |
| (define_predicate "large_insn_p"): Likewise. |
| * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen |
| param from rtx to rtx_insn *. |
| (attr_op_mem m68k_sched_attr_op_mem): Likewise. |
| * config/m68k/m68k.c (sched_get_attr_size_int): Likewise. |
| (m68k_sched_attr_size): Likewise. |
| (sched_get_opxy_mem_type): Likewise for param "insn". |
| (m68k_sched_attr_op_mem): Likewise. |
| (sched_mem_operand_p): Likewise. |
| * config/mep/mep-protos.h (mep_multi_slot): Likewise for param. |
| * config/mep/mep.c (mep_multi_slot): Likewise. |
| * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for |
| first param. |
| (mips_sync_loop_insns): Likewise. |
| * config/mips/mips.c (mips_print_operand_punctuation): Use insn |
| method of "final_sequence" for typesafety. |
| (mips_process_sync_loop): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| (mips_output_sync_loop): Likewise. |
| (mips_sync_loop_insns): Likewise. |
| (mips_74k_agen_init): Likewise. |
| (mips_sched_init): Use NULL rather than NULL_RTX when working with |
| insns. |
| * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p): |
| Strengthen param "insn" from rtx to rtx_insn *. |
| * config/nds32/nds32.c (nds32_target_alignment): Likewise for |
| local "insn". |
| * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for param. |
| * config/pa/pa.c (pa_output_function_epilogue): Likewise for local |
| "insn". Use method of rtx_sequence for typesafety. |
| (branch_to_delay_slot_p): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| (branch_needs_nop_p): Likewise. |
| (use_skip_p): Likewise. |
| (pa_insn_refs_are_delayed): Likewise. |
| * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise |
| for locals "insn", "ninsn". |
| * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param |
| "insn". |
| (is_cracked_insn): Likewise. |
| (is_branch_slot_insn): Likewise. |
| (is_nonpipeline_insn): Likewise. |
| (insn_terminates_group_p): Likewise. |
| (insn_must_be_first_in_group): Likewise. |
| (insn_must_be_last_in_group): Likewise. |
| (force_new_group): Likewise for param "next_insn". |
| * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param |
| "insn". |
| (s390_sched_score): Likewise. |
| * config/sh/sh-protos.h (output_branch): Likewise for param 2. |
| (rtx sfunc_uses_reg): Likewise for sole param. |
| * config/sh/sh.c (sh_print_operand): Use insn method of |
| final_sequence for typesafety. |
| (output_branch): Strengthen param "insn" from rtx to rtx_insn *. |
| Use insn method of final_sequence for typesafety. |
| (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *. |
| * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise |
| for param. |
| (eligible_for_return_delay): Likewise. |
| (eligible_for_sibcall_delay): Likewise. |
| * config/sparc/sparc.c (eligible_for_call_delay): Likewise. |
| (eligible_for_return_delay): Likewise. |
| (eligible_for_sibcall_delay): Likewise. |
| * config/stormy16/stormy16-protos.h |
| (xstormy16_output_cbranch_hi): Likewise for final param. |
| (xstormy16_output_cbranch_si): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise. |
| (xstormy16_output_cbranch_si): Likewise. |
| * config/v850/v850-protos.h (notice_update_cc): Likewise. |
| * config/v850/v850.c (notice_update_cc): Likewise. |
| |
| * final.c (get_attr_length_1): Strengthen param "insn" and param |
| of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast. |
| (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *. |
| (get_attr_min_length): Likewise. |
| (shorten_branches): Likewise for signature of locals "length_fun" |
| and "inner_length_fun". Introduce local rtx_sequence * "seqn" |
| from a checked cast and use its methods for clarity and to enable |
| strengthening local "inner_insn" from rtx to rtx_insn *. |
| * genattr.c (gen_attr): When writing out the prototypes of the |
| various generated "get_attr_" functions, strengthen the params of |
| the non-const functions from rtx to rtx_insn *. |
| Similarly, strengthen the params of insn_default_length, |
| insn_min_length, insn_variable_length_p, insn_current_length. |
| (main): Similarly, strengthen the param of num_delay_slots, |
| internal_dfa_insn_code, insn_default_latency, bypass_p, |
| insn_latency, min_issue_delay, print_reservation, |
| insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and |
| "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable |
| to hook_int_rtx_insn_unreachable. |
| * genattrtab.c (write_attr_get): When writing out the generated |
| "get_attr_" functions, strengthen the param "insn" from rtx to |
| rtx_insn *, eliminating a checked cast. |
| (make_automaton_attrs): When writing out prototypes of |
| "internal_dfa_insn_code_", "insn_default_latency_" functions |
| and the "internal_dfa_insn_code" and "insn_default_latency" |
| callbacks, strengthen their params from rtx to rtx_insn * |
| * genautomata.c (output_internal_insn_code_evaluation): When |
| writing out code, add a checked cast from rtx to rtx_insn * when |
| invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code. |
| (output_dfa_insn_code_func): Strengthen param of generated |
| function "dfa_insn_code_enlarge" from rtx to rtx_insn *. |
| (output_trans_func): Likewise for generated function |
| "state_transition". |
| (output_internal_insn_latency_func): When writing out generated |
| function "internal_insn_latency", rename params from "insn" and |
| "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce |
| locals "insn" and "insn2" as rtx_insn * with checked casts once |
| we've proven that we're not dealing with const0_rtx. |
| (output_insn_latency_func): Strengthen param of generated |
| function "insn_latency" from rtx to rtx_insn *. |
| (output_print_reservation_func): Likewise for generated function |
| "print_reservation". |
| (output_insn_has_dfa_reservation_p): Likewise for generated |
| function "insn_has_dfa_reservation_p". |
| * hooks.c (hook_int_rtx_unreachable): Rename to... |
| (hook_int_rtx_insn_unreachable): ...this, and strengthen param |
| from rtx to rtx_insn *. |
| * hooks.h (hook_int_rtx_unreachable): Likewise. |
| (extern int hook_int_rtx_insn_unreachable): Likewise. |
| * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *. |
| (get_attr_min_length): Likewise. |
| * recog.c (get_enabled_alternatives): Likewise. |
| * recog.h (alternative_mask get_enabled_alternatives): Likewise. |
| * reorg.c (find_end_label): Introduce local rtx "pat" and |
| strengthen local "insn" from rtx to rtx_insn *. |
| (redundant_insn): Use insn method of "seq" rather than element for |
| typesafety; strengthen local "control" from rtx to rtx_insn *. |
| * resource.c (mark_referenced_resources): Add checked cast to |
| rtx_insn * within INSN/JUMP_INSN case. |
| (mark_set_resources): Likewise. |
| * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from |
| rtx to rtx_insn *. |
| |
| 2014-09-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen |
| param "label" from rtx to rtx_insn *. |
| * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab" |
| and local "op". |
| * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes. |
| (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise. |
| (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise. |
| (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise. |
| * final.c (default_label_align_after_barrier_max_skip): Strengthen |
| param from rtx to rtx_insn *. |
| (default_loop_align_max_skip): Likewise. |
| (default_label_align_max_skip): Likewise. |
| (default_jump_align_max_skip): Likewise. |
| * target.def (label_align_after_barrier_max_skip): Likewise. |
| (loop_align_max_skip): Likewise. |
| (label_align_max_skip): Likewise. |
| (jump_align_max_skip): Likewise. |
| * targhooks.h (default_label_align_after_barrier_max_skip): Likewise. |
| (default_loop_align_max_skip): Likewise. |
| (default_label_align_max_skip): Likewise. |
| (default_jump_align_max_skip): Likewise. |
| |
| 2014-09-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/arc/arc.c (arc_can_follow_jump): Strengthen both params |
| from const_rtx to const rtx_insn *. Update union members from rtx |
| to rtx_insn *. |
| * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change. |
| * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to... |
| (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and |
| strengthen both params from const_rtx to const rtx_insn *. |
| * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise. |
| (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise. |
| * reorg.c (follow_jumps): Strengthen param "jump" from rtx to |
| rtx_insn *. |
| * target.def (can_follow_jump): Strengthen both params from |
| const_rtx to const rtx_insn *, and update default implementation |
| from hook_bool_const_rtx_const_rtx_true to |
| hook_bool_const_rtx_insn_const_rtx_insn_true. |
| |
| 2014-09-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * sched-deps.c (deps_start_bb): Strengthen param "head" and local |
| "insn" from rtx to rtx_insn *. |
| * sched-int.h (deps_start_bb): Likewise for 2nd param. |
| |
| 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_insn "vcvtph2ps<mask_name>"): Add masking. |
| (define_insn "*vcvtph2ps_load<mask_name>"): Ditto. |
| (define_insn "vcvtph2ps256<mask_name>"): Ditto. |
| (define_expand "vcvtps2ph_mask"): New. |
| (define_insn "*vcvtps2ph<mask_name>"): Add masking. |
| (define_insn "*vcvtps2ph_store<mask_name>"): Ditto. |
| (define_insn "vcvtps2ph256<mask_name>"): Ditto. |
| |
| 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL): |
| New. |
| (define_mode_iterator VI24_AVX512BW_1): Ditto. |
| (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto. |
| (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto. |
| (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable |
| also for TARGET_AVX512VL. |
| (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL. |
| |
| 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * doc/install.texi (Options specification): add |
| --disable-libsanitizer item. |
| |
| 2014-09-14 James Clarke <jrtc27@jrtc27.com> |
| Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR target/61407 |
| * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10 |
| and above. |
| * config/darwin-driver.c (darwin_find_version_from_kernel): Removed |
| kernel version check to avoid incrementing it after every major OS X |
| release. |
| (darwin_default_min_version): Avoid static memory buffer. |
| |
| 2014-09-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (need_assembler_name_p): Store C++ type mangling only |
| for aggregates. |
| |
| 2014-09-13 Marek Polacek <polacek@redhat.com> |
| |
| * tree.c (protected_set_expr_location): Don't check whether T is |
| non-null here. |
| |
| 2014-09-12 DJ Delorie <dj@redhat.com> |
| |
| * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM. |
| (extend_and_shift1_hipsi2): Likewise. |
| (extend_and_shift2_hipsi2): Likewise. |
| |
| 2014-09-12 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX |
| with NULL when dealing with an insn. |
| * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move" |
| from rtx to rtx_insn *. |
| * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from |
| const_rtx to const rtx_insn *. |
| * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast. |
| |
| 2014-09-12 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an |
| assert. |
| |
| 2014-09-12 Joseph Myers <joseph@codesourcery.com> |
| |
| * target.def (libgcc_floating_mode_supported_p): New hook. |
| * targhooks.c (default_libgcc_floating_mode_supported_p): New |
| function. |
| * targhooks.h (default_libgcc_floating_mode_supported_p): Declare. |
| * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE) |
| (LIBGCC2_HAS_TF_MODE): Remove. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook. |
| * doc/tm.texi: Regenerate. |
| * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each |
| machine mode. |
| * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE) |
| (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison. |
| * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define. |
| * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New |
| function. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. |
| * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define. |
| * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define. |
| * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define. |
| * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define. |
| * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): |
| Remove. |
| * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): |
| New macro. |
| (ia64_libgcc_floating_mode_supported_p): New function. |
| * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove. |
| * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE) |
| (IA64_NO_LIBGCC_TFMODE): Define. |
| * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove. |
| * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New macro. |
| (pdp11_scalar_mode_supported_p): New function. |
| * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove. |
| * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove. |
| |
| 2014-09-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63237 |
| * gimple-fold.c (get_maxval_strlen): Gimplify string length. |
| |
| 2014-09-12 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.c (integer_each_onep): New function. |
| * tree.h (integer_each_onep): Declare it. |
| * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and |
| -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to |
| (X & 1) == 0 for vector and complex. |
| |
| 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table |
| for A57. |
| (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP |
| cost to spilling from integer to FP registers. |
| |
| 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register |
| move handling. |
| (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves |
| are now handled correctly. |
| |
| 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost |
| handling of CALLER_SAVE_REGS and POINTER_REGS. |
| |
| 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change |
| the number of hard registers. |
| |
| 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_iterator VI48_AVX512VL): New. |
| (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from |
| "avx512f_vternlog<mode>_maskz" and update mode iterator. |
| (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename |
| from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator. |
| (define_insn "<avx512>_vternlog<mode>_mask"): Rename from |
| "avx512f_vternlog<mode>_mask" and update mode iterator. |
| (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename |
| from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode |
| iterator. |
| (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from |
| "avx512f_<rotate>v<mode><mask_name>" and update mode iterator. |
| (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from |
| "avx512f_<rotate><mode><mask_name>" and update mode iterator. |
| (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator. |
| (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto. |
| |
| 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md (VI128_256): Delete. |
| (define_mode_iterator VI124_256): New. |
| (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto. |
| (define_expand "<code><mode>3<mask_name><round_name>"): Delete. |
| (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New. |
| (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from |
| "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator. |
| (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New. |
| (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto. |
| (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode |
| iterator. |
| (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation |
| in presence of AVX-512. |
| |
| 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "<avx512>_gathersi<mode>"): Rename from |
| "avx512f_gathersi<mode>". |
| (define_insn "*avx512f_gathersi<mode>"): Use VI48F. |
| (define_insn "*avx512f_gathersi<mode>_2"): Ditto. |
| (define_expand "<avx512>_gatherdi<mode>"): Rename from |
| "avx512f_gatherdi<mode>". |
| (define_insn "*avx512f_gatherdi<mode>"): Use VI48F. |
| (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit |
| wide versions. |
| (define_expand "<avx512>_scattersi<mode>"): Rename from |
| "avx512f_scattersi<mode>". |
| (define_insn "*avx512f_scattersi<mode>"): Use VI48F. |
| (define_expand "<avx512>_scatterdi<mode>"): Rename from |
| "avx512f_scatterdi<mode>". |
| (define_insn "*avx512f_scatterdi<mode>"): Use VI48F. |
| |
| 2014-09-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira.h (ira_finish_once): Delete. |
| * ira-int.h (target_ira_int::~target_ira_int): Declare. |
| (target_ira_int::free_ira_costs): Likewise. |
| (target_ira_int::free_register_move_costs): Likewise. |
| (ira_finish_costs_once): Delete. |
| * ira.c (free_register_move_costs): Replace with... |
| (target_ira_int::free_register_move_costs): ...this new function. |
| (target_ira_int::~target_ira_int): Define. |
| (ira_init): Call free_register_move_costs as a member function rather |
| than a global function. |
| (ira_finish_once): Delete. |
| * ira-costs.c (free_ira_costs): Replace with... |
| (target_ira_int::free_ira_costs): ...this new function. |
| (ira_init_costs): Call free_ira_costs as a member function rather |
| than a global function. |
| (ira_finish_costs_once): Delete. |
| * target-globals.c (target_globals::~target_globals): Call the |
| target_ira_int destructor. |
| * toplev.c: Include lra.h. |
| (finalize): Call lra_finish_once rather than ira_finish_once. |
| |
| 2014-09-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt (flto-odr-type-merging): New flag. |
| * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale. |
| (types_same_for_odr): Likewise. |
| (odr_subtypes_equivalent_p): Likewise. |
| (add_type_duplicate): Do not walk type variants. |
| (register_odr_type): New function. |
| * ipa-utils.h (register_odr_type): Declare. |
| (odr_type_p): New function. |
| * langhooks.c (lhd_set_decl_assembler_name): Do not compute |
| TYPE_DECLs |
| * doc/invoke.texi (-flto-odr-type-merging): Document. |
| * tree.c (need_assembler_name_p): Compute ODR names when asked |
| for it. |
| * tree.h (DECL_ASSEMBLER_NAME): Update comment. |
| |
| 2014-09-11 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/63228 |
| * config/i386/i386.c (ix86_option_override_internal): Also turn |
| off OPTION_MASK_ABI_X32 for -m16. |
| |
| 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator |
| GPR instead of P. |
| |
| 2014-09-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR target/58757 |
| * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN): |
| Directly forward to __*_DENORM_MIN__. |
| |
| 2014-09-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * rtl.h (LABEL_REF_LABEL): New macro. |
| |
| * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place |
| of XEXP (, 0), where we know that we have a LABEL_REF. |
| * cfgbuild.c (make_edges): Likewise. |
| (purge_dead_tablejump_edges): Likewise. |
| * cfgexpand.c (convert_debug_memory_address): Likewise. |
| * cfgrtl.c (patch_jump_insn): Likewise. |
| * combine.c (distribute_notes): Likewise. |
| * cse.c (hash_rtx_cb): Likewise. |
| (exp_equiv_p): Likewise. |
| (fold_rtx): Likewise. |
| (check_for_label_ref): Likewise. |
| * cselib.c (rtx_equal_for_cselib_1): Likewise. |
| (cselib_hash_rtx): Likewise. |
| * emit-rtl.c (mark_label_nuses): Likewise. |
| * explow.c (convert_memory_address_addr_space): Likewise. |
| * final.c (output_asm_label): Likewise. |
| (output_addr_const): Likewise. |
| * gcse.c (add_label_notes): Likewise. |
| * genconfig.c (walk_insn_part): Likewise. |
| * genrecog.c (validate_pattern): Likewise. |
| * ifcvt.c (cond_exec_get_condition): Likewise. |
| (noce_emit_store_flag): Likewise. |
| (noce_get_alt_condition): Likewise. |
| (noce_get_condition): Likewise. |
| * jump.c (maybe_propagate_label_ref): Likewise. |
| (mark_jump_label_1): Likewise. |
| (redirect_exp_1): Likewise. |
| (rtx_renumbered_equal_p): Likewise. |
| * lra-constraints.c (operands_match_p): Likewise. |
| * reload.c (operands_match_p): Likewise. |
| (find_reloads): Likewise. |
| * reload1.c (set_label_offsets): Likewise. |
| * reorg.c (get_branch_condition): Likewise. |
| * rtl.c (rtx_equal_p_cb): Likewise. |
| (rtx_equal_p): Likewise. |
| * rtlanal.c (reg_mentioned_p): Likewise. |
| (rtx_referenced_p): Likewise. |
| (get_condition): Likewise. |
| * sched-vis.c (print_value): Likewise. |
| * varasm.c (const_hash_1): Likewise. |
| (compare_constant): Likewise. |
| (const_rtx_hash_1): Likewise. |
| (output_constant_pool_1): Likewise. |
| |
| 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc, |
| tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor |
| instead of minus. |
| * config/rs6000/vector.md (cr6_test_for_zero_reverse, |
| cr6_test_for_lt_reverse): Ditto. |
| |
| 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/61489 |
| * doc/invoke.texi ([-Wmissing-field-initializers]): Update. |
| |
| 2014-09-11 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers, |
| TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP, |
| aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US, |
| aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD): |
| Delete. |
| |
| (aarch64_fold_builtin): Remove all reinterpret cases. |
| |
| * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete. |
| |
| * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete. |
| |
| * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>, |
| aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>, |
| aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>, |
| aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>, |
| aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>, |
| aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>, |
| aarch64_reinterpretv2df<mode>): Delete. |
| |
| * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete. |
| |
| * config/aarch64/arm_neon.h (vreinterpret_p8_f64, |
| vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32, |
| vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8, |
| vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8, |
| vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64, |
| vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64, |
| vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64, |
| vreinterpret_u32_f64): Use cast. |
| |
| * config/aarch64/iterators.md (VD_RE): Delete. |
| |
| 2014-09-11 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2). |
| (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16, |
| vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64, |
| vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64, |
| vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16, |
| vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64, |
| vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64): |
| Replace inline assembler with __aarch64_vset_lane_any. |
| |
| 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument |
| types. |
| (vmull_high_lane_s32): Likewise. |
| (vmull_high_lane_u16): Likewise. |
| (vmull_high_lane_u32): Likewise. |
| |
| 2014-09-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58678 |
| * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT. |
| |
| 2014-09-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/63223 |
| * config/avr/avr.md (*tablejump.3byte-pc): New insn. |
| (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber. |
| (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL. |
| |
| 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from |
| "avx512f_vpermi2var<mode>3_maskz" and update mode iterator. |
| (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"): |
| New. |
| (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename |
| from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode |
| iterator. |
| (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"): |
| New. |
| (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from |
| "avx512f_vpermi2var<mode>3_mask" and update mode iterator. |
| (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New. |
| (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from |
| "avx512f_vpermt2var<mode>3_maskz" and update mode iterator. |
| (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New. |
| (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename |
| from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode |
| iterator. |
| (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"): |
| New. |
| (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from |
| "avx512f_vpermt2var<mode>3_mask" and update mode iterator. |
| (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New. |
| |
| 2014-09-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try |
| to access removed nodes. |
| |
| 2014-09-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/63186 |
| * ipa-split.c (test_nonssa_use): Skip nonforced labels. |
| (mark_nonssa_use): Likewise. |
| (verify_non_ssa_vars): Verify all header blocks for label |
| definitions. |
| |
| 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_attr avx2_avx512): Rename from avx2_avx512bw. |
| (define_mode_iterator VI48F_256_512): Extend to AVX-512VL. |
| (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from |
| "<avx2_avx512f>_permvar<mode><mask_name>". |
| (define_insn "<avx512>_permvar<mode><mask_name>"): New. |
| (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"): |
| Rename from "<avx2_avx512f>_ashrv<mode><mask_name>". |
| (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"): |
| Ditto. |
| (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"): |
| Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>". |
| (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"): |
| Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>". |
| |
| 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for |
| V2DF, V4SF, DF, and DI modes. |
| (vsx_fmav2df2): Likewise. |
| (vsx_float_fix_<mode>2): Likewise. |
| (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise. |
| |
| 2014-09-10 Xinliang David Li <davidxl@google.com> |
| |
| PR target/63209 |
| * config/arm/arm.md (movcond_addsi): Handle case where source |
| and target operands are the same. |
| |
| 2014-09-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * final.c (this_is_asm_operands): Strengthen this variable from |
| rtx to const rtx_insn *. |
| * output.h (this_is_asm_operands): Likewise. |
| * rtl-error.c (location_for_asm): Strengthen param "insn" from |
| const_rtx to const rtx_insn *. |
| (diagnostic_for_asm): Likewise. |
| * rtl-error.h (error_for_asm): Likewise. |
| (warning_for_asm): Likewise. |
| |
| 2014-09-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * genextract.c (print_header): When writing out insn_extract to |
| insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *. |
| * recog.h (insn_extract): Strengthen the param from rtx to |
| rtx_insn *. |
| |
| 2014-09-10 Mike Stump <mikestump@comcast.net> |
| |
| * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in |
| 8.6.1. |
| |
| 2014-09-10 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag. |
| (analyze): Do not set analyze flag if expand_thunk returns false;. |
| (create_wrapper): Likewise. |
| * cgraphclones.c (duplicate_thunk_for_node): Likewise. |
| |
| 2014-09-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/61654 |
| * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the |
| new decl properly. Analyze the new thunk if it is expanded. |
| |
| 2014-09-10 Andreas Schwab <schwab@suse.de> |
| |
| * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn) |
| [USED_FOR_TARGET]: Define. |
| |
| 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.c (mips_secondary_reload_class): Handle |
| regno < 0 case. |
| |
| 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR |
| assignment. |
| |
| 2014-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE |
| and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED. |
| * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and |
| SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable |
| flag_delete_null_pointer_checks for them. |
| * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New. |
| * ubsan.c (instrument_bool_enum_load): Set *gsi back to |
| stmt's iterator. |
| (instrument_nonnull_arg, instrument_nonnull_return): New functions. |
| (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE |
| or SANITIZE_RETURNS_NONNULL_ATTRIBUTE. |
| (pass_ubsan::execute): Call instrument_nonnull_{arg,return}. |
| * doc/invoke.texi (-fsanitize=nonnull-attribute, |
| -fsanitize=returns-nonnull-attribute): Document. |
| |
| * ubsan.h (struct ubsan_mismatch_data): Removed. |
| (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument. |
| * ubsan.c (ubsan_source_location): For unknown locations, |
| pass { NULL, 0, 0 } instead of { "<unknown>", x, y }. |
| (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument. |
| Allow more than one location and arbitrary extra arguments passed |
| in ... instead of through MISMATCH pointer. |
| (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn, |
| ubsan_expand_null_ifn, ubsan_build_overflow_builtin, |
| instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust |
| callers. |
| |
| 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md |
| (define_mode_iterator VI48F): New. |
| (define_insn "<avx512>_compress<mode>_mask"): Rename from |
| "avx512f_compress<mode>_mask" and update mode iterator. |
| (define_insn "<avx512>_compressstore<mode>_mask"): Rename from |
| "avx512f_compressstore<mode>_mask" and update mode iterator. |
| (define_expand "<avx512>_expand<mode>_maskz"): Rename from |
| "avx512f_expand<mode>_maskz" and update mode iterator. |
| (define_insn "<avx512>_expand<mode>_mask"): Rename from |
| "avx512f_expand<mode>_mask" and update mode iterator. |
| |
| 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round, |
| avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask, |
| avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask, |
| avx512dq_rangepv4sf_mask. |
| * config/i386/sse.md |
| (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS, |
| UNSPEC_RANGE. |
| (define_insn "<mask_codefor>reducep<mode><mask_name>"): New. |
| (define_insn "reduces<mode>"): Ditto. |
| (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"): |
| Ditto. |
| (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto. |
| (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto. |
| (define_insn "avx512dq_vmfpclass<mode>"): Ditto.. |
| |
| 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/i386.c |
| (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round". |
| (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round". |
| (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask, |
| avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask, |
| avx512vl_getmantv2df_mask. |
| (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round, |
| avx512f_vgetmantv4sf_round. |
| * config/i386/sse.md |
| (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"): |
| Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update |
| mode iterator. |
| (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL. |
| (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto. |
| (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename |
| from "avx512f_scalef<mode><mask_name><round_name>" and update mode |
| iterator.. |
| (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"): |
| Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and |
| update mode iterator. |
| (define_expand |
| "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from |
| "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update |
| mode iterator. |
| (define_insn |
| "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename |
| from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and |
| update mode iterator. |
| (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename |
| from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode |
| iterator.. |
| (define_insn |
| "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from |
| "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update |
| mode iterator.. |
| (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"): |
| Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and |
| update mode iterator. |
| (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from |
| "avx512f_getmant<mode><round_saeonly_name>". |
| |
| 2014-09-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/63166 |
| * ipa-prop.c (compute_known_type_jump_func): Fix conditional. |
| |
| 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Maxim Kuznetsov <maxim.kuznetsov@intel.com> |
| Anna Tikhonova <anna.tikhonova@intel.com> |
| Ilya Tocar <ilya.tocar@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| Michael Zolotukhin <michael.v.zolotukhin@intel.com> |
| |
| * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New. |
| (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version. |
| (define_mode_iterator FMAMODE_AVX512): New. |
| (define_mode_iterator FMAMODE): Remove conditions. |
| (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator. |
| (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename |
| from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL |
| mode iterator. |
| (define_mode_iterator FMAMODE_NOVF512): Remove. |
| (define_insn "*fma_fmadd_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use |
| FMAMODE mode iterator. |
| (define_mode_iterator VF_SF_AVX512VL): New. |
| (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from |
| "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "*fma_fmsub_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use |
| FMAMODE mode iterator. |
| (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from |
| "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "*fma_fnmadd_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and |
| use FMAMODE mode iterator. |
| (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from |
| "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "*fma_fnmsub_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use |
| FMAMODE mode iterator. |
| (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from |
| "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"): |
| Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and |
| use VF_AVX512VL mode iterator. |
| (define_insn "*fma_fmaddsub_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and |
| remove subst usage. |
| (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from |
| "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "*fma_fmsubadd_<mode>"): Rename from |
| "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and |
| remove usage of subst. |
| (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"): |
| Use VF_SF_AVX512VL mode iterator. |
| (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from |
| "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode |
| iterator. |
| (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from |
| "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode |
| iterator. |
| |
| 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| Revert r213751: |
| * calls.c (precompute_arguments): Check |
| promoted_for_signed_and_unsigned_p and set the promoted mode. |
| (promoted_for_signed_and_unsigned_p): New function. |
| (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p |
| and set the promoted mode. |
| * expr.h (promoted_for_signed_and_unsigned_p): New function definition. |
| * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if |
| SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED. |
| |
| 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * opth-gen.awk: Generate mapping from cpp message reasons to the |
| options that enable them. |
| * doc/options.texi (CppReason): Document. |
| |
| 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * doc/invoke.texi (Wnormalized=): Update. |
| |
| 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/63195 |
| * config/rs6000/rs6000.md (*bool<mode>3): Allow only register |
| operands. Split off the constant operand alternative to ... |
| (*bool<mode>3_imm): New. |
| |
| 2014-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * rtl.h (single_set_2): Strengthen first param from const_rtx to |
| const rtx_insn *, and move prototype to above... |
| (single_set): ...this. Convert this from a macro to an inline |
| function, enforcing the requirement that the param is a const |
| rtx_insn *. |
| (find_args_size_adjust): Strengthen param from rtx to rtx_insn *. |
| |
| * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue): |
| Strengthen both params from rtx to rtx_insn *. |
| * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): |
| Likewise; introduce locals "producer_set", "consumer_set", using |
| them in place of "producer" and "consumer" when dealing with SET |
| rather than insn. |
| * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn * |
| when invoking single_set in region guarded by INSN_P. |
| (avr_out_bitop): Likewise. |
| (_reg_unused_after): Introduce local rtx_sequence * "seq" in |
| region guarded by GET_CODE check, using methods to strengthen |
| local "this_insn" from rtx to rtx_insn *, and for clarity. |
| * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"): |
| Strengthen local "insn" from rtx to rtx_insn *. |
| (define_insn_and_split "xload<mode>_A"): Likewise. |
| * config/bfin/bfin.c (trapping_loads_p): Likewise for param |
| "insn". |
| (find_load): Likewise for return type. |
| (workaround_speculation): Likewise for both locals named |
| "load_insn". |
| * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for |
| local "cc0_user". |
| * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise |
| for local "prev". |
| * config/h8300/h8300-protos.h (notice_update_cc): Likewise for |
| param 2. |
| * config/h8300/h8300.c (notice_update_cc): Likewise. |
| * config/i386/i386.c (ix86_flags_dependent): Likewise for params |
| "insn" and "dep_insn". |
| (exact_store_load_dependency): Likewise for both params. |
| (ix86_macro_fusion_pair_p): Eliminate local named "single_set" |
| since this now clashes with inline function. Instead, delay |
| calling single_set until the point where its needed, and then |
| assign the result to "compare_set" and rework the conditional that |
| follows. |
| * config/ia64/ia64.md (define_expand "tablejump"): Strengthen |
| local "last" from rtx to rtx_insn *. |
| * config/mips/mips-protos.h (mips_load_store_insns): Likewise for |
| second param. |
| (mips_store_data_bypass_p): Likewise for both params. |
| * config/mips/mips.c (mips_load_store_insns): Likewise for second |
| param. |
| (mips_store_data_bypass_p): Likewise for both params. |
| (mips_orphaned_high_part_p): Likewise for param "insn". |
| * config/mn10300/mn10300.c (extract_bundle): Likewise. |
| (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2". |
| Introduce local rtx "insn2_pat". |
| * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn", |
| "ninsn". |
| (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn". |
| Introduce local rtx "set", using it in place of "insn" for the |
| result of single_set. This appears to fix a bug, since the call |
| to find_regno_note on a SET does nothing. |
| * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both |
| params from rtx to rtx_insn *. |
| (set_to_load_agen): Likewise. |
| * config/s390/s390.c (s390_label_align): Likewise for local |
| "prev_insn". Introduce new rtx locals "set" and "src", using |
| them in place of "prev_insn" for the results of single_set |
| and SET_SRC respectively. |
| (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *. |
| Introduce new rtx local "set" using in place of "jump" for the |
| result of single_set. Use SET_SRC (set) rather than plain |
| XEXP (set, 1). |
| * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from |
| rtx to rtx_insn *. |
| (noncall_uses_reg): Likewise. |
| (reg_unused_after): Introduce local rtx_sequence * "seq" in region |
| guarded by GET_CODE check, using its methods for clarity, and to |
| enable strengthening local "this_insn" from rtx to rtx_insn *. |
| * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local |
| "insn" from rtx to rtx_insn *. |
| (define_expand "umulhisi3"): Likewise. |
| (define_expand "smulsi3_highpart"): Likewise. |
| (define_expand "umulsi3_highpart"): Likewise. |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for |
| local "after". Replace GET_CODE check with a dyn_cast, |
| introducing new local rtx_sequence * "seq", using insn method for |
| typesafety. |
| |
| * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn" |
| from rtx to rtx_insn *. Introduce local rtx "pat", using it in |
| place of "insn" once we're dealing with patterns rather than the |
| input insn. |
| (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *. |
| (scan_trace): Likewise for local "elt", updating lookups within |
| sequence to use insn method rather than element method. |
| * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx |
| to rtx_insn *. |
| * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx". |
| * ifcvt.c (noce_try_abs): Likewise for local "insn". |
| * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when |
| invoking single_set. |
| * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param |
| "insn" from rtx to rtx_insn *. |
| (skip_usage_debug_insns): Likewise for return type, adding a |
| checked cast. |
| (check_secondary_memory_needed_p): Likewise for local "insn". |
| (inherit_reload_reg): Likewise. |
| * modulo-sched.c (sms_schedule): Likewise for local "count_init". |
| * recog.c (peep2_attempt): Likewise for local "old_insn", adding |
| checked casts. |
| (store_data_bypass_p): Likewise for both params. |
| (if_test_bypass_p): Likewise. |
| * recog.h (store_data_bypass_p): Likewise for both params. |
| (if_test_bypass_p): Likewise. |
| * reload.c (find_equiv_reg): Likewise for local "where". |
| * reorg.c (delete_jump): Likewise for param "insn". |
| * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx |
| to const rtx_insn *. |
| * store-motion.c (replace_store_insn): Likewise for param "del". |
| (delete_store): Strengthen local "i" from rtx to rtx_insn_list *, |
| and use its methods for clarity, and to strengthen local "del" |
| from rtx to rtx_insn *. |
| (build_store_vectors): Use insn method of "st" when calling |
| replace_store_insn for typesafety and clarity. |
| |
| 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rtx_is_swappable_p): Add |
| UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary |
| on how to make it legal in future. |
| |
| 2014-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * caller-save.c (rtx saveinsn): Strengthen this variable from rtx |
| to rtx_insn *. |
| (restinsn): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move): |
| Likewise for param. |
| * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): |
| Likewise. |
| * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for |
| first param. |
| (arc_hazard): Likewise for both params. |
| * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding |
| checked casts to rtx_sequence * and uses of the insn method for |
| type-safety. |
| (arc_hazard): Strengthen both params from rtx to rtx_insn *. |
| (arc_adjust_insn_length): Likewise for param "insn". |
| (struct insn_length_parameters_s): Likewise for first param of |
| "get_variants" callback field. |
| (arc_get_insn_variants): Likewise for first param and local |
| "inner". Replace a check of GET_CODE with a dyn_cast to |
| rtx_sequence *, using methods for type-safety and clarity. |
| * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to |
| rtx_sequence * and uses of the insn method for type-safety when |
| invoking arc_adjust_insn_length. |
| * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise |
| for param. |
| (arm_address_offset_is_imm): Likewise. |
| (struct tune_params): Likewise for params 1 and 3 of the |
| "sched_adjust_cost" callback field. |
| * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for |
| params 1 and 3 ("insn" and "dep"). |
| (xscale_sched_adjust_cost): Likewise. |
| (fa726te_sched_adjust_cost): Likewise. |
| (cortexa7_older_only): Likewise for param "insn". |
| (cortexa7_younger): Likewise. |
| (arm_attr_length_move_neon): Likewise. |
| (arm_address_offset_is_imm): Likewise. |
| * config/avr/avr-protos.h (avr_notice_update_cc): Likewise. |
| * config/avr/avr.c (avr_notice_update_cc): Likewise. |
| * config/bfin/bfin.c (hwloop_pattern_reg): Likewise. |
| (workaround_speculation): Likewise for local "last_condjump". |
| * config/c6x/c6x.c (shadow_p): Likewise for param "insn". |
| (shadow_or_blockage_p): Likewise. |
| (get_unit_reqs): Likewise. |
| (get_unit_operand_masks): Likewise. |
| (c6x_registers_update): Likewise. |
| (returning_call_p): Likewise. |
| (can_use_callp): Likewise. |
| (convert_to_callp): Likewise. |
| (find_last_same_clock): Likwise for local "t". |
| (reorg_split_calls): Likewise for local "shadow". |
| (hwloop_pattern_reg): Likewise for param "insn". |
| * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise. |
| * config/frv/frv.c (frv_final_prescan_insn): Likewise. |
| (frv_extract_membar): Likewise. |
| (frv_optimize_membar_local): Strengthen param "last_membar" from |
| rtx * to rtx_insn **. |
| (frv_optimize_membar_global): Strengthen param "membar" from rtx |
| to rtx_insn *. |
| (frv_optimize_membar): Strengthen local "last_membar" from rtx * |
| to rtx_insn **. |
| * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen |
| both params from rtx to rtx_insn *. |
| (ia64_ld_address_bypass_p): Likewise. |
| * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param |
| "insn". |
| (ia64_safe_type): Likewise. |
| (group_barrier_needed): Likewise. |
| (safe_group_barrier_needed): Likewise. |
| (ia64_single_set): Likewise. |
| (is_load_p): Likewise. |
| (record_memory_reference): Likewise. |
| (get_mode_no_for_insn): Likewise. |
| (important_for_bundling_p): Likewise. |
| (unknown_for_bundling_p): Likewise. |
| (ia64_st_address_bypass_p): Likewise for both params. |
| (ia64_ld_address_bypass_p): Likewise. |
| (expand_vselect): Introduce new local rtx_insn * "insn", using it |
| in place of rtx "x" after the emit_insn call. |
| * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p): |
| Strengthen param from rtx to rtx_insn *. |
| (ix86_agi_dependent): Likewise for both params. |
| (ix86_attr_length_immediate_default): Likewise for param 1. |
| (ix86_attr_length_address_default): Likewise for param. |
| (ix86_attr_length_vex_default): Likewise for param 1. |
| * config/i386/i386.c (ix86_attr_length_immediate_default): |
| Likewise for param "insn". |
| (ix86_attr_length_address_default): Likewise. |
| (ix86_attr_length_vex_default): Likewise. |
| (ix86_agi_dependent): Likewise for both params. |
| (x86_extended_QIreg_mentioned_p): Likewise for param "insn". |
| (vselect_insn): Likewise for this variable. |
| * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise |
| for param 1. |
| (m68k_sched_attr_opy_type): Likewise. |
| * config/m68k/m68k.c (sched_get_operand): Likewise. |
| (sched_attr_op_type): Likewise. |
| (m68k_sched_attr_opx_type): Likewise. |
| (m68k_sched_attr_opy_type): Likewise. |
| (sched_get_reg_operand): Likewise. |
| (sched_get_mem_operand): Likewise. |
| (m68k_sched_address_bypass_p): Likewise for both params. |
| (sched_get_indexed_address_scale): Likewise. |
| (m68k_sched_indexed_address_bypass_p): Likewise. |
| * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise. |
| (m68k_sched_indexed_address_bypass_p): Likewise. |
| * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals |
| "label", "ret" from rtx to rtx_insn *, adding a checked cast and |
| removing another. |
| * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both |
| params from rtx to rtx_insn *. |
| (mips_fmadd_bypass): Likewise. |
| * config/mips/mips.c (mips_fmadd_bypass): Likewise. |
| (mips_linked_madd_p): Likewise. |
| (mips_macc_chains_last_hilo): Likewise for this variable. |
| (mips_macc_chains_record): Likewise for param. |
| (vr4130_last_insn): Likewise for this variable. |
| (vr4130_swap_insns_p): Likewise for both params. |
| (mips_ls2_variable_issue): Likewise for param. |
| (mips_need_noat_wrapper_p): Likewise for param "insn". |
| (mips_expand_vselect): Add a new local rtx_insn * "insn", using it |
| in place of "x" after the emit_insn. |
| * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both |
| params from rtx to rtx_insn *. |
| * config/pa/pa.c (pa_fpstore_bypass_p): Likewise. |
| (pa_combine_instructions): Introduce local "par" for result of |
| gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call |
| to make_insn_raw. |
| (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *. |
| * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn". |
| (rl78_alloc_physical_registers_op1): Likewise. |
| (rl78_alloc_physical_registers_op2): Likewise. |
| (rl78_alloc_physical_registers_ro1): Likewise. |
| (rl78_alloc_physical_registers_cmp): Likewise. |
| (rl78_alloc_physical_registers_umul): Likewise. |
| (rl78_alloc_address_registers_macax): Likewise. |
| (rl78_alloc_physical_registers): Likewise for locals "insn", "curr". |
| * config/s390/predicates.md (execute_operation): Likewise for |
| local "insn". |
| * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both |
| params. |
| * config/s390/s390.c (s390_safe_attr_type): Likewise for param. |
| (addr_generation_dependency_p): Likewise for param "insn". |
| (s390_agen_dep_p): Likewise for both params. |
| (s390_fpload_toreg): Likewise for param "insn". |
| * config/sh/sh-protos.h (sh_loop_align): Likewise for param. |
| * config/sh/sh.c (sh_loop_align): Likewise for param and local |
| "next". |
| * config/sh/sh.md (define_peephole2): Likewise for local "insn2". |
| * config/sh/sh_treg_combine.cc |
| (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type |
| and local "i". |
| (sh_treg_combine::try_eliminate_cstores): Likewise for local "i". |
| * config/stormy16/stormy16.c (combine_bnp): Likewise for locals |
| "and_insn", "load", "shift". |
| * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param |
| "insn". |
| * final.c (final_scan_insn): Introduce local rtx_insn * "other" |
| for XEXP (note, 0) of the REG_CC_SETTER note. |
| (cleanup_subreg_operands): Strengthen param "insn" from rtx to |
| rtx_insn *, eliminating a checked cast made redundant by this. |
| * gcse.c (process_insert_insn): Strengthen local "insn" from rtx |
| to rtx_insn *. |
| * genattr.c (main): When writing out the prototype to |
| const_num_delay_slots, strengthen the param from rtx to |
| rtx_insn *. |
| * genattrtab.c (write_const_num_delay_slots): Likewise when |
| writing out the implementation of const_num_delay_slots. |
| * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param |
| "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *. |
| * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in |
| favor of new rtx locals "src" and "set" and new local rtx_insn * |
| "insn" and "seq". |
| (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx |
| to rtx_insn *. |
| (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx |
| locals "cond", "if_then_else", "set" and new rtx_insn * locals |
| "insn" and "seq". |
| (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b", |
| "last" from rtx to rtx_insn *. Likewise for a local "tmp", |
| renaming to "tmp_insn". Eliminate the other local rtx "tmp" from |
| the top-level scope, replacing with new more tightly-scoped rtx |
| locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a", |
| "new_insn", "copy_of_insn_b", and make local rtx "set" more |
| tightly-scoped. |
| * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| * ira.c (setup_prohibited_mode_move_regs): Likewise for local |
| "move_insn". |
| (ira_setup_alts): Likewise for param "insn". |
| * lra-constraints.c (emit_inc): Likewise for local "add_insn". |
| * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx |
| and an rtx_insn *. |
| (lra_emit_add): Eliminate top-level local rtx "insn" in favor of |
| new more-tightly scoped rtx locals "add3_insn", "insn", |
| "add2_insn" and rtx_insn * "move_insn". |
| * postreload-gcse.c (eliminate_partially_redundant_load): Add |
| checked cast on result of gen_move_insn when invoking |
| extract_insn. |
| * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| (verify_changes): Add a checked cast on "object" when invoking |
| insn_invalid_p. |
| (extract_insn_cached): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| (extract_constrain_insn_cached): Likewise. |
| (extract_insn): Likewise. |
| * recog.h (insn_invalid_p): Likewise for param 1. |
| (recog_memoized): Likewise for param. |
| (extract_insn): Likewise. |
| (extract_constrain_insn_cached): Likewise. |
| (extract_insn_cached): Likewise. |
| * reload.c (can_reload_into): Likewise for local "test_insn". |
| * reload.h (cleanup_subreg_operands): Likewise for param. |
| * reload1.c (emit_insn_if_valid_for_reload): Rename param from |
| "insn" to "pat", reintroducing "insn" as an rtx_insn * on the |
| result of emit_insn. Remove a checked cast made redundant by this |
| change. |
| * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from |
| rtx to rtx_insn *. |
| * sel-sched.c (get_reg_class): Likewise. |
| |
| 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com> |
| Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o. |
| * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC): |
| Define. |
| (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC. |
| |
| 2014-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to |
| const rtx_insn *, and from rtx to rtx_insn * for the other |
| overloaded variant. |
| (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking |
| INSN_LOCATION, since we know INSN_P holds. |
| (insn_line): Strengthen param from const_rtx to const rtx_insn *. |
| (insn_file): Likewise. |
| (insn_scope): Likewise. |
| (insn_location): Likewise. |
| |
| * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local |
| "insn" from rtx to rtx_insn *, introducing a new local rtx "set" |
| for the result of gen_load_const_gp. |
| * config/rs6000/rs6000-protos.h (output_call): Strengthen first |
| param from rtx to rtx_insn *. |
| * config/rs6000/rs6000.c (output_call): Likewise. |
| * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev", |
| introducing a checked cast to rtx_sequence * and use of the insn |
| method. |
| * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params |
| from rtx to rtx_insn *. |
| (insn_scope): Strengthen param from const_rtx to const rtx_insn *. |
| (insn_line): Likewise. |
| (insn_file): Likewise. |
| (insn_location): Likewise. |
| * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params |
| from rtx to rtx_insn *. |
| * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked |
| cast, using it for calls to INSN_HAS_LOCATION and insn_location. |
| * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn" |
| via a checked cast. |
| * reorg.c (relax_delay_slots): Strengthen locals named "after" |
| from rtx to rtx_insn *; use methods of "pat" for type-safety. |
| |
| 2014-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * combine.c (try_combine): Eliminate checked cast on result of |
| gen_rtx_INSN. |
| * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior |
| autogenerated one by strengthening the return type and params 2 and 3 |
| from rtx to rtx_insn *, and by naming the params. |
| * gengenrtl.c (special_rtx): Add INSN to those that are |
| special-cased. |
| * rtl.h (gen_rtx_INSN): New prototype. |
| |
| 2014-09-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather |
| than NULL_RTX. |
| (no_equiv): Likewise. |
| (update_equiv_regs): Likewise. |
| (setup_reg_equiv): Likewise. Strengthen locals "elem", |
| "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn" |
| from rtx to rtx_insn *. Use methods of "elem" for typesafety and |
| clarity. |
| * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns" |
| from rtx to rtx_insn_list *. |
| * lra-assigns.c (spill_for): Strengthen local "x" from rtx to |
| rtx_insn_list * and use methods for clarity and typesafety. |
| * lra-constraints.c (contains_deleted_insn_p): Likewise for param |
| "list". |
| (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove |
| redundant check on INSN_P (insns): this cannot hold, as "insns" is |
| an INSN_LIST, not an insn. |
| (reverse_equiv_p): Strengthen local "insns" from rtx to |
| rtx_insn_list * and use methods for clarity and typesafety. |
| (contains_reloaded_insn_p): Likewise for local "list". |
| |
| 2014-09-09 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/arm/arm.c (NEON_COPYSIGNF): New enum. |
| (arm_init_neon_builtins): Support NEON_COPYSIGNF. |
| (arm_builtin_vectorized_function): Likewise. |
| * config/arm/arm_neon_builtins.def: New macro for copysignf. |
| * config/arm/neon.md (neon_copysignf<mode>): New pattern for |
| vector copysignf. |
| |
| 2014-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY. |
| * builtins.h (default_target_builtins): Likewise. |
| * gcse.h (default_target_gcse): Likewise. |
| * target-globals.h (target_globals): Add a destructor. Convert |
| void-pointer fields back to their real type and change from |
| GTY((atomic)) to GTY((skip)). |
| (restore_target_globals): Remove casts accordingly. |
| * target-globals.c (save_target_globals): Use XCNEW rather than |
| ggc_internal_cleared_alloc to allocate non-GC structures. |
| Use ggc_cleared_alloc to allocate the target_globals structure |
| itself. |
| (target_globals::~target_globals): Define. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm |
| mnemonic instead of fldmfdd. |
| * config/arm/arm.c (vfp_output_fstmd): Rename to... |
| (vfp_output_vstmd): ... This. Convert output to UAL syntax. |
| Output vpush when address register is SP. |
| * config/arm/arm-protos.h (vfp_output_fstmd): Rename to... |
| (vfp_output_vstmd): ... This. |
| * config/arm/vfp.md (push_multi_vfp): Update call to |
| vfp_output_vstmd. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/vfp.md (*movcc_vfp): Use UAL syntax. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax. |
| (*sqrtdf2_vfp): Likewise. |
| (*cmpsf_vfp): Likewise. |
| (*cmpsf_trap_vfp): Likewise. |
| (*cmpdf_vfp): Likewise. |
| (*cmpdf_trap_vfp): Likewise. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax. |
| (*truncdfsf2_vfp): Likewise. |
| (*truncsisf2_vfp): Likewise. |
| (*truncsidf2_vfp): Likewise. |
| (fixuns_truncsfsi2): Likewise. |
| (fixuns_truncdfsi2): Likewise. |
| (*floatsisf2_vfp): Likewise. |
| (*floatsidf2_vfp): Likewise. |
| (floatunssisf2): Likewise. |
| (floatunssidf2): Likewise. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax. |
| (*muldf3_vfp): Likewise. |
| (*mulsf3negsf_vfp): Likewise. |
| (*muldf3negdf_vfp): Likewise. |
| (*mulsf3addsf_vfp): Likewise. |
| (*muldf3adddf_vfp): Likewise. |
| (*mulsf3subsf_vfp): Likewise. |
| (*muldf3subdf_vfp): Likewise. |
| (*mulsf3negsfaddsf_vfp): Likewise. |
| (*fmuldf3negdfadddf_vfp): Likewise. |
| (*mulsf3negsfsubsf_vfp): Likewise. |
| (*muldf3negdfsubdf_vfp): Likewise. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax. |
| (*absdf2_vfp): Likewise. |
| (*negsf2_vfp): Likewise. |
| (*negdf2_vfp): Likewise. |
| (*addsf3_vfp): Likewise. |
| (*adddf3_vfp): Likewise. |
| (*subsf3_vfp): Likewise. |
| (*subdf3_vfp): Likewise. |
| (*divsf3_vfp): Likewise. |
| (*divdf3_vfp): Likewise. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store |
| multiple. |
| (arm_print_operand): Don't convert real values to decimal |
| representation in default case. |
| (fp_immediate_constant): Delete. |
| * config/arm/arm-protos.h (fp_immediate_constant): Likewise. |
| * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL |
| syntax. |
| (*thumb2_movsi_vfp): Likewise. |
| (*movdi_vfp): Likewise. |
| (*movdi_vfp_cortexa8): Likewise. |
| (*movhf_vfp_neon): Likewise. |
| (*movhf_vfp): Likewise. |
| (*movsf_vfp): Likewise. |
| (*thumb2_movsf_vfp): Likewise. |
| (*movdf_vfp): Likewise. |
| (*thumb2_movdf_vfp): Likewise. |
| (*movsfcc_vfp): Likewise. |
| (*thumb2_movsfcc_vfp): Likewise. |
| (*movdfcc_vfp): Likewise. |
| (*thumb2_movdfcc_vfp): Likewise. |
| |
| 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/invoke.texi (-march): Use GNU/Linux rather than Linux. |
| (-mtune): Likewise. |
| (-mcpu): Likewise. |
| |
| 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/61749 |
| * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers): |
| Use qualifier_immediate for last operand. Rename to... |
| (aarch64_types_ternop_lane_qualifiers): ... This. |
| (TYPES_QUADOP): Rename to... |
| (TYPES_TERNOP_LANE): ... This. |
| (aarch64_simd_expand_args): Return const0_rtx when encountering user |
| error. Change return of 0 to return of NULL_RTX. |
| (aarch64_crc32_expand_builtin): Likewise. |
| (aarch64_expand_builtin): Return NULL_RTX instead of 0. |
| ICE when expanding unknown builtin. |
| * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use |
| TERNOP_LANE qualifiers. |
| (sqdmlsl_lane): Likewise. |
| (sqdmlal_laneq): Likewise. |
| (sqdmlsl_laneq): Likewise. |
| (sqdmlal2_lane): Likewise. |
| (sqdmlsl2_lane): Likewise. |
| (sqdmlal2_laneq): Likewise. |
| (sqdmlsl2_laneq): Likewise. |
| |
| 2014-09-09 Nick Clifton <nickc@redhat.com> |
| |
| * doc/invoke.texi (Optimization Options): Add missing @gol to the |
| end of a line. |
| (S/390 and zSeries Options): Remove superfluous word from the |
| description of the -mhotpatch option. |
| |
| 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com> |
| |
| * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED. |
| * ira.c: #include "shrink-wrap.h" |
| (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED. |
| * ifcvt.c: #include "shrink-wrap.h" |
| (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED. |
| |
| 2014-09-08 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * common/config/picochip/picochip-common.c: Remove. |
| * config.gcc: Remove support for picochip. |
| * config/picochip/constraints.md: Remove. |
| * config/picochip/dfa_space.md: Remove. |
| * config/picochip/dfa_speed.md: Remove. |
| * config/picochip/picochip-protos.h: Remove. |
| * config/picochip/picochip.c: Remove. |
| * config/picochip/picochip.h: Remove. |
| * config/picochip/picochip.md: Remove. |
| * config/picochip/picochip.opt: Remove. |
| * config/picochip/predicates.md: Remove. |
| * config/picochip/t-picochip: Remove. |
| * doc/md.texi: Don't document picochi. |
| |
| 2014-09-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * basic-block.h (control_flow_insn_p): Strengthen param from |
| const_rtx to const rtx_insn *. |
| * cfgbuild.c (control_flow_insn_p): Likewise. |
| |
| 2014-09-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcse.c (modify_mem_list): Strengthen this variable from |
| vec<rtx> * to vec<rtx_insn *> *. |
| (vec_rtx_heap): Strengthen this typedef from vec<rtx> to |
| vec<rtx_insn *>. |
| (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to |
| vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *. |
| (record_last_mem_set_info): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| (record_last_set_info): Likewise for local "last_set_insn". |
| |
| 2014-09-08 DJ Delorie <dj@redhat.com> |
| |
| * doc/invoke.texi (MSP430 Options): Add -minrt. |
| |
| 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT. |
| (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch |
| statement; allow optimization of UNSPEC_VSPLT_DIRECT with special |
| handling SH_SPLAT. |
| (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment |
| of extracted lane. |
| (adjust_splat): New function. |
| (handle_special_swappables): Call adjust_splat for SH_SPLAT. |
| (dump_swap_insn_table): Add case for SH_SPLAT. |
| |
| 2014-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/63196 |
| * tree-inline.c (copy_loops): The source loop header should |
| always be non-NULL. |
| (tree_function_versioning): If loops need fixup after removing |
| unreachable blocks fix them. |
| * omp-low.c (simd_clone_adjust): Do not add incr block to |
| loop under construction. |
| |
| 2014-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused. |
| |
| 2014-09-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/cygming.h (TF_SIZE): Remove. |
| * config/i386/darwin.h (TF_SIZE): Remove. |
| * config/i386/dragonfly.h (TF_SIZE): Remove. |
| * config/i386/freebsd.h (TF_SIZE): Remove. |
| * config/i386/gnu-user-common.h (TF_SIZE): Remove. |
| * config/i386/openbsdelf.h (TF_SIZE): Remove. |
| * config/i386/sol2.h (TF_SIZE): Remove. |
| * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove. |
| * config/ia64/linux.h (TF_SIZE): Remove. |
| * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove. |
| * doc/tm.texi: Regenerate. |
| * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison. |
| |
| 2014-09-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): |
| Remove. |
| * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL): |
| Remove. |
| * doc/tm.texi: Regenerate. |
| * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): |
| Poison. |
| * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove. |
| * config/cris/cris.h (__make_dp): Remove. |
| |
| 2014-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/63204 |
| * cfgloop.c (mark_loop_for_removal): Track former header |
| unconditionally. |
| * cfgloop.h (struct loop): Add former_header member unconditionally. |
| * loop-init.c (fix_loop_structure): Enable bogus loop removal |
| diagnostic unconditionally. |
| |
| 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org> |
| |
| PR target/63190 |
| * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register |
| constraint for operand0 and remove write only modifier from operand3. |
| |
| 2014-09-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/62208 |
| * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX |
| rather than const0_rtx in eq/ne-xor simplifications. |
| |
| 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT. |
| (arc_output_mi_thunk): Likewise. |
| |
| * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison |
| arguments to silence bogus warning. |
| |
| 2014-09-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/63171 |
| * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes. |
| |
| 2014-09-06 Tom de Vries <tom@codesourcery.com> |
| |
| * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize |
| IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on |
| ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. |
| |
| 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr> |
| |
| PR target/63188 |
| * config/darwin.h (INIT_SECTION_ASM_OP): Define to "". |
| * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise. |
| |
| 2014-09-05 Easwaran Raman <eraman@google.com> |
| |
| PR rtl-optimization/62146 |
| * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of |
| hoisted instruction unconditional. |
| |
| 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/63187 |
| * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2): |
| Do not allow any_mask_operand for operands[2]. |
| (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/arc/arc.c (arc_print_operand): Use insn method of |
| final_sequence for type-safety. |
| * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param |
| "insn" from rtx to rtx_insn *. |
| * config/frv/frv.c (frv_print_operand_jump_hint): Likewise. |
| * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): |
| Likewise for locals "branch", "label". |
| * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for |
| locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons. |
| (same_cmp_following_p): Likewise for locals "i2", "i3". |
| * config/sh/sh_optimize_sett_clrt.cc |
| (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for |
| param "cbranch_insn". |
| * function.c (convert_jumps_to_returns): Likewis for local "jump". |
| * ifcvt.c (cond_exec_get_condition): Likewise for param "jump". |
| * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to |
| const rtx_insn *. |
| (condjump_p): Likewise. |
| (condjump_in_parallel_p): Likewise. |
| (pc_set): Likewise. |
| (any_uncondjump_p): Likewise. |
| (any_condjump_p): Likewise. |
| (condjump_label): Likewise. |
| (returnjump_p): Strengthen param "insn" from rtx to |
| const rtx_insn *. |
| (onlyjump_p): Strengthen param "insn" from const_rtx to |
| const rtx_insn *. |
| (jump_to_label_p): Likewise. |
| (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *. |
| (invert_jump): Likewise. |
| * reorg.c (simplejump_or_return_p): Add checked cast when calling |
| simplejump_p. |
| (get_jump_flags): Strengthen param "insn" from rtx to |
| const rtx_insn *. |
| (get_branch_condition): Likewise. |
| (condition_dominates_p): Likewise. |
| (make_return_insns): Move declaration of local "pat" earlier, to |
| after we've handled NONJUMP_INSN_P and non-sequences, using its |
| methods to simplify the code and for type-safety. |
| * rtl.h (find_constant_src): Strengthen param from const_rtx to |
| const rtx_insn *. |
| (jump_to_label_p): Strengthen param from rtx to const rtx_insn *. |
| (condjump_p): Strengthen param from const_rtx to |
| const rtx_insn *. |
| (any_condjump_p): Likewise. |
| (any_uncondjump_p): Likewise. |
| (pc_set): Likewise. |
| (condjump_label): Likewise. |
| (simplejump_p): Likewise. |
| (returnjump_p): Likewise. |
| (onlyjump_p): Likewise. |
| (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *. |
| (invert_jump): Likewise. |
| (condjump_in_parallel_p): Strengthen param from const_rtx to |
| const rtx_insn *. |
| * rtlanal.c (find_constant_src): Strengthen param from const_rtx |
| to const rtx_insn *. |
| * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx |
| to const rtx_insn *. |
| * sel-sched-ir.h (fallthru_bb_of_jump): Likewise. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * reorg.c (relax_delay_slots): Move declaration of "trial_seq" |
| above the conditional, and convert the check on GET_CODE to a |
| dyn_cast, so that "trial_seq" is available as an rtx_sequence * in |
| the conditional. Simplify the conditional by using methods of |
| "trial_seq". |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * haifa-sched.c (check_clobbered_conditions): Strengthen local |
| "link" from rtx to rtx_insn_list *, and use its methods for |
| clarity and type-safety. |
| (toggle_cancelled_flags): Likewise. |
| (restore_last_backtrack_point): Likewise. |
| (queue_to_ready): Use insn method of "link" in one place. |
| (schedule_block): Strengthen local "link" from rtx to |
| rtx_insn_list *, and use its methods for clarity and type-safety. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen |
| param "insn" from const_rtx to const rtx_insn *. |
| (sched_get_reverse_condition_uncached): Likewise. |
| (sched_get_condition_with_rev): Likewise. |
| (sched_has_condition_p): Likewise. |
| (sched_insns_conditions_mutex_p): Likewise for both params. |
| (sched_insn_is_legitimate_for_speculation_p): Likewise for param |
| "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN. |
| (setup_insn_reg_uses): Move local "list" to be more tightly |
| scoped, strengthening it from an rtx to an rtx_insn_list *. Use |
| its methods for clarity and type-safety. |
| (sched_analyze_1): Strengthen local "pending" from rtx to |
| rtx_insn_list *, and local "pending_mem" from rtx to |
| rtx_expr_list *. Use methods of each for clarity and type-safety. |
| (sched_analyze_2): Likewise. |
| (sched_analyze_insn): Likewise. |
| |
| * sched-int.h (sched_get_reverse_condition_uncached): Strengthen |
| param from const_rtx to const rtx_insn *. |
| (sched_insns_conditions_mutex_p): Likewise for both params. |
| (sched_insn_is_legitimate_for_speculation_p): Likewise for first |
| param. |
| |
| * system.h (CONST_CAST_RTX_INSN): New macro. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * recog.c (peep2_attempt): Strengthen return type from rtx to |
| rtx_insn *. |
| (peep2_update_life): Likewise for params "last", "prev", removing |
| a checked cast made redundant by this. |
| (peephole2_optimize): Likewise for local "last". |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * basic-block.h (set_block_for_insn): Eliminate this macro in |
| favor of... |
| * rtl.h (set_block_for_insn): New inline function, imposing the |
| requirement that the "insn" param is an rtx_insn *. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * caller-save.c (setup_save_areas): Strengthen local "insn" from |
| rtx to rtx_insn *. |
| * final.c (get_call_reg_set_usage): Likewise for first param, |
| eliminating a checked cast. |
| * regs.h (get_call_reg_set_usage): Likewise for first param. |
| * resource.c (mark_set_resources): Introduce local rtx_call_insn * |
| "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked |
| cast, replacing references to "x" with "call_insn" where |
| appropriate. |
| (mark_target_live_regs): Strengthen local "real_insn" from rtx to |
| rtx_insn *, adding a checked cast. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * output.h (final_scan_insn): Strengthen first param from rtx to |
| rtx_insn *. |
| |
| * final.c (final_scan_insn): Likewise, renaming it back from |
| "uncast_insn" to "insn", eliminating the checked cast. |
| |
| * config/h8300/h8300.md (define_insn "jump"): Replace local rtx |
| "vec" with an rtx_sequence * "seq", taking a copy of |
| "final_sequence", and using methods of "seq" for clarity, and for |
| type-safety in the calls to final_scan_insn. |
| * config/mips/mips.c (mips_output_conditional_branch): Use methods |
| of "final_sequence" for clarity, and for type-safety in the call to |
| final_scan_insn. |
| * config/sh/sh.c (print_slot): Strengthen param from rtx to |
| rtx_sequence * and rename from "insn" to "seq". |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * jump.c (delete_related_insns): Introduce a new local "table" by |
| replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the |
| get_labels method of "table" to simplify access to the labels in |
| the jump table. |
| |
| 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd, |
| f_minmaxs, f_minmaxd types. |
| |
| 2014-09-05 Richard Biener <rguenther@suse.de> |
| |
| * cfgloop.c (mark_loop_for_removal): Record former header |
| when ENABLE_CHECKING. |
| * cfgloop.h (strut loop): Add former_header member when |
| ENABLE_CHECKING. |
| * loop-init.c (fix_loop_structure): Sanity check loops |
| marked for removal if they re-appeared. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t, |
| uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs. |
| |
| (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32, |
| vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16, |
| vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32, |
| vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32, |
| vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32, |
| vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32, |
| vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8, |
| vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16, |
| vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16, |
| vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16, |
| vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32, |
| vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64, |
| vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32, |
| vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16, |
| vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32, |
| vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16, |
| vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32, |
| vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8, |
| vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, |
| vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t |
| with int{32,16,8}_t. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/arm_neon.h (__GET_HIGH): New macro. |
| (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16, |
| vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64, |
| vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64): |
| Remove temporary __asm__ and reimplement. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code |
| handling cmge, cmgt, cmeq, cmtst. |
| |
| * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle, |
| cmlt, cmgeu, cmgtu, cmtst): Remove. |
| |
| * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*, |
| vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*, |
| vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*, |
| vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers, |
| TYPES_TST): Define. |
| (aarch64_fold_builtin): Update pattern for cmtst. |
| |
| * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p): |
| Declare. |
| |
| * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers. |
| |
| * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>): |
| Switch operands, separate out more cases, refactor. |
| |
| (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1). |
| |
| * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single |
| argument; rename old version to... |
| (aarch64_const_vec_all_same_in_range_p): ...this. |
| (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming. |
| |
| * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): |
| Remove qualifier_const_pointer, update comment. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace |
| varargs with pointer parameter. |
| (aarch64_simd_expand_builtin): pass pointer into previous. |
| |
| 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext, |
| alus_ext. |
| |
| 2014-09-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern. |
| * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin. |
| * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8): |
| Replace temporary asm with call to builtin. |
| (vrbit_p8, vrbitq_p8): New functions. |
| |
| 2014-09-05 Richard Biener <rguenther@suse.de> |
| |
| * cfgloop.c (mark_loop_for_removal): New function. |
| * cfgloop.h (mark_loop_for_removal): Declare. |
| * cfghooks.c (delete_basic_block): Use mark_loop_for_removal. |
| (merge_blocks): Likewise. |
| (duplicate_block): Likewise. |
| * except.c (sjlj_emit_dispatch_table): Likewise. |
| * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise. |
| * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise. |
| (thread_through_loop_header): Likewise. |
| |
| 2014-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/63148 |
| * fold-const.c (try_move_mult_to_index): Remove. |
| (fold_binary_loc): Do not call it. |
| * tree-data-ref.c (dr_analyze_indices): Strip conversions |
| from the base object again. |
| |
| 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1 |
| DImode. |
| |
| 2014-09-05 Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/55701 |
| * config/arm/arm.md (setmem): New pattern. |
| * config/arm/arm-protos.h (struct tune_params): New fields. |
| (arm_gen_setmem): New prototype. |
| * config/arm/arm.c (arm_slowmul_tune): Initialize new fields. |
| (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto. |
| (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto. |
| (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto. |
| (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto. |
| (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto. |
| (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto. |
| (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto. |
| (arm_const_inline_cost): New function. |
| (arm_block_set_max_insns): New function. |
| (arm_block_set_non_vect_profit_p): New function. |
| (arm_block_set_vect_profit_p): New function. |
| (arm_block_set_unaligned_vect): New function. |
| (arm_block_set_aligned_vect): New function. |
| (arm_block_set_unaligned_non_vect): New function. |
| (arm_block_set_aligned_non_vect): New function. |
| (arm_block_set_vect, arm_gen_setmem): New functions. |
| |
| 2014-09-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint. |
| |
| 2014-09-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/arm/arm.c (output_move_neon): Handle REG explicitly. |
| |
| 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of |
| an rtx. |
| * valtrack.h: Adjust. |
| |
| 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of |
| an rtx. |
| (emit_jump_insn_before_noloc): Likewise. |
| (emit_call_insn_before_noloc): Likewise. |
| (emit_label_before): Likewise. |
| (emit_label_after): Likewise. |
| (emit_insn_before_setloc): Likewise. |
| (emit_jump_insn_before_setloc): Likewise. |
| (emit_call_insn_before_setloc): Likewise. |
| (emit_call_insn_before): Likewise. |
| * rtl.h: Adjust. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to |
| rtx_insn *, eliminating a checked cast. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * rtl.h (modified_between_p): Strengthen params 2 and 3 from |
| const_rtx to const rtx_insn *. |
| * rtlanal.c (modified_between_p): Likewise, eliminating a checked |
| cast. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to |
| fixup_args_size_notes. |
| * expr.c (fixup_args_size_notes): Strengthen first two params from |
| rtx to rtx_insn *, eliminating a checked cast. |
| * rtl.h (fixup_args_size_notes): Strengthen first two params from |
| rtx to rtx_insn *. |
| |
| 2014-09-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * haifa-sched.c (get_ready_element): Strengthen return type from |
| rtx to rtx_insn *. |
| * sched-int.h (get_ready_element): Likewise. |
| |
| 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/63165 |
| * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use |
| indexed_or_indirect_operand instead of memory_operand. |
| (floatsi<mode>2_lfiwzx_mem): Ditto. |
| |
| 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c, |
| config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c, |
| ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *. |
| |
| 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of |
| rtx. |
| (get_last_nonnote_insn): Likewise. |
| (next_nonnote_insn_bb): Take rtx_insn * instead of rtx. |
| * resource.c (find_basic_block): Likewise. |
| * rtl.h: Adjust. |
| * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of |
| const_rtx. |
| |
| 2014-09-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * genattr.c (main): Within the prototype of insn_latency written |
| out to insn-attr.h, strengthen both params from rtx to rtx_insn *. |
| * genautomata.c (output_internal_maximal_insn_latency_func): |
| Within the implementation of insn_latency written out to |
| insn-automata.c, strengthen both params from rtx to rtx_insn *, |
| eliminating a pair of checked casts. |
| |
| 2014-09-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to |
| rtx_insn *. |
| |
| * rtl.h (eh_returnjump_p): Likewise. |
| |
| 2014-09-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (TAGS): Handle constructs in timevar.def. |
| |
| 2014-09-04 Guozhi Wei <carrot@google.com> |
| |
| PR target/62040 |
| * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators. |
| * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split |
| it into two patterns. |
| (move_lo_quad_internal_be_<mode>): Likewise. |
| |
| 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * doc/options.texi: Document that Var and Init are required if CPP |
| is given. |
| * optc-gen.awk: Require Var and Init if CPP is given. |
| * common.opt (Wpedantic): Use Init. |
| |
| 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (special_handling_values): Add |
| SH_EXTRACT. |
| (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps |
| wrapped in a VEC_DUPLICATE, representing an extract. Mark these |
| as swappable with special handling SH_EXTRACT. Remove |
| UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the |
| optimization. |
| (adjust_extract): New function. |
| (handle_special_swappables): Add default to case statement; add |
| case for SH_EXTRACT that calls adjust_extract. |
| (dump_swap_insn_table): Handle SH_EXTRACT. |
| |
| 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match |
| selection of 0th memory doubleword, regardless of endianness. |
| |
| 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces. |
| |
| 2014-09-04 Alan Modra <amodra@gmail.com> |
| |
| PR debug/60655 |
| * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend |
| can't be output. |
| |
| 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook. |
| * targhooks.c (default_dwarf_frame_reg_mode): New function. |
| * targhooks.h (default_dwarf_frame_reg_mode): New prototype. |
| * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document. |
| * doc/tm.texi: Regenerate. |
| * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode |
| selection logic to default_dwarf_frame_reg_mode. |
| |
| 2014-09-03 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled |
| by -Wall. |
| |
| 2014-09-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is |
| the automodified register. |
| |
| 2014-09-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * output.h (get_some_local_dynamic_name): Declare. |
| * final.c (some_local_dynamic_name): New variable. |
| (get_some_local_dynamic_name): New function. |
| (final_end_function): Clear some_local_dynamic_name. |
| * config/alpha/alpha.c (machine_function): Remove some_ld_name. |
| (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete. |
| (print_operand): Report an error if '%&' is used inappropriately. |
| * config/i386/i386.c (get_some_local_dynamic_name): Delete. |
| (get_some_local_dynamic_name_1): Delete. |
| * config/rs6000/rs6000.c (machine_function): Remove some_ld_name. |
| (rs6000_get_some_local_dynamic_name): Delete. |
| (rs6000_get_some_local_dynamic_name_1): Delete. |
| (print_operand): Report an error if '%&' is used inappropriately. |
| * config/s390/s390.c (machine_function): Remove some_ld_name. |
| (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete. |
| (print_operand): Assert that get_some_local_dynamic_name is nonnull. |
| * config/sparc/sparc.c: Include rtl-iter.h. |
| (machine_function): Remove some_ld_name. |
| (sparc_print_operand): Report an error if '%&' is used inappropriately. |
| (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete. |
| |
| 2014-09-03 Richard Henderson <rth@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove. |
| (aarch64_popwb_pair_reg): Remove. |
| (aarch64_set_frame_expr): Remove. |
| (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with |
| the restore ops performed by the insns generated. |
| (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation |
| insn. Perform the calls_eh_return addition later; do not attempt to |
| preserve the CFA in that case. Don't use aarch64_set_frame_expr. |
| (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no |
| special markup at all. Load cfun->machine->frame.hard_fp_offset |
| into a local variable. |
| (aarch64_frame_pointer_required): Don't check calls_alloca. |
| |
| 2014-09-03 Richard Biener <rguenther@suse.de> |
| |
| * opts.c (default_options_optimization): Adjust |
| max-combine-insns to 2 for -Og. |
| |
| 2014-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/62015 |
| * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible |
| pass-trough jump functions correctly. |
| |
| 2014-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/61986 |
| * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain |
| created replacements in ascending order of offsets. |
| (known_aggs_to_agg_replacement_list): Likewise. |
| |
| 2014-09-03 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value |
| is set to set uninitialized value for vnresult. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation |
| for TARGET_MUST_PASS_IN_STACK. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation |
| for TARGET_ARG_PARTIAL_BYTES. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push |
| instructions for varargs implementation. |
| (nds32_expand_epilogue): Emit stack adjustment instructions for |
| varargs implementation. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp |
| optimization detection. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_function_arg): Deal with nameless |
| arguments. |
| (nds32_function_arg_advance): Deal with nameless arguments. |
| * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ... |
| (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ... |
| (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one. |
| |
| 2014-09-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared. |
| (struct bb_bitmap_sets): Remove deferred member. |
| (BB_DEFERRED): Remove. |
| (defer_or_phi_translate_block): Remove. |
| (compute_antic_aux): Remove deferring of blocks, assert |
| proper iteration order. |
| (compute_antic): Do not set BB_DEFERRED. |
| (eliminate): Allocate el_avail of proper size initially. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location |
| according to the value of crtl->args.pretend_args_size. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary |
| varargs information. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_setup_incoming_varargs): New |
| implementation for TARGET_SETUP_INCOMING_VARARGS. |
| (nds32_strict_argument_naming): Refine comment. |
| * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT): |
| Define for future implementation. |
| |
| 2014-09-03 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/adxintrin.h (_subborrow_u32): New. |
| (_addcarry_u32): Ditto. |
| (_subborrow_u64): Ditto. |
| (_addcarry_u64): Ditto. |
| * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32, |
| IX86_BUILTIN_SBB64. |
| (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32, |
| __builtin_ia32_sbb_u64 |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_function_arg): Define and rename some |
| GPR-specific stuff. |
| (nds32_function_arg_advance): Likewise. |
| (nds32_init_cumulative_args): Likewise. |
| * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define. |
| (NDS32_FIRST_GPR_REGNUM): Define. |
| (NDS32_LAST_GPR_REGNUM): Define. |
| (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define. |
| (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS. |
| (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS. |
| (machine_function): Use GRP-specific stuff. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables. |
| (nds32_expand_epilogue): Likewise. |
| (nds32_expand_prologue_v3push): Likewise. |
| (nds32_expand_epilogue_v3pop): Likewise. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use |
| v3push/v3pop for variadic function. |
| * config/nds32/nds32.md (prologue, epilogue): Likewise. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): |
| Check rtx for varargs implementation. |
| (nds32_output_stack_pop): Likewise. |
| * config/nds32/nds32-protos.h: Have a rtx argument for |
| nds32_output_stack_push and nds32_output_stack_pop. |
| * config/nds32/nds32.md: Likewise. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function |
| to check if FUNC is an interrupt service routine. |
| * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.h (machine_function): Add some fields for variadic |
| arguments implementation. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-predicates.c |
| (nds32_valid_stack_push_pop): Rename to ... |
| (nds32_valid_stack_push_pop_p): ... this. |
| * config/nds32/nds32-protos.h: Likewise. |
| * config/nds32/predicates.md: Likewise. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ... |
| (nds32_emit_stack_v3push): ... this. |
| (nds32_gen_stack_v3pop): Rename to ... |
| (nds32_emit_stack_v3pop): ... this and consider CFA restore |
| information. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ... |
| (nds32_emit_stack_push_multiple): ... this. |
| (nds32_gen_stack_pop_multiple): Rename to ... |
| (nds32_emit_stack_pop_multiple): ... this and consider CFA restore |
| information. |
| |
| 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| PR target/61078 |
| * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check |
| and add a second splitter to handle the remaining cases. |
| |
| 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define. |
| |
| 2014-09-02 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * cfgexpand.c (label_rtx_for_bb): Change type to |
| hash_map<basic_block, rtx_code_label *> *. |
| (expand_gimple_basic_block): Adjust. |
| (pass_expand::execute): Likewise. |
| |
| 2014-09-02 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c, |
| config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md, |
| config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c, |
| config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c, |
| config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc, |
| config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c, |
| stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead |
| of rtx. |
| |
| 2014-09-02 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * alloc-pool.c: Include coretypes.h. |
| * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c, |
| function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and |
| hash_set instead of htab. |
| * ggc-page.c (in_gc): New variable. |
| (ggc_free): Do nothing if a collection is taking place. |
| (ggc_collect): Set in_gc appropriately. |
| * ggc.h (gt_ggc_mx(const char *)): New function. |
| (gt_pch_nx(const char *)): Likewise. |
| (gt_ggc_mx(int)): Likewise. |
| (gt_pch_nx(int)): Likewise. |
| * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise. |
| (hash_map::hash_entry::pch_nx): Likewise. |
| (hash_map::hash_entry::pch_nx_helper): Likewise. |
| (hash_map::hash_map): Adjust. |
| (hash_map::create_ggc): New function. |
| (gt_ggc_mx): Likewise. |
| (gt_pch_nx): Likewise. |
| * hash-set.h (default_hashset_traits::ggc_mx): Likewise. |
| (default_hashset_traits::pch_nx): Likewise. |
| (hash_set::hash_entry::ggc_mx): Likewise. |
| (hash_set::hash_entry::pch_nx): Likewise. |
| (hash_set::hash_entry::pch_nx_helper): Likewise. |
| (hash_set::hash_set): Adjust. |
| (hash_set::create_ggc): New function. |
| (hash_set::elements): Likewise. |
| (gt_ggc_mx): Likewise. |
| (gt_pch_nx): Likewise. |
| * hash-table.h (hash_table::hash_table): Adjust. |
| (hash_table::m_ggc): New member. |
| (hash_table::~hash_table): Adjust. |
| (hash_table::expand): Likewise. |
| (hash_table::empty): Likewise. |
| (gt_ggc_mx): New function. |
| (hashtab_entry_note_pointers): Likewise. |
| (gt_pch_nx): Likewise. |
| |
| 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New |
| built-in definition. |
| (XVCVUXDDP_SCALE): Likewise. |
| (XVCVDPSXDS_SCALE): Likewise. |
| (XVCVDPUXDS_SCALE): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| entries for VSX_BUILTIN_XVCVSXDDP_SCALE, |
| VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and |
| VSX_BUILTIN_XVCVDPUXDS_SCALE. |
| * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New |
| prototype. |
| * config/rs6000/rs6000.c (real.h): New include. |
| (rs6000_scale_v2df): New function. |
| * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec. |
| (UNSPEC_VSX_XVCVUXDDP): Likewise. |
| (UNSPEC_VSX_XVCVDPSXDS): Likewise. |
| (UNSPEC_VSX_XVCVDPUXDS): Likewise. |
| (vsx_xvcvsxddp_scale): New define_expand. |
| (vsx_xvcvsxddp): New define_insn. |
| (vsx_xvcvuxddp_scale): New define_expand. |
| (vsx_xvcvuxddp): New define_insn. |
| (vsx_xvcvdpsxds_scale): New define_expand. |
| (vsx_xvcvdpsxds): New define_insn. |
| (vsx_xvcvdpuxds_scale): New define_expand. |
| (vsx_xvcvdpuxds): New define_insn. |
| * doc/extend.texi (vec_ctf): Add new prototypes. |
| (vec_cts): Likewise. |
| (vec_ctu): Likewise. |
| (vec_splat): Likewise. |
| (vec_div): Likewise. |
| (vec_mul): Likewise. |
| |
| 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/62275 |
| * config/arm/neon.md |
| (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode> |
| <v_cmp_result>): New pattern. |
| * config/arm/iterators.md (NEON_VCVT): New int iterator. |
| * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf, |
| vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf, |
| vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions. |
| * config/arm/arm.c (arm_builtin_vectorized_function): Handle |
| BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF. |
| |
| 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/62275 |
| * config/arm/iterators.md (FIXUORS): New code iterator. |
| (VCVT): New int iterator. |
| (su_optab): New code attribute. |
| (su): Likewise. |
| * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern. |
| |
| 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/predicates.md (aarch64_comparison_operation): |
| New special predicate. |
| * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use |
| aarch64_comparison_operation instead of matching an operator. |
| Update operand numbers. |
| (csinc3<mode>_insn): Likewise. |
| (*csinv3<mode>_insn): Likewise. |
| (*csneg3<mode>_insn): Likewise. |
| (ffs<mode>2): Update gen_csinc3<mode>_insn callsite. |
| * config/aarch64/aarch64.c (aarch64_get_condition_code): |
| Return -1 instead of aborting on invalid condition codes. |
| (aarch64_print_operand): Update aarch64_get_condition_code callsites |
| to assert that the returned condition code is valid. |
| * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export. |
| |
| 2014-09-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def, |
| tree.def, and gimple.def |
| |
| 2014-09-02 Jakub Jelinek <jakub@redhat.com> |
| Balaji V. Iyer <balaji.v.iyer@intel.com> |
| Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * cilk-builtins.def (__cilkrts_cilk_for_32): New. |
| (__cilkrts_cilk_for_64): Likewise. |
| * cilk-common.c (declare_cilk_for_builtin): New function. |
| (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and |
| __cilkrts_cilk_for_64 bultins. |
| * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and |
| CILK_TI_F_LOOP_64. |
| (cilk_for_32_fndecl): New define. |
| (cilk_for_64_fndecl): Likewise. |
| * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of |
| GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case. |
| * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted |
| GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED, |
| GF_OMP_FOR_COMBINED_INTO. |
| * gimplify.c (gimplify_scan_omp_clauses): Added |
| OMP_CLAUSE__CILK_FOR_COUNT_ case. |
| (gimplify_adjust_omp_clauses): Ditto. |
| (gimplify_omp_for): Added CILK_FOR case. |
| (gimplify_expr): Ditto. |
| * omp-low.c: Include cilk.h. |
| (extract_omp_for_data): Set appropriate kind for |
| GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR. |
| (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases. |
| (create_omp_child_function_name): Added second argument to handle |
| cilk_for case. |
| (cilk_for_check_loop_diff_type): New function. |
| (expand_cilk_for_call): Likewise. |
| (expand_cilk_for): Likewise. |
| (create_omp_child_function): Set cilk_for_count; handle the cases when |
| it is true; call create_omp_child_function_name with second argument. |
| (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true. |
| (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR. |
| * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_. |
| * tree-nested.c (convert_nonlocal_omp_clauses): Added |
| OMP_CLAUSE__CILK_FOR_COUNT_ case. |
| (convert_local_omp_clauses): Ditto. |
| * tree-pretty-print.c (dump_omp_clause): Added |
| OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases. |
| (dump_generic_node): Added CILK_FOR case. |
| * tree.c (omp_clause_num_ops): New element |
| OMP_CLAUSE__CILK_FOR_COUNT_ (1). |
| (omp_clause_code_name): New element _Cilk_for_count_. |
| (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case. |
| * tree.def: Add tree code for CILK_FOR. |
| |
| 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot". |
| (ppc403-compare): Add "exts with dot" case. |
| * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above. |
| * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto. |
| * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto. |
| * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto. |
| * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto. |
| * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto. |
| * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto. |
| * config/rs6000/cell.md (cell-integer, cell-fast-cmp, |
| cell-cmp-microcoded): Similarly. |
| * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before. |
| * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto. |
| * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto. |
| * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto. |
| * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto. |
| * config/rs6000/power4.md (power4-integer, power4-compare): Ditto. |
| * config/rs6000/power5.md (power5-integer, power5-compare): Ditto. |
| * config/rs6000/power6.md (power6-exts): Add "no dot" condition. |
| (power6-compare): Add "exts with dot" case. |
| * config/rs6000/power7.md (power7-integer, power7-compare): As before. |
| * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto. |
| * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto. |
| |
| * config/rs6000/predicates.md (lwa_operand): Don't allow memory |
| if avoiding Cell microcode. |
| * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case. |
| (is_cracked_insn): Ditto. |
| (insn_must_be_first_in_group): Ditto. |
| * config/rs6000/rs6000.md (dot): Adjust comment. |
| (cell_micro): Handle exts+dot. |
| (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax, |
| *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2, |
| extendhisi2, 16 anonymous instructions, and 12 splitters): Delete. |
| (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2, |
| extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload, |
| *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2, |
| *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New. |
| |
| 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (QHSI): Delete. |
| (EXTQI, EXTHI, EXTSI): New mode iterators. |
| (zero_extend<mode>di2, *zero_extend<mode>di2_internal1, |
| *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3, |
| *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2, |
| 9 anonymous instructions, and 8 splitters): Delete. |
| (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot, |
| *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2, |
| *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2, |
| zero_extendsi<mode>2, *zero_extendsi<mode>2_dot, |
| *zero_extendsi<mode>2_dot2): New. |
| |
| 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (any_extend): New code iterator. |
|