i386.md (*zero_extendqihi2_movzbw): Avoid partial register stalls by zero extending to the full register.
2005-11-26 Eric Christopher <echristo@apple.com> * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial register stalls by zero extending to the full register. From-SVN: r107559
This commit is contained in:
parent
2a3ebe774c
commit
0d9e72449c
|
@ -1,3 +1,8 @@
|
|||
2005-11-26 Eric Christopher <echristo@apple.com>
|
||||
|
||||
* config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
|
||||
register stalls by zero extending to the full register.
|
||||
|
||||
2005-11-27 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/floatunsisf.c, config/floatunsidf.c,
|
||||
|
@ -224,8 +229,8 @@
|
|||
|
||||
PR c++/21667
|
||||
* c-typeck.c (build_array_ref): Avoid code duplicate. Use common
|
||||
C/C++ diagnostic function warn_array_subscript_with_type_char.
|
||||
* c-common.h (warn_array_subscript_with_type_char): Declare.
|
||||
C/C++ diagnostic function warn_array_subscript_with_type_char.
|
||||
* c-common.h (warn_array_subscript_with_type_char): Declare.
|
||||
* c-common.c (warn_array_subscript_with_type_char): Define.
|
||||
|
||||
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||||
|
@ -305,7 +310,7 @@
|
|||
PR target/24988
|
||||
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
|
||||
to SUBTARGET_OS_CPP_BUILTINS.
|
||||
|
||||
|
||||
2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
* arm.c (emit_set_insn): New function.
|
||||
|
@ -319,7 +324,7 @@
|
|||
(vfp_emit_fstmx): Likewise. Use plus_constant.
|
||||
(emit_multi_reg_push): Likewise.
|
||||
(emit_sfm): Use plus_constant.
|
||||
|
||||
|
||||
2005-11-23 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR target/24954
|
||||
|
@ -354,7 +359,7 @@
|
|||
|
||||
* c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
|
||||
flag_pic is set.
|
||||
|
||||
|
||||
* config/alpha/freebsd.h, config/alpha/linux.h,
|
||||
config/arm/linux-elf.h, config/bfin/bfin.h,
|
||||
config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
|
||||
|
@ -470,7 +475,7 @@
|
|||
|
||||
2005-11-21 Uros Bizjak <uros@kss-loka.si>
|
||||
|
||||
* fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
|
||||
* fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
|
||||
if we don't care about NaNs or Infinities.
|
||||
|
||||
2005-11-20 Ian Lance Taylor <ian@airs.com>
|
||||
|
@ -599,7 +604,7 @@
|
|||
* langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
|
||||
(LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
|
||||
* langhooks.h (lang_hooks_for_decls): Add lookup_name.
|
||||
|
||||
|
||||
2005-11-18 Richard Earnshaw <richard.earnshaw@arm.com>
|
||||
|
||||
PR target/24914
|
||||
|
@ -936,7 +941,7 @@
|
|||
as empty.
|
||||
* config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
|
||||
link in crt2.o.
|
||||
|
||||
|
||||
* config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
|
||||
on -mmacosx-version-min setting.
|
||||
|
||||
|
@ -1018,7 +1023,7 @@
|
|||
|
||||
2005-11-13 Razya Ladelsky <razya@il.ibm.com>
|
||||
|
||||
* ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
|
||||
* ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
|
||||
checking.
|
||||
|
||||
2005-11-13 Jason Merrill <jason@redhat.com>
|
||||
|
@ -1129,7 +1134,7 @@
|
|||
2005-11-11 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/24686
|
||||
* gimplify.c (gimplify_cleanup_point_expr): Also save and restore
|
||||
* gimplify.c (gimplify_cleanup_point_expr): Also save and restore
|
||||
the cleanup list.
|
||||
|
||||
2005-11-11 Zdenek Dvorak <dvorakz@suse.cz>
|
||||
|
@ -1169,7 +1174,7 @@
|
|||
|
||||
2005-11-10 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
* tree-ssa-alias.c (compute_may_aliases): Remove call to
|
||||
* tree-ssa-alias.c (compute_may_aliases): Remove call to
|
||||
delete_old_heap_vars.
|
||||
* tree-dfa.c (referenced_var_remove): Remove function.
|
||||
* tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
|
||||
|
@ -1294,12 +1299,12 @@
|
|||
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
PR 24624
|
||||
* config/s390/s390.c (struct s390_frame_layout): New fields
|
||||
* config/s390/s390.c (struct s390_frame_layout): New fields
|
||||
first_save_gpr_slot and last_save_gpr_slot.
|
||||
(cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
|
||||
s390_emit_epilogue, s390_initial_elimination_offset): Replaced
|
||||
(cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
|
||||
s390_emit_epilogue, s390_initial_elimination_offset): Replaced
|
||||
first_save_gpr and last_save_gpr with the _slot variants.
|
||||
(s390_register_info): Calculate first_save_gpr_slot and
|
||||
(s390_register_info): Calculate first_save_gpr_slot and
|
||||
last_save_gpr_slot using regs_ever_live.
|
||||
|
||||
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
@ -1354,7 +1359,7 @@
|
|||
|
||||
2005-11-09 Per Bothner <per@bothner.com>
|
||||
Uros Bizjak <uros@kss-loka.si>
|
||||
|
||||
|
||||
PR c/24101
|
||||
* toplev.c (process_options): Initialize debug_hooks early
|
||||
in case lang_hooks.post_options ends up calling a debug_hook.
|
||||
|
@ -1396,7 +1401,7 @@
|
|||
(oldheapvars): Ditto.
|
||||
(get_constraint_for): Put heap vars on heapvars list.
|
||||
(delete_old_heap_vars): New function.
|
||||
|
||||
|
||||
2005-11-08 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
|
||||
|
@ -1501,7 +1506,7 @@
|
|||
DDR_DIST_VECTS.
|
||||
(build_classic_dist_vector, build_classic_dir_vector): Push a set
|
||||
of distance/direction vectors instead of a single one.
|
||||
* tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
|
||||
* tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
|
||||
lambda_vectors with a vec of lambda_vectors.
|
||||
(DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
|
||||
(DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
|
||||
|
@ -1541,7 +1546,7 @@
|
|||
* predict.c (predict_loops): Use new param.
|
||||
* predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
|
||||
|
||||
* ipa-inline.c (cgraph_decide_inlining_of_small_function,
|
||||
* ipa-inline.c (cgraph_decide_inlining_of_small_function,
|
||||
cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
|
||||
Do not hold memory returned by cgraph_node_name across other call.
|
||||
|
||||
|
@ -1743,7 +1748,7 @@
|
|||
(collapse_rest_of_var): New function.
|
||||
(do_structure_copy): Collapse if do_simple_structure_copy returns
|
||||
false.
|
||||
|
||||
|
||||
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR middle-end/24589
|
||||
|
@ -1861,7 +1866,7 @@
|
|||
(compute_frame_pointer_to_cfa_displacement): Likewise.
|
||||
(gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
|
||||
not defined.
|
||||
|
||||
|
||||
PR rtl-optimization/17356
|
||||
* cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code,
|
||||
add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
|
||||
|
@ -1884,7 +1889,7 @@
|
|||
* predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
|
||||
|
||||
2005-10-31 Andrew MacLeod <amacleod@redhat.com>
|
||||
|
||||
|
||||
PR tree-optimization/19097
|
||||
* tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
|
||||
|
||||
|
@ -2037,7 +2042,7 @@
|
|||
|
||||
PR/24220
|
||||
* c-common.c (vector_types_convertible_p): Check vector element type.
|
||||
|
||||
|
||||
2005-10-21 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
* config/sh/sh.c (prepare_move_operands): Handle the address
|
||||
|
@ -2300,7 +2305,7 @@
|
|||
PR 23714
|
||||
* builtins.c (expand_builtin_trap): Export.
|
||||
* expr.h (expand_builtin_trap): Declare.
|
||||
* expr.c (expand_assignment): Emit a trap for integral offsets
|
||||
* expr.c (expand_assignment): Emit a trap for integral offsets
|
||||
from registers that weren't reduced to bitpos.
|
||||
|
||||
* tree-cfg.c (mark_array_ref_addressable_1): Remove.
|
||||
|
@ -2395,7 +2400,7 @@
|
|||
(struct cxx): Add adjust_class_at_definition target hook.
|
||||
* target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
|
||||
defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
|
||||
(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
|
||||
(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
|
||||
hook_void_tree. Add to TARGET_CXX.
|
||||
* tree.h (struct decl_with_vis): Rename non_addr_const_p field to
|
||||
dllimport_flag.
|
||||
|
@ -2403,26 +2408,26 @@
|
|||
* tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
|
||||
instead of attribute. Check for dllexport override. Warn if
|
||||
inconsistent dll linkage. Don't lose old dllimport if decl has
|
||||
had address referenced. Tweak lookup of dllimport atribute.
|
||||
had address referenced. Tweak lookup of dllimport atribute.
|
||||
(handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
|
||||
for target specific rules. Don't add dllimport attribute if
|
||||
DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding
|
||||
dllimport attribute.
|
||||
dllimport attribute.
|
||||
(staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
|
||||
* varasm.c (initializer_constant_valid_p): Replace
|
||||
DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
|
||||
|
||||
PR target/21801
|
||||
PR target/23589
|
||||
* config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
|
||||
* config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
|
||||
'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
|
||||
(i[34567]86-*-mingw32*): Likewise.
|
||||
|
||||
* doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
|
||||
(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
|
||||
|
||||
|
||||
* config/i386/winnt.c (i386_pe_dllimport_p): Factor out
|
||||
C++-specific code. Change return value to bool.
|
||||
C++-specific code. Change return value to bool.
|
||||
(i386_pe_dllimport_p): Likewise.
|
||||
(associated_type): Simplify and make language-independent
|
||||
(i386_pe_encode_section_info): Replace override of ambiguous
|
||||
|
@ -2434,9 +2439,9 @@
|
|||
* config/i386/winnt-stubs.c: New file. Define stub versions of
|
||||
lang-specific functions.
|
||||
* config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
|
||||
i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
|
||||
i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
|
||||
i386_pe_adjust_class_at_definition.
|
||||
(i386_pe_valid_dllimport_attribute_p): Declare.
|
||||
(i386_pe_valid_dllimport_attribute_p): Declare.
|
||||
* config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
|
||||
(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
|
||||
* config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
|
||||
|
@ -2505,7 +2510,7 @@
|
|||
|
||||
2005-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
PR middle-end/24263
|
||||
PR middle-end/24263
|
||||
* convert.c (convert_to_real): Revert 2005-10-05 patch.
|
||||
Only apply the optimization for rounding builtins if the inner
|
||||
cast is also an extension.
|
||||
|
@ -2615,7 +2620,7 @@
|
|||
|
||||
2004-11-22 Mark Mitchell <mark@codesourcery.com>
|
||||
* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
|
||||
|
||||
|
||||
2004-11-19 Mark Mitchell <mark@codesourcery.com>
|
||||
* config.gcc (arm*-*-linux-gnueabi): Add it.
|
||||
* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
|
||||
|
@ -2713,7 +2718,7 @@
|
|||
out return_label and naked_return_label.
|
||||
|
||||
2005-10-06 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
|
||||
* tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
|
||||
change.
|
||||
|
||||
|
@ -2724,7 +2729,7 @@
|
|||
being a DECL.
|
||||
|
||||
2005-10-06 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
|
||||
Fix PR tree-optimization/22488
|
||||
* tree-ssa-structalias.c (check_for_overlaps): New function.
|
||||
(create_variable_info_for): Use it.
|
||||
|
@ -2788,7 +2793,7 @@
|
|||
PR Debug/23205
|
||||
* dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
|
||||
handling constants. Check NAMESPACE_DECL context for constants.
|
||||
|
||||
|
||||
2005-10-05 Eric Christopher <echristo@apple.com>
|
||||
|
||||
* doc/md.texi (Standard Names): Fix name of pushm1 pattern.
|
||||
|
|
|
@ -3036,13 +3036,14 @@
|
|||
[(set_attr "type" "imovx,alu1")
|
||||
(set_attr "mode" "HI")])
|
||||
|
||||
(define_insn "*zero_extendqihi2_movzbw"
|
||||
; zero extend to SImode here to avoid partial register stalls
|
||||
(define_insn "*zero_extendqihi2_movzbl"
|
||||
[(set (match_operand:HI 0 "register_operand" "=r")
|
||||
(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "qm")))]
|
||||
"(!TARGET_ZERO_EXTEND_WITH_AND || optimize_size) && reload_completed"
|
||||
"movz{bw|x}\t{%1, %0|%0, %1}"
|
||||
"movz{bl|x}\t{%1, %k0|%k0, %k1}"
|
||||
[(set_attr "type" "imovx")
|
||||
(set_attr "mode" "HI")])
|
||||
(set_attr "mode" "SI")])
|
||||
|
||||
;; For the movzbw case strip only the clobber
|
||||
(define_split
|
||||
|
|
Loading…
Reference in New Issue