blob: 08f13bfe49a4b155879d2b06132dd9521eba6a50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
* combine.c (distribute_notes): Comment typo fix.
* combine.c (distribute_notes): When checking if the register in
a REG_DEAD note is set, also check REG_INC.
* cfglayout.c (fixup_reorder_chain): Handle case where the
destination od E_TAKEN is EXIT_BLOCK_PTR.
* cse.c (note_dead_set): Make static.
2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
* rtl.h (delete_trivially_dead_insns): Add third parameter.
* cse.c (trivially_dead_nonlocal_regs): New variable.
(note_dead_set): New function.
(delete_trivially_dead_insns): Add third parameter, update_life_p.
* passes.c,
* cfgcleanup.c,
* ra.c: Changed all callers.
Back out this patch:
2003-10-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR optimization/12142
* cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
uses of the register in the SET_SRC. Remove unnecessary argument.
Replace it with this:
* cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
if flag_non_call_exceptions is set and the insn may trap, pass
pc_rtx as dest for recursion.
In SET_SRC part of SET case, if dest is already set, pass it down
unchanged.
Reverse this patch:
2004-06-08 J"orn Rennecke <joern.rennecke@superh.com>
* basic-block.h (could_fall_through): Declare.
* cfganal.c (can_fallthru): Suceed if the target is EXIT_BLOCK_PTR.
Fail if the source already has a fallthrough edge to the exit
block pointer.
(could_fall_through): New function.
(make_edges): Check if we already have a fallthrough edge to the
exit block pointer.
cfglayout.c (fixup_fallthru_exit_predecessor): Delete.
(cfg_layout_finalize): Don't call it.
(fixup_reorder_chain): A fall through to the exit block does not
require the block to come last. Add sanity checks.
* cfgrtl.c (rtl_split_edge): Add special handling of fall through
edges to the exit block.
Apply this one instead:
* basic-block.h (could_fall_through): Declare.
* cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
Fail if the source already has a fallthrough edge to the exit
block pointer.
(could_fall_through): New function.
* cfgbuild.c (make_edges): Check if we already have a fallthrough
edge to the exit block pointer.
* cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
not called before reload has completed.
Handle special case of first block having a fall-through exit edge.
(cfg_layout_finalize): Don't call it before reload or if we have
rtl epilogues.
(fixup_reorder_chain): A fall through to the exit block does not
require the block to come last. Add sanity checks.
* cfgrtl.c (rtl_split_edge): Add special handling of fall through
edges to the exit block.
* function.c (cfglayout.h): #include.
(thread_prologue_and_epilogue_insns): If we have neither return nor
epilogue, but a fall through to the exit block from mid-function,
force a non-fall-through exit.
* Makefile.in (function.o): Depend on CFGLAYOUT_H.
2004-06-08 J"orn Rennecke <joern.rennecke@superh.com>
* version.c (version_string): Adjust.
* basic-block.h (could_fall_through): Declare.
* cfganal.c (can_fallthru): Suceed if the target is EXIT_BLOCK_PTR.
Fail if the source already has a fallthrough edge to the exit
block pointer.
(could_fall_through): New function.
(make_edges): Check if we already have a fallthrough edge to the
exit block pointer.
cfglayout.c (fixup_fallthru_exit_predecessor): Delete.
(cfg_layout_finalize): Don't call it.
(fixup_reorder_chain): A fall through to the exit block does not
require the block to come last. Add sanity checks.
* cfgrtl.c (rtl_split_edge): Add special handling of fall through
edges to the exit block.
|