From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15799 invoked by alias); 18 Apr 2002 01:26:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 15776 invoked by uid 71); 18 Apr 2002 01:26:02 -0000 Resent-Date: 18 Apr 2002 01:26:02 -0000 Resent-Message-ID: <20020418012602.15775.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Alan Modra Received:(qmail 14001 invoked from network); 18 Apr 2002 01:17:17 -0000 Received: from unknown (HELO mta02ps.bigpond.com) (144.135.25.134) by sources.redhat.com with SMTP; 18 Apr 2002 01:17:17 -0000 Received: from bubble.local ([144.135.25.78]) by mta02ps.bigpond.com (Netscape Messaging Server 4.15) with SMTP id GUQOWL00.CMJ for ; Thu, 18 Apr 2002 11:17:09 +1000 Received: from CPE-144-136-176-14.sa.bigpond.net.au ([144.136.176.14]) by PSMAM04.mailsvc.email.bigpond.com(MailRouter V3.0j 98/1190961); 18 Apr 2002 11:17:09 Received: (qmail 26667 invoked by uid 179); 18 Apr 2002 01:17:08 -0000 Message-Id:<20020418011708.GA26633@bubble.sa.bigpond.net.au> Date: Wed, 17 Apr 2002 18:26:00 -0000 From: Alan Modra To: gcc-gnats@gcc.gnu.org Cc: David Edelsohn , Anton Blanchard , Peter Bergner X-Send-Pr-Version:3.113 Subject: c/6344: GCSE PRE fails to init register X-SW-Source: 2002-04/txt/msg00905.txt.bz2 List-Id: >Number: 6344 >Category: c >Synopsis: GCSE PRE fails to init register >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Wed Apr 17 18:26:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Alan Modra >Release: 3.1 20020417 (prerelease) >Organization: IBM >Environment: configured with: /home/alan/src/gcc-ppc64-31/configure --prefix=/usr/local --build=i686-linux --host=i686-linux --target=powerpc64-linux --disable-nls --disable-shared --enable-languages=c >Description: When moving the code initialising a register holding "&vmlist_lock" address, gcc fails to use the pseudo holding the first occurrence of "&vmlist_lock". Instead a new pseudo is used that is never initialised. >How-To-Repeat: -O2 on attached testcase >Fix: not yet --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gcsebug.c" typedef struct { volatile unsigned int lock; } rwlock_t; static __inline__ void write_lock (rwlock_t *rw) { unsigned int tmp; __asm__ __volatile__("# write_lock %0, %1, %2" : "=&r"(tmp) : "r"(&rw->lock), "r"(-1) : "memory"); } static __inline__ void write_unlock (rwlock_t *rw) { __asm__ __volatile__("#write_unlock": : :"memory"); rw->lock = 0; } struct vm_struct { struct vm_struct *next; unsigned long flags; void *addr; unsigned long size; }; extern void *kmalloc (unsigned long); extern void kfree (void *); extern struct vm_struct *vmlist; extern rwlock_t vmlist_lock; struct vm_struct *get_vm_area (unsigned long size, unsigned long flags) { struct vm_struct **p, *tmp, *area; area = (struct vm_struct *) kmalloc (sizeof (*area)); if (!area) return 0; write_lock(&vmlist_lock); for (p = &vmlist; (tmp = *p) ; p = &tmp->next) { if (tmp->addr == 0) goto out; } write_unlock (&vmlist_lock); return area; out: write_unlock (&vmlist_lock); kfree (area); return 0; } --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gcsebug.s" .file "gcsebug.c" .section ".toc","aw" .LC0: .tc vmlist_lock[TC],vmlist_lock .LC1: .tc vmlist[TC],vmlist .section ".text" .align 2 .globl get_vm_area .section ".opd","aw" .align 3 get_vm_area: .quad .get_vm_area,.TOC.@tocbase,0 .previous .size get_vm_area,24 .type .get_vm_area,@function .globl .get_vm_area .get_vm_area: mflr 0 std 31,-8(1) std 0,16(1) li 3,32 stdu 1,-128(1) bl .kmalloc nop cmpdi 0,3,0 mr 10,3 li 3,0 beq- 0,.L1 ld 9,.LC0@toc(2) li 0,-1 #APP # write_lock 11, 9, 0 #NO_APP ld 9,.LC1@toc(2) ld 9,0(9) cmpdi 0,9,0 beq- 0,.L14 .L10: ld 0,16(9) cmpdi 0,0,0 beq- 0,.L9 ld 9,0(9) cmpdi 0,9,0 bne+ 0,.L10 .L14: #APP #write_unlock #NO_APP li 0,0 mr 3,10 stw 0,0(31) .L1: addi 1,1,128 ld 0,16(1) ld 31,-8(1) mtlr 0 blr .L9: #APP #write_unlock #NO_APP mr 3,10 stw 0,0(31) bl .kfree nop li 3,0 b .L1 .LTget_vm_area: .long 0 .byte 0,0,0,1,128,1,0,0 .size .get_vm_area,.-.get_vm_area .ident "GCC: (GNU) 3.1 20020417 (prerelease)" --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gcsebug.c.09.addressof" ;; Function get_vm_area (note 2 0 7 NOTE_INSN_DELETED) (note 7 2 9 NOTE_INSN_FUNCTION_BEG) (note 9 7 141 0x401ddb40 NOTE_INSN_BLOCK_BEG) (note 141 9 14 [bb 0] NOTE_INSN_BASIC_BLOCK) (insn 14 141 15 (set (reg:DI 3 r3) (const_int 32 [0x20])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 32 [0x20]) (nil))) (call_insn 15 14 17 (parallel[ (set (reg:DI 3 r3) (call (mem:SI (symbol_ref:DI ("kmalloc")) [0 S4 A8]) (const_int 64 [0x40]))) (use (const_int 0 [0x0])) (clobber (scratch:SI)) ] ) 378 {*call_value_nonlocal_aix64} (nil) (nil) (expr_list (use (reg:DI 3 r3)) (nil))) (insn 17 15 19 (set (reg/v/f:DI 120) (reg:DI 3 r3)) 319 {*movdi_internal64} (nil) (nil)) (insn 19 17 20 (set (reg:CC 121) (compare:CC (reg/v/f:DI 120) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 20 19 142 (set (pc) (if_then_else (ne (reg:CC 121) (const_int 0 [0x0])) (label_ref 28) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 142 20 25 [bb 1] NOTE_INSN_BASIC_BLOCK) (insn 25 142 26 (set (reg:DI 115) (const_int 0 [0x0])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (jump_insn 26 25 27 (set (pc) (label_ref 135)) -1 (nil) (nil)) (barrier 27 26 28) (code_label 28 27 143 2 "" "" [1 uses]) (note 143 28 31 [bb 2] NOTE_INSN_BASIC_BLOCK) (note 31 143 32 0x401ddbc0 NOTE_INSN_BLOCK_BEG) (insn 32 31 33 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 33 32 34 (set (reg/v/f:DI 123) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC0")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (note 34 33 39 0x401ddc00 NOTE_INSN_BLOCK_BEG) (insn 39 34 40 (set (reg:SI 126) (const_int -1 [0xffffffffffffffff])) 299 {*movsi_internal1} (nil) (expr_list:REG_EQUAL (const_int -1 [0xffffffffffffffff]) (nil))) (insn 40 39 42 (parallel[ (set (reg:SI 125) (asm_operands/v:SI ("# write_lock %0, %1, %2") ("=&r") 0[ (reg/v/f:DI 123) (reg:SI 126) ] [ (asm_input:DI ("r")) (asm_input:SI ("r")) ] ("gcsebug.c") 9)) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (note 42 40 43 0x401ddc00 NOTE_INSN_BLOCK_END) (note 43 42 46 0x401ddbc0 NOTE_INSN_BLOCK_END) (insn 46 43 47 (use (symbol_ref:DI ("vmlist"))) -1 (nil) (nil)) (insn 47 46 158 (set (reg/v/f:DI 118) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC1")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (insn 158 47 160 (set (reg/v/f:DI 119) (mem:DI (reg/v/f:DI 118) [7 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 160 158 161 (set (reg:CC 138) (compare:CC (reg/v/f:DI 119) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 161 160 48 (set (pc) (if_then_else (eq (reg:CC 138) (const_int 0 [0x0])) (label_ref 162) (pc))) 489 {*rs6000.md:13116} (nil) (expr_list:REG_BR_PRED (concat (const_int 12 [0xc]) (const_int 3600 [0xe10])) (nil))) (note 48 161 76 NOTE_INSN_LOOP_BEG) (code_label 76 48 145 10 "" "" [1 uses]) (note 145 76 64 [bb 3] NOTE_INSN_BASIC_BLOCK) (insn 64 145 65 (set (reg:DI 129) (mem/s:DI (plus:DI (reg/v/f:DI 119) (const_int 16 [0x10])) [9 .addr+0 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 65 64 66 (set (reg:CC 130) (compare:CC (reg:DI 129) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 66 65 72 (set (pc) (if_then_else (eq (reg:CC 130) (const_int 0 [0x0])) (label_ref 105) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 72 66 148 NOTE_INSN_LOOP_CONT) (note 148 72 75 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn 75 148 166 (set (reg/v/f:DI 118) (reg/v/f:DI 119)) 319 {*movdi_internal64} (nil) (nil)) (note 166 75 51 NOTE_INSN_LOOP_VTOP) (insn 51 166 54 (set (reg/v/f:DI 119) (mem:DI (reg/v/f:DI 119) [7 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 54 51 55 (set (reg/s:CC 128) (compare:CC (reg/v/f:DI 119) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 55 54 81 (set (pc) (if_then_else (ne (reg/s:CC 128) (const_int 0 [0x0])) (label_ref 76) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 81 55 162 NOTE_INSN_LOOP_END) (code_label 162 81 152 14 "" "" [1 uses]) (note 152 162 85 [bb 5] NOTE_INSN_BASIC_BLOCK) (note 85 152 86 0x401ddcc0 NOTE_INSN_BLOCK_BEG) (insn 86 85 87 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 87 86 91 (set (reg/v/f:DI 131) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC0")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (insn 91 87 94 (parallel[ (asm_operands/v ("#write_unlock") ("") 0[ ] [ ] ("gcsebug.c") 17) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (insn 94 91 95 (set (reg:SI 132) (const_int 0 [0x0])) 299 {*movsi_internal1} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (insn 95 94 96 (set (mem/s/v:SI (reg/v/f:DI 131) [5 .lock+0 S4 A32]) (reg:SI 132)) 299 {*movsi_internal1} (nil) (nil)) (note 96 95 102 0x401ddcc0 NOTE_INSN_BLOCK_END) (insn 102 96 103 (set (reg:DI 115) (reg/v/f:DI 120)) 319 {*movdi_internal64} (nil) (nil)) (jump_insn 103 102 104 (set (pc) (label_ref 135)) -1 (nil) (nil)) (barrier 104 103 105) (code_label 105 104 154 9 ("out") "" [1 uses]) (note 154 105 108 [bb 6] NOTE_INSN_BASIC_BLOCK) (note 108 154 109 0x401ddd40 NOTE_INSN_BLOCK_BEG) (insn 109 108 110 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 110 109 114 (set (reg/v/f:DI 134) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC0")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (insn 114 110 118 (parallel[ (asm_operands/v ("#write_unlock") ("") 0[ ] [ ] ("gcsebug.c") 17) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (insn 118 114 119 (set (mem/s/v:SI (reg/v/f:DI 134) [5 .lock+0 S4 A32]) (subreg:SI (reg:DI 129) 4)) 299 {*movsi_internal1} (nil) (nil)) (note 119 118 123 0x401ddd40 NOTE_INSN_BLOCK_END) (insn 123 119 124 (set (reg:DI 3 r3) (reg/v/f:DI 120)) 319 {*movdi_internal64} (nil) (nil)) (call_insn 124 123 129 (parallel[ (call (mem:SI (symbol_ref:DI ("kfree")) [0 S4 A8]) (const_int 64 [0x40])) (use (const_int 0 [0x0])) (clobber (scratch:SI)) ] ) 374 {*call_nonlocal_aix64} (nil) (nil) (expr_list (use (reg:DI 3 r3)) (nil))) (insn 129 124 132 (set (reg:DI 115) (const_int 0 [0x0])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (note 132 129 133 0x401ddb40 NOTE_INSN_BLOCK_END) (note 133 132 135 NOTE_INSN_FUNCTION_END) (code_label 135 133 157 1 "" "" [2 uses]) (note 157 135 137 [bb 7] NOTE_INSN_BASIC_BLOCK) (insn 137 157 140 (set (reg/i:DI 3 r3) (reg:DI 115)) 319 {*movdi_internal64} (nil) (nil)) (insn 140 137 0 (use (reg/i:DI 3 r3)) -1 (nil) (nil)) --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gcsebug.c.10.gcse" ;; Function get_vm_area try_optimize_cfg iteration 1 0 registers. 8 basic blocks, 13 edges. Basic block 0: first insn 141, last 20, loop_depth 0, count 0, freq 0. Predecessors: ENTRY (fallthru) Successors: 1 (fallthru) 2 Registers live at start: (nil) Registers live at end: (nil) Basic block 1: first insn 142, last 26, loop_depth 0, count 0, freq 0. Predecessors: 0 (fallthru) Successors: 7 Registers live at start: (nil) Registers live at end: (nil) Basic block 2: first insn 28, last 161, loop_depth 0, count 0, freq 0. Predecessors: 0 Successors: 3 (fallthru) 5 Registers live at start: (nil) Registers live at end: (nil) Basic block 3: first insn 76, last 66, loop_depth 0, count 0, freq 0. Predecessors: 4 2 (fallthru) Successors: 4 (fallthru) 6 Registers live at start: (nil) Registers live at end: (nil) Basic block 4: first insn 148, last 55, loop_depth 0, count 0, freq 0. Predecessors: 3 (fallthru) Successors: 5 (fallthru) 3 Registers live at start: (nil) Registers live at end: (nil) Basic block 5: first insn 162, last 103, loop_depth 0, count 0, freq 0. Predecessors: 4 (fallthru) 2 Successors: 7 Registers live at start: (nil) Registers live at end: (nil) Basic block 6: first insn 105, last 129, loop_depth 0, count 0, freq 0. Predecessors: 3 Successors: 7 (fallthru) Registers live at start: (nil) Registers live at end: (nil) Basic block 7: first insn 135, last 140, loop_depth 0, count 0, freq 0. Predecessors: 6 (fallthru) 5 1 Successors: EXIT (fallthru) Registers live at start: (nil) Registers live at end: (nil) GCSE pass 1 SET hash table (11 buckets, 4 entries) Index 0 (hash value 5) (set (reg:DI 115) (const_int 0 [0x0])) Index 1 (hash value 5) (set (reg:SI 126) (const_int -1 [0xffffffffffffffff])) Index 2 (hash value 0) (set (reg:SI 132) (const_int 0 [0x0])) Index 3 (hash value 5) (set (reg:DI 115) (reg/v/f:DI 120)) CPROP of get_vm_area, pass 1: 3896 bytes needed, 0 const props, 0 copy props Expression hash table (19 buckets, 8 entries) Index 0 (hash value 13) (compare:CC (reg/v/f:DI 120) (const_int 0 [0x0])) Index 1 (hash value 5) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC0")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8]) Index 2 (hash value 6) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC1")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8]) Index 3 (hash value 0) (mem:DI (reg/v/f:DI 118) [7 S8 A64]) Index 4 (hash value 12) (compare:CC (reg/v/f:DI 119) (const_int 0 [0x0])) Index 5 (hash value 0) (mem/s:DI (plus:DI (reg/v/f:DI 119) (const_int 16 [0x10])) [9 .addr+0 S8 A64]) Index 6 (hash value 3) (compare:CC (reg:DI 129) (const_int 0 [0x0])) Index 7 (hash value 1) (mem:DI (reg/v/f:DI 119) [7 S8 A64]) PRE: redundant insn 87 (expression 1) in bb 5, reaching reg is 139 PRE: redundant insn 110 (expression 1) in bb 6, reaching reg is 139 PRE GCSE of get_vm_area, pass 1: 5976 bytes needed, 2 substs, 0 insns created SET hash table (11 buckets, 6 entries) Index 0 (hash value 5) (set (reg:DI 115) (const_int 0 [0x0])) Index 1 (hash value 5) (set (reg:SI 126) (const_int -1 [0xffffffffffffffff])) Index 2 (hash value 10) (set (reg/v/f:DI 131) (reg:DI 139)) Index 3 (hash value 0) (set (reg:SI 132) (const_int 0 [0x0])) Index 4 (hash value 5) (set (reg:DI 115) (reg/v/f:DI 120)) Index 5 (hash value 2) (set (reg/v/f:DI 134) (reg:DI 139)) CPROP of get_vm_area, pass 2: 10028 bytes needed, 0 const props, 0 copy props GCSE of get_vm_area: 8 basic blocks, 1 pass, 7152 bytes ;; Processing block from 2 to 28, 10 sets. ;; Processing block from 143 to 76, 10 sets. ;; Processing block from 145 to 81, 7 sets. ;; Processing block from 152 to 105, 9 sets. ;; Processing block from 154 to 135, 10 sets. ;; Processing block from 157 to 0, 2 sets. try_optimize_cfg iteration 1 ;; Processing block from 2 to 28, 10 sets. ;; Processing block from 143 to 76, 10 sets. ;; Processing block from 145 to 81, 7 sets. ;; Processing block from 152 to 105, 8 sets. ;; Processing block from 154 to 135, 9 sets. ;; Processing block from 157 to 0, 2 sets. (note 2 0 7 NOTE_INSN_DELETED) (note 7 2 9 NOTE_INSN_FUNCTION_BEG) (note 9 7 141 0x401ddb40 NOTE_INSN_BLOCK_BEG) (note 141 9 14 [bb 0] NOTE_INSN_BASIC_BLOCK) (insn 14 141 15 (set (reg:DI 3 r3) (const_int 32 [0x20])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 32 [0x20]) (nil))) (call_insn 15 14 17 (parallel[ (set (reg:DI 3 r3) (call (mem:SI (symbol_ref:DI ("kmalloc")) [0 S4 A8]) (const_int 64 [0x40]))) (use (const_int 0 [0x0])) (clobber (scratch:SI)) ] ) 378 {*call_value_nonlocal_aix64} (nil) (nil) (expr_list (use (reg:DI 3 r3)) (nil))) (insn 17 15 19 (set (reg/v/f:DI 120) (reg:DI 3 r3)) 319 {*movdi_internal64} (nil) (nil)) (insn 19 17 20 (set (reg:CC 121) (compare:CC (reg/v/f:DI 120) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 20 19 142 (set (pc) (if_then_else (ne (reg:CC 121) (const_int 0 [0x0])) (label_ref 28) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 142 20 25 [bb 1] NOTE_INSN_BASIC_BLOCK) (insn 25 142 26 (set (reg:DI 115) (const_int 0 [0x0])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (jump_insn 26 25 27 (set (pc) (label_ref 135)) -1 (nil) (nil)) (barrier 27 26 28) (code_label 28 27 143 2 "" "" [1 uses]) (note 143 28 31 [bb 2] NOTE_INSN_BASIC_BLOCK) (note 31 143 32 0x401ddbc0 NOTE_INSN_BLOCK_BEG) (insn 32 31 33 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 33 32 34 (set (reg/v/f:DI 123) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC0")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (note 34 33 39 0x401ddc00 NOTE_INSN_BLOCK_BEG) (insn 39 34 40 (set (reg:SI 126) (const_int -1 [0xffffffffffffffff])) 299 {*movsi_internal1} (nil) (expr_list:REG_EQUAL (const_int -1 [0xffffffffffffffff]) (nil))) (insn 40 39 42 (parallel[ (set (reg:SI 125) (asm_operands/v:SI ("# write_lock %0, %1, %2") ("=&r") 0[ (reg/v/f:DI 123) (reg:SI 126) ] [ (asm_input:DI ("r")) (asm_input:SI ("r")) ] ("gcsebug.c") 9)) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (note 42 40 43 0x401ddc00 NOTE_INSN_BLOCK_END) (note 43 42 46 0x401ddbc0 NOTE_INSN_BLOCK_END) (insn 46 43 47 (use (symbol_ref:DI ("vmlist"))) -1 (nil) (nil)) (insn 47 46 158 (set (reg/v/f:DI 118) (mem/u:DI (plus:DI (reg:DI 2 r2) (const:DI (minus:DI (symbol_ref/u:DI ("*.LC1")) (symbol_ref:DI ("*.LCTOC1"))))) [6 S8 A8])) 319 {*movdi_internal64} (nil) (nil)) (insn 158 47 160 (set (reg/v/f:DI 119) (mem:DI (reg/v/f:DI 118) [7 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 160 158 161 (set (reg:CC 138) (compare:CC (reg/v/f:DI 119) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 161 160 48 (set (pc) (if_then_else (eq (reg:CC 138) (const_int 0 [0x0])) (label_ref 162) (pc))) 489 {*rs6000.md:13116} (nil) (expr_list:REG_BR_PRED (concat (const_int 12 [0xc]) (const_int 3600 [0xe10])) (nil))) (note 48 161 76 NOTE_INSN_LOOP_BEG) (code_label 76 48 145 10 "" "" [1 uses]) (note 145 76 64 [bb 3] NOTE_INSN_BASIC_BLOCK) (insn 64 145 65 (set (reg:DI 129) (mem/s:DI (plus:DI (reg/v/f:DI 119) (const_int 16 [0x10])) [9 .addr+0 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 65 64 66 (set (reg:CC 130) (compare:CC (reg:DI 129) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 66 65 72 (set (pc) (if_then_else (eq (reg:CC 130) (const_int 0 [0x0])) (label_ref 105) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 72 66 148 NOTE_INSN_LOOP_CONT) (note 148 72 75 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn 75 148 166 (set (reg/v/f:DI 118) (reg/v/f:DI 119)) 319 {*movdi_internal64} (nil) (nil)) (note 166 75 51 NOTE_INSN_LOOP_VTOP) (insn 51 166 54 (set (reg/v/f:DI 119) (mem:DI (reg/v/f:DI 119) [7 S8 A64])) 319 {*movdi_internal64} (nil) (nil)) (insn 54 51 55 (set (reg/s:CC 128) (compare:CC (reg/v/f:DI 119) (const_int 0 [0x0]))) 383 {*cmpdi_internal1} (nil) (nil)) (jump_insn 55 54 81 (set (pc) (if_then_else (ne (reg/s:CC 128) (const_int 0 [0x0])) (label_ref 76) (pc))) 489 {*rs6000.md:13116} (nil) (nil)) (note 81 55 162 NOTE_INSN_LOOP_END) (code_label 162 81 152 14 "" "" [1 uses]) (note 152 162 85 [bb 5] NOTE_INSN_BASIC_BLOCK) (note 85 152 86 0x401ddcc0 NOTE_INSN_BLOCK_BEG) (insn 86 85 91 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 91 86 94 (parallel[ (asm_operands/v ("#write_unlock") ("") 0[ ] [ ] ("gcsebug.c") 17) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (insn 94 91 95 (set (reg:SI 132) (const_int 0 [0x0])) 299 {*movsi_internal1} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (insn 95 94 96 (set (mem/s/v:SI (reg:DI 139) [5 .lock+0 S4 A32]) (reg:SI 132)) 299 {*movsi_internal1} (nil) (nil)) (note 96 95 102 0x401ddcc0 NOTE_INSN_BLOCK_END) (insn 102 96 103 (set (reg:DI 115) (reg/v/f:DI 120)) 319 {*movdi_internal64} (nil) (nil)) (jump_insn 103 102 104 (set (pc) (label_ref 135)) -1 (nil) (nil)) (barrier 104 103 105) (code_label 105 104 154 9 ("out") "" [1 uses]) (note 154 105 108 [bb 6] NOTE_INSN_BASIC_BLOCK) (note 108 154 109 0x401ddd40 NOTE_INSN_BLOCK_BEG) (insn 109 108 114 (use (symbol_ref:DI ("vmlist_lock"))) -1 (nil) (nil)) (insn 114 109 118 (parallel[ (asm_operands/v ("#write_unlock") ("") 0[ ] [ ] ("gcsebug.c") 17) (clobber (mem:BLK (scratch) [0 A8])) ] ) -1 (nil) (nil)) (insn 118 114 119 (set (mem/s/v:SI (reg:DI 139) [5 .lock+0 S4 A32]) (subreg:SI (reg:DI 129) 4)) 299 {*movsi_internal1} (nil) (nil)) (note 119 118 123 0x401ddd40 NOTE_INSN_BLOCK_END) (insn 123 119 124 (set (reg:DI 3 r3) (reg/v/f:DI 120)) 319 {*movdi_internal64} (nil) (nil)) (call_insn 124 123 129 (parallel[ (call (mem:SI (symbol_ref:DI ("kfree")) [0 S4 A8]) (const_int 64 [0x40])) (use (const_int 0 [0x0])) (clobber (scratch:SI)) ] ) 374 {*call_nonlocal_aix64} (nil) (nil) (expr_list (use (reg:DI 3 r3)) (nil))) (insn 129 124 132 (set (reg:DI 115) (const_int 0 [0x0])) 319 {*movdi_internal64} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil))) (note 132 129 133 0x401ddb40 NOTE_INSN_BLOCK_END) (note 133 132 135 NOTE_INSN_FUNCTION_END) (code_label 135 133 157 1 "" "" [2 uses]) (note 157 135 137 [bb 7] NOTE_INSN_BASIC_BLOCK) (insn 137 157 140 (set (reg/i:DI 3 r3) (reg:DI 115)) 319 {*movdi_internal64} (nil) (nil)) (insn 140 137 0 (use (reg/i:DI 3 r3)) -1 (nil) (nil)) --HcAYCG3uE/tztfnV-- >Release-Note: >Audit-Trail: >Unformatted: --HcAYCG3uE/tztfnV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline