[前][次][番号順一覧][スレッド一覧]

ruby-changes:69276

From: Alan <ko1@a...>
Date: Thu, 21 Oct 2021 08:25:02 +0900 (JST)
Subject: [ruby-changes:69276] 6a9e2b3cc3 (master): YJIT: Show GCC that the mmap probing loop runs at least once

https://git.ruby-lang.org/ruby.git/commit/?id=6a9e2b3cc3

From 6a9e2b3cc381fd1b6c5ec5eddb077ea5468ef75e Mon Sep 17 00:00:00 2001
From: Alan Wu <alanwu@r...>
Date: Wed, 20 Oct 2021 19:04:22 -0400
Subject: YJIT: Show GCC that the mmap probing loop runs at least once

Fixes:
    ./src/yjit_asm.c:196:8: warning: 'mem_block' may be used uninitialized [-Wmaybe-uninitialized]
---
 yjit_asm.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/yjit_asm.c b/yjit_asm.c
index 5e433f5ea4..0d074d5e4d 100644
--- a/yjit_asm.c
+++ b/yjit_asm.c
@@ -158,8 +158,7 @@ uint8_t *alloc_exec_mem(uint32_t mem_size) https://github.com/ruby/ruby/blob/trunk/yjit_asm.c#L158
         uint32_t page_size = (uint32_t)sysconf(_SC_PAGESIZE);
         uint8_t *req_addr = align_ptr((uint8_t*)&alloc_exec_mem, page_size);
 
-        while (req_addr < (uint8_t*)&alloc_exec_mem + INT32_MAX)
-        {
+        do {
             // Try to map a chunk of memory as executable
             mem_block = (uint8_t*)mmap(
                 (void*)req_addr,
@@ -177,7 +176,7 @@ uint8_t *alloc_exec_mem(uint32_t mem_size) https://github.com/ruby/ruby/blob/trunk/yjit_asm.c#L176
 
             // +4MB
             req_addr += 4 * 1024 * 1024;
-        }
+        } while (req_addr < (uint8_t*)&alloc_exec_mem + INT32_MAX);
 
     // On MacOS and other platforms
     #else
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]