- 10 Nov, 2015 2 commits
-
-
From-SVN: r230069
GCC Administrator committed -
[gcc] 2015-11-08 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/constraints.md (wF constraint): New constraints for power9/toc fusion. (wG constraint): Likewise. * config/rs6000/predicates.md (u6bit_cint_operand): New predicate, recognize 0..63. (upper16_cint_operand): New predicate for power9 and toc fusion. (fpr_reg_operand): Likewise. (toc_fusion_or_p9_reg_operand): Likewise. (toc_fusion_mem_raw): Likewise. (toc_fusion_mem_wrapped): Likewise. (fusion_gpr_addis): If power9 fusion, allow fusion for a larger address range. (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load instead. (fusion_addis_mem_combo_load): Add support for power9 fusion of floating point loads, floating point stores, and gpr stores. (fusion_addis_mem_combo_store): Likewise. (fusion_offsettable_mem_operand): Likewise. * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations. (emit_fusion_load_store): Likewise. (fusion_p9_p): Likewise. (expand_fusion_p9_load): Likewise. (expand_fusion_p9_store): Likewise. (emit_fusion_p9_load): Likewise. (emit_fusion_p9_store): Likewise. (fusion_wrap_memory_address): Likewise. * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new elements for power9 fusion. (rs6000_debug_print_mode): Rework debug information to print more information about fusion. (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support. (rs6000_legitimate_address_p): Recognize toc fusion as a valid offsettable memory address. (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions. (emit_fusion_gpr_load): Move most of the code from emit_fusion_gpr_load into emit_fusion-addis that handles both power8 and power9 fusion. (emit_fusion_addis): Likewise. (emit_fusion_load_store): Likewise. (fusion_wrap_memory_address): Add support for TOC fusion. (fusion_split_address): Likewise. (fusion_p9_p): Add support for power9 fusion. (expand_fusion_p9_load): Likewise. (expand_fusion_p9_store): Likewise. (emit_fusion_p9_load): Likewise. (emit_fusion_p9_store): Likewise. * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for new instructions in ISA 3.0. (TARGET_CTZ): Likewise. (TARGET_TOC_FUSION_INT): Macros for power9 fusion support. (TARGET_TOC_FUSION_FP): Likewise. * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc fusion unspecs. (UNSPEC_FUSION_ADDIS): Likewise. (QHSI mode iterator): New iterator for power9 fusion. (GPR_FUSION): Likewise. (FPR_FUSION): Likewise. (mod<mode>3): Add support for ISA 3.0 modulus instructions. (umod<mode>3): Likewise. (divmod peephole): Likewise. (udivmod peephole): Likewise. (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar instructions. (ctz<mode>2_h): Likewise. (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction. (ashdi3_extswsli_dot): Likewise. (ashdi3_extswsli_dot2): Likewise. (power9 fusion splitter): New power9/toc fusion support. (toc_fusionload_<mode>): Likewise. (toc_fusionload_di): Likewise. (fusion_gpr_load_<mode>): Update predicate function. (power9 fusion peephole2s): New power9/toc fusion support. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise. (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise. (fusion_p9_<mode>_constant): Likewise. [gcc/testsuite] 2015-11-08 Michael Meissner <meissner@linux.vnet.ibm.com> * lib/target-supports.exp (check_p8vector_hw_available): Split long line. (check_vsx_hw_available): Likewise. (check_p9vector_hw_available): Add new checks for ISA 3.0 hardware support and for PowerPC float128 support. (check_p9modulo_hw_available): Likewise. (check_ppc_float128_sw_available): Likewise. (check_ppc_float128_hw_available): Likewise. (check_effective_target_powerpc_p9vector_ok): Likewise. (check_effective_target_powerpc_p9modulo_ok): Likewise. (check_effective_target_powerpc_float128_sw_ok): Likewise. (check_effective_target_powerpc_float128_hw_ok): Likewise. (is-effective-target): Add new PowerPc targets. (is-effective-target-keyword): Likewise. (check_vect_support_and_set_flags): If we have ISA 3.0 vector instructions, use it. * gcc.target/powerpc/mod-1.c: New test for ISA 3.0 instructions. * gcc.target/powerpc/mod-2.c: Likewise. * gcc.target/powerpc/ctz-1.c: Likewise. * gcc.target/powerpc/ctz-2.c: Likewise. * gcc.target/powerpc/extswsli-1.c: Likewise. * gcc.target/powerpc/extswsli-2.c: Likewise. * gcc.target/powerpc/extswsli-3.c: Likewise. * gcc.target/powerpc/fusion.c (fusion_vector): Move to fusion2.c and allow the test on PowerPC LE. * gcc.target/powerpc/fusion2.c (fusion_vector): Likewise. * gcc.target/powerpc/fusion3.c: New file, test power9 fusion. * gcc.target/powerpc/float128-call.c: Use powerpc_float128_sw_ok check instead of powerpc_vsx_ok. * gcc.target/powerpc/float128-mix.c: Likewise. From-SVN: r230066
Michael Meissner committed
-
- 09 Nov, 2015 38 commits
-
-
2015-11-09 Steve Ellcey <sellcey@imgtec.com> * optabs.c (prepare_libcall_arg): New function. (expand_fixed_convert): Add call to prepare_libcall_arg. From-SVN: r230065
Steve Ellcey committed -
From-SVN: r230063
Eric Botcazou committed -
* sched-int.h (dump_rgn_dependencies_dot): Declare * sched-rgn.c (dump_rgn_dependencies_dot): New function * print-rtl.h (print_insn): Add prototype From-SVN: r230062
Nikolai Bozhenov committed -
* haifa-sched.c (setup_sched_dump): Don't redirect output to stderr. * common.opt (-fsched-verbose): Set default value to 1. * invoke.texi (-fsched-verbose): Update the option's description. From-SVN: r230061
Nikolai Bozhenov committed -
* config/visium/visium.h (PRINT_OPERAND): Delete. (PRINT_OPERAND_PUNCT_VALID_P): Likewise. (PRINT_OPERAND_ADDRESS): Likewise. * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define to... (visium_print_operand_punct_valid_p): ...this. New function. (TARGET_PRINT_OPERAND): Define to... (print_operand): Rename to... (visium_print_operand): ...this. (TARGET_PRINT_OPERAND_ADDRESS): Define to... (visium_output_address): Rename to... (visium_print_operand_address): ...this. (print_operand_address): Delete. From-SVN: r230060
Eric Botcazou committed -
re PR middle-end/68259 ([sso] tree checking failure in reverse_storage_order_for_component_p, at tree.h:4392) PR middle-end/68259 * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>: Check that the type of the first operand is an aggregate type. From-SVN: r230056
Eric Botcazou committed -
* omp-low.c: Fix some OpenACC comment typos. (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call. * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS): Delete. From-SVN: r230054
Nathan Sidwell committed -
* include/bits/stl_algo.h (partial_sort_copy): Instantiate std::iterator_traits only if concept checks. (lower_bound): Likewise. (upper_bound): Likewise. (equal_range): Likewise. (binary_search): Likewise. * include/bits/stl_heap.h (pop_heap): Likewise. From-SVN: r230052
François Dumont committed -
* config/i386/i386.md (*strmovqi_1): Fix insn enable condition. From-SVN: r230050
Uros Bizjak committed -
* tree-ssanames.c (verify_ssaname_freelists): Simplify check for being in gimple/ssa form. Remove redundant check for SSA_NAME. Fix comment typo. From-SVN: r230049
Jeff Law committed -
* g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h. (main): Use _Cilk_spawn instead of cilk_spawn. From-SVN: r230048
Uros Bizjak committed -
gcc/testsuite/ * gcc.target/i386/addr-space-3.c: Fix quoting in dg-final scan-assembler directive. From-SVN: r230038
Thomas Schwinge committed -
This adds transactional clones of the sized version of operator delete. From-SVN: r230036
Torvald Riegel committed -
2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9). (-mpower9-vector): Likewise. (-mpower9-dform): Likewise. (-mpower9-minmax): Likewise. (-mtoc-fusion): Likewise. (-mmodulo): Likewise. (-mfloat128-hardware): Likewise. * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option mask for ISA 3.0 (power9). (POWERPC_MASKS): Add new ISA 3.0 switches. (power9 cpu): Add power9 cpu. * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9. (ASM_CPU_SPEC): Likewise. (EXTRA_SPECS): Likewise. * config/rs6000/rs6000-opts.h (enum processor_type): Add PROCESSOR_POWER9. * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9. (rs6000_debug_reg_global): Add support for power9 fusion. (rs6000_setup_reg_addr_masks): Cache mode size. (rs6000_option_override_internal): Until real power9 tuning is added, use -mtune=power8 for -mcpu=power9. (rs6000_setup_reg_addr_masks): Do not allow pre-increment, pre-decrement, or pre-modify on SFmode/DFmode if we allow the use of Altivec registers. (rs6000_option_override_internal): Add support for ISA 3.0 switches. (rs6000_loop_align): Add support for power9 cpu. (rs6000_file_start): Likewise. (rs6000_adjust_cost): Likewise. (rs6000_issue_rate): Likewise. (insn_must_be_first_in_group): Likewise. (insn_must_be_last_in_group): Likewise. (force_new_group): Likewise. (rs6000_register_move_cost): Likewise. (rs6000_opt_masks): Likewise. * config/rs6000/rs6000.md (cpu attribute): Add power9. * config/rs6000/rs6000-tables.opt: Regenerate. * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define _ARCH_PWR9 if power9 support is available. * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9. * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise. * configure.ac: Determine if the assembler supports the ISA 3.0 instructions. * config.in (HAVE_AS_POWER9): Likewise. * configure: Regenerate. * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0 switches. From-SVN: r230031
Michael Meissner committed -
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Remove integer CONST_DOUBLE handling. It should never occur. From-SVN: r230030
Kyrylo Tkachov committed -
PR target/68129 * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE): Delete VOIDmode case. Assert that mode is not VOIDmode. * config/aarch64/predicates.md (const0_operand): Remove const_double match. * gcc.dg/pr68129_1.c: New test. From-SVN: r230029
Kyrylo Tkachov committed -
* ipa-inline-analysis.c (estimate_function_body_sizes): Call body_info release function. * ipa-prop.c (ipa_release_body_info): New function. (ipa_analyze_node): Call the function. (ipa_node_params::~ipa_node_params): Release known_csts. * ipa-prop.h (ipa_release_body_info): Declare. From-SVN: r230028
Martin Liska committed -
* gcc.c (record_temp_file): Release name string. * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec. * lra-lives.c (free_live_range_list): Utilize lra_live_range_pool for allocation and deallocation. (create_live_range): Likewise. (copy_live_range): Likewise. (lra_merge_live_ranges): Likewise. (remove_some_program_points_and_update_live_ranges): Likewise. (lra_create_live_ranges_1): Release point_freq_vec that can be not freed from previous iteration of the function. * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec. * tree-sra.c (sra_deinitialize): Release all vectors in base_access_vec. * tree-ssa-dom.c (free_dom_edge_info): Make the function extern. * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Release edge_info for a removed edge. (thread_through_all_blocks): Free region vector. * tree-ssa.h (free_dom_edge_info): Declare function extern. From-SVN: r230027
Martin Liska committed -
gcc/c/ChangeLog: PR debug/67192 * c-typeck.c (c_finish_loop): For unconditional loops, set the location of the backward-goto to the start of the loop body. gcc/testsuite/ChangeLog: PR debug/67192 * gcc.dg/guality/pr67192.c (f3, f4): New functions. (main): Invoke them. From-SVN: r230024
Andreas Arnez committed -
gcc/c/ChangeLog: PR debug/67192 * c-parser.c (c_parser_while_statement): Finish the loop before parsing ahead for misleading indentation. (c_parser_for_statement): Likewise. gcc/testsuite/ChangeLog: PR debug/67192 * gcc.dg/guality/pr67192.c: New test. From-SVN: r230023
Andreas Arnez committed -
gcc/ * optabs.c (expand_vec_cond_expr): Always get sign from type. * tree.c (wide_int_to_tree): Support negative values for boolean. (build_nonstandard_boolean_type): Use signed type for booleans. From-SVN: r230022
Ilya Enkovich committed -
re PR tree-optimization/68248 (ICE on valid code at -O3 on x86_64-linux-gnu in uniform_vector_p, at tree.c:10807) 2015-11-09 Richard Biener <rguenther@suse.de> PR tree-optimization/68248 * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2. * gcc.dg/torture/pr68248.c: New testcase. From-SVN: r230021
Richard Biener committed -
re PR tree-optimization/56118 (Piecewise vector / complex initialization from constants not combined) 2015-11-09 Richard Biener <rguenther@suse.de> PR tree-optimization/56118 * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare. * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export. * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New function. (vect_slp_analyze_data_ref_dependences): Instead of computing all dependences of the region DRs just analyze the code motions SLP vectorization will perform. Remove SLP instances that cannot have their store/load motions applied. (vect_analyze_data_refs): Allow DRs without a vectype in BB vectorization. * gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Adjust. From-SVN: r230020
Richard Biener committed -
* final.c (output_asm_insn): Pass VOIDmode to output_address. (output_address): Add MODE argument. Pass to print_operand_address hook. * targhooks.c (default_print_operand_address): Add MODE argument. * targhooks.h (default_print_operand_address): Update prototype. * output.h (output_address): Update prototype. * target.def (print_operand_address): Add MODE argument. * config/vax/vax.c (print_operand_address): Pass VOIDmode to output_address. (print_operand): Pass access mode to output_address. * config/mcore/mcore.c (mcore_print_operand_address): Add MODE argument. (mcore_print_operand): Update calls to mcore_print_operand_address. * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to output_address. * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to output_address. * config/tilegx/tilegx.c (output_memory_reference_mode): Remove global. (tilegx_print_operand): Don't set above global. Update calls to output_address. (tilegx_print_operand_address): Add MODE argument. Use instead of output_memory_reference_mode global. * config/frv/frv.c (frv_print_operand_address): Add MODE argument. (frv_print_operand): Pass mode to frv_print_operand_address calls. * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to output_address. * config/cris/cris.c (cris_print_operand_address): Add MODE argument. (cris_print_operand): Pass mode to output_address calls. * config/spu/spu.c (print_operand): Pass mode to output_address calls. * config/aarch64/aarch64.h (aarch64_print_operand) (aarch64_print_operand_address): Remove prototypes. * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete global. (aarch64_print_operand): Make static. Update calls to output_address. (aarch64_print_operand_address): Add MODE argument. Use instead of aarch64_memory_reference_mode global. (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target hooks. * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Delete macro definitions. * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls. * config/xtensa/xtensa.c (print_operand): Pass mode in output_address calls. * config/h8300/h8300.c (h8300_print_operand_address): Add MODE argument. (h83000_print_operand): Update calls to h8300_print_operand_address and output_address. * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument. * config/tilepro/tilepro.c (output_memory_reference_mode): Delete global. (tilepro_print_operand): Pass mode to output_address. (tilepro_print_operand_address): Add MODE argument. Use instead of output_memory_reference_mode. * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer) (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode to output_address calls. (nvptx_print_operand_address): Add MODE argument. * config/alpha/alpha.c (print_operand): Pass mode argument in output_address calls. * config/m68k/m68k.c (print_operand): Pass mode argument in output_address call. * config/avr/avr.c (avr_print_operand_address): Add MODE argument. (avr_print_operand): Update calls to avr_print_operand_address. * config/sparc/sparc.c (sparc_print_operand_address): Add MODE argument. Update calls to output_address. (sparc_print_operand): Pass mode to output_address. * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE argument. (iq2000_print_operand): Pass mode in output_address calls. * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add MODE argument. (xstormy16_print_operand): Pass mode to xstormy16_print_operand_address calls. * config/mips/mips.c (mips_print_operand): Update calls to output_address. (mips_print_operand_address): Add MODE argument. * config/epiphany/epiphany.c (epiphany_print_operand): Update calls to output_address. (epiphany_print_operand_address): Add MODE argument. Add FIXME note. * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to output_address. * config/rx/rx.c (rx_print_operand_address): Add MODE argument. (rx_print_operand): Update calls to output_address, rx_print_operand_address. * config/nds32/nds32.c (nds32_print_operand): Update calls to output_address. (nds32_print_operand_address): Add MODE argument. * config/rs6000/rs6000.c (print_operand): Pass mem mode to output_address calls. * config/c6x/c6x.c (print_address_offset): Pass mem mode to output_address call. (c6x_print_address_operand): Update calls to output_address. (c6x_print_operand_address): Pass mode to above. * config/v850/v850.c (v850_print_operand_address): Add MODE argument. (v850_print_operand): Pass mode to v850_print_operand_address, output_address. * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument. (mmix_print_operand): Pass mode in output_address calls. * config/sh/sh.c (sh_print_operand_address): Add MODE argument. (sh_print_operand): Pass mem mode to output_address, sh_print_operand_address. * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument. (cr16_print_operand): Pass mode to output_address, cr16_print_operand_address. * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to output_address. * config/microblaze/microblaze.c (print_operand): Pass mode to output_address. * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to output_address. (nios2_print_operand_address): Add MODE argument. Update call to nios2_print_operand_address. * config/s390/s390.c (print_operand): Pass mode to output_address. * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument. * config/arc/arc.c (arc_print_operand): Pass VOIDmode to output_address. * config/arm/arm.c (arm_print_operand_address): Add MODE argument. Use instead of output_memory_reference_mode. (output_memory_reference_mode): Delete global. (arm_print_operand): Pass mem mode to output_address. * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument. (m32r_print_operand): Pass mode to output_address. * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE argument. (msp430_print_operand): Pass mode to msp430_print_operand_addr. * config/i386/i386.c (ix86_print_operand): Pass mode to output_address calls. (ix86_print_operand_address): Add MODE argument. From-SVN: r230016
Julian Brown committed -
PR middle-end/68251 * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around. * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag. * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust. * tree-streamer-out.c (pack_ts_base_value_fields): Likewise. From-SVN: r230015
Eric Botcazou committed -
PR rtl-optimization/67749 * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE case before emitting the two blocks. Instead modify the register in the corresponding final insn of the basic block. From-SVN: r230014
Kyrylo Tkachov committed -
libgcc: * config/ia64/crtbegin.S: Check HAVE_INITFINI_ARRAY_SUPPORT value. * config/ia64/crtend.S: Likewise. gcc: * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in assembler syntax. Support Solaris ld. Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1. * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to HAVE_INITFINI_ARRAY_SUPPORT. * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value. * configure.ac (gcc_cv_as_sparc_nobits): Remove. * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Don't check HAVE_AS_SPARC_NOBITS. Heed SECTION_NOTYPE. * configure: Regenerate. * config.in: Regenerate. From-SVN: r230013
Rainer Orth committed -
re PR middle-end/68253 (conditional jump or move depends on uninitialized value in fold-const.c:5587) PR middle-end/68253 * fold-const.c (fold_truth_andor_1): Initialize new variables to 0. From-SVN: r230011
Eric Botcazou committed -
thumb2-slow-flash-data.c: Add missing typespec for labelref and check use of constant pool by looking for... 2015-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * gcc.target/arm/thumb2-slow-flash-data.c: Add missing typespec for labelref and check use of constant pool by looking for .word and similar directives. From-SVN: r230010
Thomas Preud'homme committed -
libcilkrts/ 2015-11-09 Igor Zamyatin <igor.zamyatin@intel.com> PR target/66326 * runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state): Use fnstcw instead fnstsw. gcc/testsuite 2015-11-09 Igor Zamyatin <igor.zamyatin@intel.com> PR target/66326 * g++.dg/cilk-plus/CK/pr66326.cc: New test. From-SVN: r230008
Igor Zamyatin committed -
* config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS, __SEG_GS, __SEG_TLS. (ix86_register_pragmas): Register address spaces __seg_fs, __seg_gs, __seg_tls. * config/i386/i386-protos.h (enum ix86_address_seg): Remove. (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New. (struct ix86_address): Use addr_space_t instead of ix86_address_seg. * config/i386/i386.c (ix86_decompose_address): Likewise. (ix86_legitimate_address_p): Likewise. (memory_address_length): Likewise. Check mem address space too. (ix86_print_operand): Use ix86_print_operand_address_as. (ix86_print_operand_address_as): Rename from ix86_print_operand_address, add new addr_space_t parameter. Validate that either the parameter or the ix86_address segment is default address space. Handle ADDR_SPACE_SEG_TLS. (ix86_print_operand_address): New. (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New. (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New. (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New. (ix86_addr_space_zero_address_valid): New. (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New. * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants. * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise. * config/i386/predicates.md (address_no_seg_operand): Likewise. (vsib_address_operand): Likewise. (address_mpx_no_base_operand): Likewise. (address_mpx_no_index_operand): Likewise. * doc/extend.texi (x86 Named Address Spaces): New section. * gcc.target/i386/addr-space-1.c: New test. * gcc.target/i386/addr-space-2.c: New test. * gcc.target/i386/addr-space-3.c: New test. From-SVN: r230003
Richard Henderson committed -
While cmps and movs allow a segment override of the ds:esi source, the es:edi source/destination cannot be overriden. Simplify things in the backend for now by disallowing segments for string insns entirely. * config/i386/i386.c (ix86_check_no_addr_space): New. (decide_alg): Add have_as parameter. (alg_usable_p): Likewise; disable rep algorithms if set. (ix86_expand_set_or_movmem): Notice if either MEM has a non-default address space. (ix86_expand_strlen): Likewise. * config/i386/i386.md (strmov, strset): Likewise. (*strmovdi_rex_1): Use ix86_check_no_addr_space. (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi, *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1, *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1, *cmpstrnqi_1, *strlenqi_1): Likewise. From-SVN: r230002
Richard Henderson committed -
* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx. (*movabs<mode>_2): Likewise. From-SVN: r230001
Richard Henderson committed -
* dwarf2out.c (modified_type_die): Pass the address space number through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class. * target.def (TARGET_ADDR_SPACE_DEBUG): New. * targhooks.c (default_addr_space_debug): New. * targhooks.h (default_addr_space_debug): Declare. * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it. * doc/tm.texi: Rebuild. From-SVN: r230000
Richard Henderson committed -
* gimple.c (check_loadstore): Return false when 0 is a valid address. * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold null when 0 is valid in the source address space. * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New. * targhooks.c (default_addr_space_zero_address_valid): New. * targhooks.h (default_addr_space_zero_address_valid): Declare. * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it. * doc/tm.texi: Rebuild. From-SVN: r229999
Richard Henderson committed -
* cselib.c (add_mem_for_addr): Compare address spaces when matching memories. (cselib_lookup_mem): Likewise. * fold-const.c (operand_equal_p): Check address spaces of pointer types before checking integer constants. From-SVN: r229998
Richard Henderson committed -
PR tree-opt/66768 * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of the correct type for the base. From-SVN: r229997
Richard Henderson committed -
[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier * tree-into-ssa.c (names_to_release): No longer static. * tree-into-ssa.h (names_to_release): Declare. * tree-ssanames.c (verify_ssaname_freelists): New debug function. (release_free_names_and_compact_live_names): New function extracted from pass_release_ssa_names::execute. (pass_release_ssa_names::execute): Use it. Co-Authored-By: Nathan Sidwell <nathan@acm.org> From-SVN: r229995
Jeff Law committed
-