├── scripts.log ├── Main ├── bin ├── cbits.so ├── main.bc ├── main1.ll ├── lib │ ├── cbits.so │ ├── cbits.c │ ├── cbits.ll │ ├── cbits.c.206r.reginfo │ ├── cbits.c.192r.vregs │ ├── cbits.c.225r.split1 │ ├── cbits.c.193r.into_cfglayout │ ├── cbits.c.224r.outof_cfglayout │ ├── cbits.c.269r.dfinish │ ├── cbits.c.229r.asmcons │ ├── cbits.c.227r.dfinit │ └── cbits.c.228r.mode_sw ├── main.ll ├── main.s └── cbits.ll ├── lib ├── cbits.so ├── test.c ├── cbits.c ├── test.c.206r.reginfo ├── test.c.192r.vregs ├── test.c.225r.split1 ├── test.c.193r.into_cfglayout ├── test.c.224r.outof_cfglayout ├── test.c.269r.dfinish ├── test.c.194r.jump ├── test.c.229r.asmcons ├── test.c.227r.dfinit ├── test.c.228r.mode_sw ├── test.c.260r.mach ├── test.c.261r.barriers ├── test.c.265r.shorten ├── test.c.266r.nothrow ├── test.c.268r.final ├── test.c.191r.expand ├── test.c.237r.split2 ├── test.c.267r.dwarf2 ├── test.c.258r.alignments ├── test.c.244r.jump2 ├── test.c.257r.stack ├── cbits.c.206r.reginfo ├── cbits.c.192r.vregs ├── cbits.c.225r.split1 ├── cbits.c.193r.into_cfglayout ├── test.c.241r.pro_and_epilogue ├── cbits.c.224r.outof_cfglayout ├── test.c.234r.reload ├── test.c.233r.ira ├── cbits.c.269r.dfinish ├── cbits.c.229r.asmcons ├── cbits.c.227r.dfinit └── cbits.c.228r.mode_sw ├── docs ├── compcw.pdf ├── img │ └── crest.png ├── io.cmm ├── compcw.bbl ├── reference_list.bib └── llvm.tex ├── io.cmm ├── Syntax.hs ├── Dictutils.hs ├── simple.cmm ├── Lexer.hs ├── JIT.hs ├── Parser.hs ├── Cmm_alex.x ├── Main.hs ├── Astbuilder.hs └── io.cmm.ast /scripts.log: -------------------------------------------------------------------------------- 1 | ghc -dynamic -Llib lib/cbits.so Main.hs -o Main 2 | -------------------------------------------------------------------------------- /Main: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/Main -------------------------------------------------------------------------------- /bin/cbits.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/bin/cbits.so -------------------------------------------------------------------------------- /bin/main.bc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/bin/main.bc -------------------------------------------------------------------------------- /bin/main1.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/bin/main1.ll -------------------------------------------------------------------------------- /lib/cbits.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/lib/cbits.so -------------------------------------------------------------------------------- /docs/compcw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/docs/compcw.pdf -------------------------------------------------------------------------------- /bin/lib/cbits.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/bin/lib/cbits.so -------------------------------------------------------------------------------- /docs/img/crest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grebenyukaa/cmm-compiler-backend/HEAD/docs/img/crest.png -------------------------------------------------------------------------------- /lib/test.c: -------------------------------------------------------------------------------- 1 | int putChar(int X); 2 | int getChar(); 3 | 4 | int main() 5 | { 6 | putChar(70); 7 | return 0; 8 | } -------------------------------------------------------------------------------- /io.cmm: -------------------------------------------------------------------------------- 1 | int main(void) 2 | { 3 | int i; 4 | while (i != '0') 5 | { 6 | read i; 7 | write i; 8 | } 9 | return 0; 10 | } -------------------------------------------------------------------------------- /docs/io.cmm: -------------------------------------------------------------------------------- 1 | int gj; 2 | int main(void) 3 | { 4 | int i; 5 | while (i != '0') 6 | { 7 | //read i; 8 | write i; 9 | } 10 | if (1) {} 11 | return 0; 12 | } -------------------------------------------------------------------------------- /Syntax.hs: -------------------------------------------------------------------------------- 1 | module Syntax where 2 | 3 | type Name = String 4 | 5 | data Expr 6 | = Float Double 7 | | Var String 8 | | Call Name [Expr] 9 | | Function Name [Name] Expr 10 | | Extern Name [Name] 11 | | BinaryOp Name Expr Expr 12 | | UnaryOp Name Expr 13 | deriving (Eq, Ord, Show) 14 | -------------------------------------------------------------------------------- /bin/lib/cbits.c: -------------------------------------------------------------------------------- 1 | /* cbits 2 | $ gcc -fPIC -shared cbits.c -o cbits.so 3 | $ clang -fPIC -shared cbits.c -o cbits.so 4 | */ 5 | 6 | #include "stdio.h" 7 | 8 | void putChar(int X) 9 | { 10 | putchar((char)X); 11 | fflush(stdout); 12 | } 13 | 14 | int getChar() 15 | { 16 | return getchar(); 17 | } -------------------------------------------------------------------------------- /lib/cbits.c: -------------------------------------------------------------------------------- 1 | /* cbits 2 | $ gcc -fPIC -shared cbits.c -o cbits.so 3 | $ clang -fPIC -shared cbits.c -o cbits.so 4 | */ 5 | 6 | #include 7 | #include 8 | 9 | void putChar(int32_t X) { 10 | putchar((char)X); 11 | fflush(stdout); 12 | } 13 | 14 | int32_t getChar() 15 | { 16 | return getchar(); 17 | } -------------------------------------------------------------------------------- /Dictutils.hs: -------------------------------------------------------------------------------- 1 | module Dictutils ( 2 | module Dictutils, 3 | lookup) 4 | where 5 | import Data.List 6 | 7 | haskey::Eq a => a->[(a,b)]->Bool 8 | haskey _ [] = False 9 | haskey key (d:ict) = if key == fst d then True else haskey key ict 10 | 11 | hasval::Eq b => b->[(a,b)]->Bool 12 | hasval _ [] = False 13 | hasval val (d:ict) = if val == snd d then True else hasval val ict 14 | 15 | -------------------------------------------------------------------------------- /bin/main.ll: -------------------------------------------------------------------------------- 1 | 2 | @gvar = common global i32 0 3 | 4 | declare void @putChar(i32) 5 | 6 | declare i32 @getChar() 7 | 8 | define void @print(i32 %sym) { 9 | entry: 10 | %0 = alloca i32 11 | %1 = load i32* %0 12 | call void @putChar(i32 %1) 13 | ret void 14 | } 15 | 16 | define i32 @main() { 17 | entry: 18 | call void @print(i32 61) 19 | call void @print(i32 65) 20 | ret i32 0 21 | } 22 | -------------------------------------------------------------------------------- /docs/compcw.bbl: -------------------------------------------------------------------------------- 1 | % $ biblatex auxiliary file $ 2 | % $ biblatex version 2.4 $ 3 | % Do not modify the above lines! 4 | % 5 | % This is an auxiliary file used by the 'biblatex' package. 6 | % This file may safely be deleted. It will be recreated as 7 | % required. 8 | % 9 | \begingroup 10 | \makeatletter 11 | \@ifundefined{ver@biblatex.sty} 12 | {\@latex@error 13 | {Missing 'biblatex' package} 14 | {The bibliography requires the 'biblatex' package.} 15 | \aftergroup\endinput} 16 | {} 17 | \endgroup 18 | 19 | \lossort 20 | \endlossort 21 | 22 | \endinput 23 | -------------------------------------------------------------------------------- /simple.cmm: -------------------------------------------------------------------------------- 1 | int gvar; 2 | int garr[10]; 3 | 4 | void print(int sym) 5 | { 6 | write sym; 7 | return; 8 | } 9 | 10 | int main(void) 11 | { 12 | int lvar; 13 | int larr[100]; 14 | int j; 15 | int k; 16 | int m; 17 | 18 | //larr[1] = 8; 19 | 20 | j = 'Z'; 21 | gvar = 'A'; 22 | while (gvar <= 90) 23 | { 24 | m = k = gvar = gvar + 1; 25 | print(m); 26 | if (gvar == 'Y') 27 | { 28 | print('\n'); 29 | j=10; 30 | } 31 | else 32 | { 33 | j=5; 34 | } 35 | j = j - 1; 36 | } 37 | print('\n'); 38 | return j; 39 | } -------------------------------------------------------------------------------- /Lexer.hs: -------------------------------------------------------------------------------- 1 | module Lexer where 2 | 3 | import Text.Parsec.String (Parser) 4 | import Text.Parsec.Language (emptyDef) 5 | 6 | import qualified Text.Parsec.Token as Tok 7 | 8 | lexer :: Tok.TokenParser () 9 | lexer = Tok.makeTokenParser style 10 | where 11 | ops = ["+","*","-","/",";",",","<"] 12 | names = ["def","extern"] 13 | style = emptyDef { 14 | Tok.commentLine = "#" 15 | , Tok.reservedOpNames = ops 16 | , Tok.reservedNames = names 17 | } 18 | 19 | integer = Tok.integer lexer 20 | float = Tok.float lexer 21 | parens = Tok.parens lexer 22 | commaSep = Tok.commaSep lexer 23 | semiSep = Tok.semiSep lexer 24 | identifier = Tok.identifier lexer 25 | whitespace = Tok.whiteSpace lexer 26 | reserved = Tok.reserved lexer 27 | reservedOp = Tok.reservedOp lexer 28 | -------------------------------------------------------------------------------- /bin/main.s: -------------------------------------------------------------------------------- 1 | .file "main.ll" 2 | .text 3 | .globl print 4 | .align 16, 0x90 5 | .type print,@function 6 | print: # @print 7 | .cfi_startproc 8 | # BB#0: # %entry 9 | pushq %rax 10 | .Ltmp1: 11 | .cfi_def_cfa_offset 16 12 | movl 4(%rsp), %edi 13 | callq putChar 14 | popq %rax 15 | ret 16 | .Ltmp2: 17 | .size print, .Ltmp2-print 18 | .cfi_endproc 19 | 20 | .globl main 21 | .align 16, 0x90 22 | .type main,@function 23 | main: # @main 24 | .cfi_startproc 25 | # BB#0: # %entry 26 | pushq %rax 27 | .Ltmp4: 28 | .cfi_def_cfa_offset 16 29 | movl $61, %edi 30 | callq print 31 | movl $65, %edi 32 | callq print 33 | xorl %eax, %eax 34 | popq %rdx 35 | ret 36 | .Ltmp5: 37 | .size main, .Ltmp5-main 38 | .cfi_endproc 39 | 40 | .type gvar,@object # @gvar 41 | .comm gvar,4,4 42 | 43 | .section ".note.GNU-stack","",@progbits 44 | -------------------------------------------------------------------------------- /docs/reference_list.bib: -------------------------------------------------------------------------------- 1 | @misc{b0, 2 | author = {Chris Lattner}, 3 | title = {LLVM Docs}, 4 | howpublished = "\url{http://llvm.org/docs/}", 5 | year = {2015}, 6 | note = "[Online; accessed 05-July-2015]" 7 | } 8 | 9 | @misc{b1, 10 | author = {Stephen Diehl}, 11 | title = {Implementing a JIT Compiled Language with Haskell and LLVM}, 12 | howpublished = "\url{http://http://www.stephendiehl.com/llvm/}", 13 | year = {2015}, 14 | note = "[Online; accessed 05-July-2015]" 15 | } 16 | 17 | @misc{b2, 18 | author = {Hackage}, 19 | title = {llvm-general-pure-3.4.2.1-docs}, 20 | howpublished = "\url{https://hackage.haskell.org/package/llvm-general-pure-3.4.2.1/docs/}", 21 | year = {2015}, 22 | note = "[Online; accessed 05-July-2015]" 23 | } 24 | 25 | @misc{b3, 26 | author = {Hackage}, 27 | title = {llvm-general-3.4.2.1-docs}, 28 | howpublished = "\url{https://hackage.haskell.org/package/llvm-general-3.4.2.1/docs/}", 29 | year = {2015}, 30 | note = "[Online; accessed 05-July-2015]" 31 | } -------------------------------------------------------------------------------- /lib/test.c.206r.reginfo: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 5 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 6 | ;; pred: ENTRY (FALLTHRU) 7 | (note 3 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 8 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 9 | (insn 5 2 6 2 (set (reg:SI 5 di) 10 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 11 | (nil)) 12 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 13 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 14 | (const_int 0 [0]))) test.c:6 670 {*call_value} 15 | (nil) 16 | (expr_list:SI (use (reg:SI 5 di)) 17 | (nil))) 18 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 19 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 20 | (nil)) 21 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 22 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 23 | (nil)) 24 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 25 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 26 | (nil)) 27 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 28 | (nil)) 29 | ;; succ: EXIT [100.0%] (FALLTHRU) 30 | 31 | -------------------------------------------------------------------------------- /lib/test.c.192r.vregs: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 3 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 10 | (insn 5 2 6 2 (set (reg:SI 5 di) 11 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 12 | (nil)) 13 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 14 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 15 | (const_int 0 [0]))) test.c:6 670 {*call_value} 16 | (nil) 17 | (expr_list:SI (use (reg:SI 5 di)) 18 | (nil))) 19 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 20 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 21 | (nil)) 22 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 23 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 24 | (nil)) 25 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 26 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 27 | (nil)) 28 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 29 | (nil)) 30 | ;; succ: EXIT [100.0%] (FALLTHRU) 31 | 32 | -------------------------------------------------------------------------------- /lib/test.c.225r.split1: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 3 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 10 | (insn 5 2 6 2 (set (reg:SI 5 di) 11 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 12 | (nil)) 13 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 14 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 15 | (const_int 0 [0]))) test.c:6 670 {*call_value} 16 | (nil) 17 | (expr_list:SI (use (reg:SI 5 di)) 18 | (nil))) 19 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 20 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 21 | (nil)) 22 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 23 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 24 | (nil)) 25 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 26 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 27 | (nil)) 28 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 29 | (nil)) 30 | ;; succ: EXIT [100.0%] (FALLTHRU) 31 | 32 | -------------------------------------------------------------------------------- /lib/test.c.193r.into_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | try_optimize_cfg iteration 1 7 | 8 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 9 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 10 | ;; pred: ENTRY (FALLTHRU) 11 | (note 3 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 12 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 13 | (insn 5 2 6 2 (set (reg:SI 5 di) 14 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 15 | (nil)) 16 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 17 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 18 | (const_int 0 [0]))) test.c:6 670 {*call_value} 19 | (nil) 20 | (expr_list:SI (use (reg:SI 5 di)) 21 | (nil))) 22 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 23 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 24 | (nil)) 25 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 26 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 27 | (nil)) 28 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 29 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 30 | (nil)) 31 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 32 | (nil)) 33 | ;; succ: EXIT [100.0%] (FALLTHRU) 34 | 35 | -------------------------------------------------------------------------------- /lib/test.c.224r.outof_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | Reordered sequence: 5 | 2 bb 2 [0] 6 | (note 1 0 3 NOTE_INSN_DELETED) 7 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 8 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 9 | ;; pred: ENTRY (FALLTHRU) 10 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 11 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 12 | (insn 5 2 6 2 (set (reg:SI 5 di) 13 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 14 | (nil)) 15 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 16 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 17 | (const_int 0 [0]))) test.c:6 670 {*call_value} 18 | (nil) 19 | (expr_list:SI (use (reg:SI 5 di)) 20 | (nil))) 21 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 22 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 23 | (nil)) 24 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 25 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 26 | (nil)) 27 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 28 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 29 | (nil)) 30 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 31 | (nil)) 32 | ;; succ: EXIT [100.0%] (FALLTHRU) 33 | 34 | -------------------------------------------------------------------------------- /lib/test.c.269r.dfinish: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 3 NOTE_INSN_DELETED) 5 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 6 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 7 | (reg/f:DI 6 bp)) test.c:5 65 {*pushdi2_rex64} 8 | (nil)) 9 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 10 | (reg/f:DI 7 sp)) test.c:5 89 {*movdi_internal} 11 | (nil)) 12 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 13 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 14 | (insn 5 2 6 2 (set (reg:SI 5 di) 15 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 16 | (nil)) 17 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 18 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 19 | (const_int 0 [0]))) test.c:6 670 {*call_value} 20 | (nil) 21 | (expr_list:SI (use (reg:SI 5 di)) 22 | (nil))) 23 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 24 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 25 | (nil)) 26 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 27 | (nil)) 28 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 29 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 30 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 75 {*popdi1} 31 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 32 | (const_int 8 [0x8])) 33 | (nil))) 34 | (jump_insn 23 22 24 2 (simple_return) test.c:8 681 {simple_return_internal} 35 | (nil) 36 | -> simple_return) 37 | (barrier 24 23 17) 38 | (note 17 24 0 NOTE_INSN_DELETED) 39 | -------------------------------------------------------------------------------- /bin/cbits.ll: -------------------------------------------------------------------------------- 1 | ; ModuleID = 'cbits.c' 2 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 3 | target triple = "x86_64-unknown-linux-gnu" 4 | 5 | %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } 6 | %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 } 7 | 8 | @stdout = external global %struct._IO_FILE* 9 | 10 | ; Function Attrs: nounwind uwtable 11 | define void @putChar(i32 %X) #0 { 12 | %1 = alloca i32, align 4 13 | store i32 %X, i32* %1, align 4 14 | %2 = load i32* %1, align 4 15 | %3 = trunc i32 %2 to i8 16 | %4 = sext i8 %3 to i32 17 | %5 = call i32 @putchar(i32 %4) 18 | %6 = load %struct._IO_FILE** @stdout, align 8 19 | %7 = call i32 @fflush(%struct._IO_FILE* %6) 20 | ret void 21 | } 22 | 23 | declare i32 @putchar(i32) #1 24 | 25 | declare i32 @fflush(%struct._IO_FILE*) #1 26 | 27 | ; Function Attrs: nounwind uwtable 28 | define i32 @getChar() #0 { 29 | %1 = call i32 @getchar() 30 | ret i32 %1 31 | } 32 | 33 | declare i32 @getchar() #1 34 | 35 | attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 36 | attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 37 | 38 | !llvm.ident = !{!0} 39 | 40 | !0 = metadata !{metadata !"clang version 3.4.2 (tags/RELEASE_34/dot2-final)"} 41 | -------------------------------------------------------------------------------- /bin/lib/cbits.ll: -------------------------------------------------------------------------------- 1 | ; ModuleID = 'cbits.c' 2 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 3 | target triple = "x86_64-unknown-linux-gnu" 4 | 5 | %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] } 6 | %struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 } 7 | 8 | @stdout = external global %struct._IO_FILE* 9 | 10 | ; Function Attrs: nounwind uwtable 11 | define void @putChar(i32 %X) #0 { 12 | %1 = alloca i32, align 4 13 | store i32 %X, i32* %1, align 4 14 | %2 = load i32* %1, align 4 15 | %3 = trunc i32 %2 to i8 16 | %4 = sext i8 %3 to i32 17 | %5 = call i32 @putchar(i32 %4) 18 | %6 = load %struct._IO_FILE** @stdout, align 8 19 | %7 = call i32 @fflush(%struct._IO_FILE* %6) 20 | ret void 21 | } 22 | 23 | declare i32 @putchar(i32) #1 24 | 25 | declare i32 @fflush(%struct._IO_FILE*) #1 26 | 27 | ; Function Attrs: nounwind uwtable 28 | define i32 @getChar() #0 { 29 | %1 = call i32 @getchar() 30 | ret i32 %1 31 | } 32 | 33 | declare i32 @getchar() #1 34 | 35 | attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 36 | attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 37 | 38 | !llvm.ident = !{!0} 39 | 40 | !0 = metadata !{metadata !"clang version 3.4.2 (tags/RELEASE_34/dot2-final)"} 41 | -------------------------------------------------------------------------------- /JIT.hs: -------------------------------------------------------------------------------- 1 | module JIT where 2 | 3 | import Data.Int 4 | import Data.Word 5 | import Foreign.Ptr ( FunPtr, castFunPtr ) 6 | 7 | import Control.Monad.Except 8 | 9 | import LLVM.General.Target 10 | import LLVM.General.Context 11 | import LLVM.General.CodeModel 12 | import LLVM.General.Module as Mod 13 | import qualified LLVM.General.AST as AST 14 | 15 | import LLVM.General.PassManager 16 | import LLVM.General.Transforms 17 | import LLVM.General.Analysis 18 | 19 | import qualified LLVM.General.ExecutionEngine as EE 20 | 21 | foreign import ccall "dynamic" haskFun :: FunPtr (IO Int) -> (IO Int) 22 | 23 | run :: FunPtr a -> IO Int 24 | run fn = haskFun (castFunPtr fn :: FunPtr (IO Int)) 25 | 26 | jit :: Context -> (EE.MCJIT -> IO a) -> IO a 27 | jit c = EE.withMCJIT c optlevel model ptrelim fastins 28 | where 29 | optlevel = Just 0 -- optimization level 30 | model = Nothing -- code model ( Default ) 31 | ptrelim = Nothing -- frame pointer elimination 32 | fastins = Nothing -- fast instruction selection 33 | 34 | passes :: PassSetSpec 35 | passes = defaultCuratedPassSetSpec { optLevel = Just 0 } 36 | 37 | runJIT :: AST.Module -> IO (Either String AST.Module) 38 | runJIT mod = do 39 | withContext $ \context -> 40 | jit context $ \executionEngine -> 41 | runExceptT $ withModuleFromAST context mod $ \m -> 42 | withPassManager passes $ \pm -> do 43 | -- Optimization Pass 44 | {-runPassManager pm m-} 45 | optmod <- moduleAST m 46 | s <- moduleLLVMAssembly m 47 | putStrLn s 48 | 49 | EE.withModuleInEngine executionEngine m $ \ee -> do 50 | mainfn <- EE.getFunction ee (AST.Name "main") 51 | case mainfn of 52 | Just fn -> do 53 | res <- run fn 54 | putStrLn $ "Evaluated to: " ++ show res 55 | Nothing -> return () 56 | 57 | -- Return the optimized module 58 | return optmod 59 | -------------------------------------------------------------------------------- /Parser.hs: -------------------------------------------------------------------------------- 1 | module Parser where 2 | 3 | import Text.Parsec 4 | import Text.Parsec.String (Parser) 5 | import Control.Applicative ((<$>)) 6 | 7 | import qualified Text.Parsec.Expr as Ex 8 | import qualified Text.Parsec.Token as Tok 9 | 10 | import Lexer 11 | import Syntax 12 | 13 | int :: Parser Expr 14 | int = do 15 | n <- integer 16 | return $ Float (fromInteger n) 17 | 18 | floating :: Parser Expr 19 | floating = Float <$> float 20 | 21 | binary s assoc = Ex.Infix (reservedOp s >> return (BinaryOp s)) assoc 22 | 23 | binops = [[binary "*" Ex.AssocLeft, 24 | binary "/" Ex.AssocLeft] 25 | ,[binary "+" Ex.AssocLeft, 26 | binary "-" Ex.AssocLeft]] 27 | 28 | expr :: Parser Expr 29 | expr = Ex.buildExpressionParser binops factor 30 | 31 | variable :: Parser Expr 32 | variable = Var <$> identifier 33 | 34 | function :: Parser Expr 35 | function = do 36 | reserved "def" 37 | name <- identifier 38 | args <- parens $ many identifier 39 | body <- expr 40 | return $ Function name args body 41 | 42 | extern :: Parser Expr 43 | extern = do 44 | reserved "extern" 45 | name <- identifier 46 | args <- parens $ many identifier 47 | return $ Extern name args 48 | 49 | call :: Parser Expr 50 | call = do 51 | name <- identifier 52 | args <- parens $ commaSep expr 53 | return $ Call name args 54 | 55 | factor :: Parser Expr 56 | factor = try floating 57 | <|> try int 58 | <|> try call 59 | <|> try variable 60 | <|> (parens expr) 61 | 62 | defn :: Parser Expr 63 | defn = try extern 64 | <|> try function 65 | <|> expr 66 | 67 | contents :: Parser a -> Parser a 68 | contents p = do 69 | Tok.whiteSpace lexer 70 | r <- p 71 | eof 72 | return r 73 | 74 | toplevel :: Parser [Expr] 75 | toplevel = many $ do 76 | def <- defn 77 | reservedOp ";" 78 | return def 79 | 80 | parseExpr :: String -> Either ParseError Expr 81 | parseExpr s = parse (contents expr) "" s 82 | 83 | parseToplevel :: String -> Either ParseError [Expr] 84 | parseToplevel s = parse (contents toplevel) "" s 85 | -------------------------------------------------------------------------------- /Cmm_alex.x: -------------------------------------------------------------------------------- 1 | { 2 | {-# Language LambdaCase #-} 3 | module Cmm_alex (Token(..), Posed(..), alexScanTokens) where 4 | } 5 | 6 | %wrapper "posn" 7 | 8 | -- $white 9 | $letter = [a-z A-Z] 10 | $digit = 0-9 11 | 12 | --{- name literal -} 13 | @name = $letter+ 14 | 15 | --{- integer literal -} 16 | @int = \-? $digit+ 17 | 18 | --{- char literal -} 19 | @escapeseq = 0 | a | b | f | n | r | t | \\ | \' | \" | \? 20 | @escapechar = \\ @escapeseq 21 | @char = $printable | @escapechar 22 | @character = \' @char \' 23 | 24 | --{- string literal -} 25 | @string = \" $printable* \" 26 | 27 | --{- symbol literal -} 28 | @symbol = "[" | "]" | "{" | "}" | "(" | ")" | ";" | "," 29 | | "==" | "=" | "<=" | "<" | ">=" | ">" | "!=" 30 | | "+" | "-" | "*" | "/" 31 | 32 | --{- reserved word literal -} 33 | @reserved = "int" | "void" | "if" | "else" | "while" | "return" | "read" | "write" 34 | 35 | --{- comments -} 36 | @comment = "//" .* 37 | | "/*" (. | \n)* "*/" 38 | 39 | ---------------------------------------------------- 40 | tokens :- 41 | 42 | $white+ ; 43 | @comment ; 44 | @reserved {pose Symbol} 45 | @name {pose Name} 46 | @string {pose (\s -> Array $ map fromEnum $ sanstr s)} 47 | @character {pose (\s -> Num $ fromEnum $ (read s :: Char))} 48 | @int {pose (\s -> Num $ read s)} 49 | @symbol {pose Symbol} 50 | 51 | { 52 | data Token = 53 | Symbol String | 54 | Array [Int] | 55 | Num Int | 56 | Name String 57 | deriving (Eq, Show) 58 | 59 | data Posed a = Posed (Int,Int) a 60 | instance (Eq a => Eq (Posed a)) where 61 | (==) (Posed _ a) (Posed _ b) = a == b 62 | instance (Show a => Show (Posed a)) where 63 | show (Posed p a) = concat [show p, "~", show a] 64 | 65 | pose::(String->a)->AlexPosn->String->Posed a 66 | pose constr (AlexPn abs line col) s = Posed (line, col) (constr s) 67 | 68 | sanstr ('"':tail) = sanstrlast tail 69 | sanstrlast = \case 70 | [] -> [] 71 | a:[] | a == '"' ->'\0':[] 72 | a:b -> a:sanstrlast b 73 | 74 | } -------------------------------------------------------------------------------- /Main.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE BangPatterns #-} 2 | 3 | import Prelude hiding (writeFile) 4 | import System.IO hiding (writeFile) 5 | import Control.Monad(when) 6 | import Data.List 7 | 8 | import Cmm_alex 9 | import Cmm_happy 10 | import Checker 11 | import Astbuilder 12 | 13 | import GHC.IO.Handle 14 | import System.Environment 15 | 16 | {-import Data.Yaml(encode) 17 | import Data.ByteString (writeFile) 18 | import Data.ByteString.Char8(pack)-} 19 | import Data.Aeson.Encode.Pretty(encodePretty) 20 | import Data.ByteString.Lazy (writeFile) 21 | import Data.ByteString.Lazy.Char8(pack) 22 | 23 | -- 24 | 25 | import Codegen 26 | import Emit 27 | import JIT 28 | import qualified LLVM.General.AST as AST 29 | 30 | encode = encodePretty 31 | 32 | defineExtenalIO :: [Declaration] -> [Declaration] 33 | defineExtenalIO ast = 34 | let 35 | fPutChar = Extdecl Void "putChar" [Vardecl "X" Number] 36 | fGetChar = Extdecl Number "getChar" [] 37 | in 38 | [fPutChar, fGetChar] ++ ast 39 | 40 | main :: IO () 41 | main = do 42 | args <- getArgs 43 | progName <- getProgName 44 | 45 | let showUsage = do 46 | putStrLn $ "Usage:" 47 | putStrLn $ " " ++ progName ++ " {option} filename" 48 | putStrLn $ " options:" 49 | putStrLn $ " -t output tokens" 50 | putStrLn $ " -p output parse tree" 51 | putStrLn $ " -l redirect output to log file" 52 | putStrLn $ " -h show this help" 53 | 54 | let mfnames = filter (\s -> not $ "-" `isSuffixOf` s) args 55 | 56 | when (mfnames /= [] && elem "-h" args) $ do showUsage 57 | 58 | when (mfnames == []) $ do 59 | showUsage 60 | error "File name not specified" 61 | 62 | let (fname:_) = mfnames 63 | 64 | when (elem "-l" args) $ do 65 | h <- openFile (fname ++ ".log") WriteMode 66 | hDuplicateTo h stdout 67 | 68 | program <- readFile fname 69 | let tokens = alexScanTokens program 70 | --putStrLn $ concat $ map (\t -> show t ++ "\n") $ tokens 71 | when (elem "-t" args) $ do 72 | writeFile (fname ++ ".tokens") $ pack $ show tokens 73 | 74 | let tree = happyParseToTree tokens 75 | when (elem "-p" args) $ do 76 | writeFile (fname ++ ".tree") $ pack $ show tree 77 | 78 | --print tree 79 | let errors = check tree 80 | mapM_ putStrLn $ map (\(pos, err) -> "Error at " ++ show pos ++": " ++ err) errors 81 | 82 | when (errors == []) $ do 83 | let ast = mkAST tree 84 | writeFile (fname ++ ".ast") $ encode ast 85 | 86 | llvmModule <- codegen (emptyLLVMState "MyModule") $ defineExtenalIO ast 87 | --putStrLn $ show llvmModule 88 | llvmCode <- runJIT llvmModule 89 | putStrLn "Done" -------------------------------------------------------------------------------- /lib/test.c.194r.jump: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 3 basic blocks, 2 edges. 6 | basic block 0, loop depth 0, count 0, freq 0, maybe hot 7 | prev block (nil), next block 2, flags: (RTL) 8 | pred: 9 | succ: 2 (FALLTHRU) 10 | 11 | basic block 2, loop depth 0, count 0, freq 0, maybe hot 12 | prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 13 | pred: ENTRY (FALLTHRU) 14 | (note 3 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 15 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 16 | (insn 5 2 6 2 (set (reg:SI 5 di) 17 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 18 | (nil)) 19 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 20 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 21 | (const_int 0 [0]))) test.c:6 670 {*call_value} 22 | (nil) 23 | (expr_list:SI (use (reg:SI 5 di)) 24 | (nil))) 25 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 26 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 27 | (nil)) 28 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 29 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 30 | (nil)) 31 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 32 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 33 | (nil)) 34 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 35 | (nil)) 36 | succ: EXIT [100.0%] (FALLTHRU) 37 | 38 | basic block 1, loop depth 0, count 0, freq 0, maybe hot 39 | prev block 2, next block (nil), flags: (REACHABLE, RTL) 40 | pred: 2 [100.0%] (FALLTHRU) 41 | succ: 42 | 43 | 44 | 45 | 46 | try_optimize_cfg iteration 1 47 | 48 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 49 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 50 | ;; pred: ENTRY (FALLTHRU) 51 | (note 3 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 52 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 53 | (insn 5 2 6 2 (set (reg:SI 5 di) 54 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 55 | (nil)) 56 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 57 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 58 | (const_int 0 [0]))) test.c:6 670 {*call_value} 59 | (nil) 60 | (expr_list:SI (use (reg:SI 5 di)) 61 | (nil))) 62 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 63 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 64 | (nil)) 65 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 66 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 67 | (nil)) 68 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 69 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 70 | (nil)) 71 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 72 | (nil)) 73 | ;; succ: EXIT [100.0%] (FALLTHRU) 74 | 75 | -------------------------------------------------------------------------------- /lib/test.c.229r.asmcons: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,2u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} 17 | ;; total ref usage 108{95d,13u,0e} in 6{5 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 20 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 21 | ;; pred: ENTRY (FALLTHRU) 22 | ;; bb 2 artificial_defs: { } 23 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 24 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 25 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 26 | (insn 5 2 6 2 (set (reg:SI 5 di) 27 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 28 | (nil)) 29 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 30 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 31 | (const_int 0 [0]))) test.c:6 670 {*call_value} 32 | (nil) 33 | (expr_list:SI (use (reg:SI 5 di)) 34 | (nil))) 35 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 36 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 37 | (nil)) 38 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 39 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 40 | (nil)) 41 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 42 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 43 | (nil)) 44 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 45 | (nil)) 46 | ;; succ: EXIT [100.0%] (FALLTHRU) 47 | 48 | -------------------------------------------------------------------------------- /lib/test.c.227r.dfinit: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | verify found no changes in insn with uid = 6. 5 | 6 | 7 | main 8 | 9 | Dataflow summary: 10 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 11 | ;; hardware regs used 12 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 15 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 16 | ;; regs ever live 0[ax] 5[di] 7[sp] 17 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,2u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} 18 | ;; total ref usage 108{95d,13u,0e} in 6{5 regular + 1 call} insns. 19 | (note 1 0 3 NOTE_INSN_DELETED) 20 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 21 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 22 | ;; pred: ENTRY (FALLTHRU) 23 | ;; bb 2 artificial_defs: { } 24 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 25 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 26 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 27 | (insn 5 2 6 2 (set (reg:SI 5 di) 28 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 29 | (nil)) 30 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 31 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 32 | (const_int 0 [0]))) test.c:6 670 {*call_value} 33 | (nil) 34 | (expr_list:SI (use (reg:SI 5 di)) 35 | (nil))) 36 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 37 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 38 | (nil)) 39 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 40 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 41 | (nil)) 42 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 43 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 44 | (nil)) 45 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 46 | (nil)) 47 | ;; succ: EXIT [100.0%] (FALLTHRU) 48 | 49 | -------------------------------------------------------------------------------- /lib/test.c.228r.mode_sw: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | 7 | 8 | main 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 7[sp] 18 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,2u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} 19 | ;; total ref usage 108{95d,13u,0e} in 6{5 regular + 1 call} insns. 20 | (note 1 0 3 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 26 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 27 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 41 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 42 | (nil)) 43 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 44 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 45 | (nil)) 46 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 47 | (nil)) 48 | ;; succ: EXIT [100.0%] (FALLTHRU) 49 | 50 | -------------------------------------------------------------------------------- /lib/test.c.260r.mach: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 20 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 21 | (reg/f:DI 6 bp)) test.c:5 -1 22 | (nil)) 23 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 24 | (reg/f:DI 7 sp)) test.c:5 -1 25 | (nil)) 26 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 27 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 41 | (nil)) 42 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 43 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 44 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 45 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 46 | (const_int 8 [0x8])) 47 | (nil))) 48 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 49 | (nil) 50 | -> simple_return) 51 | (barrier 24 23 17) 52 | (note 17 24 0 NOTE_INSN_DELETED) 53 | -------------------------------------------------------------------------------- /lib/test.c.261r.barriers: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 20 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 21 | (reg/f:DI 6 bp)) test.c:5 -1 22 | (nil)) 23 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 24 | (reg/f:DI 7 sp)) test.c:5 -1 25 | (nil)) 26 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 27 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 41 | (nil)) 42 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 43 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 44 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 45 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 46 | (const_int 8 [0x8])) 47 | (nil))) 48 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 49 | (nil) 50 | -> simple_return) 51 | (barrier 24 23 17) 52 | (note 17 24 0 NOTE_INSN_DELETED) 53 | -------------------------------------------------------------------------------- /lib/test.c.265r.shorten: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 20 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 21 | (reg/f:DI 6 bp)) test.c:5 65 {*pushdi2_rex64} 22 | (nil)) 23 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 24 | (reg/f:DI 7 sp)) test.c:5 89 {*movdi_internal} 25 | (nil)) 26 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 27 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 41 | (nil)) 42 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 43 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 44 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 75 {*popdi1} 45 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 46 | (const_int 8 [0x8])) 47 | (nil))) 48 | (jump_insn 23 22 24 2 (simple_return) test.c:8 681 {simple_return_internal} 49 | (nil) 50 | -> simple_return) 51 | (barrier 24 23 17) 52 | (note 17 24 0 NOTE_INSN_DELETED) 53 | -------------------------------------------------------------------------------- /lib/test.c.266r.nothrow: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 20 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 21 | (reg/f:DI 6 bp)) test.c:5 65 {*pushdi2_rex64} 22 | (nil)) 23 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 24 | (reg/f:DI 7 sp)) test.c:5 89 {*movdi_internal} 25 | (nil)) 26 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 27 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 41 | (nil)) 42 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 43 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 44 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 75 {*popdi1} 45 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 46 | (const_int 8 [0x8])) 47 | (nil))) 48 | (jump_insn 23 22 24 2 (simple_return) test.c:8 681 {simple_return_internal} 49 | (nil) 50 | -> simple_return) 51 | (barrier 24 23 17) 52 | (note 17 24 0 NOTE_INSN_DELETED) 53 | -------------------------------------------------------------------------------- /lib/test.c.268r.final: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 20 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 21 | (reg/f:DI 6 bp)) test.c:5 65 {*pushdi2_rex64} 22 | (nil)) 23 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 24 | (reg/f:DI 7 sp)) test.c:5 89 {*movdi_internal} 25 | (nil)) 26 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 27 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 28 | (insn 5 2 6 2 (set (reg:SI 5 di) 29 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 30 | (nil)) 31 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 32 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 33 | (const_int 0 [0]))) test.c:6 670 {*call_value} 34 | (nil) 35 | (expr_list:SI (use (reg:SI 5 di)) 36 | (nil))) 37 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 38 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 39 | (nil)) 40 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 41 | (nil)) 42 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 43 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 44 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 75 {*popdi1} 45 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 46 | (const_int 8 [0x8])) 47 | (nil))) 48 | (jump_insn 23 22 24 2 (simple_return) test.c:8 681 {simple_return_internal} 49 | (nil) 50 | -> simple_return) 51 | (barrier 24 23 17) 52 | (note 17 24 0 NOTE_INSN_DELETED) 53 | -------------------------------------------------------------------------------- /lib/test.c.191r.expand: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | main () 5 | { 6 | int D.1836; 7 | int _3; 8 | 9 | ;; basic block 2, loop depth 0 10 | ;; pred: ENTRY 11 | putChar (60); 12 | _3 = 0; 13 | ;; succ: 3 14 | 15 | ;; basic block 3, loop depth 0 16 | ;; pred: 2 17 | : 18 | return _3; 19 | ;; succ: EXIT 20 | 21 | } 22 | 23 | 24 | 25 | Partition map 26 | 27 | Partition 3 (_3 - 3 ) 28 | 29 | After Coalescing: 30 | 31 | Partition map 32 | 33 | Partition 0 (_3 - 3 ) 34 | 35 | main () 36 | { 37 | int D.1836; 38 | int _3; 39 | 40 | ;; basic block 2, loop depth 0 41 | ;; pred: ENTRY 42 | putChar (60); 43 | _3 = 0; 44 | ;; succ: 3 45 | 46 | ;; basic block 3, loop depth 0 47 | ;; pred: 2 48 | : 49 | return _3; 50 | ;; succ: EXIT 51 | 52 | } 53 | 54 | 55 | 56 | ;; Generating RTL for gimple basic block 2 57 | 58 | ;; putChar (60); 59 | 60 | (insn 5 4 6 (set (reg:SI 5 di) 61 | (const_int 60 [0x3c])) test.c:6 -1 62 | (nil)) 63 | 64 | (call_insn 6 5 0 (set (reg:SI 0 ax) 65 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 66 | (const_int 0 [0]))) test.c:6 -1 67 | (nil) 68 | (expr_list:SI (use (reg:SI 5 di)) 69 | (nil))) 70 | 71 | ;; _3 = 0; 72 | 73 | (insn 7 6 0 (set (reg:SI 87 [ D.1839 ]) 74 | (const_int 0 [0])) test.c:7 -1 75 | (nil)) 76 | 77 | ;; Generating RTL for gimple basic block 3 78 | 79 | ;; : 80 | 81 | (code_label 8 7 9 2 "" [0 uses]) 82 | 83 | (note 9 8 0 NOTE_INSN_BASIC_BLOCK) 84 | 85 | ;; return _3; 86 | 87 | (insn 10 9 11 (set (reg:SI 88 [ ]) 88 | (reg:SI 87 [ D.1839 ])) -1 89 | (nil)) 90 | 91 | (jump_insn 11 10 12 (set (pc) 92 | (label_ref 0)) -1 93 | (nil)) 94 | 95 | (barrier 12 11 0) 96 | 97 | 98 | try_optimize_cfg iteration 1 99 | 100 | Merging block 3 into block 2... 101 | Merged blocks 2 and 3. 102 | Merged 2 and 3 without moving. 103 | Merging block 4 into block 2... 104 | Merged blocks 2 and 4. 105 | Merged 2 and 4 without moving. 106 | Removing jump 11. 107 | Merging block 5 into block 2... 108 | Merged blocks 2 and 5. 109 | Merged 2 and 5 without moving. 110 | 111 | 112 | try_optimize_cfg iteration 2 113 | 114 | 115 | 116 | ;; 117 | ;; Full RTL generated for this function: 118 | ;; 119 | (note 1 0 3 NOTE_INSN_DELETED) 120 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 121 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 122 | ;; pred: ENTRY (FALLTHRU) 123 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 124 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 125 | (insn 5 2 6 2 (set (reg:SI 5 di) 126 | (const_int 60 [0x3c])) test.c:6 -1 127 | (nil)) 128 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 129 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 130 | (const_int 0 [0]))) test.c:6 -1 131 | (nil) 132 | (expr_list:SI (use (reg:SI 5 di)) 133 | (nil))) 134 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 135 | (const_int 0 [0])) test.c:7 -1 136 | (nil)) 137 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 138 | (reg:SI 87 [ D.1839 ])) -1 139 | (nil)) 140 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 141 | (reg:SI 88 [ ])) test.c:8 -1 142 | (nil)) 143 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 144 | (nil)) 145 | ;; succ: EXIT [100.0%] (FALLTHRU) 146 | 147 | -------------------------------------------------------------------------------- /docs/llvm.tex: -------------------------------------------------------------------------------- 1 | \documentclass{article} 2 | 3 | \usepackage{xcolor} 4 | \usepackage{listings} 5 | \usepackage{textcomp} 6 | 7 | \lstset{ 8 | inputencoding=utf8, 9 | % backgroundcolor=\color{white}, 10 | tabsize=4, 11 | rulecolor=, 12 | upquote=true, 13 | % aboveskip={1.5\baselineskip}, 14 | columns=fixed, 15 | showstringspaces=false, 16 | extendedchars=true, 17 | breaklines=true, 18 | prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, 19 | frame=single, 20 | showtabs=false, 21 | showspaces=false, 22 | showstringspaces=false, 23 | basicstyle=\scriptsize\ttfamily, 24 | identifierstyle=\ttfamily, 25 | keywordstyle=\ttfamily\color[rgb]{0,0,1}, 26 | commentstyle=\ttfamily\color[rgb]{0.133,0.545,0.133}, 27 | stringstyle=\ttfamily\color[rgb]{0.627,0.126,0.941}, 28 | } 29 | 30 | \makeatletter 31 | \lstdefinelanguage{llvm}{ 32 | morecomment = [l]{;}, 33 | morestring=[b]", 34 | sensitive = true, 35 | classoffset=0, 36 | morekeywords={ 37 | define, declare, global, constant, 38 | internal, external, private, 39 | linkonce, linkonce_odr, weak, weak_odr, appending, 40 | common, extern_weak, 41 | thread_local, dllimport, dllexport, 42 | hidden, protected, default, 43 | except, deplibs, 44 | volatile, fastcc, coldcc, cc, ccc, 45 | x86_stdcallcc, x86_fastcallcc, 46 | ptx_kernel, ptx_device, 47 | signext, zeroext, inreg, sret, nounwind, noreturn, 48 | nocapture, byval, nest, readnone, readonly, noalias, uwtable, 49 | inlinehint, noinline, alwaysinline, optsize, ssp, sspreq, 50 | noredzone, noimplicitfloat, naked, alignstack, 51 | module, asm, align, tail, to, 52 | addrspace, section, alias, sideeffect, c, gc, 53 | target, datalayout, triple, 54 | blockaddress 55 | }, 56 | classoffset=1, keywordstyle=\color{purple}, 57 | morekeywords={ 58 | fadd, sub, fsub, mul, fmul, 59 | sdiv, udiv, fdiv, srem, urem, frem, 60 | and, or, xor, 61 | icmp, fcmp, 62 | eq, ne, ugt, uge, ult, ule, sgt, sge, slt, sle, 63 | oeq, ogt, oge, olt, ole, one, ord, ueq, ugt, uge, 64 | ult, ule, une, uno, 65 | nuw, nsw, exact, inbounds, 66 | phi, call, select, shl, lshr, ashr, va_arg, 67 | trunc, zext, sext, 68 | fptrunc, fpext, fptoui, fptosi, uitofp, sitofp, 69 | ptrtoint, inttoptr, bitcast, 70 | ret, br, indirectbr, switch, invoke, unwind, unreachable, 71 | malloc, alloca, free, load, store, getelementptr, 72 | extractelement, insertelement, shufflevector, 73 | extractvalue, insertvalue, 74 | }, 75 | alsoletter={\%}, 76 | keywordsprefix={\%}, 77 | } 78 | \makeatother 79 | 80 | \begin{document} 81 | 82 | \begin{lstlisting}[language=llvm] 83 | define ptx_kernel void @sum_kernel(float* %a, float* %b, float* %c) nounwind { 84 | entry: 85 | %0 = load i32* getelementptr inbounds (%struct.uint3* @threadIdx, i64 0, i32 0), align 4 86 | %1 = load i32* getelementptr inbounds (%struct.uint3* @blockIdx, i64 0, i32 0), align 4 87 | %2 = load i32* getelementptr inbounds (%struct.uint3* @blockDim, i64 0, i32 0), align 4 88 | %mul = mul i32 %2, %1 89 | %add = add i32 %mul, %0 90 | %idxprom = sext i32 %add to i64 91 | %arrayidx = getelementptr inbounds float* %a, i64 %idxprom 92 | %3 = load float* %arrayidx, align 4 93 | %arrayidx2 = getelementptr inbounds float* %b, i64 %idxprom 94 | %4 = load float* %arrayidx2, align 4 95 | %add3 = fadd float %3, %4 96 | %arrayidx5 = getelementptr inbounds float* %c, i64 %idxprom 97 | store float %add3, float* %arrayidx5, align 4 98 | ret void 99 | } 100 | \end{lstlisting} 101 | 102 | \end{document} -------------------------------------------------------------------------------- /Astbuilder.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE MultiWayIf #-} 2 | {-# LANGUAGE LambdaCase #-} 3 | {-# LANGUAGE DeriveGeneric,DeriveAnyClass #-} 4 | 5 | module Astbuilder where 6 | import Cmm_alex 7 | import Cmm_happy 8 | import Dictutils 9 | import Data.Either 10 | import Data.Aeson(ToJSON) 11 | import GHC.Generics 12 | 13 | data Type = Number | Reference Int | Void deriving (Eq, Show, Generic, ToJSON) 14 | data Vardecl = Vardecl String Type deriving (Eq, Show, Generic, ToJSON) 15 | data Declaration = 16 | VD Vardecl 17 | | Funcdecl Type String [Vardecl] Statement 18 | | Extdecl Type String [Vardecl] 19 | deriving (Eq, Show, Generic, ToJSON) 20 | 21 | data Statement = 22 | Complex [Vardecl] [Statement] 23 | | Ite Expression Statement (Maybe Statement) 24 | | While Expression Statement 25 | | Expsta Expression 26 | | Return (Maybe Expression) 27 | deriving (Eq, Show, Generic, ToJSON) 28 | 29 | data Expression = 30 | ConstInt Int -- 7 31 | | ConstArr [Int] -- [7,8,9] 32 | | Takeval Expression -- (*7) :: Address->Value / first element of array 33 | | Takeadr String -- (&x) :: Name->Address 34 | | Call String [Expression] 35 | | Assign [Expression] Expression -- adr1 = adr2 = adr3 = 7 36 | | BracketOp Expression Expression 37 | deriving (Eq, Show, Generic, ToJSON) 38 | 39 | convexpr::TExpression->Expression 40 | convexpr = \case 41 | ComplEx [] right -> 42 | convexpr right 43 | ComplEx lefts right -> 44 | Assign (map convref lefts) (convexpr right) 45 | CallEx (Posed _ nam) parexprs -> 46 | Call nam (map convexpr parexprs) 47 | Retrieval ref -> 48 | Takeval $ convref ref 49 | NumLiteral (Posed _ num) -> 50 | ConstInt num 51 | StringLiteral (Posed _ arr) -> 52 | ConstArr arr 53 | 54 | convref::Reference->Expression 55 | convref ((Posed _ nam), Nothing) = Takeadr nam 56 | convref ((Posed _ nam), Just adrexpr) = BracketOp (Takeadr nam) $ convexpr adrexpr 57 | 58 | convvardecl::TDeclaration->Vardecl 59 | convvardecl = \case 60 | Intdecl (Posed _ nam) -> Vardecl nam Number 61 | Arrdecl (Posed _ nam) (Posed _ size) -> Vardecl nam (Reference size) 62 | _ -> error "Unexpected function declaration" 63 | 64 | convstat::TStatement->Statement 65 | convstat = \case 66 | CompSta tdecls tstats -> 67 | Complex (map convvardecl tdecls) (map convstat tstats) 68 | SelSta ifexpr tstat mestat -> 69 | Ite (convexpr ifexpr) (convstat tstat) (fmap convstat mestat) 70 | IterSta whexpr wstat -> 71 | While (convexpr whexpr) (convstat wstat) 72 | RetSta _ mexpr -> 73 | Return $ fmap convexpr mexpr 74 | ReadSta ref -> 75 | Expsta (Call "<<" [convref ref]) 76 | ExpSta texpr -> 77 | Expsta (convexpr texpr) 78 | EmpSta -> 79 | Complex [] [] 80 | 81 | mkAST::[TDeclaration]->[Declaration] 82 | mkAST [] = [] 83 | mkAST (t:ree) = case t of 84 | Intdecl (Posed _ nam) -> 85 | (VD $ Vardecl nam Number):mkAST ree 86 | Arrdecl (Posed _ nam) (Posed _ size) -> 87 | (VD $ Vardecl nam (Reference size)):mkAST ree 88 | Fundecl (Posed _ nam) pardecls stat -> 89 | (Funcdecl Number nam (map (convvardecl) pardecls) (convstat stat)):mkAST ree --AST doesn't support Reference Int =( 90 | Procdecl (Posed _ nam) pardecls stat -> 91 | (Funcdecl Void nam (map (convvardecl) pardecls) (convstat stat)):mkAST ree 92 | {- where 93 | getnams::[TDeclaration]->[String] 94 | getnams [] = [] 95 | getnams (d:ecl) = case d of 96 | Intdecl (Posed _ nam) -> nam:getnams ecl 97 | Arrdecl (Posed _ nam) _ -> nam:getnams ecl 98 | _ -> error "Unexpected function declaration in function parameters" 99 | -} -------------------------------------------------------------------------------- /lib/test.c.237r.split2: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | deleting insn with uid = 10. 5 | deleting insn with uid = 14. 6 | 7 | 8 | main 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 18 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 19 | ;; total ref usage 101{92d,9u,0e} in 4{3 regular + 1 call} insns. 20 | (note 1 0 3 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 26 | ;; lr in 6 [bp] 7 [sp] 16 [argp] 20 [frame] 27 | ;; lr use 6 [bp] 7 [sp] 16 [argp] 20 [frame] 28 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 87 88 29 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 30 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 31 | (insn 5 2 6 2 (set (reg:SI 5 di) 32 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 33 | (nil)) 34 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 35 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 36 | (const_int 0 [0]))) test.c:6 670 {*call_value} 37 | (nil) 38 | (expr_list:SI (use (reg:SI 5 di)) 39 | (nil))) 40 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 41 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 42 | (nil)) 43 | (insn 15 7 17 2 (use (reg/i:SI 0 ax)) test.c:8 -1 44 | (nil)) 45 | ;; succ: EXIT [100.0%] (FALLTHRU) 46 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 47 | 48 | (note 17 15 0 NOTE_INSN_DELETED) 49 | -------------------------------------------------------------------------------- /lib/test.c.267r.dwarf2: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | Creating trace 0 : start at note 1 5 | Creating trace 1 : start at note 20 6 | Creating trace 2 : start at note 21 7 | Processing trace 0 : start at note 1 8 | saw edge from trace 0 to 1 (via fallthru 0) 9 | push trace 1 to worklist 10 | Processing trace 1 : start at note 20 11 | saw edge from trace 1 to 2 (via fallthru 0) 12 | push trace 2 to worklist 13 | Processing trace 2 : start at note 21 14 | 15 | 16 | main 17 | 18 | Dataflow summary: 19 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 20 | ;; hardware regs used 7 [sp] 21 | ;; regular block artificial uses 6 [bp] 7 [sp] 22 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 23 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 24 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 25 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 26 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 27 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 28 | (note 1 0 3 NOTE_INSN_DELETED) 29 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 30 | (insn/f 18 3 25 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 31 | (reg/f:DI 6 bp)) test.c:5 65 {*pushdi2_rex64} 32 | (nil)) 33 | (note 25 18 26 2 34 | .cfi_def_cfa_offset 16 35 | NOTE_INSN_CFI) 36 | (note 26 25 19 2 37 | .cfi_offset 6, -16 38 | NOTE_INSN_CFI) 39 | (insn/f 19 26 27 2 (set (reg/f:DI 6 bp) 40 | (reg/f:DI 7 sp)) test.c:5 89 {*movdi_internal} 41 | (nil)) 42 | (note 27 19 20 2 43 | .cfi_def_cfa_register 6 44 | NOTE_INSN_CFI) 45 | (note 20 27 2 2 NOTE_INSN_PROLOGUE_END) 46 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 47 | (insn 5 2 6 2 (set (reg:SI 5 di) 48 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 49 | (nil)) 50 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 51 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 52 | (const_int 0 [0]))) test.c:6 670 {*call_value} 53 | (nil) 54 | (expr_list:SI (use (reg:SI 5 di)) 55 | (nil))) 56 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 57 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 58 | (nil)) 59 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 60 | (nil)) 61 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 62 | (insn/f 22 21 28 2 (set (reg/f:DI 6 bp) 63 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 75 {*popdi1} 64 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 65 | (const_int 8 [0x8])) 66 | (nil))) 67 | (note 28 22 23 2 68 | .cfi_def_cfa 7, 8 69 | NOTE_INSN_CFI) 70 | (jump_insn 23 28 24 2 (simple_return) test.c:8 681 {simple_return_internal} 71 | (nil) 72 | -> simple_return) 73 | (barrier 24 23 17) 74 | (note 17 24 0 NOTE_INSN_DELETED) 75 | -------------------------------------------------------------------------------- /lib/test.c.258r.alignments: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | main 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 7 [sp] 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 16 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 17 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 18 | (note 1 0 3 NOTE_INSN_DELETED) 19 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 20 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 21 | ;; pred: ENTRY (FALLTHRU) 22 | ;; bb 2 artificial_defs: { } 23 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 24 | ;; lr in 6 [bp] 7 [sp] 20 [frame] 25 | ;; lr use 6 [bp] 7 [sp] 26 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 27 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 28 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 29 | (reg/f:DI 6 bp)) test.c:5 -1 30 | (nil)) 31 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 32 | (reg/f:DI 7 sp)) test.c:5 -1 33 | (nil)) 34 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 35 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 36 | (insn 5 2 6 2 (set (reg:SI 5 di) 37 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 38 | (nil)) 39 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 40 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 41 | (const_int 0 [0]))) test.c:6 670 {*call_value} 42 | (nil) 43 | (expr_list:SI (use (reg:SI 5 di)) 44 | (nil))) 45 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 46 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 47 | (nil)) 48 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 49 | (nil)) 50 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 51 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 52 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 53 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 54 | (const_int 8 [0x8])) 55 | (nil))) 56 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 57 | (nil) 58 | -> simple_return) 59 | ;; succ: EXIT [100.0%] 60 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 20 [frame] 61 | 62 | (barrier 24 23 17) 63 | (note 17 24 0 NOTE_INSN_DELETED) 64 | -------------------------------------------------------------------------------- /lib/test.c.244r.jump2: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | try_optimize_cfg iteration 1 7 | 8 | 9 | 10 | main 11 | 12 | Dataflow summary: 13 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 14 | ;; hardware regs used 7 [sp] 15 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 17 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 18 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 19 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 20 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 21 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 22 | (note 1 0 3 NOTE_INSN_DELETED) 23 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 24 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 25 | ;; pred: ENTRY (FALLTHRU) 26 | ;; bb 2 artificial_defs: { } 27 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 28 | ;; lr in 6 [bp] 7 [sp] 20 [frame] 29 | ;; lr use 6 [bp] 7 [sp] 30 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 31 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 32 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 33 | (reg/f:DI 6 bp)) test.c:5 -1 34 | (nil)) 35 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 36 | (reg/f:DI 7 sp)) test.c:5 -1 37 | (nil)) 38 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 39 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 40 | (insn 5 2 6 2 (set (reg:SI 5 di) 41 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 42 | (nil)) 43 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 44 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 45 | (const_int 0 [0]))) test.c:6 670 {*call_value} 46 | (nil) 47 | (expr_list:SI (use (reg:SI 5 di)) 48 | (nil))) 49 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 50 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 51 | (nil)) 52 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 53 | (nil)) 54 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 55 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 56 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 57 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 58 | (const_int 8 [0x8])) 59 | (nil))) 60 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 61 | (nil) 62 | -> simple_return) 63 | ;; succ: EXIT [100.0%] 64 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 20 [frame] 65 | 66 | (barrier 24 23 17) 67 | (note 17 24 0 NOTE_INSN_DELETED) 68 | -------------------------------------------------------------------------------- /lib/test.c.257r.stack: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | 7 | 8 | main 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 7 [sp] 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 18 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 19 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 20 | (note 1 0 3 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 26 | ;; lr in 6 [bp] 7 [sp] 20 [frame] 27 | ;; lr use 6 [bp] 7 [sp] 28 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 29 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 30 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 31 | (reg/f:DI 6 bp)) test.c:5 -1 32 | (nil)) 33 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 34 | (reg/f:DI 7 sp)) test.c:5 -1 35 | (nil)) 36 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 37 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 38 | (insn 5 2 6 2 (set (reg:SI 5 di) 39 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 40 | (nil)) 41 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 42 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 43 | (const_int 0 [0]))) test.c:6 670 {*call_value} 44 | (nil) 45 | (expr_list:SI (use (reg:SI 5 di)) 46 | (nil))) 47 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 48 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 49 | (nil)) 50 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 51 | (nil)) 52 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 53 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 54 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 55 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 56 | (const_int 8 [0x8])) 57 | (nil))) 58 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 59 | (nil) 60 | -> simple_return) 61 | ;; succ: EXIT [100.0%] 62 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 20 [frame] 63 | 64 | (barrier 24 23 17) 65 | (note 17 24 0 NOTE_INSN_DELETED) 66 | -------------------------------------------------------------------------------- /lib/cbits.c.206r.reginfo: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 5 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 6 | ;; pred: ENTRY (FALLTHRU) 7 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 8 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 9 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 10 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 11 | (nil)) 12 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 13 | (insn 6 3 7 2 (set (reg:SI 92) 14 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 15 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 16 | (nil)) 17 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 18 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 19 | (nil)) 20 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 21 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 22 | (nil)) 23 | (insn 9 8 10 2 (set (reg:SI 5 di) 24 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 25 | (nil)) 26 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 27 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 28 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 29 | (nil) 30 | (expr_list:SI (use (reg:SI 5 di)) 31 | (nil))) 32 | (insn 11 10 12 2 (set (reg/f:DI 93) 33 | (mem/u/c:DI (const:DI (unspec:DI [ 34 | (symbol_ref:DI ("stdout") [flags 0x40] ) 35 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 36 | (nil)) 37 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 38 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 39 | (nil)) 40 | (insn 13 12 14 2 (set (reg:DI 5 di) 41 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 42 | (nil)) 43 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 44 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 45 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 46 | (nil) 47 | (expr_list:DI (use (reg:DI 5 di)) 48 | (nil))) 49 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 50 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 51 | (nil)) 52 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 53 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 54 | (nil)) 55 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 56 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 57 | (nil)) 58 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 59 | (nil)) 60 | ;; succ: EXIT [100.0%] (FALLTHRU) 61 | 62 | 63 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 64 | 65 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 66 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 67 | ;; pred: ENTRY (FALLTHRU) 68 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 69 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 70 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 71 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 72 | (nil)) 73 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 74 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 75 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 76 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 77 | (nil) 78 | (nil)) 79 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 80 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 81 | (nil)) 82 | (insn 8 7 9 2 (set (reg/f:DI 90) 83 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 84 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 85 | (nil)) 86 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 87 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 88 | (nil)) 89 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 90 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 91 | (nil)) 92 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 93 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 94 | (nil)) 95 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 96 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 97 | (nil)) 98 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 99 | (nil)) 100 | ;; succ: EXIT [100.0%] (FALLTHRU) 101 | 102 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.206r.reginfo: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 5 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 6 | ;; pred: ENTRY (FALLTHRU) 7 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 8 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 9 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 10 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 11 | (nil)) 12 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 13 | (insn 6 3 7 2 (set (reg:SI 92) 14 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 15 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 16 | (nil)) 17 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 18 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 19 | (nil)) 20 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 21 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 22 | (nil)) 23 | (insn 9 8 10 2 (set (reg:SI 5 di) 24 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 25 | (nil)) 26 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 27 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 28 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 29 | (nil) 30 | (expr_list:SI (use (reg:SI 5 di)) 31 | (nil))) 32 | (insn 11 10 12 2 (set (reg/f:DI 93) 33 | (mem/u/c:DI (const:DI (unspec:DI [ 34 | (symbol_ref:DI ("stdout") [flags 0x40] ) 35 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 36 | (nil)) 37 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 38 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 39 | (nil)) 40 | (insn 13 12 14 2 (set (reg:DI 5 di) 41 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 42 | (nil)) 43 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 44 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 45 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 46 | (nil) 47 | (expr_list:DI (use (reg:DI 5 di)) 48 | (nil))) 49 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 50 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 51 | (nil)) 52 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 53 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 54 | (nil)) 55 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 56 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 57 | (nil)) 58 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 59 | (nil)) 60 | ;; succ: EXIT [100.0%] (FALLTHRU) 61 | 62 | 63 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 64 | 65 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 66 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 67 | ;; pred: ENTRY (FALLTHRU) 68 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 69 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 70 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 71 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 72 | (nil)) 73 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 74 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 75 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 76 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 77 | (nil) 78 | (nil)) 79 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 80 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 81 | (nil)) 82 | (insn 8 7 9 2 (set (reg/f:DI 90) 83 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 84 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 85 | (nil)) 86 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 87 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 88 | (nil)) 89 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 90 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 91 | (nil)) 92 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 93 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 94 | (nil)) 95 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 96 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 97 | (nil)) 98 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 99 | (nil)) 100 | ;; succ: EXIT [100.0%] (FALLTHRU) 101 | 102 | -------------------------------------------------------------------------------- /lib/cbits.c.192r.vregs: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 10 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 11 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 12 | (nil)) 13 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 14 | (insn 6 3 7 2 (set (reg:SI 92) 15 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 16 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 17 | (nil)) 18 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 19 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 20 | (nil)) 21 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 22 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 23 | (nil)) 24 | (insn 9 8 10 2 (set (reg:SI 5 di) 25 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 26 | (nil)) 27 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 28 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 29 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 30 | (nil) 31 | (expr_list:SI (use (reg:SI 5 di)) 32 | (nil))) 33 | (insn 11 10 12 2 (set (reg/f:DI 93) 34 | (mem/u/c:DI (const:DI (unspec:DI [ 35 | (symbol_ref:DI ("stdout") [flags 0x40] ) 36 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 37 | (nil)) 38 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 39 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 13 12 14 2 (set (reg:DI 5 di) 42 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 45 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 46 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 47 | (nil) 48 | (expr_list:DI (use (reg:DI 5 di)) 49 | (nil))) 50 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 51 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 52 | (nil)) 53 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 54 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 57 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 58 | (nil)) 59 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 60 | (nil)) 61 | ;; succ: EXIT [100.0%] (FALLTHRU) 62 | 63 | 64 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 65 | 66 | (note 1 0 4 NOTE_INSN_DELETED) 67 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 68 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 69 | ;; pred: ENTRY (FALLTHRU) 70 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 71 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 72 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 73 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 74 | (nil)) 75 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 76 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 77 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 78 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 79 | (nil) 80 | (nil)) 81 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 82 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 83 | (nil)) 84 | (insn 8 7 9 2 (set (reg/f:DI 90) 85 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 86 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 87 | (nil)) 88 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 89 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 90 | (nil)) 91 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 92 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 93 | (nil)) 94 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 95 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 96 | (nil)) 97 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 98 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 99 | (nil)) 100 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 101 | (nil)) 102 | ;; succ: EXIT [100.0%] (FALLTHRU) 103 | 104 | -------------------------------------------------------------------------------- /lib/cbits.c.225r.split1: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 10 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 11 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 12 | (nil)) 13 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 14 | (insn 6 3 7 2 (set (reg:SI 92) 15 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 16 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 17 | (nil)) 18 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 19 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 20 | (nil)) 21 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 22 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 23 | (nil)) 24 | (insn 9 8 10 2 (set (reg:SI 5 di) 25 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 26 | (nil)) 27 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 28 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 29 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 30 | (nil) 31 | (expr_list:SI (use (reg:SI 5 di)) 32 | (nil))) 33 | (insn 11 10 12 2 (set (reg/f:DI 93) 34 | (mem/u/c:DI (const:DI (unspec:DI [ 35 | (symbol_ref:DI ("stdout") [flags 0x40] ) 36 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 37 | (nil)) 38 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 39 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 13 12 14 2 (set (reg:DI 5 di) 42 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 45 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 46 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 47 | (nil) 48 | (expr_list:DI (use (reg:DI 5 di)) 49 | (nil))) 50 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 51 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 52 | (nil)) 53 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 54 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 57 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 58 | (nil)) 59 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 60 | (nil)) 61 | ;; succ: EXIT [100.0%] (FALLTHRU) 62 | 63 | 64 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 65 | 66 | (note 1 0 4 NOTE_INSN_DELETED) 67 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 68 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 69 | ;; pred: ENTRY (FALLTHRU) 70 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 71 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 72 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 73 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 74 | (nil)) 75 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 76 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 77 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 78 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 79 | (nil) 80 | (nil)) 81 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 82 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 83 | (nil)) 84 | (insn 8 7 9 2 (set (reg/f:DI 90) 85 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 86 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 87 | (nil)) 88 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 89 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 90 | (nil)) 91 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 92 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 93 | (nil)) 94 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 95 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 96 | (nil)) 97 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 98 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 99 | (nil)) 100 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 101 | (nil)) 102 | ;; succ: EXIT [100.0%] (FALLTHRU) 103 | 104 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.192r.vregs: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 10 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 11 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 12 | (nil)) 13 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 14 | (insn 6 3 7 2 (set (reg:SI 92) 15 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 16 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 17 | (nil)) 18 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 19 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 20 | (nil)) 21 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 22 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 23 | (nil)) 24 | (insn 9 8 10 2 (set (reg:SI 5 di) 25 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 26 | (nil)) 27 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 28 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 29 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 30 | (nil) 31 | (expr_list:SI (use (reg:SI 5 di)) 32 | (nil))) 33 | (insn 11 10 12 2 (set (reg/f:DI 93) 34 | (mem/u/c:DI (const:DI (unspec:DI [ 35 | (symbol_ref:DI ("stdout") [flags 0x40] ) 36 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 37 | (nil)) 38 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 39 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 13 12 14 2 (set (reg:DI 5 di) 42 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 45 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 46 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 47 | (nil) 48 | (expr_list:DI (use (reg:DI 5 di)) 49 | (nil))) 50 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 51 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 52 | (nil)) 53 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 54 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 57 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 58 | (nil)) 59 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 60 | (nil)) 61 | ;; succ: EXIT [100.0%] (FALLTHRU) 62 | 63 | 64 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 65 | 66 | (note 1 0 4 NOTE_INSN_DELETED) 67 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 68 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 69 | ;; pred: ENTRY (FALLTHRU) 70 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 71 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 72 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 73 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 74 | (nil)) 75 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 76 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 77 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 78 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 79 | (nil) 80 | (nil)) 81 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 82 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 83 | (nil)) 84 | (insn 8 7 9 2 (set (reg/f:DI 90) 85 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 86 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 87 | (nil)) 88 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 89 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 90 | (nil)) 91 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 92 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 93 | (nil)) 94 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 95 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 96 | (nil)) 97 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 98 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 99 | (nil)) 100 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 101 | (nil)) 102 | ;; succ: EXIT [100.0%] (FALLTHRU) 103 | 104 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.225r.split1: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 6 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 7 | ;; pred: ENTRY (FALLTHRU) 8 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 9 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 10 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 11 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 12 | (nil)) 13 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 14 | (insn 6 3 7 2 (set (reg:SI 92) 15 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 16 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 17 | (nil)) 18 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 19 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 20 | (nil)) 21 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 22 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 23 | (nil)) 24 | (insn 9 8 10 2 (set (reg:SI 5 di) 25 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 26 | (nil)) 27 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 28 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 29 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 30 | (nil) 31 | (expr_list:SI (use (reg:SI 5 di)) 32 | (nil))) 33 | (insn 11 10 12 2 (set (reg/f:DI 93) 34 | (mem/u/c:DI (const:DI (unspec:DI [ 35 | (symbol_ref:DI ("stdout") [flags 0x40] ) 36 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 37 | (nil)) 38 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 39 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 13 12 14 2 (set (reg:DI 5 di) 42 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 45 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 46 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 47 | (nil) 48 | (expr_list:DI (use (reg:DI 5 di)) 49 | (nil))) 50 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 51 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 52 | (nil)) 53 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 54 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 57 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 58 | (nil)) 59 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 60 | (nil)) 61 | ;; succ: EXIT [100.0%] (FALLTHRU) 62 | 63 | 64 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 65 | 66 | (note 1 0 4 NOTE_INSN_DELETED) 67 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 68 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 69 | ;; pred: ENTRY (FALLTHRU) 70 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 71 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 72 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 73 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 74 | (nil)) 75 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 76 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 77 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 78 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 79 | (nil) 80 | (nil)) 81 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 82 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 83 | (nil)) 84 | (insn 8 7 9 2 (set (reg/f:DI 90) 85 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 86 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 87 | (nil)) 88 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 89 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 90 | (nil)) 91 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 92 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 93 | (nil)) 94 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 95 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 96 | (nil)) 97 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 98 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 99 | (nil)) 100 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 101 | (nil)) 102 | ;; succ: EXIT [100.0%] (FALLTHRU) 103 | 104 | -------------------------------------------------------------------------------- /io.cmm.ast: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "tag": "Funcdecl", 4 | "contents": [ 5 | { 6 | "tag": "Number", 7 | "contents": [] 8 | }, 9 | "main", 10 | [], 11 | { 12 | "tag": "Complex", 13 | "contents": [ 14 | [ 15 | [ 16 | "i", 17 | { 18 | "tag": "Number", 19 | "contents": [] 20 | } 21 | ] 22 | ], 23 | [ 24 | { 25 | "tag": "While", 26 | "contents": [ 27 | { 28 | "tag": "Call", 29 | "contents": [ 30 | "!=", 31 | [ 32 | { 33 | "tag": "Takeval", 34 | "contents": { 35 | "tag": "Takeadr", 36 | "contents": "i" 37 | } 38 | }, 39 | { 40 | "tag": "ConstInt", 41 | "contents": 48 42 | } 43 | ] 44 | ] 45 | }, 46 | { 47 | "tag": "Complex", 48 | "contents": [ 49 | [], 50 | [ 51 | { 52 | "tag": "Expsta", 53 | "contents": { 54 | "tag": "Call", 55 | "contents": [ 56 | "<<", 57 | [ 58 | { 59 | "tag": "Takeadr", 60 | "contents": "i" 61 | } 62 | ] 63 | ] 64 | } 65 | }, 66 | { 67 | "tag": "Expsta", 68 | "contents": { 69 | "tag": "Call", 70 | "contents": [ 71 | ">>", 72 | [ 73 | { 74 | "tag": "Takeval", 75 | "contents": { 76 | "tag": "Takeadr", 77 | "contents": "i" 78 | } 79 | } 80 | ] 81 | ] 82 | } 83 | } 84 | ] 85 | ] 86 | } 87 | ] 88 | }, 89 | { 90 | "tag": "Return", 91 | "contents": { 92 | "tag": "ConstInt", 93 | "contents": 0 94 | } 95 | } 96 | ] 97 | ] 98 | } 99 | ] 100 | } 101 | ] -------------------------------------------------------------------------------- /bin/lib/cbits.c.193r.into_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | try_optimize_cfg iteration 1 7 | 8 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 9 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 10 | ;; pred: ENTRY (FALLTHRU) 11 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 12 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 13 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 14 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 15 | (nil)) 16 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 17 | (insn 6 3 7 2 (set (reg:SI 92) 18 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 19 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 20 | (nil)) 21 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 22 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 23 | (nil)) 24 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 25 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 26 | (nil)) 27 | (insn 9 8 10 2 (set (reg:SI 5 di) 28 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 29 | (nil)) 30 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 31 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 32 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 33 | (nil) 34 | (expr_list:SI (use (reg:SI 5 di)) 35 | (nil))) 36 | (insn 11 10 12 2 (set (reg/f:DI 93) 37 | (mem/u/c:DI (const:DI (unspec:DI [ 38 | (symbol_ref:DI ("stdout") [flags 0x40] ) 39 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 42 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (insn 13 12 14 2 (set (reg:DI 5 di) 45 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 46 | (nil)) 47 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 48 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 49 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 50 | (nil) 51 | (expr_list:DI (use (reg:DI 5 di)) 52 | (nil))) 53 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 54 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 57 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 58 | (nil)) 59 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 60 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 61 | (nil)) 62 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 63 | (nil)) 64 | ;; succ: EXIT [100.0%] (FALLTHRU) 65 | 66 | 67 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 68 | 69 | 70 | 71 | try_optimize_cfg iteration 1 72 | 73 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 74 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 75 | ;; pred: ENTRY (FALLTHRU) 76 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 77 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 78 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 79 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 80 | (nil)) 81 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 82 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 83 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 84 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 85 | (nil) 86 | (nil)) 87 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 88 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 89 | (nil)) 90 | (insn 8 7 9 2 (set (reg/f:DI 90) 91 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 92 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 93 | (nil)) 94 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 95 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 96 | (nil)) 97 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 98 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 99 | (nil)) 100 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 101 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 102 | (nil)) 103 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 104 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 105 | (nil)) 106 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 107 | (nil)) 108 | ;; succ: EXIT [100.0%] (FALLTHRU) 109 | 110 | -------------------------------------------------------------------------------- /lib/cbits.c.193r.into_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | try_optimize_cfg iteration 1 7 | 8 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 9 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 10 | ;; pred: ENTRY (FALLTHRU) 11 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 12 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 13 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 14 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 15 | (nil)) 16 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 17 | (insn 6 3 7 2 (set (reg:SI 92) 18 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 19 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 20 | (nil)) 21 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 22 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 23 | (nil)) 24 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 25 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 26 | (nil)) 27 | (insn 9 8 10 2 (set (reg:SI 5 di) 28 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 29 | (nil)) 30 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 31 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 32 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 33 | (nil) 34 | (expr_list:SI (use (reg:SI 5 di)) 35 | (nil))) 36 | (insn 11 10 12 2 (set (reg/f:DI 93) 37 | (mem/u/c:DI (const:DI (unspec:DI [ 38 | (symbol_ref:DI ("stdout") [flags 0x40] ) 39 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 40 | (nil)) 41 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 42 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 43 | (nil)) 44 | (insn 13 12 14 2 (set (reg:DI 5 di) 45 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 46 | (nil)) 47 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 48 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 49 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 50 | (nil) 51 | (expr_list:DI (use (reg:DI 5 di)) 52 | (nil))) 53 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 54 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 55 | (nil)) 56 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 57 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 58 | (nil)) 59 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 60 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 61 | (nil)) 62 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 63 | (nil)) 64 | ;; succ: EXIT [100.0%] (FALLTHRU) 65 | 66 | 67 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 68 | 69 | 70 | 71 | try_optimize_cfg iteration 1 72 | 73 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 74 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 75 | ;; pred: ENTRY (FALLTHRU) 76 | (note 4 0 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 77 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 78 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 79 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 80 | (nil)) 81 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 82 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 83 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 84 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 85 | (nil) 86 | (nil)) 87 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 88 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 89 | (nil)) 90 | (insn 8 7 9 2 (set (reg/f:DI 90) 91 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 92 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 93 | (nil)) 94 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 95 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 96 | (nil)) 97 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 98 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 99 | (nil)) 100 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 101 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 102 | (nil)) 103 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 104 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 105 | (nil)) 106 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 107 | (nil)) 108 | ;; succ: EXIT [100.0%] (FALLTHRU) 109 | 110 | -------------------------------------------------------------------------------- /lib/test.c.241r.pro_and_epilogue: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | df_analyze called 7 | df_worklist_dataflow_doublequeue:n_basic_blocks 3 n_edges 2 count 3 ( 1) 8 | scanning new insn with uid = 18. 9 | scanning new insn with uid = 19. 10 | scanning new insn with uid = 22. 11 | scanning new insn with uid = 23. 12 | verify found no changes in insn with uid = 6. 13 | 14 | 15 | try_optimize_cfg iteration 1 16 | 17 | starting the processing of deferred insns 18 | ending the processing of deferred insns 19 | 20 | 21 | main 22 | 23 | Dataflow summary: 24 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 25 | ;; hardware regs used 7 [sp] 26 | ;; regular block artificial uses 6 [bp] 7 [sp] 27 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 28 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 29 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 30 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 31 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={3d,3u} r7={3d,6u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 32 | ;; total ref usage 109{96d,13u,0e} in 8{7 regular + 1 call} insns. 33 | (note 1 0 3 NOTE_INSN_DELETED) 34 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 35 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 36 | ;; pred: ENTRY (FALLTHRU) 37 | ;; bb 2 artificial_defs: { } 38 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 39 | ;; lr in 6 [bp] 7 [sp] 20 [frame] 40 | ;; lr use 6 [bp] 7 [sp] 41 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 42 | (note 3 1 18 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 43 | (insn/f 18 3 19 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 44 | (reg/f:DI 6 bp)) test.c:5 -1 45 | (nil)) 46 | (insn/f 19 18 20 2 (set (reg/f:DI 6 bp) 47 | (reg/f:DI 7 sp)) test.c:5 -1 48 | (nil)) 49 | (note 20 19 2 2 NOTE_INSN_PROLOGUE_END) 50 | (note 2 20 5 2 NOTE_INSN_FUNCTION_BEG) 51 | (insn 5 2 6 2 (set (reg:SI 5 di) 52 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 53 | (nil)) 54 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 55 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 56 | (const_int 0 [0]))) test.c:6 670 {*call_value} 57 | (nil) 58 | (expr_list:SI (use (reg:SI 5 di)) 59 | (nil))) 60 | (insn 7 6 15 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 61 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 62 | (nil)) 63 | (insn 15 7 21 2 (use (reg/i:SI 0 ax)) test.c:8 -1 64 | (nil)) 65 | (note 21 15 22 2 NOTE_INSN_EPILOGUE_BEG) 66 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 67 | (mem:DI (post_inc:DI (reg/f:DI 7 sp)) [0 S8 A8])) test.c:8 -1 68 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 69 | (const_int 8 [0x8])) 70 | (nil))) 71 | (jump_insn 23 22 24 2 (simple_return) test.c:8 -1 72 | (nil) 73 | -> simple_return) 74 | ;; succ: EXIT [100.0%] 75 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 20 [frame] 76 | 77 | (barrier 24 23 17) 78 | (note 17 24 0 NOTE_INSN_DELETED) 79 | -------------------------------------------------------------------------------- /lib/cbits.c.224r.outof_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | Reordered sequence: 5 | 2 bb 2 [0] 6 | (note 1 0 4 NOTE_INSN_DELETED) 7 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 8 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 9 | ;; pred: ENTRY (FALLTHRU) 10 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 11 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 12 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 13 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 14 | (nil)) 15 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 16 | (insn 6 3 7 2 (set (reg:SI 92) 17 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 18 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 19 | (nil)) 20 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 21 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 22 | (nil)) 23 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 24 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 25 | (nil)) 26 | (insn 9 8 10 2 (set (reg:SI 5 di) 27 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 28 | (nil)) 29 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 30 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 31 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 32 | (nil) 33 | (expr_list:SI (use (reg:SI 5 di)) 34 | (nil))) 35 | (insn 11 10 12 2 (set (reg/f:DI 93) 36 | (mem/u/c:DI (const:DI (unspec:DI [ 37 | (symbol_ref:DI ("stdout") [flags 0x40] ) 38 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 39 | (nil)) 40 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 41 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 42 | (nil)) 43 | (insn 13 12 14 2 (set (reg:DI 5 di) 44 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 45 | (nil)) 46 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 47 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 48 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 49 | (nil) 50 | (expr_list:DI (use (reg:DI 5 di)) 51 | (nil))) 52 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 53 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 54 | (nil)) 55 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 56 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 57 | (nil)) 58 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 59 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 60 | (nil)) 61 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 62 | (nil)) 63 | ;; succ: EXIT [100.0%] (FALLTHRU) 64 | 65 | 66 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 67 | 68 | Reordered sequence: 69 | 2 bb 2 [0] 70 | (note 1 0 4 NOTE_INSN_DELETED) 71 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 72 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 73 | ;; pred: ENTRY (FALLTHRU) 74 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 75 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 76 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 77 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 78 | (nil)) 79 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 80 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 81 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 82 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 83 | (nil) 84 | (nil)) 85 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 86 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 87 | (nil)) 88 | (insn 8 7 9 2 (set (reg/f:DI 90) 89 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 90 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 91 | (nil)) 92 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 93 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 94 | (nil)) 95 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 96 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 97 | (nil)) 98 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 99 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 100 | (nil)) 101 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 102 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 103 | (nil)) 104 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 105 | (nil)) 106 | ;; succ: EXIT [100.0%] (FALLTHRU) 107 | 108 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.224r.outof_cfglayout: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | Reordered sequence: 5 | 2 bb 2 [0] 6 | (note 1 0 4 NOTE_INSN_DELETED) 7 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 8 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 9 | ;; pred: ENTRY (FALLTHRU) 10 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 11 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 12 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 13 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 14 | (nil)) 15 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 16 | (insn 6 3 7 2 (set (reg:SI 92) 17 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 18 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 19 | (nil)) 20 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 21 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 22 | (nil)) 23 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 24 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 25 | (nil)) 26 | (insn 9 8 10 2 (set (reg:SI 5 di) 27 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 28 | (nil)) 29 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 30 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 31 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 32 | (nil) 33 | (expr_list:SI (use (reg:SI 5 di)) 34 | (nil))) 35 | (insn 11 10 12 2 (set (reg/f:DI 93) 36 | (mem/u/c:DI (const:DI (unspec:DI [ 37 | (symbol_ref:DI ("stdout") [flags 0x40] ) 38 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 39 | (nil)) 40 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 41 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 42 | (nil)) 43 | (insn 13 12 14 2 (set (reg:DI 5 di) 44 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 45 | (nil)) 46 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 47 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 48 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 49 | (nil) 50 | (expr_list:DI (use (reg:DI 5 di)) 51 | (nil))) 52 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 53 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 54 | (nil)) 55 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 56 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 57 | (nil)) 58 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 59 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 60 | (nil)) 61 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 62 | (nil)) 63 | ;; succ: EXIT [100.0%] (FALLTHRU) 64 | 65 | 66 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 67 | 68 | Reordered sequence: 69 | 2 bb 2 [0] 70 | (note 1 0 4 NOTE_INSN_DELETED) 71 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 72 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL) 73 | ;; pred: ENTRY (FALLTHRU) 74 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 75 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 76 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 77 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 78 | (nil)) 79 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 80 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 81 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 82 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 83 | (nil) 84 | (nil)) 85 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 86 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 87 | (nil)) 88 | (insn 8 7 9 2 (set (reg/f:DI 90) 89 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 90 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 91 | (nil)) 92 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 93 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 94 | (nil)) 95 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 96 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 97 | (nil)) 98 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 99 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 100 | (nil)) 101 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 102 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 103 | (nil)) 104 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 105 | (nil)) 106 | ;; succ: EXIT [100.0%] (FALLTHRU) 107 | 108 | -------------------------------------------------------------------------------- /lib/test.c.234r.reload: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | ********** Local #1: ********** 6 | 7 | Spilling non-eliminable hard regs: 6 8 | New elimination table: 9 | Can't eliminate 16 to 7 (offset=16, prev_offset=0) 10 | Can eliminate 16 to 6 (offset=16, prev_offset=0) 11 | Can't eliminate 20 to 7 (offset=0, prev_offset=0) 12 | Can eliminate 20 to 6 (offset=0, prev_offset=0) 13 | alt=0,overall=0,losers=0,rld_nregs=0 14 | Choosing alt 0 in insn 5: (0) =r (1) g {*movsi_internal} 15 | alt=0,overall=0,losers=0,rld_nregs=0 16 | Choosing alt 0 in insn 6: (1) rBwBz {*call_value} 17 | alt=0,overall=0,losers=0,rld_nregs=0 18 | Choosing alt 0 in insn 7: (0) =r (1) g {*movsi_internal} 19 | 20 | ********** Pseudo live ranges #1: ********** 21 | 22 | BB 2 23 | Insn 15: point = 0 24 | Insn 14: point = 0 25 | Insn 10: point = 1 26 | Insn 7: point = 3 27 | Insn 6: point = 4 28 | Insn 5: point = 4 29 | Compressing live ranges: from 4 to 0 - 0% 30 | Ranges after the compression: 31 | New elimination table: 32 | Can't eliminate 16 to 7 (offset=16, prev_offset=0) 33 | Can eliminate 16 to 6 (offset=16, prev_offset=0) 34 | Can't eliminate 20 to 7 (offset=0, prev_offset=0) 35 | Can eliminate 20 to 6 (offset=0, prev_offset=0) 36 | changing reg in insn 7 37 | changing reg in insn 10 38 | changing reg in insn 10 39 | changing reg in insn 14 40 | starting the processing of deferred insns 41 | ending the processing of deferred insns 42 | 43 | 44 | main 45 | 46 | Dataflow summary: 47 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 48 | ;; hardware regs used 49 | ;; regular block artificial uses 6 [bp] 7 [sp] 50 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 51 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 52 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 53 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 54 | ;; ref usage r0={5d,4u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r17={1d} r18={1d} r19={1d} r20={1d,1u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} 55 | ;; total ref usage 105{94d,11u,0e} in 6{5 regular + 1 call} insns. 56 | (note 1 0 3 NOTE_INSN_DELETED) 57 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 58 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 59 | ;; pred: ENTRY (FALLTHRU) 60 | ;; bb 2 artificial_defs: { } 61 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }} 62 | ;; lr in 6 [bp] 7 [sp] 16 [argp] 20 [frame] 63 | ;; lr use 6 [bp] 7 [sp] 16 [argp] 20 [frame] 64 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 87 88 65 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 66 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 67 | (insn 5 2 6 2 (set (reg:SI 5 di) 68 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 69 | (nil)) 70 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 71 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 72 | (const_int 0 [0]))) test.c:6 670 {*call_value} 73 | (nil) 74 | (expr_list:SI (use (reg:SI 5 di)) 75 | (nil))) 76 | (insn 7 6 10 2 (set (reg:SI 0 ax [orig:87 D.1839 ] [87]) 77 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 78 | (nil)) 79 | (insn 10 7 14 2 (set (reg:SI 0 ax [orig:88 ] [88]) 80 | (reg:SI 0 ax [orig:87 D.1839 ] [87])) 90 {*movsi_internal} 81 | (nil)) 82 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 83 | (reg:SI 0 ax [orig:88 ] [88])) test.c:8 90 {*movsi_internal} 84 | (nil)) 85 | (insn 15 14 17 2 (use (reg/i:SI 0 ax)) test.c:8 -1 86 | (nil)) 87 | ;; succ: EXIT [100.0%] (FALLTHRU) 88 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 89 | 90 | (note 17 15 0 NOTE_INSN_DELETED) 91 | -------------------------------------------------------------------------------- /lib/test.c.233r.ira: -------------------------------------------------------------------------------- 1 | 2 | ;; Function main (main, funcdef_no=0, decl_uid=1833, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | df_analyze called 7 | df_worklist_dataflow_doublequeue:n_basic_blocks 3 n_edges 2 count 3 ( 1) 8 | Building IRA IR 9 | verify found no changes in insn with uid = 6. 10 | starting the processing of deferred insns 11 | ending the processing of deferred insns 12 | df_analyze called 13 | 14 | Pass 0 for finding pseudo/allocno costs 15 | 16 | r88: preferred AREG, alternative GENERAL_REGS, allocno GENERAL_REGS 17 | a0 (r88,l0) best AREG, allocno GENERAL_REGS 18 | r87: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS 19 | a1 (r87,l0) best GENERAL_REGS, allocno GENERAL_REGS 20 | 21 | a0(r88,l0) costs: AREG:0 DREG:0 CREG:0 BREG:0 SIREG:0 DIREG:0 AD_REGS:0 Q_REGS:0 NON_Q_REGS:0 GENERAL_REGS:0 SSE_FIRST_REG:16 NO_REX_SSE_REGS:16 SSE_REGS:16 MMX_REGS:21 INT_SSE_REGS:17 ALL_REGS:308 MEM:4 22 | a1(r87,l0) costs: AREG:0 DREG:0 CREG:0 BREG:0 SIREG:0 DIREG:0 AD_REGS:0 Q_REGS:0 NON_Q_REGS:0 GENERAL_REGS:0 SSE_FIRST_REG:16 NO_REX_SSE_REGS:16 SSE_REGS:16 MMX_REGS:21 INT_SSE_REGS:17 ALL_REGS:308 MEM:4 23 | 24 | Insn 15(l0): point = 0 25 | Insn 14(l0): point = 2 26 | Insn 10(l0): point = 4 27 | Insn 7(l0): point = 6 28 | Insn 6(l0): point = 8 29 | Insn 5(l0): point = 10 30 | a0(r88): [3..4] 31 | a1(r87): [5..6] 32 | Compressing live ranges: from 13 to 4 - 30% 33 | Ranges after the compression: 34 | a0(r88): [0..1] 35 | a1(r87): [2..3] 36 | regions=1, blocks=3, points=4 37 | allocnos=2 (big 0), copies=0, conflicts=0, ranges=2 38 | Disposition: 39 | 1:r87 l0 0 0:r88 l0 0 40 | +++Costs: overall -1, reg -1, mem 0, ld 0, st 0, move 0 41 | +++ move loops 0, new jumps 0 42 | 43 | 44 | main 45 | 46 | Dataflow summary: 47 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 48 | ;; hardware regs used 7 [sp] 16 [argp] 20 [frame] 49 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 50 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 51 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 52 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 53 | ;; regs ever live 0[ax] 5[di] 6[bp] 7[sp] 54 | ;; ref usage r0={3d,2u} r1={2d} r2={2d} r4={2d} r5={3d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,2u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} 55 | ;; total ref usage 108{95d,13u,0e} in 6{5 regular + 1 call} insns. 56 | (note 1 0 3 NOTE_INSN_DELETED) 57 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 58 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 59 | ;; pred: ENTRY (FALLTHRU) 60 | ;; bb 2 artificial_defs: { } 61 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 62 | ;; lr in 6 [bp] 7 [sp] 16 [argp] 20 [frame] 63 | ;; lr use 6 [bp] 7 [sp] 16 [argp] 20 [frame] 64 | ;; lr def 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 87 88 65 | (note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 66 | (note 2 3 5 2 NOTE_INSN_FUNCTION_BEG) 67 | (insn 5 2 6 2 (set (reg:SI 5 di) 68 | (const_int 60 [0x3c])) test.c:6 90 {*movsi_internal} 69 | (nil)) 70 | (call_insn 6 5 7 2 (set (reg:SI 0 ax) 71 | (call (mem:QI (symbol_ref:DI ("putChar") [flags 0x41] ) [0 putChar S1 A8]) 72 | (const_int 0 [0]))) test.c:6 670 {*call_value} 73 | (expr_list:REG_DEAD (reg:SI 5 di) 74 | (expr_list:REG_UNUSED (reg:SI 0 ax) 75 | (nil))) 76 | (expr_list:SI (use (reg:SI 5 di)) 77 | (nil))) 78 | (insn 7 6 10 2 (set (reg:SI 87 [ D.1839 ]) 79 | (const_int 0 [0])) test.c:7 90 {*movsi_internal} 80 | (nil)) 81 | (insn 10 7 14 2 (set (reg:SI 88 [ ]) 82 | (reg:SI 87 [ D.1839 ])) 90 {*movsi_internal} 83 | (expr_list:REG_DEAD (reg:SI 87 [ D.1839 ]) 84 | (nil))) 85 | (insn 14 10 15 2 (set (reg/i:SI 0 ax) 86 | (reg:SI 88 [ ])) test.c:8 90 {*movsi_internal} 87 | (expr_list:REG_DEAD (reg:SI 88 [ ]) 88 | (nil))) 89 | (insn 15 14 0 2 (use (reg/i:SI 0 ax)) test.c:8 -1 90 | (nil)) 91 | ;; succ: EXIT [100.0%] (FALLTHRU) 92 | ;; lr out 0 [ax] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 93 | 94 | -------------------------------------------------------------------------------- /lib/cbits.c.269r.dfinish: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | (note 4 1 26 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 6 | (insn/f 26 4 27 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 7 | (reg/f:DI 6 bp)) cbits.c:9 65 {*pushdi2_rex64} 8 | (nil)) 9 | (insn/f 27 26 28 2 (set (reg/f:DI 6 bp) 10 | (reg/f:DI 7 sp)) cbits.c:9 89 {*movdi_internal} 11 | (nil)) 12 | (insn/f 28 27 29 2 (parallel [ 13 | (set (reg/f:DI 7 sp) 14 | (plus:DI (reg/f:DI 7 sp) 15 | (const_int -16 [0xfffffffffffffff0]))) 16 | (clobber (reg:CC 17 flags)) 17 | (clobber (mem:BLK (scratch) [0 A8])) 18 | ]) cbits.c:9 971 {pro_epilogue_adjust_stack_di_add} 19 | (nil)) 20 | (note 29 28 2 2 NOTE_INSN_PROLOGUE_END) 21 | (insn 2 29 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 6 bp) 22 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 23 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 24 | (nil)) 25 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 26 | (insn 6 3 8 2 (set (reg:SI 0 ax [92]) 27 | (mem/c:SI (plus:DI (reg/f:DI 6 bp) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 29 | (nil)) 30 | (insn 8 6 9 2 (set (reg:SI 0 ax [orig:88 D.2301 ] [88]) 31 | (sign_extend:SI (reg:QI 0 ax [orig:87 D.2300 ] [87]))) cbits.c:10 148 {extendqisi2} 32 | (nil)) 33 | (insn 9 8 10 2 (set (reg:SI 5 di) 34 | (reg:SI 0 ax [orig:88 D.2301 ] [88])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 37 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 38 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 39 | (nil) 40 | (expr_list:SI (use (reg:SI 5 di)) 41 | (nil))) 42 | (insn 11 10 12 2 (set (reg/f:DI 0 ax [93]) 43 | (mem/u/c:DI (const:DI (unspec:DI [ 44 | (symbol_ref:DI ("stdout") [flags 0x40] ) 45 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 46 | (nil)) 47 | (insn 12 11 13 2 (set (reg/f:DI 0 ax [orig:89 D.2302 ] [89]) 48 | (mem/f/c:DI (reg/f:DI 0 ax [93]) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 49 | (nil)) 50 | (insn 13 12 14 2 (set (reg:DI 5 di) 51 | (reg/f:DI 0 ax [orig:89 D.2302 ] [89])) cbits.c:11 89 {*movdi_internal} 52 | (nil)) 53 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 54 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 55 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 56 | (nil) 57 | (expr_list:DI (use (reg:DI 5 di)) 58 | (nil))) 59 | (insn 15 14 23 2 (set (reg:SI 0 ax [orig:90 D.2301 ] [90]) 60 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 61 | (nil)) 62 | (insn 23 15 30 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 63 | (nil)) 64 | (note 30 23 31 2 NOTE_INSN_EPILOGUE_BEG) 65 | (insn/f 31 30 32 2 (parallel [ 66 | (set (reg/f:DI 7 sp) 67 | (plus:DI (reg/f:DI 6 bp) 68 | (const_int 8 [0x8]))) 69 | (set (reg/f:DI 6 bp) 70 | (mem:DI (reg/f:DI 6 bp) [0 S8 A8])) 71 | (clobber (mem:BLK (scratch) [0 A8])) 72 | ]) cbits.c:13 695 {leave_rex64} 73 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 74 | (const_int 8 [0x8])) 75 | (nil))) 76 | (jump_insn 32 31 33 2 (simple_return) cbits.c:13 681 {simple_return_internal} 77 | (nil) 78 | -> simple_return) 79 | (barrier 33 32 25) 80 | (note 25 33 0 NOTE_INSN_DELETED) 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | (note 1 0 4 NOTE_INSN_DELETED) 85 | (note 4 1 21 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 86 | (insn/f 21 4 22 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 87 | (reg/f:DI 6 bp)) cbits.c:16 65 {*pushdi2_rex64} 88 | (nil)) 89 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 90 | (reg/f:DI 7 sp)) cbits.c:16 89 {*movdi_internal} 91 | (nil)) 92 | (insn/f 23 22 24 2 (parallel [ 93 | (set (reg/f:DI 7 sp) 94 | (plus:DI (reg/f:DI 7 sp) 95 | (const_int -16 [0xfffffffffffffff0]))) 96 | (clobber (reg:CC 17 flags)) 97 | (clobber (mem:BLK (scratch) [0 A8])) 98 | ]) cbits.c:16 971 {pro_epilogue_adjust_stack_di_add} 99 | (nil)) 100 | (note 24 23 2 2 NOTE_INSN_PROLOGUE_END) 101 | (insn 2 24 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 6 bp) 102 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 103 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 104 | (nil)) 105 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 106 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 107 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 108 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 109 | (nil) 110 | (nil)) 111 | (insn 7 6 8 2 (set (reg:SI 1 dx [orig:87 D.2303 ] [87]) 112 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 113 | (nil)) 114 | (insn 8 7 9 2 (set (reg/f:DI 0 ax [90]) 115 | (mem/f/c:DI (plus:DI (reg/f:DI 6 bp) 116 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 117 | (nil)) 118 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 0 ax [90]) [0 *X_4(D)+0 S4 A32]) 119 | (reg:SI 1 dx [orig:87 D.2303 ] [87])) cbits.c:17 90 {*movsi_internal} 120 | (nil)) 121 | (insn 10 9 18 2 (set (reg:SI 0 ax [orig:88 D.2303 ] [88]) 122 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 123 | (nil)) 124 | (insn 18 10 25 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 125 | (nil)) 126 | (note 25 18 26 2 NOTE_INSN_EPILOGUE_BEG) 127 | (insn/f 26 25 27 2 (parallel [ 128 | (set (reg/f:DI 7 sp) 129 | (plus:DI (reg/f:DI 6 bp) 130 | (const_int 8 [0x8]))) 131 | (set (reg/f:DI 6 bp) 132 | (mem:DI (reg/f:DI 6 bp) [0 S8 A8])) 133 | (clobber (mem:BLK (scratch) [0 A8])) 134 | ]) cbits.c:19 695 {leave_rex64} 135 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 136 | (const_int 8 [0x8])) 137 | (nil))) 138 | (jump_insn 27 26 28 2 (simple_return) cbits.c:19 681 {simple_return_internal} 139 | (nil) 140 | -> simple_return) 141 | (barrier 28 27 20) 142 | (note 20 28 0 NOTE_INSN_DELETED) 143 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.269r.dfinish: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | (note 1 0 4 NOTE_INSN_DELETED) 5 | (note 4 1 26 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 6 | (insn/f 26 4 27 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 7 | (reg/f:DI 6 bp)) cbits.c:9 65 {*pushdi2_rex64} 8 | (nil)) 9 | (insn/f 27 26 28 2 (set (reg/f:DI 6 bp) 10 | (reg/f:DI 7 sp)) cbits.c:9 89 {*movdi_internal} 11 | (nil)) 12 | (insn/f 28 27 29 2 (parallel [ 13 | (set (reg/f:DI 7 sp) 14 | (plus:DI (reg/f:DI 7 sp) 15 | (const_int -16 [0xfffffffffffffff0]))) 16 | (clobber (reg:CC 17 flags)) 17 | (clobber (mem:BLK (scratch) [0 A8])) 18 | ]) cbits.c:9 971 {pro_epilogue_adjust_stack_di_add} 19 | (nil)) 20 | (note 29 28 2 2 NOTE_INSN_PROLOGUE_END) 21 | (insn 2 29 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 6 bp) 22 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 23 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 24 | (nil)) 25 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 26 | (insn 6 3 8 2 (set (reg:SI 0 ax [92]) 27 | (mem/c:SI (plus:DI (reg/f:DI 6 bp) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 29 | (nil)) 30 | (insn 8 6 9 2 (set (reg:SI 0 ax [orig:88 D.2301 ] [88]) 31 | (sign_extend:SI (reg:QI 0 ax [orig:87 D.2300 ] [87]))) cbits.c:10 148 {extendqisi2} 32 | (nil)) 33 | (insn 9 8 10 2 (set (reg:SI 5 di) 34 | (reg:SI 0 ax [orig:88 D.2301 ] [88])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 37 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 38 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 39 | (nil) 40 | (expr_list:SI (use (reg:SI 5 di)) 41 | (nil))) 42 | (insn 11 10 12 2 (set (reg/f:DI 0 ax [93]) 43 | (mem/u/c:DI (const:DI (unspec:DI [ 44 | (symbol_ref:DI ("stdout") [flags 0x40] ) 45 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 46 | (nil)) 47 | (insn 12 11 13 2 (set (reg/f:DI 0 ax [orig:89 D.2302 ] [89]) 48 | (mem/f/c:DI (reg/f:DI 0 ax [93]) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 49 | (nil)) 50 | (insn 13 12 14 2 (set (reg:DI 5 di) 51 | (reg/f:DI 0 ax [orig:89 D.2302 ] [89])) cbits.c:11 89 {*movdi_internal} 52 | (nil)) 53 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 54 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 55 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 56 | (nil) 57 | (expr_list:DI (use (reg:DI 5 di)) 58 | (nil))) 59 | (insn 15 14 23 2 (set (reg:SI 0 ax [orig:90 D.2301 ] [90]) 60 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 61 | (nil)) 62 | (insn 23 15 30 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 63 | (nil)) 64 | (note 30 23 31 2 NOTE_INSN_EPILOGUE_BEG) 65 | (insn/f 31 30 32 2 (parallel [ 66 | (set (reg/f:DI 7 sp) 67 | (plus:DI (reg/f:DI 6 bp) 68 | (const_int 8 [0x8]))) 69 | (set (reg/f:DI 6 bp) 70 | (mem:DI (reg/f:DI 6 bp) [0 S8 A8])) 71 | (clobber (mem:BLK (scratch) [0 A8])) 72 | ]) cbits.c:13 695 {leave_rex64} 73 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 74 | (const_int 8 [0x8])) 75 | (nil))) 76 | (jump_insn 32 31 33 2 (simple_return) cbits.c:13 681 {simple_return_internal} 77 | (nil) 78 | -> simple_return) 79 | (barrier 33 32 25) 80 | (note 25 33 0 NOTE_INSN_DELETED) 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | (note 1 0 4 NOTE_INSN_DELETED) 85 | (note 4 1 21 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 86 | (insn/f 21 4 22 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [0 S8 A8]) 87 | (reg/f:DI 6 bp)) cbits.c:16 65 {*pushdi2_rex64} 88 | (nil)) 89 | (insn/f 22 21 23 2 (set (reg/f:DI 6 bp) 90 | (reg/f:DI 7 sp)) cbits.c:16 89 {*movdi_internal} 91 | (nil)) 92 | (insn/f 23 22 24 2 (parallel [ 93 | (set (reg/f:DI 7 sp) 94 | (plus:DI (reg/f:DI 7 sp) 95 | (const_int -16 [0xfffffffffffffff0]))) 96 | (clobber (reg:CC 17 flags)) 97 | (clobber (mem:BLK (scratch) [0 A8])) 98 | ]) cbits.c:16 971 {pro_epilogue_adjust_stack_di_add} 99 | (nil)) 100 | (note 24 23 2 2 NOTE_INSN_PROLOGUE_END) 101 | (insn 2 24 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 6 bp) 102 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 103 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 104 | (nil)) 105 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 106 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 107 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 108 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 109 | (nil) 110 | (nil)) 111 | (insn 7 6 8 2 (set (reg:SI 1 dx [orig:87 D.2303 ] [87]) 112 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 113 | (nil)) 114 | (insn 8 7 9 2 (set (reg/f:DI 0 ax [90]) 115 | (mem/f/c:DI (plus:DI (reg/f:DI 6 bp) 116 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 117 | (nil)) 118 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 0 ax [90]) [0 *X_4(D)+0 S4 A32]) 119 | (reg:SI 1 dx [orig:87 D.2303 ] [87])) cbits.c:17 90 {*movsi_internal} 120 | (nil)) 121 | (insn 10 9 18 2 (set (reg:SI 0 ax [orig:88 D.2303 ] [88]) 122 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 123 | (nil)) 124 | (insn 18 10 25 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 125 | (nil)) 126 | (note 25 18 26 2 NOTE_INSN_EPILOGUE_BEG) 127 | (insn/f 26 25 27 2 (parallel [ 128 | (set (reg/f:DI 7 sp) 129 | (plus:DI (reg/f:DI 6 bp) 130 | (const_int 8 [0x8]))) 131 | (set (reg/f:DI 6 bp) 132 | (mem:DI (reg/f:DI 6 bp) [0 S8 A8])) 133 | (clobber (mem:BLK (scratch) [0 A8])) 134 | ]) cbits.c:19 695 {leave_rex64} 135 | (expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI 7 sp) 136 | (const_int 8 [0x8])) 137 | (nil))) 138 | (jump_insn 27 26 28 2 (simple_return) cbits.c:19 681 {simple_return_internal} 139 | (nil) 140 | -> simple_return) 141 | (barrier 28 27 20) 142 | (note 20 28 0 NOTE_INSN_DELETED) 143 | -------------------------------------------------------------------------------- /lib/cbits.c.229r.asmcons: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | putChar 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 7[sp] 16 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 17 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 18 | (note 1 0 4 NOTE_INSN_DELETED) 19 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 20 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 21 | ;; pred: ENTRY (FALLTHRU) 22 | ;; bb 2 artificial_defs: { } 23 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 24 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 25 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 26 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 27 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 28 | (nil)) 29 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 30 | (insn 6 3 7 2 (set (reg:SI 92) 31 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 32 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 33 | (nil)) 34 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 35 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 36 | (nil)) 37 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 38 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 39 | (nil)) 40 | (insn 9 8 10 2 (set (reg:SI 5 di) 41 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 42 | (nil)) 43 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 44 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 45 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 46 | (nil) 47 | (expr_list:SI (use (reg:SI 5 di)) 48 | (nil))) 49 | (insn 11 10 12 2 (set (reg/f:DI 93) 50 | (mem/u/c:DI (const:DI (unspec:DI [ 51 | (symbol_ref:DI ("stdout") [flags 0x40] ) 52 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 53 | (nil)) 54 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 55 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 56 | (nil)) 57 | (insn 13 12 14 2 (set (reg:DI 5 di) 58 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 59 | (nil)) 60 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 61 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 62 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 63 | (nil) 64 | (expr_list:DI (use (reg:DI 5 di)) 65 | (nil))) 66 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 67 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 68 | (nil)) 69 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 70 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 71 | (nil)) 72 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 73 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 74 | (nil)) 75 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 76 | (nil)) 77 | ;; succ: EXIT [100.0%] (FALLTHRU) 78 | 79 | 80 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 81 | 82 | 83 | 84 | getChar 85 | 86 | Dataflow summary: 87 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 88 | ;; hardware regs used 89 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 90 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 91 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 92 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 93 | ;; regs ever live 0[ax] 5[di] 7[sp] 94 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 95 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 96 | (note 1 0 4 NOTE_INSN_DELETED) 97 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 98 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 99 | ;; pred: ENTRY (FALLTHRU) 100 | ;; bb 2 artificial_defs: { } 101 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 102 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 103 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 104 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 105 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 106 | (nil)) 107 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 108 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 109 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 110 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 111 | (nil) 112 | (nil)) 113 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 114 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 115 | (nil)) 116 | (insn 8 7 9 2 (set (reg/f:DI 90) 117 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 118 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 119 | (nil)) 120 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 121 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 122 | (nil)) 123 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 124 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 125 | (nil)) 126 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 127 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 128 | (nil)) 129 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 130 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 131 | (nil)) 132 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 133 | (nil)) 134 | ;; succ: EXIT [100.0%] (FALLTHRU) 135 | 136 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.229r.asmcons: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | 5 | 6 | putChar 7 | 8 | Dataflow summary: 9 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 10 | ;; hardware regs used 11 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 12 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 13 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 14 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 15 | ;; regs ever live 0[ax] 5[di] 7[sp] 16 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 17 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 18 | (note 1 0 4 NOTE_INSN_DELETED) 19 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 20 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 21 | ;; pred: ENTRY (FALLTHRU) 22 | ;; bb 2 artificial_defs: { } 23 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 24 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 25 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 26 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 27 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 28 | (nil)) 29 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 30 | (insn 6 3 7 2 (set (reg:SI 92) 31 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 32 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 33 | (nil)) 34 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 35 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 36 | (nil)) 37 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 38 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 39 | (nil)) 40 | (insn 9 8 10 2 (set (reg:SI 5 di) 41 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 42 | (nil)) 43 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 44 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 45 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 46 | (nil) 47 | (expr_list:SI (use (reg:SI 5 di)) 48 | (nil))) 49 | (insn 11 10 12 2 (set (reg/f:DI 93) 50 | (mem/u/c:DI (const:DI (unspec:DI [ 51 | (symbol_ref:DI ("stdout") [flags 0x40] ) 52 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 53 | (nil)) 54 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 55 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 56 | (nil)) 57 | (insn 13 12 14 2 (set (reg:DI 5 di) 58 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 59 | (nil)) 60 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 61 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 62 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 63 | (nil) 64 | (expr_list:DI (use (reg:DI 5 di)) 65 | (nil))) 66 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 67 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 68 | (nil)) 69 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 70 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 71 | (nil)) 72 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 73 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 74 | (nil)) 75 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 76 | (nil)) 77 | ;; succ: EXIT [100.0%] (FALLTHRU) 78 | 79 | 80 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 81 | 82 | 83 | 84 | getChar 85 | 86 | Dataflow summary: 87 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 88 | ;; hardware regs used 89 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 90 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 91 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 92 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 93 | ;; regs ever live 0[ax] 5[di] 7[sp] 94 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 95 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 96 | (note 1 0 4 NOTE_INSN_DELETED) 97 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 98 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 99 | ;; pred: ENTRY (FALLTHRU) 100 | ;; bb 2 artificial_defs: { } 101 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 102 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 103 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 104 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 105 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 106 | (nil)) 107 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 108 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 109 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 110 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 111 | (nil) 112 | (nil)) 113 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 114 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 115 | (nil)) 116 | (insn 8 7 9 2 (set (reg/f:DI 90) 117 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 118 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 119 | (nil)) 120 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 121 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 122 | (nil)) 123 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 124 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 125 | (nil)) 126 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 127 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 128 | (nil)) 129 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 130 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 131 | (nil)) 132 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 133 | (nil)) 134 | ;; succ: EXIT [100.0%] (FALLTHRU) 135 | 136 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.227r.dfinit: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | verify found no changes in insn with uid = 10. 5 | verify found no changes in insn with uid = 14. 6 | 7 | 8 | putChar 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 7[sp] 18 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 19 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 20 | (note 1 0 4 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 26 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 27 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 29 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 30 | (nil)) 31 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 32 | (insn 6 3 7 2 (set (reg:SI 92) 33 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 34 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 37 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 38 | (nil)) 39 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 40 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 41 | (nil)) 42 | (insn 9 8 10 2 (set (reg:SI 5 di) 43 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 44 | (nil)) 45 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 46 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 47 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 48 | (nil) 49 | (expr_list:SI (use (reg:SI 5 di)) 50 | (nil))) 51 | (insn 11 10 12 2 (set (reg/f:DI 93) 52 | (mem/u/c:DI (const:DI (unspec:DI [ 53 | (symbol_ref:DI ("stdout") [flags 0x40] ) 54 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 55 | (nil)) 56 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 57 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 58 | (nil)) 59 | (insn 13 12 14 2 (set (reg:DI 5 di) 60 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 61 | (nil)) 62 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 63 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 64 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 65 | (nil) 66 | (expr_list:DI (use (reg:DI 5 di)) 67 | (nil))) 68 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 69 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 70 | (nil)) 71 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 72 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 73 | (nil)) 74 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 75 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 76 | (nil)) 77 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 78 | (nil)) 79 | ;; succ: EXIT [100.0%] (FALLTHRU) 80 | 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | verify found no changes in insn with uid = 6. 85 | 86 | 87 | getChar 88 | 89 | Dataflow summary: 90 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 91 | ;; hardware regs used 92 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 93 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 94 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 95 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 96 | ;; regs ever live 0[ax] 5[di] 7[sp] 97 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 98 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 99 | (note 1 0 4 NOTE_INSN_DELETED) 100 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 101 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 102 | ;; pred: ENTRY (FALLTHRU) 103 | ;; bb 2 artificial_defs: { } 104 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 105 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 106 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 107 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 108 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 109 | (nil)) 110 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 111 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 112 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 113 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 114 | (nil) 115 | (nil)) 116 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 117 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 118 | (nil)) 119 | (insn 8 7 9 2 (set (reg/f:DI 90) 120 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 121 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 122 | (nil)) 123 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 124 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 125 | (nil)) 126 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 127 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 128 | (nil)) 129 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 130 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 131 | (nil)) 132 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 133 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 134 | (nil)) 135 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 136 | (nil)) 137 | ;; succ: EXIT [100.0%] (FALLTHRU) 138 | 139 | -------------------------------------------------------------------------------- /lib/cbits.c.227r.dfinit: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | verify found no changes in insn with uid = 10. 5 | verify found no changes in insn with uid = 14. 6 | 7 | 8 | putChar 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 7[sp] 18 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 19 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 20 | (note 1 0 4 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 26 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 27 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 29 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 30 | (nil)) 31 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 32 | (insn 6 3 7 2 (set (reg:SI 92) 33 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 34 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 37 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 38 | (nil)) 39 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 40 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 41 | (nil)) 42 | (insn 9 8 10 2 (set (reg:SI 5 di) 43 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 44 | (nil)) 45 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 46 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 47 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 48 | (nil) 49 | (expr_list:SI (use (reg:SI 5 di)) 50 | (nil))) 51 | (insn 11 10 12 2 (set (reg/f:DI 93) 52 | (mem/u/c:DI (const:DI (unspec:DI [ 53 | (symbol_ref:DI ("stdout") [flags 0x40] ) 54 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 55 | (nil)) 56 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 57 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 58 | (nil)) 59 | (insn 13 12 14 2 (set (reg:DI 5 di) 60 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 61 | (nil)) 62 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 63 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 64 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 65 | (nil) 66 | (expr_list:DI (use (reg:DI 5 di)) 67 | (nil))) 68 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 69 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 70 | (nil)) 71 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 72 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 73 | (nil)) 74 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 75 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 76 | (nil)) 77 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 78 | (nil)) 79 | ;; succ: EXIT [100.0%] (FALLTHRU) 80 | 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | verify found no changes in insn with uid = 6. 85 | 86 | 87 | getChar 88 | 89 | Dataflow summary: 90 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 91 | ;; hardware regs used 92 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 93 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 94 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 95 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 96 | ;; regs ever live 0[ax] 5[di] 7[sp] 97 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 98 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 99 | (note 1 0 4 NOTE_INSN_DELETED) 100 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 101 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 102 | ;; pred: ENTRY (FALLTHRU) 103 | ;; bb 2 artificial_defs: { } 104 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 105 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 106 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 107 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 108 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 109 | (nil)) 110 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 111 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 112 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 113 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 114 | (nil) 115 | (nil)) 116 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 117 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 118 | (nil)) 119 | (insn 8 7 9 2 (set (reg/f:DI 90) 120 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 121 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 122 | (nil)) 123 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 124 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 125 | (nil)) 126 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 127 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 128 | (nil)) 129 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 130 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 131 | (nil)) 132 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 133 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 134 | (nil)) 135 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 136 | (nil)) 137 | ;; succ: EXIT [100.0%] (FALLTHRU) 138 | 139 | -------------------------------------------------------------------------------- /lib/cbits.c.228r.mode_sw: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | 7 | 8 | putChar 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 7[sp] 18 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 19 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 20 | (note 1 0 4 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 26 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 27 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 29 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 30 | (nil)) 31 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 32 | (insn 6 3 7 2 (set (reg:SI 92) 33 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 34 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 37 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 38 | (nil)) 39 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 40 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 41 | (nil)) 42 | (insn 9 8 10 2 (set (reg:SI 5 di) 43 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 44 | (nil)) 45 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 46 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 47 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 48 | (nil) 49 | (expr_list:SI (use (reg:SI 5 di)) 50 | (nil))) 51 | (insn 11 10 12 2 (set (reg/f:DI 93) 52 | (mem/u/c:DI (const:DI (unspec:DI [ 53 | (symbol_ref:DI ("stdout") [flags 0x40] ) 54 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 55 | (nil)) 56 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 57 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 58 | (nil)) 59 | (insn 13 12 14 2 (set (reg:DI 5 di) 60 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 61 | (nil)) 62 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 63 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 64 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 65 | (nil) 66 | (expr_list:DI (use (reg:DI 5 di)) 67 | (nil))) 68 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 69 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 70 | (nil)) 71 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 72 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 73 | (nil)) 74 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 75 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 76 | (nil)) 77 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 78 | (nil)) 79 | ;; succ: EXIT [100.0%] (FALLTHRU) 80 | 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | starting the processing of deferred insns 85 | ending the processing of deferred insns 86 | 87 | 88 | getChar 89 | 90 | Dataflow summary: 91 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 92 | ;; hardware regs used 93 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 94 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 95 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 96 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 97 | ;; regs ever live 0[ax] 5[di] 7[sp] 98 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 99 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 100 | (note 1 0 4 NOTE_INSN_DELETED) 101 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 102 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 103 | ;; pred: ENTRY (FALLTHRU) 104 | ;; bb 2 artificial_defs: { } 105 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 106 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 107 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 108 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 109 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 110 | (nil)) 111 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 112 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 113 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 114 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 115 | (nil) 116 | (nil)) 117 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 118 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 119 | (nil)) 120 | (insn 8 7 9 2 (set (reg/f:DI 90) 121 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 122 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 123 | (nil)) 124 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 125 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 126 | (nil)) 127 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 128 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 129 | (nil)) 130 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 131 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 132 | (nil)) 133 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 134 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 135 | (nil)) 136 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 137 | (nil)) 138 | ;; succ: EXIT [100.0%] (FALLTHRU) 139 | 140 | -------------------------------------------------------------------------------- /bin/lib/cbits.c.228r.mode_sw: -------------------------------------------------------------------------------- 1 | 2 | ;; Function putChar (putChar, funcdef_no=0, decl_uid=2284, cgraph_uid=0, symbol_order=0) 3 | 4 | starting the processing of deferred insns 5 | ending the processing of deferred insns 6 | 7 | 8 | putChar 9 | 10 | Dataflow summary: 11 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 12 | ;; hardware regs used 13 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 14 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 15 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 16 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 17 | ;; regs ever live 0[ax] 5[di] 7[sp] 18 | ;; ref usage r0={4d,2u} r1={3d} r2={3d} r4={3d} r5={5d,3u} r6={1d,2u} r7={1d,4u} r8={2d} r9={2d} r10={2d} r11={2d} r12={2d} r13={2d} r14={2d} r15={2d} r16={1d,1u} r17={2d} r18={2d} r19={2d} r20={1d,4u} r21={3d} r22={3d} r23={3d} r24={3d} r25={3d} r26={3d} r27={3d} r28={3d} r29={2d} r30={2d} r31={2d} r32={2d} r33={2d} r34={2d} r35={2d} r36={2d} r37={3d} r38={3d} r39={2d} r40={2d} r45={2d} r46={2d} r47={2d} r48={2d} r49={2d} r50={2d} r51={2d} r52={2d} r53={2d} r54={2d} r55={2d} r56={2d} r57={2d} r58={2d} r59={2d} r60={2d} r61={2d} r62={2d} r63={2d} r64={2d} r65={2d} r66={2d} r67={2d} r68={2d} r69={2d} r70={2d} r71={2d} r72={2d} r73={2d} r74={2d} r75={2d} r76={2d} r77={2d} r78={2d} r79={2d} r80={2d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} r91={1d,1u} r92={1d,1u} r93={1d,1u} 19 | ;; total ref usage 196{173d,23u,0e} in 14{12 regular + 2 call} insns. 20 | (note 1 0 4 NOTE_INSN_DELETED) 21 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 22 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 23 | ;; pred: ENTRY (FALLTHRU) 24 | ;; bb 2 artificial_defs: { } 25 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 26 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 27 | (insn 2 4 3 2 (set (mem/c:SI (plus:DI (reg/f:DI 20 frame) 28 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32]) 29 | (reg:SI 5 di [ X ])) cbits.c:9 90 {*movsi_internal} 30 | (nil)) 31 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 32 | (insn 6 3 7 2 (set (reg:SI 92) 33 | (mem/c:SI (plus:DI (reg/f:DI 20 frame) 34 | (const_int -4 [0xfffffffffffffffc])) [0 X+0 S4 A32])) cbits.c:10 90 {*movsi_internal} 35 | (nil)) 36 | (insn 7 6 8 2 (set (reg:QI 87 [ D.2300 ]) 37 | (subreg:QI (reg:SI 92) 0)) cbits.c:10 93 {*movqi_internal} 38 | (nil)) 39 | (insn 8 7 9 2 (set (reg:SI 88 [ D.2301 ]) 40 | (sign_extend:SI (reg:QI 87 [ D.2300 ]))) cbits.c:10 148 {extendqisi2} 41 | (nil)) 42 | (insn 9 8 10 2 (set (reg:SI 5 di) 43 | (reg:SI 88 [ D.2301 ])) cbits.c:10 90 {*movsi_internal} 44 | (nil)) 45 | (call_insn 10 9 11 2 (set (reg:SI 0 ax) 46 | (call (mem:QI (symbol_ref:DI ("putchar") [flags 0x41] ) [0 __builtin_putchar S1 A8]) 47 | (const_int 0 [0]))) cbits.c:10 670 {*call_value} 48 | (nil) 49 | (expr_list:SI (use (reg:SI 5 di)) 50 | (nil))) 51 | (insn 11 10 12 2 (set (reg/f:DI 93) 52 | (mem/u/c:DI (const:DI (unspec:DI [ 53 | (symbol_ref:DI ("stdout") [flags 0x40] ) 54 | ] UNSPEC_GOTPCREL)) [0 S8 A8])) cbits.c:11 89 {*movdi_internal} 55 | (nil)) 56 | (insn 12 11 13 2 (set (reg/f:DI 89 [ D.2302 ]) 57 | (mem/f/c:DI (reg/f:DI 93) [0 stdout+0 S8 A64])) cbits.c:11 89 {*movdi_internal} 58 | (nil)) 59 | (insn 13 12 14 2 (set (reg:DI 5 di) 60 | (reg/f:DI 89 [ D.2302 ])) cbits.c:11 89 {*movdi_internal} 61 | (nil)) 62 | (call_insn 14 13 15 2 (set (reg:SI 0 ax) 63 | (call (mem:QI (symbol_ref:DI ("fflush") [flags 0x41] ) [0 fflush S1 A8]) 64 | (const_int 0 [0]))) cbits.c:11 670 {*call_value} 65 | (nil) 66 | (expr_list:DI (use (reg:DI 5 di)) 67 | (nil))) 68 | (insn 15 14 18 2 (set (reg:SI 90 [ D.2301 ]) 69 | (const_int 0 [0])) cbits.c:12 90 {*movsi_internal} 70 | (nil)) 71 | (insn 18 15 22 2 (set (reg:SI 91 [ ]) 72 | (reg:SI 90 [ D.2301 ])) cbits.c:12 90 {*movsi_internal} 73 | (nil)) 74 | (insn 22 18 23 2 (set (reg/i:SI 0 ax) 75 | (reg:SI 91 [ ])) cbits.c:13 90 {*movsi_internal} 76 | (nil)) 77 | (insn 23 22 0 2 (use (reg/i:SI 0 ax)) cbits.c:13 -1 78 | (nil)) 79 | ;; succ: EXIT [100.0%] (FALLTHRU) 80 | 81 | 82 | ;; Function getChar (getChar, funcdef_no=1, decl_uid=2287, cgraph_uid=1, symbol_order=1) 83 | 84 | starting the processing of deferred insns 85 | ending the processing of deferred insns 86 | 87 | 88 | getChar 89 | 90 | Dataflow summary: 91 | ;; invalidated by call 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 8 [st] 9 [st(1)] 10 [st(2)] 11 [st(3)] 12 [st(4)] 13 [st(5)] 14 [st(6)] 15 [st(7)] 17 [flags] 18 [fpsr] 19 [fpcr] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 29 [mm0] 30 [mm1] 31 [mm2] 32 [mm3] 33 [mm4] 34 [mm5] 35 [mm6] 36 [mm7] 37 [r8] 38 [r9] 39 [r10] 40 [r11] 45 [xmm8] 46 [xmm9] 47 [xmm10] 48 [xmm11] 49 [xmm12] 50 [xmm13] 51 [xmm14] 52 [xmm15] 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 [] 92 | ;; hardware regs used 93 | ;; regular block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 94 | ;; eh block artificial uses 6 [bp] 7 [sp] 16 [argp] 20 [frame] 95 | ;; entry block defs 0 [ax] 1 [dx] 2 [cx] 4 [si] 5 [di] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 21 [xmm0] 22 [xmm1] 23 [xmm2] 24 [xmm3] 25 [xmm4] 26 [xmm5] 27 [xmm6] 28 [xmm7] 37 [r8] 38 [r9] 96 | ;; exit block uses 0 [ax] 6 [bp] 7 [sp] 20 [frame] 97 | ;; regs ever live 0[ax] 5[di] 7[sp] 98 | ;; ref usage r0={3d,3u} r1={2d} r2={2d} r4={2d} r5={2d,1u} r6={1d,2u} r7={1d,3u} r8={1d} r9={1d} r10={1d} r11={1d} r12={1d} r13={1d} r14={1d} r15={1d} r16={1d,1u} r17={1d} r18={1d} r19={1d} r20={1d,4u} r21={2d} r22={2d} r23={2d} r24={2d} r25={2d} r26={2d} r27={2d} r28={2d} r29={1d} r30={1d} r31={1d} r32={1d} r33={1d} r34={1d} r35={1d} r36={1d} r37={2d} r38={2d} r39={1d} r40={1d} r45={1d} r46={1d} r47={1d} r48={1d} r49={1d} r50={1d} r51={1d} r52={1d} r53={1d} r54={1d} r55={1d} r56={1d} r57={1d} r58={1d} r59={1d} r60={1d} r61={1d} r62={1d} r63={1d} r64={1d} r65={1d} r66={1d} r67={1d} r68={1d} r69={1d} r70={1d} r71={1d} r72={1d} r73={1d} r74={1d} r75={1d} r76={1d} r77={1d} r78={1d} r79={1d} r80={1d} r87={1d,1u} r88={1d,1u} r89={1d,1u} r90={1d,1u} 99 | ;; total ref usage 114{96d,18u,0e} in 9{8 regular + 1 call} insns. 100 | (note 1 0 4 NOTE_INSN_DELETED) 101 | ;; basic block 2, loop depth 0, count 0, freq 0, maybe hot 102 | ;; prev block 0, next block 1, flags: (NEW, REACHABLE, RTL, MODIFIED) 103 | ;; pred: ENTRY (FALLTHRU) 104 | ;; bb 2 artificial_defs: { } 105 | ;; bb 2 artificial_uses: { u-1(6){ }u-1(7){ }u-1(16){ }u-1(20){ }} 106 | (note 4 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK) 107 | (insn 2 4 3 2 (set (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 108 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64]) 109 | (reg:DI 5 di [ X ])) cbits.c:16 89 {*movdi_internal} 110 | (nil)) 111 | (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) 112 | (call_insn 6 3 7 2 (set (reg:SI 0 ax) 113 | (call (mem:QI (symbol_ref:DI ("getchar") [flags 0x41] ) [0 getchar S1 A8]) 114 | (const_int 0 [0]))) cbits.c:17 670 {*call_value} 115 | (nil) 116 | (nil)) 117 | (insn 7 6 8 2 (set (reg:SI 87 [ D.2303 ]) 118 | (reg:SI 0 ax)) cbits.c:17 90 {*movsi_internal} 119 | (nil)) 120 | (insn 8 7 9 2 (set (reg/f:DI 90) 121 | (mem/f/c:DI (plus:DI (reg/f:DI 20 frame) 122 | (const_int -8 [0xfffffffffffffff8])) [0 X+0 S8 A64])) cbits.c:17 89 {*movdi_internal} 123 | (nil)) 124 | (insn 9 8 10 2 (set (mem:SI (reg/f:DI 90) [0 *X_4(D)+0 S4 A32]) 125 | (reg:SI 87 [ D.2303 ])) cbits.c:17 90 {*movsi_internal} 126 | (nil)) 127 | (insn 10 9 13 2 (set (reg:SI 88 [ D.2303 ]) 128 | (const_int 0 [0])) cbits.c:18 90 {*movsi_internal} 129 | (nil)) 130 | (insn 13 10 17 2 (set (reg:SI 89 [ ]) 131 | (reg:SI 88 [ D.2303 ])) cbits.c:18 90 {*movsi_internal} 132 | (nil)) 133 | (insn 17 13 18 2 (set (reg/i:SI 0 ax) 134 | (reg:SI 89 [ ])) cbits.c:19 90 {*movsi_internal} 135 | (nil)) 136 | (insn 18 17 0 2 (use (reg/i:SI 0 ax)) cbits.c:19 -1 137 | (nil)) 138 | ;; succ: EXIT [100.0%] (FALLTHRU) 139 | 140 | --------------------------------------------------------------------------------