aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2003-02-18 18:27:13 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2003-02-18 18:27:13 +0000
commit131efcd8e006ff180e498a50ad47261716539346 (patch)
tree33dcd708f30197623100dd92b09d555a76fd6079
parentdce53c70a455e6067fbe6e1b22c3afd9b2676d19 (diff)
downloadgcc-131efcd8e006ff180e498a50ad47261716539346.zip
gcc-131efcd8e006ff180e498a50ad47261716539346.tar.gz
gcc-131efcd8e006ff180e498a50ad47261716539346.tar.bz2
* pa.md: Correct and enhance comment.
From-SVN: r63049
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/pa/pa.md48
2 files changed, 44 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fd9b2d1..39529c2f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md: Correct and enhance comment.
+
2003-02-18 Geoffrey Keating <geoffk@apple.com>
* gcc.c (validate_switches): Don't scan past closing '}'.
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index d8b2a4a..d4f6461 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -6021,7 +6021,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" ""))
@@ -6102,7 +6106,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" ""))
@@ -6200,7 +6208,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(call (mem:SI (reg:SI 22))
(match_operand 0 "" ""))
@@ -6278,7 +6290,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(call (mem:SI (match_operand 0 "register_operand" ""))
(match_operand 1 "" ""))
@@ -6460,7 +6476,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_operand 1 "call_operand_address" ""))
@@ -6547,7 +6567,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_operand 1 "call_operand_address" ""))
@@ -6652,7 +6676,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(set (match_operand 0 "" "")
(call (mem:SI (reg:SI 22))
@@ -6736,7 +6764,11 @@
(symbol_ref "attr_length_save_restore_dltp (insn)")))])
;; Split out the PIC register save and restore after reload. This is
-;; done if the function doesn't return.
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
(define_split
[(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_operand:DI 1 "register_operand" ""))