public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* scheduling inline assembler when interlaced with C
@ 2005-09-21 11:19 john.gill
  0 siblings, 0 replies; only message in thread
From: john.gill @ 2005-09-21 11:19 UTC (permalink / raw)
  To: gcc-help

I'm working on a port of gcc (3.3.3) for an embedded processor.

In my md file I have defined:

(define_asm_attributes
  [(set_attr "length" "1")
   (set_attr "type" "ialu")])

and

(define_insn_reservation "iarith" 1
  (eq_attr "type" "ialu")
  "AnyInsn+Arith4")


But the dfa scheduler doesn't pick up the scheduling resources
assocatiated with attribute ialu indicated via my 
define_insn_reservation statements. This is only a problem
for inline asm, it still schedules the C.

Below is some output from the sched2 pass. When using inline
asm the scheduler currently is noting that asm_operands
use no resources and as a consequence the scheduling could
be better. How can I get the scheduler to note what attributes
inline asm uses? 


Cheers for any help

John


;;   ======================================================
;;   -- basic block 0 from 15 to 61 -- after reload
;;   ======================================================

;;	  0--> 15   %w7=asm_operands                   :nothing            <<<<<<< No reservations
;;	  0--> 77   %w10=0x0|0x1                       :(BothInsn+Arith8)
;;	  1--> 26   %w3=high(`val')                    :(AnyInsn+Arith4)
;;	  1--> 37   %w8=0x0                            :(AnyInsn+Arith4)
;;	  2--> 28   %w4=[%w3+low(`val')]               :(AnyInsn+Memory+AnyPort),AnyPort,AnyPort,AnyPort
;;	  2--> 38   %w6=%w7^0x1                        :(AnyInsn+Arith4)
;;	  3--> 35   %w3=%w3+low(`val')                 :(AnyInsn+Arith4)
;;	  6--> 30   %w4=%w4+%w10                       :(BothInsn+Arith8)
;;	  7--> 42   asm_operands                       :nothing            <<<<<<< No reservations
;;	  8--> 46   %w2=asm_operands                   :nothing            <<<<<<< No reservations
;;	  8--> 48   %w2=%w2+0x1                        :(AnyInsn+Arith4)
;;	  9--> 50   asm_operands                       :nothing            <<<<<<< No reservations
;;	  9--> 72   %w3=high(`val')                    :(AnyInsn+Arith4)
;;	 10--> 74   %w2=high(`fired')                  :(AnyInsn+Arith4)
;;	 10--> 55   %w7=%w7<<0x2                       :(AnyInsn+Arith4)
;;	 11--> 56   %w6=0x1                            :(AnyInsn+Arith4)
;;	 11--> 73   %w2=%w2+low(`fired')               :(AnyInsn+Arith4)
;;	 12--> 57   [%w2+%w7]=%w6                      :(AnyInsn+Memory+StorePort)
;;	 13--> 61   [%w3+low(`val')]=%w4               :(AnyInsn+Memory+StorePort)
;;	Ready list (final):  
;;   total time = 13
;;   new head = 15
;;   new tail = 61


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-09-21 11:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-21 11:19 scheduling inline assembler when interlaced with C john.gill

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).