merge add
This commit is contained in:
@@ -43,6 +43,10 @@ var streamline = function(ir, log) {
|
||||
add_float: true, sub_float: true, mul_float: true,
|
||||
div_float: true, mod_float: true
|
||||
}
|
||||
var numeric_ops = {
|
||||
add: true, subtract: true, multiply: true,
|
||||
divide: true, modulo: true, pow: true
|
||||
}
|
||||
var bool_result_ops = {
|
||||
eq_int: true, ne_int: true, lt_int: true, gt_int: true,
|
||||
le_int: true, ge_int: true,
|
||||
@@ -159,10 +163,12 @@ var streamline = function(ir, log) {
|
||||
slot_types[text(instr[1])] = T_FUNCTION
|
||||
} else if (op == "length") {
|
||||
slot_types[text(instr[1])] = T_INT
|
||||
} else if (op == "neg_int") {
|
||||
slot_types[text(instr[1])] = T_INT
|
||||
} else if (op == "negate" || op == "neg_int") {
|
||||
slot_types[text(instr[1])] = T_UNKNOWN
|
||||
} else if (op == "neg_float") {
|
||||
slot_types[text(instr[1])] = T_FLOAT
|
||||
} else if (numeric_ops[op] == true) {
|
||||
slot_types[text(instr[1])] = T_UNKNOWN
|
||||
} else if (op == "bitnot" || op == "bitand" || op == "bitor" ||
|
||||
op == "bitxor" || op == "shl" || op == "shr" || op == "ushr") {
|
||||
slot_types[text(instr[1])] = T_INT
|
||||
@@ -266,6 +272,12 @@ var streamline = function(ir, log) {
|
||||
merge_backward(backward_types, instr[3], T_INT)
|
||||
} else if (op == "neg_int" || op == "bitnot") {
|
||||
merge_backward(backward_types, instr[2], T_INT)
|
||||
} else if (op == "subtract" || op == "multiply" ||
|
||||
op == "divide" || op == "modulo" || op == "pow") {
|
||||
merge_backward(backward_types, instr[2], T_NUM)
|
||||
merge_backward(backward_types, instr[3], T_NUM)
|
||||
} else if (op == "negate") {
|
||||
merge_backward(backward_types, instr[2], T_NUM)
|
||||
} else if (op == "add_float" || op == "sub_float" || op == "mul_float" ||
|
||||
op == "div_float" || op == "mod_float" ||
|
||||
op == "eq_float" || op == "ne_float" || op == "lt_float" ||
|
||||
@@ -395,6 +407,9 @@ var streamline = function(ir, log) {
|
||||
} else if (op == "neg_float") {
|
||||
slot = instr[1]
|
||||
typ = T_FLOAT
|
||||
} else if (op == "negate") {
|
||||
slot = instr[1]
|
||||
typ = T_UNKNOWN
|
||||
} else if (op == "concat") {
|
||||
slot = instr[1]
|
||||
typ = T_TEXT
|
||||
|
||||
Reference in New Issue
Block a user