[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);
- [Guile-commits] 365/437: X86: Correct load and store in the x32 abi, (continued)
- [Guile-commits] 365/437: X86: Correct load and store in the x32 abi, Andy Wingo, 2018/07/02
- [Guile-commits] 190/437: Finish sparc port., Andy Wingo, 2018/07/02
- [Guile-commits] 436/437: Wire JIT availability check into Guile configure, Andy Wingo, 2018/07/02
- [Guile-commits] 350/437: Correct typo., Andy Wingo, 2018/07/02
- [Guile-commits] 424/437: Beginnings of build integration of lightning and guile, Andy Wingo, 2018/07/02
- [Guile-commits] 204/437: Add basic Itanium port infrastructure., Andy Wingo, 2018/07/02
- [Guile-commits] 425/437: Remove lightning pkg-config file., Andy Wingo, 2018/07/02
- [Guile-commits] 411/437: Correct issues with 32 bit big endian mips abis, Andy Wingo, 2018/07/02
- [Guile-commits] 233/437: Correct license to properly advertise LGPLv3 and not GPLv3., Andy Wingo, 2018/07/02
- [Guile-commits] 343/437: Implement new, typed, jit_htonr* interfaces, Andy Wingo, 2018/07/02
- [Guile-commits] 423/437: Finish removing get-jit-size,
Andy Wingo <=
- [Guile-commits] 320/437: Do not fail gratuitously in jit_init_debug, Andy Wingo, 2018/07/02
- [Guile-commits] 288/437: Add note about jit_set_memory_functions call., Andy Wingo, 2018/07/02
- [Guile-commits] 419/437: Merge GNU lightning to libguile/lightning, Andy Wingo, 2018/07/02
- [Guile-commits] 194/437: Rework to better describe what is used only during jit generation., Andy Wingo, 2018/07/02
- [Guile-commits] 386/437: hppa: Add initial jit_va_ calls to hppa, Andy Wingo, 2018/07/02
- [Guile-commits] 25/437: upgrade to autoconf 2.60, Andy Wingo, 2018/07/02
- [Guile-commits] 182/437: Implement the qmul and qdiv instructions., Andy Wingo, 2018/07/02
- [Guile-commits] 321/437: x86: Correct not released temporary register, Andy Wingo, 2018/07/02
- [Guile-commits] 315/437: Add string representation of IR codes to -sz.c files, Andy Wingo, 2018/07/02
- [Guile-commits] 402/437: Correct wrong check for argument of value 2 in check/fib.tst., Andy Wingo, 2018/07/02