aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-11-15 14:29:50 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-11-15 14:33:37 -0800
commit4f3b5af14cf6bff389765d0f6dd2e5b6c3ba7161 (patch)
tree80e5ae6b19ec29a0453bd5d279d38929a07459fc /src
parent0c4d11f4caaa960cf283a4c2112cbdf6a175cadd (diff)
ignore llvm ir fast-math notation; fixes #1762
Diffstat (limited to 'src')
-rw-r--r--src/intertyper.js2
-rw-r--r--src/modules.js1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/intertyper.js b/src/intertyper.js
index fa53c652..f92a04db 100644
--- a/src/intertyper.js
+++ b/src/intertyper.js
@@ -842,7 +842,7 @@ function intertyper(lines, sidePass, baseLineNums) {
item.variant = item.tokens[1].text;
item.tokens.splice(1, 1);
}
- if (item.tokens[1].text == 'exact') item.tokens.splice(1, 1); // TODO: Implement trap values
+ while (item.tokens[1].text in LLVM.MATHOP_IGNORABLES) item.tokens.splice(1, 1);
var segments = splitTokenList(item.tokens.slice(1));
item.params = [];
for (var i = 1; i <= 4; i++) {
diff --git a/src/modules.js b/src/modules.js
index 673e0662..5d48ede2 100644
--- a/src/modules.js
+++ b/src/modules.js
@@ -20,6 +20,7 @@ var LLVM = {
COMPS: set('icmp', 'fcmp'),
CONVERSIONS: set('inttoptr', 'ptrtoint', 'uitofp', 'sitofp', 'fptosi', 'fptoui', 'fpext', 'fptrunc'),
INTRINSICS_32: set('_llvm_memcpy_p0i8_p0i8_i64', '_llvm_memmove_p0i8_p0i8_i64', '_llvm_memset_p0i8_i64'), // intrinsics that need args converted to i32 in USE_TYPED_ARRAYS == 2
+ MATHOP_IGNORABLES: set('exact', 'nnan', 'ninf', 'nsz', 'arcp', 'fast'),
};
LLVM.GLOBAL_MODIFIERS = set(keys(LLVM.LINKAGES).concat(['constant', 'global', 'hidden']));