guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 423/437: Finish removing get-jit-size


From: Andy Wingo
Subject: [Guile-commits] 423/437: Finish removing get-jit-size
Date: Mon, 2 Jul 2018 05:15:10 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 88101636278f8ff5067658debb9f77833b8e9d80
Author: Andy Wingo <address@hidden>
Date:   Sat Jun 30 11:23:00 2018 +0200

    Finish removing get-jit-size
    
    * libguile/lightning/include/lightning/jit_private.h:
    * libguile/lightning/lib/Makefile.am:
    * libguile/lightning/lib/jit_ia64.c (_emit_code):
    * libguile/lightning/lib/jit_size.c (jit_init_size, jit_finish_size):
    * libguile/lightning/lib/lightning.c (_jit_regarg_set, _jit_regarg_clr):
      (_jit_realize, _jit_emit): Remove case where GET_JIT_SIZE is set.
---
 libguile/lightning/include/lightning/jit_private.h | 24 +---------
 libguile/lightning/lib/Makefile.am                 |  7 +--
 libguile/lightning/lib/jit_ia64.c                  |  8 +---
 libguile/lightning/lib/jit_size.c                  | 56 +---------------------
 libguile/lightning/lib/lightning.c                 | 21 +-------
 5 files changed, 5 insertions(+), 111 deletions(-)

diff --git a/libguile/lightning/include/lightning/jit_private.h 
b/libguile/lightning/include/lightning/jit_private.h
index f06f1c8..d09fc46 100644
--- a/libguile/lightning/include/lightning/jit_private.h
+++ b/libguile/lightning/include/lightning/jit_private.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2017  Free Software Foundation, Inc.
+ * Copyright (C) 2012-2018  Free Software Foundation, Inc.
  *
  * This file is part of GNU lightning.
  *
@@ -583,14 +583,6 @@ struct jit_compiler {
     } prolog;
     jit_bool_t           jump;
 #endif
-#if GET_JIT_SIZE
-    /* Temporary storage to calculate instructions length */
-    jit_word_t           size;
-    /* Global flag for code buffer heuristic size computation */
-    jit_word_t           mult;
-    /* Pointer to code to prevent miscalculation if reallocating buffer */
-    jit_uint8_t                 *cptr;
-#endif
 };
 
 #define _jitc                          _jit->comp
@@ -737,20 +729,6 @@ void jit_free(jit_pointer_t*);
 extern void jit_init_size(void);
 extern void jit_finish_size(void);
 
-#if GET_JIT_SIZE
-#  define jit_size_prepare()           _jit_size_prepare(_jit)
-extern void
-_jit_size_prepare(jit_state_t*);
-
-#  define jit_size_collect(node)       _jit_size_collect(_jit, node)
-extern void
-_jit_size_collect(jit_state_t*, jit_node_t*);
-#else
-#  define jit_get_size()               _jit_get_size(_jit)
-extern jit_word_t
-_jit_get_size(jit_state_t*);
-#endif
-
 extern jit_word_t
 jit_get_max_instr(void);
 
diff --git a/libguile/lightning/lib/Makefile.am 
b/libguile/lightning/lib/Makefile.am
index a6885bc..c35e014 100644
--- a/libguile/lightning/lib/Makefile.am
+++ b/libguile/lightning/lib/Makefile.am
@@ -1,5 +1,5 @@
 #
-# Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc.
+# Copyright 2000, 2001, 2002, 2012-2018 Free Software Foundation, Inc.
 #
 # This file is part of GNU lightning.
 #
@@ -18,11 +18,6 @@ AM_CFLAGS = -I$(top_srcdir)/include -D_GNU_SOURCE 
$(LIGHTNING_CFLAGS)
 liblightning_LTLIBRARIES = liblightning.la
 liblightning_la_LDFLAGS = -version-info 1:0:0
 
-if get_jit_size
-JIT_SIZE_PATH = "$(top_builddir)/jit_$(cpu)-sz.c"
-AM_CPPFLAGS=-DGET_JIT_SIZE=1 -DJIT_SIZE_PATH='$(JIT_SIZE_PATH)'
-endif
-
 liblightningdir = $(libdir)
 liblightning_la_SOURCES =      \
        jit_disasm.c            \
diff --git a/libguile/lightning/lib/jit_ia64.c 
b/libguile/lightning/lib/jit_ia64.c
index 8f60b2e..6b756bf 100644
--- a/libguile/lightning/lib/jit_ia64.c
+++ b/libguile/lightning/lib/jit_ia64.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2017  Free Software Foundation, Inc.
+ * Copyright (C) 2013-2018  Free Software Foundation, Inc.
  *
  * This file is part of GNU lightning.
  *
@@ -1099,9 +1099,6 @@ _emit_code(jit_state_t *_jit)
            return (NULL);
 
        value = jit_classify(node->code);
-#if GET_JIT_SIZE
-       sync();
-#endif
 #if DEVEL_DISASSEMBLER
        /* FIXME DEVEL_DISASSEMBLER should become DISASSEMBLER,
         * but a "real" DEVEL_DISASSEMBLER should be required
@@ -1648,9 +1645,6 @@ _emit_code(jit_state_t *_jit)
                    break;
            }
        }
-#if GET_JIT_SIZE
-       sync();
-#endif
        jit_regarg_clr(node, value);
        if (jit_carry == _NOREG)
            assert(jit_regset_cmp_ui(&_jitc->regarg, 0) == 0);
diff --git a/libguile/lightning/lib/jit_size.c 
b/libguile/lightning/lib/jit_size.c
index 3585ada..77082ea 100644
--- a/libguile/lightning/lib/jit_size.c
+++ b/libguile/lightning/lib/jit_size.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2017  Free Software Foundation, Inc.
+ * Copyright (C) 2013-2018  Free Software Foundation, Inc.
  *
  * This file is part of GNU lightning.
  *
@@ -19,17 +19,11 @@
 
 #include <lightning.h>
 #include <lightning/jit_private.h>
-#if GET_JIT_SIZE
-#  include <stdio.h>
-#endif
 
 /*
  * Initialization
  */
 static jit_int16_t     _szs[jit_code_last_code] = {
-#if GET_JIT_SIZE
-#  define JIT_INSTR_MAX                256
-#else
 #  if defined(__i386__) || defined(__x86_64__)
 #    include "jit_x86-sz.c"
 #  elif defined(__mips__)
@@ -51,7 +45,6 @@ static jit_int16_t    _szs[jit_code_last_code] = {
 #  elif defined(__alpha__)
 #    include "jit_alpha-sz.c"
 #  endif
-#endif
 };
 
 /*
@@ -61,7 +54,6 @@ void
 jit_init_size(void)
 {
 #if DEBUG
-#  if !GET_JIT_SIZE
     jit_word_t         offset;
 
     for (offset = 0; offset < jit_size(_szs); offset++)
@@ -69,44 +61,9 @@ jit_init_size(void)
            return;
     /* Ensure data was collected */
     abort();
-#  endif
 #endif
 }
 
-#if GET_JIT_SIZE
-void
-_jit_size_prepare(jit_state_t *_jit)
-{
-    _jitc->cptr = _jit->code.ptr;
-    _jitc->size = _jit->pc.w;
-}
-
-void
-_jit_size_collect(jit_state_t *_jit, jit_node_t *node)
-{
-    jit_word_t         length;
-
-    if (_jitc->cptr == _jit->code.ptr) {
-       length = _jit->pc.w - _jitc->size;
-       if (_szs[node->code] < length)
-           _szs[node->code] = length;
-    }
-}
-
-#else
-jit_word_t
-_jit_get_size(jit_state_t *_jit)
-{
-    jit_word_t          size;
-    jit_node_t         *node;
-
-    for (size = JIT_INSTR_MAX, node = _jitc->head; node; node = node->next)
-       size += _szs[node->code];
-
-    return ((size + 4095) & -4096);
-}
-#endif
-
 jit_word_t
 jit_get_max_instr(void)
 {
@@ -116,15 +73,4 @@ jit_get_max_instr(void)
 void
 jit_finish_size(void)
 {
-#if GET_JIT_SIZE
-    FILE               *fp;
-    jit_word_t          offset;
-
-    /* Define a single path */
-    fp = fopen(JIT_SIZE_PATH, "a");
-    assert(fp);
-    for (offset = 0; offset < jit_size(_szs); offset++)
-       fprintf(fp, "%d %d\n", offset, _szs[offset]);
-    fclose(fp);
-#endif
 }
diff --git a/libguile/lightning/lib/lightning.c 
b/libguile/lightning/lib/lightning.c
index bce5968..db79dea 100644
--- a/libguile/lightning/lib/lightning.c
+++ b/libguile/lightning/lib/lightning.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2017  Free Software Foundation, Inc.
+ * Copyright (C) 2012-2018  Free Software Foundation, Inc.
  *
  * This file is part of GNU lightning.
  *
@@ -1896,9 +1896,6 @@ _jit_reglive(jit_state_t *_jit, jit_node_t *node)
 void
 _jit_regarg_set(jit_state_t *_jit, jit_node_t *node, jit_int32_t value)
 {
-#if GET_JIT_SIZE
-    jit_size_prepare();
-#endif
     if (value & jit_cc_a0_reg) {
        if (value & jit_cc_a0_rlh) {
            jit_regset_setbit(&_jitc->regarg, jit_regno(node->u.q.l));
@@ -1916,9 +1913,6 @@ _jit_regarg_set(jit_state_t *_jit, jit_node_t *node, 
jit_int32_t value)
 void
 _jit_regarg_clr(jit_state_t *_jit, jit_node_t *node, jit_int32_t value)
 {
-#if GET_JIT_SIZE
-    jit_size_collect(node);
-#endif
     if (value & jit_cc_a0_reg) {
        if (value & jit_cc_a0_rlh) {
            jit_regset_clrbit(&_jitc->regarg, jit_regno(node->u.q.l));
@@ -1944,14 +1938,6 @@ _jit_realize(jit_state_t *_jit)
 
     /* ensure it is aligned */
     _jitc->data.offset = (_jitc->data.offset + 7) & -8;
-
-#if GET_JIT_SIZE
-    /* Heuristic to guess code buffer size */
-    _jitc->mult = 4;
-    _jit->code.length = _jitc->pool.length * 1024 * _jitc->mult;
-#else
-    _jit->code.length = jit_get_size();
-#endif
 }
 
 void
@@ -2120,13 +2106,8 @@ _jit_emit(jit_state_t *_jit)
            }
            if (_jit->user_code)
                goto fail;
-#if GET_JIT_SIZE
-           ++_jitc->mult;
-           length = _jitc->pool.length * 1024 * _jitc->mult;
-#else
            /* Should only happen on very special cases */
            length = _jit->code.length + 4096;
-#endif
 
 #if !HAVE_MREMAP
            munmap(_jit->code.ptr, _jit->code.length);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]