set MAX_SETJMPS to fastcomp; 1.18.4

This commit is contained in:
Alon Zakai 2014-05-27 11:26:40 -07:00
Родитель 807e419d4a
Коммит d46e9600bc
4 изменённых файлов: 7 добавлений и 5 удалений

1
emcc
Просмотреть файл

@ -1269,7 +1269,6 @@ try:
assert shared.Settings.TARGET_ASMJS_UNKNOWN_EMSCRIPTEN == 1, 'fastcomp requires asmjs-unknown-emscripten'
assert shared.Settings.USE_TYPED_ARRAYS == 2, 'fastcomp assumes ta2'
assert not split_js_file, '--split-js is deprecated and not supported in fastcomp'
assert shared.Settings.MAX_SETJMPS == 20, 'changing MAX_SETJMPS is not supported in fastcomp yet'
assert shared.Settings.INIT_HEAP == 0, 'HEAP_INIT is not supported in fastcomp (and should never be needed except for debugging)'
assert not shared.Settings.RUNTIME_TYPE_INFO, 'RUNTIME_TYPE_INFO is not supported in fastcomp'
assert not shared.Settings.CORRUPTION_CHECK, 'CORRUPTION_CHECK is not supported in asm.js mode, which is what fastcomp can emit (you can use non-asm.js mode in non-fastcomp)'

Просмотреть файл

@ -1,2 +1,2 @@
1.18.3
1.18.4

Просмотреть файл

@ -761,6 +761,7 @@ def emscript_fast(infile, settings, outfile, libraries=[], compiler_engine=None,
if settings['ALIASING_FUNCTION_POINTERS'] == 0:
backend_args += ['-emscripten-no-aliasing-function-pointers']
backend_args += ['-O' + str(settings['OPT_LEVEL'])]
backend_args += ['-emscripten-max-setjmps=%d' % settings['MAX_SETJMPS']]
if DEBUG:
logging.debug('emscript: llvm backend: ' + ' '.join(backend_args))
t = time.time()

Просмотреть файл

@ -1200,9 +1200,11 @@ class T(RunnerCore): # Short name, to make it more fun to use manually on the co
return 0;
}
'''
for num in [Settings.MAX_SETJMPS, Settings.MAX_SETJMPS+1]:
print num
self.do_run(src.replace('NUM', str(num)), '0\n' * num if num <= Settings.MAX_SETJMPS or not Settings.ASM_JS else 'build with a higher value for MAX_SETJMPS')
for maxx in [Settings.MAX_SETJMPS/2, Settings.MAX_SETJMPS, 2*Settings.MAX_SETJMPS]:
Settings.MAX_SETJMPS = maxx
for num in [maxx, maxx+1]:
print maxx, num
self.do_run(src.replace('NUM', str(num)), '0\n' * num if num <= Settings.MAX_SETJMPS or not Settings.ASM_JS else 'build with a higher value for MAX_SETJMPS')
def test_setjmp_many_2(self):
if os.environ.get('EMCC_FAST_COMPILER') == '0': return self.skip('non-fastcomp do not hit the limit.')