OSDN Git Service

* pa.md: Correct and enhance comment.
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Feb 2003 18:27:13 +0000 (18:27 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Feb 2003 18:27:13 +0000 (18:27 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63049 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/pa.md

index fd9b2d1..39529c2 100644 (file)
@@ -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 '}'.
index d8b2a4a..d4f6461 100644 (file)
              (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 "" ""))
              (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 "" ""))
              (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 "" ""))
              (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 "" ""))
              (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" ""))
              (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" ""))
              (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))
              (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" ""))