aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-02-26 12:44:22 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-02-26 12:44:22 -0800
commit2708d551bd31338fbfd9f9e11716451443c04dbb (patch)
treec160fe3fab6ad0c388b18adfd1b1e6b52861f5b8
parent28cd0d4f2be20241b3e3b090156775c29b695f9a (diff)
use le32 target when fastcomp is disabled, so we do not need a fastcomp build, and also fixes sqlite test
-rw-r--r--src/intertyper.js4
-rw-r--r--tests/test_core.py72
-rw-r--r--tools/shared.py4
3 files changed, 42 insertions, 38 deletions
diff --git a/src/intertyper.js b/src/intertyper.js
index 7743ce62..323787ac 100644
--- a/src/intertyper.js
+++ b/src/intertyper.js
@@ -350,7 +350,9 @@ function intertyper(lines, sidePass, baseLineNums) {
triple = triple.substr(1, triple.length-2);
var expected = TARGET_ASMJS_UNKNOWN_EMSCRIPTEN ? 'asmjs-unknown-emscripten' : 'i386-pc-linux-gnu';
if (triple !== expected) {
- warn('using an unexpected LLVM triple: ' + [triple, ' !== ', expected] + ' (are you using emcc for everything and not clang?)');
+ if (!(TARGET_ASMJS_UNKNOWN_EMSCRIPTEN && triple === 'le32-unknown-nacl')) {
+ warn('using an unexpected LLVM triple: ' + [triple, ' !== ', expected] + ' (are you using emcc for everything and not clang?)');
+ }
}
}
return null;
diff --git a/tests/test_core.py b/tests/test_core.py
index 2feb85fb..a821660c 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -4542,10 +4542,20 @@ PORT: 3979
### 'Medium' tests
def test_fannkuch(self):
+ try:
+ if self.run_name == 'slow2' or self.run_name == 'slow2asm':
+ old_target = os.environ.get('EMCC_LLVM_TARGET') or ''
+ os.environ['EMCC_LLVM_TARGET'] = "asmjs-unknown-emscripten" # testing for asm-emscripten target on non-fastcomp
results = [ (1,0), (2,1), (3,2), (4,4), (5,7), (6,10), (7, 16), (8,22) ]
for i, j in results:
src = open(path_from_root('tests', 'fannkuch.cpp'), 'r').read()
self.do_run(src, 'Pfannkuchen(%d) = %d.' % (i,j), [str(i)], no_build=i>1)
+ finally:
+ if self.run_name == 'slow2' or self.run_name == 'slow2asm':
+ if old_target:
+ os.environ['EMCC_LLVM_TARGET'] = old_target
+ else:
+ del os.environ['EMCC_LLVM_TARGET']
def test_raytrace(self):
if self.emcc_args is None: return self.skip('requires emcc')
@@ -4841,45 +4851,33 @@ def process(filename):
no_build=True)
def test_sqlite(self):
- try:
- if self.run_name == 'slow2' or self.run_name == 'slow2asm':
- old_target = os.environ.get('EMCC_LLVM_TARGET') or ''
- os.environ['EMCC_LLVM_TARGET'] = "le32-unknown-nacl"
+ # gcc -O3 -I/home/alon/Dev/emscripten/tests/sqlite -ldl src.c
+ if self.emcc_args is None: return self.skip('Very slow without ta2, and we would also need to include dlmalloc manually without emcc')
+ if not self.is_emscripten_abi(): return self.skip('fails on x86 due to a legalization issue on llvm 3.3')
+ if Settings.QUANTUM_SIZE == 1: return self.skip('TODO FIXME')
+ self.banned_js_engines = [NODE_JS] # OOM in older node
- # gcc -O3 -I/home/alon/Dev/emscripten/tests/sqlite -ldl src.c
- if self.emcc_args is None: return self.skip('Very slow without ta2, and we would also need to include dlmalloc manually without emcc')
- if not self.is_emscripten_abi(): return self.skip('fails on x86 due to a legalization issue on llvm 3.3')
- if Settings.QUANTUM_SIZE == 1: return self.skip('TODO FIXME')
- self.banned_js_engines = [NODE_JS] # OOM in older node
-
- Settings.CORRECT_SIGNS = 1
- Settings.CORRECT_OVERFLOWS = 0
- Settings.CORRECT_ROUNDINGS = 0
- if self.emcc_args is None: Settings.SAFE_HEAP = 0 # uses time.h to set random bytes, other stuff
- Settings.DISABLE_EXCEPTION_CATCHING = 1
- Settings.FAST_MEMORY = 4*1024*1024
- Settings.EXPORTED_FUNCTIONS += ['_sqlite3_open', '_sqlite3_close', '_sqlite3_exec', '_sqlite3_free', '_callback'];
- if Settings.ASM_JS == 1 and '-g' in self.emcc_args:
- print "disabling inlining" # without registerize (which -g disables), we generate huge amounts of code
- Settings.INLINING_LIMIT = 50
-
- self.do_run(r'''
- #define SQLITE_DISABLE_LFS
- #define LONGDOUBLE_TYPE double
- #define SQLITE_INT64_TYPE long long int
- #define SQLITE_THREADSAFE 0
- ''' + open(path_from_root('tests', 'sqlite', 'sqlite3.c'), 'r').read() +
- open(path_from_root('tests', 'sqlite', 'benchmark.c'), 'r').read(),
- open(path_from_root('tests', 'sqlite', 'benchmark.txt'), 'r').read(),
- includes=[path_from_root('tests', 'sqlite')],
- force_c=True)
+ Settings.CORRECT_SIGNS = 1
+ Settings.CORRECT_OVERFLOWS = 0
+ Settings.CORRECT_ROUNDINGS = 0
+ if self.emcc_args is None: Settings.SAFE_HEAP = 0 # uses time.h to set random bytes, other stuff
+ Settings.DISABLE_EXCEPTION_CATCHING = 1
+ Settings.FAST_MEMORY = 4*1024*1024
+ Settings.EXPORTED_FUNCTIONS += ['_sqlite3_open', '_sqlite3_close', '_sqlite3_exec', '_sqlite3_free', '_callback'];
+ if Settings.ASM_JS == 1 and '-g' in self.emcc_args:
+ print "disabling inlining" # without registerize (which -g disables), we generate huge amounts of code
+ Settings.INLINING_LIMIT = 50
- finally:
- if self.run_name == 'slow2' or self.run_name == 'slow2asm':
- if old_target:
- os.environ['EMCC_LLVM_TARGET'] = old_target
- else:
- del os.environ['EMCC_LLVM_TARGET']
+ self.do_run(r'''
+ #define SQLITE_DISABLE_LFS
+ #define LONGDOUBLE_TYPE double
+ #define SQLITE_INT64_TYPE long long int
+ #define SQLITE_THREADSAFE 0
+ ''' + open(path_from_root('tests', 'sqlite', 'sqlite3.c'), 'r').read() +
+ open(path_from_root('tests', 'sqlite', 'benchmark.c'), 'r').read(),
+ open(path_from_root('tests', 'sqlite', 'benchmark.txt'), 'r').read(),
+ includes=[path_from_root('tests', 'sqlite')],
+ force_c=True)
def test_zlib(self):
if not Settings.USE_TYPED_ARRAYS == 2: return self.skip('works in general, but cached build will be optimized and fail, so disable this')
diff --git a/tools/shared.py b/tools/shared.py
index b7a186fc..f7c3919c 100644
--- a/tools/shared.py
+++ b/tools/shared.py
@@ -618,6 +618,10 @@ except:
# Target choice. Must be synced with src/settings.js (TARGET_*)
def get_llvm_target():
+ if os.environ.get('EMCC_FAST_COMPILER') == '0':
+ if not os.environ.get('EMCC_LLVM_TARGET'):
+ os.environ['EMCC_LLVM_TARGET'] = 'le32-unknown-nacl'
+ return os.environ.get('EMCC_LLVM_TARGET')
return os.environ.get('EMCC_LLVM_TARGET') or 'asmjs-unknown-emscripten'
LLVM_TARGET = get_llvm_target()