diff options
| author | dalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-11 20:58:36 +0000 |
|---|---|---|
| committer | dalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-11 20:58:36 +0000 |
| commit | 3952be0aab9586858643de323fc8ed3bf303151c (patch) | |
| tree | e20744d483f230ed0c8a33985ff23bed25d686b9 /gcc | |
| parent | 48a2b4360d46eac68b4cacbbb35678ad39ea107a (diff) | |
| download | ppe42-gcc-3952be0aab9586858643de323fc8ed3bf303151c.tar.gz ppe42-gcc-3952be0aab9586858643de323fc8ed3bf303151c.zip | |
2003-02-11 Dale Johannesen <dalej@apple.com>
* ra-build.c (compare_and_free_webs): Relax checking.
* config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME): Define.
(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62724 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/rs6000/darwin.h | 5 | ||||
| -rw-r--r-- | gcc/ra-build.c | 14 |
3 files changed, 19 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4cbfcb6eb0b..e87383a2153 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-02-11 Dale Johannesen <dalej@apple.com> + * ra-build.c (compare_and_free_webs): Relax checking. + * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME): Define. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. + 2003-02-11 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> PR optimization/9651 diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index b3468f2b66b..9fceb6a6166 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -87,6 +87,11 @@ Boston, MA 02111-1307, USA. */ (RS6000_ALIGN (current_function_outgoing_args_size, 16) \ + (STACK_POINTER_OFFSET)) +/* These are used by -fbranch-probabilities */ +#define HOT_TEXT_SECTION_NAME "__TEXT,__text,regular,pure_instructions" +#define UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ + "__TEXT,__text2,regular,pure_instructions" + /* Define cutoff for using external functions to save floating point. Currently on Darwin, always use inline stores. */ diff --git a/gcc/ra-build.c b/gcc/ra-build.c index 91bc0145ba2..4448065de0d 100644 --- a/gcc/ra-build.c +++ b/gcc/ra-build.c @@ -1719,17 +1719,21 @@ compare_and_free_webs (link) struct web *web1 = wl->web; struct web *web2 = ID2WEB (web1->id); if (web1->regno != web2->regno - || web1->crosses_call != web2->crosses_call - || web1->live_over_abnormal != web2->live_over_abnormal || web1->mode_changed != web2->mode_changed || !rtx_equal_p (web1->orig_x, web2->orig_x) || web1->type != web2->type /* Only compare num_defs/num_uses with non-hardreg webs. E.g. the number of uses of the framepointer changes due to inserting spill code. */ - || (web1->type != PRECOLORED && - (web1->num_uses != web2->num_uses - || web1->num_defs != web2->num_defs))) + || (web1->type != PRECOLORED + && (web1->num_uses != web2->num_uses + || web1->num_defs != web2->num_defs)) + /* Similarly, if the framepointer was unreferenced originally + but we added spills, these fields may not match. */ + || (web1->type != PRECOLORED + && web1->crosses_call != web2->crosses_call) + || (web1->type != PRECOLORED + && web1->live_over_abnormal != web2->live_over_abnormal)) abort (); if (web1->type != PRECOLORED) { |

