- 12 Jul, 2010 15 commits
-
-
gcc/ * Makefile.in (target-globals.o): Depend on $(REGS_H). * regs.h (target_reg_modes): New structure. (default_target_reg_modes): Declare. (this_target_reg_modes): Declare as a variable or define as a macro. (hard_regno_nregs, reg_raw_mode): Redefine as macros. * reginfo.c (default_target_reg_modes): New variable. (this_target_reg_modes): New conditional variable. (hard_regno_nregs, reg_raw_mode): Delete. * target-globals.h (this_target_regs): Declare. (target_globals): Add a regs field. (restore_target_globals): Copy the regs field to this_target_regs. * target-globals.c: Include regs.h. (default_target_globals): Initialize the regs field. (save_target_globals): Likewise. From-SVN: r162087
Richard Sandiford committed -
gcc/ * doc/tm.texi.in (SWITCHABLE_TARGET): Document. * doc/tm.texi: Regenerate. * Makefile.in (OBJS-common): Add target-globals.o. (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H) and target-globals.h. (target-globals.o): New rule. (GTFILES): Include $(srcdir)/target-globals.h. * defaults.h (SWITCHABLE_TARGET): Define. * gengtype.c (open_base_files): Add target-globals.h to the list of includes. * target-globals.h: New file. * target-globals.c: Likewise. * Makefile.in (target-globals.o): Depend on $(FLAGS_H). * flags.h (target_flag_state): New structure. (default_target_flag_state): Declare. (this_target_flag_state): Declare as a variable or define as a macro. (align_loops_log): Redefine as a macro. (align_loops_max_skip, align_jumps_log): Likewise. (align_jumps_max_skip, align_labels_log): Likewise. (align_labels_max_skip, align_functions_log): Likewise. * toplev.c (default_target_flag_state): New variable. (this_target_flag_state): New conditional variable. (align_loops_log): Delete. (align_loops_max_skip, align_jumps_log): Likewise. (align_jumps_max_skip, align_labels_log): Likewise. (align_labels_max_skip, align_functions_log): Likewise. * target-globals.h (this_target_flag_state): Declare. (target_globals): Add a flag_state field. (restore_target_globals): Copy the flag_state field to this_target_flag_state. * target-globals.c: Include flags.h. (default_target_globals): Initialize the flag_state field. (save_target_globals): Likewise. From-SVN: r162086
Richard Sandiford committed -
* postreload.c (reg_symbol_ref[]): New. (move2add_use_add2_insn): New. (move2add_use_add3_insn): New. (reload_cse_move2add): Handle SYMBOL + OFFSET case. (move2add_note_store): Likewise. From-SVN: r162085
Jie Zhang committed -
From-SVN: r162084
Joern Rennecke committed -
PR rtl-optimization/44752 * genautomata.c (main): Don't emit an empty file even if there is no automaton. From-SVN: r162083
Joern Rennecke committed -
* config/i386/i386.c (ix86_sol10_return_in_memory): Rename to ix86_solaris_return_in_memory. * config/i386-protos.h: Reflect this. * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise. * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise. Move ... * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here. From-SVN: r162082
Rainer Orth committed -
2010-07-12 Mikael Morin <mikael@gcc.gnu.org> * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice. * resolve.c (build_default_init_expr): Ditto. From-SVN: r162081
Mikael Morin committed -
* inclhack.def (solaris_cond_init): New fix. * fixincl.x: Regenerate. * tests/base/pthread.h [SOLARIS_COND_INIT_CHECK]: New test. [SOLARIS_MUTEX_INIT_2_CHECK]: Adapt. From-SVN: r162080
Rainer Orth committed -
* config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to align the stack when it's going to be saved. testsuite/ * gcc.target/arm/interrupt-1.c: New test. * gcc.target/arm/interrupt-2.c: New test. From-SVN: r162078
Jie Zhang committed -
* gcc.dg/pr42427.c: Require c99_runtime. * gcc.target/i386/avx-cmpsd-1.c: Use dg-require-effective-target c99_runtime. * gcc.target/i386/avx-cmpss-1.c: Likewise. * gcc.target/i386/avx-vcmppd-1.c: Likewise. * gcc.target/i386/avx-vcmppd-256-1.c: Likewise. * gcc.target/i386/avx-vcmpps-1.c: Likewise. * gcc.target/i386/avx-vcmpps-256-1.c: Likewise. * gcc.target/i386/avx-vcmpsd-1.c: Likewise. * gcc.target/i386/avx-vcmpss-1.c: Likewise. * gcc.target/i386/sse-cmpss-1.c: Likewise. * gcc.target/i386/sse2-cmpsd-1.c: Likewise * gcc.target/i386/pr37275.c: Require visibility support. From-SVN: r162075
Rainer Orth committed -
PR pch/14940 * config/host-solaris.c (mmap_fixed): New function. (sol_gt_pch_get_address): Use it. (sol_gt_pch_use_address): Likewise. From-SVN: r162074
Rainer Orth committed -
gcc: * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to pentiumpro on Solaris 8 and 9/x86. * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as. Document SSE/SSE2 support. * doc/sourcebuild.texi (Effective-Target Keywords): Document sse. gcc/testsuite: * lib/target-supports.exp (check_effective_target_sse): New proc. * gcc.target/i386/sol2-check.h: New file. * gcc.target/i386/sse-check.h (ILL_INSN, ILL_INSN_LEN): Define. Include sol2-check.h. (main) Only run do_test () if sol2_check (). * gcc.target/i386/sse2-check.h: Likewise. * gcc.target/i386/sse3-check.h: Likewise. * gcc.dg/vect/tree-vect.h (check_vect) [__i386__ || __x86_64__] [__sun__ && __svr4__]: Execute SSE2 instruction. * gcc.target/i386/math-torture/math-torture.exp: Only add options with -msse to MATH_TORTURE_OPTIONS if check_effective_target_sse. * g++.dg/debug/dwarf2/const2b.C: Use dg-require-effective-target sse. * g++.dg/ext/vector14.C: Likewise. * g++.dg/other/mmintrin.C: Likewise. * gcc.dg/20020418-1.c: Likewise. * gcc.dg/debug/dwarf2/const-2b.c: Likewise. * gcc.dg/format/ms_unnamed-1.c: Likewise. * gcc.dg/format/unnamed-1.c: Likewise. Adapt dg-warning line number. * gcc.dg/graphite/pr40281.c: Likewise. * gcc.dg/pr32176.c: Likewise. * gcc.dg/pr40550.c: Likewise. * gcc.dg/prefetch-loop-arrays-1.c: Likewise. * gcc.dg/torture/pr36891.c: Likewise. * gcc.target/i386/20020218-1.c: Likewise. * gcc.target/i386/20020523.c: Likewise. * gcc.target/i386/abi-1.c: Likewise. * gcc.target/i386/brokensqrt.c: Likewise. * gcc.target/i386/fastcall-sseregparm.c: Likewise. * gcc.target/i386/pr13366.c: Likewise. * gcc.target/i386/pr13685.c: Likewise. * gcc.target/i386/pr24306.c: Likewise. * gcc.target/i386/pr31486.c: Likewise. * gcc.target/i386/pr32065-1.c: Likewise. * gcc.target/i386/pr32065-2.c: Likewise. * gcc.target/i386/pr32389.c: Likewise. * gcc.target/i386/pr38824.c: Likewise. * gcc.target/i386/pr38931.c: Likewise. * gcc.target/i386/pr39592-1.c: Likewise. * gcc.target/i386/pr43766.c: Likewise. * gcc.target/i386/recip-divf.c: Likewise. * gcc.target/i386/recip-sqrtf.c: Likewise. * gcc.target/i386/recip-vec-divf.c: Likewise. * gcc.target/i386/recip-vec-sqrtf.c: Likewise. * gcc.target/i386/sse-1.c: Likewise. * gcc.target/i386/sse-16.c: Likewise. * gcc.target/i386/sse-2.c: Likewise. * gcc.target/i386/sse-20.c: Likewise. * gcc.target/i386/sse-3.c: Likewise. * gcc.target/i386/sse-7.c: Likewise. * gcc.target/i386/sse-9.c: Likewise. * gcc.target/i386/sse-addps-1.c: Likewise. * gcc.target/i386/sse-addss-1.c: Likewise. * gcc.target/i386/sse-andnps-1.c: Likewise. * gcc.target/i386/sse-andps-1.c: Likewise. * gcc.target/i386/sse-cmpss-1.c: Likewise. * gcc.target/i386/sse-comiss-1.c: Likewise. * gcc.target/i386/sse-comiss-2.c: Likewise. * gcc.target/i386/sse-comiss-3.c: Likewise. * gcc.target/i386/sse-comiss-4.c: Likewise. * gcc.target/i386/sse-comiss-5.c: Likewise. * gcc.target/i386/sse-comiss-6.c: Likewise. * gcc.target/i386/sse-copysignf-vec.c: Likewise. * gcc.target/i386/sse-cvtsi2ss-1.c: Likewise. * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise. * gcc.target/i386/sse-cvtss2si-1.c: Likewise. * gcc.target/i386/sse-cvtss2si-2.c: Likewise. * gcc.target/i386/sse-cvttss2si-1.c: Likewise. * gcc.target/i386/sse-cvttss2si-2.c: Likewise. * gcc.target/i386/sse-divps-1.c: Likewise. * gcc.target/i386/sse-divss-1.c: Likewise. * gcc.target/i386/sse-init-v4hi-1.c: Likewise. * gcc.target/i386/sse-init-v4sf-1.c: Likewise. * gcc.target/i386/sse-maxps-1.c: Likewise. * gcc.target/i386/sse-maxss-1.c: Likewise. * gcc.target/i386/sse-minps-1.c: Likewise. * gcc.target/i386/sse-minss-1.c: Likewise. * gcc.target/i386/sse-movaps-1.c: Likewise. * gcc.target/i386/sse-movaps-2.c: Likewise. * gcc.target/i386/sse-movhlps-1.c: Likewise. * gcc.target/i386/sse-movhps-1.c: Likewise. * gcc.target/i386/sse-movhps-2.c: Likewise. * gcc.target/i386/sse-movlhps-1.c: Likewise. * gcc.target/i386/sse-movmskps-1.c: Likewise. * gcc.target/i386/sse-movntps-1.c: Likewise. * gcc.target/i386/sse-movss-1.c: Likewise. * gcc.target/i386/sse-movss-2.c: Likewise. * gcc.target/i386/sse-movss-3.c: Likewise. * gcc.target/i386/sse-movups-1.c: Likewise. * gcc.target/i386/sse-movups-2.c: Likewise. * gcc.target/i386/sse-mulps-1.c: Likewise. * gcc.target/i386/sse-mulss-1.c: Likewise. * gcc.target/i386/sse-orps-1.c: Likewise. * gcc.target/i386/sse-rcpps-1.c: Likewise. * gcc.target/i386/sse-recip-vec.c: Likewise. * gcc.target/i386/sse-recip.c: Likewise. * gcc.target/i386/sse-rsqrtps-1.c: Likewise. * gcc.target/i386/sse-set-ps-1.c: Likewise. * gcc.target/i386/sse-sqrtps-1.c: Likewise. * gcc.target/i386/sse-subps-1.c: Likewise. * gcc.target/i386/sse-subss-1.c: Likewise. * gcc.target/i386/sse-ucomiss-1.c: Likewise. * gcc.target/i386/sse-ucomiss-2.c: Likewise. * gcc.target/i386/sse-ucomiss-3.c: Likewise. * gcc.target/i386/sse-ucomiss-4.c: Likewise. * gcc.target/i386/sse-ucomiss-5.c: Likewise. * gcc.target/i386/sse-ucomiss-6.c: Likewise. * gcc.target/i386/sse-unpckhps-1.c: Likewise. * gcc.target/i386/sse-unpcklps-1.c: Likewise. * gcc.target/i386/sse-xorps-1.c: Likewise. * gcc.target/i386/ssefn-1.c: Likewise. * gcc.target/i386/ssefn-3.c: Likewise. * gcc.target/i386/sseregparm-1.c: Likewise. * gcc.target/i386/stackalign/return-3.c: Likewise. * gcc.target/i386/vectorize1.c: Likewise. * gcc.target/i386/vperm-v4sf-1.c: Likewise. * gcc.target/i386/xorps-sse.c: Likewise. * gfortran.dg/pr28158.f90: Likewise. * gfortran.dg/pr30667.f: Likewise. * gnat.dg/loop_optimization7.adb: Likewise. * gnat.dg/sse_nolib.adb: Likewise. libgfortran: * config/fpu-387.h [__sun__ && __svr4__] Include <signal.h>, <ucontext.h>. (sigill_caught): New. (sigill_hdlr): New function (has_sse) [__sun__ && __svr4__]: Check if SSE instruction causes SIGILL. From-SVN: r162073
Rainer Orth committed -
lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error instead of gcc_assert to print better error message for... 2010-07-12 Andi Kleen <ak@linux.intel.com> * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error instead of gcc_assert to print better error message for multiple prevailing defs. From-SVN: r162070
Andi Kleen committed -
* config/i386/i386.c (ix86_asm_output_function_label): Change format string placeholder from 0x%x to %#x. (ix86_code_end): Use putc to output '\n'. (ix86_print_operand) <case ';'>: Use putc to output ';'. From-SVN: r162067
Uros Bizjak committed -
From-SVN: r162065
GCC Administrator committed
-
- 11 Jul, 2010 8 commits
-
-
2010-07-11 Tobias Burnus <burnus@net-b.de> PR fortran/44702 * module.c (sort_iso_c_rename_list): Remove. (import_iso_c_binding_module,use_iso_fortran_env_module): Allow multiple imports of the same symbol. 2010-07-11 Tobias Burnus <burnus@net-b.de> PR fortran/44702 * gfortran.dg/use_rename_6.f90: New. * gfortran.dg/use_iso_c_binding.f90: Update dg-error. From-SVN: r162061
Tobias Burnus committed -
2010-07-11 Kai Tietz <kai.tietz@onevision.com> PR libfortran/44698 * io/unix.c (flush_buf): Add _commit for WIN32. From-SVN: r162060
Kai Tietz committed -
2010-07-11 Mikael Morin <mikael@gcc.gnu.org> * arith.c (gfc_arith_done_1): Release mpfr internal caches. From-SVN: r162058
Mikael Morin committed -
2010-07-11 Paolo Carlini <paolo.carlini@oracle.com> * include/std/type_traits (is_convertible): Use SFINAE. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error line numbers. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Likewise. From-SVN: r162056
Paolo Carlini committed -
2010-07-11 Kai Tietz <kai.tietz@onevision.com> * config/i386/winnt.c (i386_pe_file_end): Quote symbol name in directive -export. From-SVN: r162055
Kai Tietz committed -
From-SVN: r162053
Janus Weil committed -
2010-07-11 Janus Weil <janus@gcc.gnu.org> PR fortran/44689 * decl.c (build_sym,attr_decl1): Only build the class container if the symbol has sufficient attributes. * expr.c (gfc_check_pointer_assign): Use class_pointer instead of pointer attribute for classes. * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto. * module.c (MOD_VERSION): Bump. (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER. (mio_symbol_attribute): Handle class_pointer attribute. * parse.c (parse_derived): Use class_pointer instead of pointer attribute for classes. * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto. * resolve.c (resolve_structure_cons,resolve_deallocate_expr, resolve_allocate_expr,resolve_fl_derived): Ditto. (resolve_fl_var_and_proc): Check for class_ok attribute. 2010-07-11 Janus Weil <janus@gcc.gnu.org> PR fortran/44689 * gfortran.dg/class_24.f03: New. From-SVN: r162052
Janus Weil committed -
From-SVN: r162051
GCC Administrator committed
-
- 10 Jul, 2010 11 commits
-
-
2010-07-10 Mikael Morin <mikael@gcc.gnu.org> * MAINTAINERS (Reviewers): Update my e-mail address From-SVN: r162046
Mikael Morin committed -
* reginfo.h (reg_classes_intersect_p): Change arguments type to reg_class_t. * rtl.h (reg_classes_intersect_p): Adjust prototype. * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove macros. * config/rs6000/rs6000-protos.h (rs6000_register_move_cost, rs6000_memory_move_cost): Remove * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. (rs6000_register_move_cost): Make static. Change arguments type from enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls. (rs6000_memory_move_cost): Make static. Change arguments type from 'enum reg_class' to reg_class_t. From-SVN: r162045
Anatoly Sokolov committed -
2010-07-10 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/42505 gcc/ * tree-inline.c (estimate_num_insns): Refactor builtin complexity lookup code into.... * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these new functions. * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare. * cfgloopanal.c (target_clobbered_regs): Define. (init_set_costs): Initialize target_clobbered_regs. (estimate_reg_pressure_cost): Add call_p argument. When true, adjust the number of available registers to exclude the call-clobbered registers. * cfgloop.h (target_clobbered_regs): Declare. (estimate_reg_pressure_cost): Adjust declaration. * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call. (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost. (determine_set_costs): Dump target_clobbered_regs. (loop_body_includes_call): New function. (tree_ssa_iv_optimize_loop): Use it to initialize new field. * loop-invariant.c (gain_for_invariant): Adjust arguments to pass call_p flag through. (best_gain_for_invariant): Likewise. (find_invariants_to_move): Likewise. (move_single_loop_invariants): Likewise, using already-computed has_call field. From-SVN: r162043
Sandra Loosemore committed -
2010-07-10 Mikael Morin <mikael@gcc.gnu.org> * trans-io.c (gfc_build_st_parameter): Update calls to gfc_add_field_to_struct. * trans-stmt.c (ADD_FIELD): Ditto. * trans-types.c (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's C_ADDRESS field. (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of fieldlist, remove fieldlist from argument list. (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1 and remove fieldlist from argument list. (gfc_get_desc_dim_type, gfc_get_array_descriptor_base, gfc_get_mixed_entry_union): Move setting TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it. * trans-types.h (gfc_add_field_to_struct): Update prototype. From-SVN: r162042
Mikael Morin committed -
2010-07-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/44773 * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary if the lhs has never been host associated, as well as not being use associated, a pointer or a target. * resolve.c (resolve_variable): Mark variables that are host associated. * gfortran.h: Add the host_assoc bit to the symbol_attribute structure. From-SVN: r162038
Paul Thomas committed -
2010-07-10 Richard Guenther <rguenther@suse.de> Joern Rennecke <joern.rennecke@embecosm.com> PR debug/44832 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL. (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs unless they have DECL_IGNORED_P set. Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com> From-SVN: r162035
Richard Guenther committed -
re PR lto/44889 (Bogus "type of ‘nsLayoutModule_NSModule’ does not match original declaration" waning compiling Mozilla) 2010-07-10 Richard Guenther <rguenther@suse.de> PR lto/44889 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New helper function. (gimple_types_compatible_p): Similar to pointed-to types allow and merge a mix of complete and incomplete aggregate. Use gimple_fixup_complete_and_incomplete_subtype_p for that. (iterative_hash_gimple_type): Adjust for that. * gcc.dg/lto/20100709-1_0.c: New testcase. * gcc.dg/lto/20100709-1_1.c: Likewise. From-SVN: r162032
Richard Guenther committed -
gcc/ * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols. gcc/testsuite/ * gcc.dg/attr-weak-hidden-1.c, gcc.dg/attr-weak-hidden-1a.c: New test. From-SVN: r162031
Richard Sandiford committed -
gcc/ PR objc/44140 * config/darwin.c (output_objc_section_asm_op): Save and restore section when outputting ObjC section list. testsuite/ PR objc/44140 * objc.dg/lto/trivial-1_0.m: New. * objc.dg/lto/lto.exp: New. * obj-c++.dg/lto/trivial-1_0.mm: New. * obj-c++.dg/lto/lto.exp: New. * objc.dg/symtab-1.m: Adjust sizes. * objc.dg/image-info.m: Do not run for gnu-runtime. gcc/objc/ PR objc/44140 * objc-act.c: build_objc_string_decl() remove declaration. (finish_var_decl): Remove forcing of var output and marking as "Used". (init_def_list): Use integer_zero_node. (init_objc_symtab): Use integer_zero_node, make the short integer type specific on relevant nodes. (generate_objc_symtab_decl): Remove call to forward_declare_categories(). Use null_pointer_node where appropriate. (build_module_descriptor): Comment and mark this item as DECL_PRESERVE_P. (generate_static_references): Use gcc_unreachable instead of abort (). (diagnose_missing_method): New. (build_next_selector_translation_table): New. (build_gnu_selector_translation_table): New. (add_objc_string): Merge code from build_objc_string_decl... ... and delete build_objc_string_decl(). (generate_dispatch_table): Make integer types explicit. (generate_category): Pass implent and arrange for the data to be extracted within the routine. Do not start new vars, but finish the ones collcted during parsing. (generate_shared_structures): Likewise. (finish_objc): Reorder code so that we finish variables before referencing them. Save the global data before calling meta-data creation routines, and pass the current reference to the two main routines. Only call generate_objc_image_info () for the NeXT runtime. (generate_classref_translation_entry): Comment on and make this item DECL_PRESERVE_P. (handle_class_ref): Use varpool interfaces, comment on and make this item DECL_PRESERVE_P. (handle_impent): Likewise. (generate_objc_image_info): Only generate when the content is non-zero. Make integer types explict. From-SVN: r162030
Iain Sandoe committed -
From-SVN: r162029
GCC Administrator committed -
* lto-streamer-out.c (produce_symtab): Do not write alias cgraph/varpool nodes. From-SVN: r162025
Jan Hubicka committed
-
- 09 Jul, 2010 6 commits
-
-
tree-inline.c (declare_return_variable): Fix ICE while inlining DECL_BY_VALUE function not in SSA form * tree-inline.c (declare_return_variable): Fix ICE while inlining DECL_BY_VALUE function not in SSA form From-SVN: r162024
Jan Hubicka committed -
2010-07-09 Changpeng Fang <changpeng.fang@amd.com> PR tree-optimization/44576 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p): New. Pull out from is_loop_prefetching_profitable to implement the trip count to ahead ratio heuristic. (mem_ref_count_reasonable_p): New. Pull out from is_loop_prefetching_profitable to implement the instruction to memory reference ratio heuristic. Also consider not reasonable if the memory reference count is above a threshold (to avoid explosive compilation time. (insn_to_prefetch_ratio_too_small_p): New. Pull out from is_loop_prefetching_profitable to implement the instruction to prefetch ratio heuristic. (is_loop_prefetching_profitable): Removed. (loop_prefetch_arrays): Distribute the cost analysis across the function to allow early exit of the prefetch analysis. is_loop_prefetching_profitable is splitted into three functions, with each one called as early as possible. (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the number of memory references in a loop is considered too many. From-SVN: r162023
Changpeng Fang committed -
* config/arm/arm.md (cbranchqi4): Fix array size. (addsi3_cbranch): Also andle alternative 2 like alternative 3 when calculating length. From-SVN: r162022
Bernd Schmidt committed -
From-SVN: r162021
Bernd Schmidt committed -
* config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1. From-SVN: r162020
Bernd Schmidt committed -
* reload.c (find_reloads): Don't clear badop if we have a winreg alternative, but not win, and the class only has fixed regs. * hard-reg-set.h (class_only_fixed_regs): Declare. * reginfo.c (class_only_fixed_regs): New array. (init_reg_sets_1): Initialize it. * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't discourage alternatives using the stack pointer. testsuite/ * gcc.dg/pr32370.c: Allow another kind of error message. From-SVN: r162019
Bernd Schmidt committed
-