[pypy-commit] pypy remove-PYPY_NOT_MAIN_FILE: Split instrument.h and instrument.c
amauryfa
noreply at buildbot.pypy.org
Tue Oct 2 16:37:43 CEST 2012
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: remove-PYPY_NOT_MAIN_FILE
Changeset: r57721:c16499d28e1f
Date: 2012-09-30 20:39 +0200
http://bitbucket.org/pypy/pypy/changeset/c16499d28e1f/
Log: Split instrument.h and instrument.c
diff --git a/pypy/translator/c/funcgen.py b/pypy/translator/c/funcgen.py
--- a/pypy/translator/c/funcgen.py
+++ b/pypy/translator/c/funcgen.py
@@ -840,7 +840,7 @@
self.db.instrument_ncounter = max(self.db.instrument_ncounter,
counter_label+1)
counter_label = self.expr(op.args[1])
- return 'INSTRUMENT_COUNT(%s);' % counter_label
+ return 'PYPY_INSTRUMENT_COUNT(%s);' % counter_label
def OP_IS_EARLY_CONSTANT(self, op):
return '%s = 0; /* IS_EARLY_CONSTANT */' % (self.expr(op.result),)
diff --git a/pypy/translator/c/genc.py b/pypy/translator/c/genc.py
--- a/pypy/translator/c/genc.py
+++ b/pypy/translator/c/genc.py
@@ -252,7 +252,7 @@
else:
defines['PYPY_STANDALONE'] = db.get(pf)
if self.config.translation.instrument:
- defines['INSTRUMENT'] = 1
+ defines['PYPY_INSTRUMENT'] = 1
if CBuilder.have___thread:
if not self.config.translation.no__thread:
defines['USE___THREAD'] = 1
@@ -912,6 +912,7 @@
srcdir / 'debug_print.c',
srcdir / 'thread.c',
srcdir / 'asm.c',
+ srcdir / 'instrument.c',
]
if _CYGWIN:
files.append(srcdir / 'cygwin_wait.c')
@@ -961,10 +962,10 @@
gen_startupcode(f, database)
f.close()
- if 'INSTRUMENT' in defines:
+ if 'PYPY_INSTRUMENT' in defines:
fi = incfilename.open('a')
n = database.instrument_ncounter
- print >>fi, "#define INSTRUMENT_NCOUNTER %d" % n
+ print >>fi, "#define PYPY_INSTRUMENT_NCOUNTER %d" % n
fi.close()
eci = add_extra_files(eci)
diff --git a/pypy/translator/c/src/instrument.c b/pypy/translator/c/src/instrument.c
new file mode 100644
--- /dev/null
+++ b/pypy/translator/c/src/instrument.c
@@ -0,0 +1,69 @@
+#include <src/instrument.h>
+#include "common_header.h"
+
+#ifdef PYPY_INSTRUMENT
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#ifndef _WIN32
+#include <sys/mman.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#else
+#include <windows.h>
+#endif
+
+typedef unsigned long instrument_count_t;
+
+instrument_count_t *_instrument_counters = NULL;
+
+void instrument_setup() {
+ char *fname = getenv("PYPY_INSTRUMENT_COUNTERS");
+ if (fname) {
+ int fd;
+#ifdef _WIN32
+ HANDLE map_handle;
+ HANDLE file_handle;
+#endif
+ void *buf;
+ size_t sz = sizeof(instrument_count_t)*PYPY_INSTRUMENT_NCOUNTER;
+ fd = open(fname, O_CREAT|O_TRUNC|O_RDWR, 0744);
+ if (sz > 0) {
+ lseek(fd, sz-1, SEEK_SET);
+ write(fd, "", 1);
+#ifndef _WIN32
+ buf = mmap(NULL, sz, PROT_WRITE|PROT_READ, MAP_SHARED,
+ fd, 0);
+ if (buf == MAP_FAILED) {
+ fprintf(stderr, "mapping instrument counters file failed\n");
+ abort();
+ }
+#else
+ file_handle = (HANDLE)_get_osfhandle(fd);
+ map_handle = CreateFileMapping(file_handle, NULL, PAGE_READWRITE,
+ 0, sz, "");
+ buf = MapViewOfFile(map_handle, FILE_MAP_WRITE, 0, 0, 0);
+ if (buf == 0) {
+ fprintf(stderr, "mapping instrument counters file failed\n");
+ abort();
+ }
+#endif
+ _instrument_counters = (instrument_count_t *)buf;
+ }
+ }
+}
+
+void instrument_count(long label) {
+ if(_instrument_counters) {
+ _instrument_counters[label]++;
+ }
+}
+
+#else
+
+void instrument_setup() {
+}
+
+#endif
diff --git a/pypy/translator/c/src/instrument.h b/pypy/translator/c/src/instrument.h
--- a/pypy/translator/c/src/instrument.h
+++ b/pypy/translator/c/src/instrument.h
@@ -1,80 +1,13 @@
+#ifndef _PYPY_INSTRUMENT_H
+#define _PYPY_INSTRUMENT_H
void instrument_setup();
-#ifdef INSTRUMENT
-
+#ifdef PYPY_INSTRUMENT
void instrument_count(long);
-
-#ifdef PYPY_MAIN_IMPLEMENTATION_FILE
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#ifndef _WIN32
-#include <sys/mman.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
+#define PYPY_INSTRUMENT_COUNT(label) instrument_count(label)
#else
-#include <windows.h>
+#define PYPY_INSTRUMENT_COUNT
#endif
-typedef unsigned long instrument_count_t;
-
-instrument_count_t *_instrument_counters = NULL;
-
-void instrument_setup() {
- char *fname = getenv("_INSTRUMENT_COUNTERS");
- if (fname) {
- int fd;
-#ifdef _WIN32
- HANDLE map_handle;
- HANDLE file_handle;
-#endif
- void *buf;
- size_t sz = sizeof(instrument_count_t)*INSTRUMENT_NCOUNTER;
- fd = open(fname, O_CREAT|O_TRUNC|O_RDWR, 0744);
- if (sz > 0) {
- lseek(fd, sz-1, SEEK_SET);
- write(fd, "", 1);
-#ifndef _WIN32
- buf = mmap(NULL, sz, PROT_WRITE|PROT_READ, MAP_SHARED,
- fd, 0);
- if (buf == MAP_FAILED) {
- fprintf(stderr, "mapping instrument counters file failed\n");
- abort();
- }
-#else
- file_handle = (HANDLE)_get_osfhandle(fd);
- map_handle = CreateFileMapping(file_handle, NULL, PAGE_READWRITE,
- 0, sz, "");
- buf = MapViewOfFile(map_handle, FILE_MAP_WRITE, 0, 0, 0);
- if (buf == 0) {
- fprintf(stderr, "mapping instrument counters file failed\n");
- abort();
- }
-#endif
- _instrument_counters = (instrument_count_t *)buf;
- }
- }
-}
-
-void instrument_count(long label) {
- if(_instrument_counters) {
- _instrument_counters[label]++;
- }
-}
-#endif
-
-
-#define INSTRUMENT_COUNT(label) instrument_count(label)
-
-#else
-
-#ifdef PYPY_MAIN_IMPLEMENTATION_FILE
-void instrument_setup() {
-}
-#endif
-
-#define INSTRUMENT_COUNT
-
-#endif
+#endif /* _PYPY_INSTRUMENT_H */
diff --git a/pypy/translator/c/test/test_standalone.py b/pypy/translator/c/test/test_standalone.py
--- a/pypy/translator/c/test/test_standalone.py
+++ b/pypy/translator/c/test/test_standalone.py
@@ -101,11 +101,11 @@
cbuilder.compile()
counters_fname = udir.join("_counters_")
- os.environ['_INSTRUMENT_COUNTERS'] = str(counters_fname)
+ os.environ['PYPY_INSTRUMENT_COUNTERS'] = str(counters_fname)
try:
data = cbuilder.cmdexec()
finally:
- del os.environ['_INSTRUMENT_COUNTERS']
+ del os.environ['PYPY_INSTRUMENT_COUNTERS']
f = counters_fname.open('rb')
counters_data = f.read()
diff --git a/pypy/translator/driver.py b/pypy/translator/driver.py
--- a/pypy/translator/driver.py
+++ b/pypy/translator/driver.py
@@ -57,7 +57,7 @@
def probe(self, exe, args):
env = os.environ.copy()
- env['_INSTRUMENT_COUNTERS'] = str(self.datafile)
+ env['PYPY_INSTRUMENT_COUNTERS'] = str(self.datafile)
self.compiler.platform.execute(exe, args, env=env)
def after(self):
More information about the pypy-commit
mailing list