mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-21 15:20:03 +08:00
Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
* Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H). * bb-reorder.c (make_reorder_chain): Deleted. (make_reorder_chain_1): Deleted. (find_traces): New function. (rotate_loop): New function. (mark_bb_visited): New function. (find_traces_1_round): New function. (copy_bb): New function. (bb_to_key): New function. (better_edge_p): New function. (connect_traces): New function. (copy_bb_p): New function. (get_uncond_jump_length): New function. (reorder_basic_blocks): Use new functions (Software Trace Cache). * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop boundaries. From-SVN: r62645
This commit is contained in:
parent
17edbda579
commit
aa634f11e6
@ -1,3 +1,22 @@
|
||||
2003-02-10 Josef Zlomek <zlomekj@suse.cz>
|
||||
|
||||
* Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
|
||||
* bb-reorder.c (make_reorder_chain): Deleted.
|
||||
(make_reorder_chain_1): Deleted.
|
||||
(find_traces): New function.
|
||||
(rotate_loop): New function.
|
||||
(mark_bb_visited): New function.
|
||||
(find_traces_1_round): New function.
|
||||
(copy_bb): New function.
|
||||
(bb_to_key): New function.
|
||||
(better_edge_p): New function.
|
||||
(connect_traces): New function.
|
||||
(copy_bb_p): New function.
|
||||
(get_uncond_jump_length): New function.
|
||||
(reorder_basic_blocks): Use new functions (Software Trace Cache).
|
||||
* cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
|
||||
boundaries.
|
||||
|
||||
2003-02-10 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
|
||||
|
@ -1691,8 +1691,9 @@ predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE
|
||||
$(RECOG_H) function.h except.h $(EXPR_H) $(TM_P_H) $(PREDICT_H) sreal.h \
|
||||
$(PARAMS_H) $(TARGET_H) cfgloop.h
|
||||
lists.o: lists.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(RTL_H) $(GGC_H)
|
||||
bb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
|
||||
$(TREE_H) flags.h $(BASIC_BLOCK_H) hard-reg-set.h output.h cfglayout.h $(TARGET_H)
|
||||
bb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
|
||||
$(RTL_H) $(BASIC_BLOCK_H) flags.h output.h cfglayout.h $(FIBHEAP_H) \
|
||||
$(TARGET_H)
|
||||
tracer.o : tracer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
|
||||
$(BASIC_BLOCK_H) hard-reg-set.h output.h cfglayout.h flags.h \
|
||||
$(PARAMS_H) profile.h
|
||||
|
1180
gcc/bb-reorder.c
1180
gcc/bb-reorder.c
File diff suppressed because it is too large
Load Diff
@ -1143,17 +1143,6 @@ outgoing_edges_match (mode, bb1, bb2)
|
||||
|| !onlyjump_p (bb2->end))
|
||||
return false;
|
||||
|
||||
/* Do not crossjump across loop boundaries. This is a temporary
|
||||
workaround for the common scenario in which crossjumping results
|
||||
in killing the duplicated loop condition, making bb-reorder rotate
|
||||
the loop incorrectly, leaving an extra unconditional jump inside
|
||||
the loop.
|
||||
|
||||
This check should go away once bb-reorder knows how to duplicate
|
||||
code in this case or rotate the loops to avoid this scenario. */
|
||||
if (bb1->loop_depth != bb2->loop_depth)
|
||||
return false;
|
||||
|
||||
b1 = BRANCH_EDGE (bb1);
|
||||
b2 = BRANCH_EDGE (bb2);
|
||||
f1 = FALLTHRU_EDGE (bb1);
|
||||
|
Loading…
Reference in New Issue
Block a user