diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-02-26 12:44:22 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-02-26 12:44:22 -0800 |
commit | 2708d551bd31338fbfd9f9e11716451443c04dbb (patch) | |
tree | c160fe3fab6ad0c388b18adfd1b1e6b52861f5b8 | |
parent | 28cd0d4f2be20241b3e3b090156775c29b695f9a (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.js | 4 | ||||
-rw-r--r-- | tests/test_core.py | 72 | ||||
-rw-r--r-- | tools/shared.py | 4 |
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() |