Commit 80c594ae authored by Kunshan Wang's avatar Kunshan Wang

Generated CommInst implementation of IRBuilder API

parent df4eb677
......@@ -5,7 +5,7 @@ Usage: python3 muapitoirbuildercomminstsimpl.py
"""
import muapiparser
import sys, os
import sys, os, re
from collections import namedtuple
from refimpl2injectablefiles import injectable_files, muapi_h_path
......@@ -22,7 +22,6 @@ CommInstDesc = namedtuple("CommInstDesc", """
muname
muparamtys
muretty
pragmas
arrays
sizes
optionals
......@@ -61,11 +60,18 @@ _type_map = {
"double" : "double",
}
r_node_ty = re.compile(r'^Mu\w*(Node|Clause)$')
def type_is_node(ty):
return r_node_ty.match(ty) is not None
def to_mu_ty(cty):
if cty.endswith("*"):
if cty == "MuIRBuilder*":
return "irbuilderref"
elif cty.endswith("*"):
return "iref<{}>".format(to_mu_ty(cty[:-1]))
elif cty.startswith("Mu") and cty.endswith("Node"):
return "irnoderef"
elif type_is_node(cty):
return "int<32>"
elif cty in _type_map:
return _type_map[cty]
else:
......@@ -73,22 +79,17 @@ def to_mu_ty(cty):
def get_comminsts(ast):
muctx_methods = [s["methods"] for s in ast["structs"]
if s["name"] == "MuCtx"][0]
if s["name"] == "MuIRBuilder"][0]
index_new_bundle = 0
while muctx_methods[index_new_bundle]["name"] != "new_bundle":
index_new_bundle += 1
comminsts = []
next_id = start_id_comminst
comminsts = []
for i in range(index_new_bundle, len(muctx_methods)):
for i in range(len(muctx_methods)):
meth = muctx_methods[i]
name = meth["name"]
cparams = meth["params"]
cretty = meth["ret_ty"]
pragmas = meth["pragmas"]
arrays = {}
sizes = set()
optionals = set()
......@@ -97,7 +98,7 @@ def get_comminsts(ast):
cparamtys = []
muparamtys = []
for param in cparams[1:]: # skip MuCtx*
for param in cparams:
pn = param["name"]
pt = param["type"]
mpt = to_mu_ty(pt)
......@@ -106,14 +107,16 @@ def get_comminsts(ast):
cparamtys.append(pt)
muparamtys.append(mpt)
mypragmas = [pw for pw in (p.split(":") for p in pragmas) if pw[0] == pn]
for pragma in mypragmas:
if pragma[1] == "array":
sz = pragma[2]
arrays[pn] = sz
sizes.add(sz)
elif pragma[1] == "optional":
optionals.add(pn)
array_sz = param.get("array_sz_param", None)
is_optional = param.get("is_optional", False)
is_out = param.get("is_out", False)
if array_sz != None:
arrays[pn] = array_sz
sizes.add(array_sz)
if is_optional:
optionals.add(pn)
muretty = to_mu_ty(cretty)
......@@ -122,7 +125,6 @@ def get_comminsts(ast):
paramnames = paramnames,
cparamtys = cparamtys,
cretty = cretty,
pragmas = pragmas,
muid = next_id,
muname = "@uvm.irbuilder." + name,
muparamtys = muparamtys,
......@@ -154,7 +156,7 @@ _mu_ty_to_internal = {
#"int<64>": "I64",
#"float": "FLOAT",
#"double": "DOUBLE",
"irnoderef": "IRNODEREF",
"irbuilderref": "IRBUILDERREF",
}
def mu_ty_to_internal(mty):
......@@ -192,13 +194,13 @@ def get_arg_meth(mty, cty, cname):
raise Exception("I don't know how to get arg: {}, {}, {}".format(mty, cty, cname))
def get_arg(ind, mty, cty, cname, is_optional):
if cty == "MuBundleNode":
meth = 'asIRNode.getOrElse(throw new UvmNullGenRefException("CommInst arg %{} must not be null")).asInstanceOf[TB]'.format(cname)
elif mty == "irnoderef":
if mty == "irbuilderref":
meth = 'asIRBuilder.getOrElse(throw new UvmNullGenRefException("CommInst arg %{} must not be null"))'.format(cname)
elif cty == "MuID" or type_is_node(cty):
if is_optional:
meth = 'asIRNodeWeak'
meth = 'asInt32.toInt.asOptionalID'
else:
meth = 'asIRNodeWeak.getOrElse(throw new UvmNullGenRefException("CommInst arg %{} must not be null"))'.format(cname)
meth = 'asInt32.toInt'
else:
meth = get_arg_meth(mty, cty, cname)
return " val {} = argList({}).{}".format(cname, ind, meth)
......@@ -270,6 +272,8 @@ _special_cases = {
"newstack": "NewStack",
"swapstack": "SwapStack",
"comminst": "CommInst",
"ir": "IR",
"irbuilderref": "IRBuilderRef",
}
def toCamelCase(name):
......@@ -304,6 +308,8 @@ def gen_comminst_impl(comminst):
loader_func = "loadIRNodeArray"
elif mty == "iref<int<64>>":
loader_func = "loadInt64Array"
elif mty == "iref<int<32>>":
loader_func = "loadInt32Array"
elif cty == "MuFlag*":
loader_func = "loadFlagArray"
else:
......@@ -325,9 +331,11 @@ def gen_comminst_impl(comminst):
else:
ir_builder_args.append(cname)
ir_builder_itself, actual_args = ir_builder_args[0], ir_builder_args[1:]
ir_builder_meth_name = toCamelCase(comminst.funcname)
lines.append(' val _rv = irBuilder.{}({})'.format(
ir_builder_meth_name, ", ".join(ir_builder_args)))
lines.append(' val _rv = {}.{}({})'.format(
ir_builder_itself, ir_builder_meth_name, ", ".join(actual_args)))
if comminst.cretty != "void":
lines.append(set_ret(0, comminst.muretty, comminst.cretty, "_rv"))
......
......@@ -67,96 +67,84 @@ object CommInsts extends SimpleNamespace[CommInst] {
// Common instructions for IR builder API here:
/// GEN:BEGIN:IRBUILDER_COMMINSTS
commInst(0x300, "@uvm.irbuilder.new_bundle")
commInst(0x301, "@uvm.irbuilder.load_bundle_from_node")
commInst(0x302, "@uvm.irbuilder.abort_bundle_node")
commInst(0x303, "@uvm.irbuilder.get_node")
commInst(0x304, "@uvm.irbuilder.get_id")
commInst(0x305, "@uvm.irbuilder.set_name")
commInst(0x306, "@uvm.irbuilder.new_type_int")
commInst(0x307, "@uvm.irbuilder.new_type_float")
commInst(0x308, "@uvm.irbuilder.new_type_double")
commInst(0x309, "@uvm.irbuilder.new_type_uptr")
commInst(0x30a, "@uvm.irbuilder.set_type_uptr")
commInst(0x30b, "@uvm.irbuilder.new_type_ufuncptr")
commInst(0x30c, "@uvm.irbuilder.set_type_ufuncptr")
commInst(0x30d, "@uvm.irbuilder.new_type_struct")
commInst(0x30e, "@uvm.irbuilder.new_type_hybrid")
commInst(0x30f, "@uvm.irbuilder.new_type_array")
commInst(0x310, "@uvm.irbuilder.new_type_vector")
commInst(0x311, "@uvm.irbuilder.new_type_void")
commInst(0x312, "@uvm.irbuilder.new_type_ref")
commInst(0x313, "@uvm.irbuilder.set_type_ref")
commInst(0x314, "@uvm.irbuilder.new_type_iref")
commInst(0x315, "@uvm.irbuilder.set_type_iref")
commInst(0x316, "@uvm.irbuilder.new_type_weakref")
commInst(0x317, "@uvm.irbuilder.set_type_weakref")
commInst(0x318, "@uvm.irbuilder.new_type_funcref")
commInst(0x319, "@uvm.irbuilder.set_type_funcref")
commInst(0x31a, "@uvm.irbuilder.new_type_tagref64")
commInst(0x31b, "@uvm.irbuilder.new_type_threadref")
commInst(0x31c, "@uvm.irbuilder.new_type_stackref")
commInst(0x31d, "@uvm.irbuilder.new_type_framecursorref")
commInst(0x31e, "@uvm.irbuilder.new_type_irnoderef")
commInst(0x31f, "@uvm.irbuilder.new_funcsig")
commInst(0x320, "@uvm.irbuilder.new_const_int")
commInst(0x321, "@uvm.irbuilder.new_const_int_ex")
commInst(0x322, "@uvm.irbuilder.new_const_float")
commInst(0x323, "@uvm.irbuilder.new_const_double")
commInst(0x324, "@uvm.irbuilder.new_const_null")
commInst(0x325, "@uvm.irbuilder.new_const_seq")
commInst(0x326, "@uvm.irbuilder.new_const_extern")
commInst(0x327, "@uvm.irbuilder.new_global_cell")
commInst(0x328, "@uvm.irbuilder.new_func")
commInst(0x329, "@uvm.irbuilder.new_func_ver")
commInst(0x32a, "@uvm.irbuilder.new_exp_func")
commInst(0x32b, "@uvm.irbuilder.new_bb")
commInst(0x32c, "@uvm.irbuilder.new_nor_param")
commInst(0x32d, "@uvm.irbuilder.new_exc_param")
commInst(0x32e, "@uvm.irbuilder.get_inst_res")
commInst(0x32f, "@uvm.irbuilder.get_num_inst_res")
commInst(0x330, "@uvm.irbuilder.add_dest")
commInst(0x331, "@uvm.irbuilder.add_keepalives")
commInst(0x332, "@uvm.irbuilder.new_binop")
commInst(0x333, "@uvm.irbuilder.new_cmp")
commInst(0x334, "@uvm.irbuilder.new_conv")
commInst(0x335, "@uvm.irbuilder.new_select")
commInst(0x336, "@uvm.irbuilder.new_branch")
commInst(0x337, "@uvm.irbuilder.new_branch2")
commInst(0x338, "@uvm.irbuilder.new_switch")
commInst(0x339, "@uvm.irbuilder.add_switch_dest")
commInst(0x33a, "@uvm.irbuilder.new_call")
commInst(0x33b, "@uvm.irbuilder.new_tailcall")
commInst(0x33c, "@uvm.irbuilder.new_ret")
commInst(0x33d, "@uvm.irbuilder.new_throw")
commInst(0x33e, "@uvm.irbuilder.new_extractvalue")
commInst(0x33f, "@uvm.irbuilder.new_insertvalue")
commInst(0x340, "@uvm.irbuilder.new_extractelement")
commInst(0x341, "@uvm.irbuilder.new_insertelement")
commInst(0x342, "@uvm.irbuilder.new_shufflevector")
commInst(0x343, "@uvm.irbuilder.new_new")
commInst(0x344, "@uvm.irbuilder.new_newhybrid")
commInst(0x345, "@uvm.irbuilder.new_alloca")
commInst(0x346, "@uvm.irbuilder.new_allocahybrid")
commInst(0x347, "@uvm.irbuilder.new_getiref")
commInst(0x348, "@uvm.irbuilder.new_getfieldiref")
commInst(0x349, "@uvm.irbuilder.new_getelemiref")
commInst(0x34a, "@uvm.irbuilder.new_shiftiref")
commInst(0x34b, "@uvm.irbuilder.new_getvarpartiref")
commInst(0x34c, "@uvm.irbuilder.new_load")
commInst(0x34d, "@uvm.irbuilder.new_store")
commInst(0x34e, "@uvm.irbuilder.new_cmpxchg")
commInst(0x34f, "@uvm.irbuilder.new_atomicrmw")
commInst(0x350, "@uvm.irbuilder.new_fence")
commInst(0x351, "@uvm.irbuilder.new_trap")
commInst(0x352, "@uvm.irbuilder.new_watchpoint")
commInst(0x353, "@uvm.irbuilder.new_wpbranch")
commInst(0x354, "@uvm.irbuilder.new_ccall")
commInst(0x355, "@uvm.irbuilder.new_newthread")
commInst(0x356, "@uvm.irbuilder.new_swapstack_ret")
commInst(0x357, "@uvm.irbuilder.new_swapstack_kill")
commInst(0x358, "@uvm.irbuilder.set_newstack_pass_values")
commInst(0x359, "@uvm.irbuilder.set_newstack_throw_exc")
commInst(0x35a, "@uvm.irbuilder.new_comminst")
commInst(0x300, "@uvm.irbuilder.load")
commInst(0x301, "@uvm.irbuilder.abort")
commInst(0x302, "@uvm.irbuilder.gen_sym")
commInst(0x303, "@uvm.irbuilder.new_type_int")
commInst(0x304, "@uvm.irbuilder.new_type_float")
commInst(0x305, "@uvm.irbuilder.new_type_double")
commInst(0x306, "@uvm.irbuilder.new_type_uptr")
commInst(0x307, "@uvm.irbuilder.new_type_ufuncptr")
commInst(0x308, "@uvm.irbuilder.new_type_struct")
commInst(0x309, "@uvm.irbuilder.new_type_hybrid")
commInst(0x30a, "@uvm.irbuilder.new_type_array")
commInst(0x30b, "@uvm.irbuilder.new_type_vector")
commInst(0x30c, "@uvm.irbuilder.new_type_void")
commInst(0x30d, "@uvm.irbuilder.new_type_ref")
commInst(0x30e, "@uvm.irbuilder.new_type_iref")
commInst(0x30f, "@uvm.irbuilder.new_type_weakref")
commInst(0x310, "@uvm.irbuilder.new_type_funcref")
commInst(0x311, "@uvm.irbuilder.new_type_tagref64")
commInst(0x312, "@uvm.irbuilder.new_type_threadref")
commInst(0x313, "@uvm.irbuilder.new_type_stackref")
commInst(0x314, "@uvm.irbuilder.new_type_framecursorref")
commInst(0x315, "@uvm.irbuilder.new_type_irbuilderref")
commInst(0x316, "@uvm.irbuilder.new_funcsig")
commInst(0x317, "@uvm.irbuilder.new_const_int")
commInst(0x318, "@uvm.irbuilder.new_const_int_ex")
commInst(0x319, "@uvm.irbuilder.new_const_float")
commInst(0x31a, "@uvm.irbuilder.new_const_double")
commInst(0x31b, "@uvm.irbuilder.new_const_null")
commInst(0x31c, "@uvm.irbuilder.new_const_seq")
commInst(0x31d, "@uvm.irbuilder.new_const_extern")
commInst(0x31e, "@uvm.irbuilder.new_global_cell")
commInst(0x31f, "@uvm.irbuilder.new_func")
commInst(0x320, "@uvm.irbuilder.new_exp_func")
commInst(0x321, "@uvm.irbuilder.new_func_ver")
commInst(0x322, "@uvm.irbuilder.new_bb")
commInst(0x323, "@uvm.irbuilder.new_dest_clause")
commInst(0x324, "@uvm.irbuilder.new_exc_clause")
commInst(0x325, "@uvm.irbuilder.new_keepalive_clause")
commInst(0x326, "@uvm.irbuilder.new_csc_ret_with")
commInst(0x327, "@uvm.irbuilder.new_csc_kill_old")
commInst(0x328, "@uvm.irbuilder.new_nsc_pass_values")
commInst(0x329, "@uvm.irbuilder.new_nsc_throw_exc")
commInst(0x32a, "@uvm.irbuilder.new_binop")
commInst(0x32b, "@uvm.irbuilder.new_cmp")
commInst(0x32c, "@uvm.irbuilder.new_conv")
commInst(0x32d, "@uvm.irbuilder.new_select")
commInst(0x32e, "@uvm.irbuilder.new_branch")
commInst(0x32f, "@uvm.irbuilder.new_branch2")
commInst(0x330, "@uvm.irbuilder.new_switch")
commInst(0x331, "@uvm.irbuilder.new_call")
commInst(0x332, "@uvm.irbuilder.new_tailcall")
commInst(0x333, "@uvm.irbuilder.new_ret")
commInst(0x334, "@uvm.irbuilder.new_throw")
commInst(0x335, "@uvm.irbuilder.new_extractvalue")
commInst(0x336, "@uvm.irbuilder.new_insertvalue")
commInst(0x337, "@uvm.irbuilder.new_extractelement")
commInst(0x338, "@uvm.irbuilder.new_insertelement")
commInst(0x339, "@uvm.irbuilder.new_shufflevector")
commInst(0x33a, "@uvm.irbuilder.new_new")
commInst(0x33b, "@uvm.irbuilder.new_newhybrid")
commInst(0x33c, "@uvm.irbuilder.new_alloca")
commInst(0x33d, "@uvm.irbuilder.new_allocahybrid")
commInst(0x33e, "@uvm.irbuilder.new_getiref")
commInst(0x33f, "@uvm.irbuilder.new_getfieldiref")
commInst(0x340, "@uvm.irbuilder.new_getelemiref")
commInst(0x341, "@uvm.irbuilder.new_shiftiref")
commInst(0x342, "@uvm.irbuilder.new_getvarpartiref")
commInst(0x343, "@uvm.irbuilder.new_load")
commInst(0x344, "@uvm.irbuilder.new_store")
commInst(0x345, "@uvm.irbuilder.new_cmpxchg")
commInst(0x346, "@uvm.irbuilder.new_atomicrmw")
commInst(0x347, "@uvm.irbuilder.new_fence")
commInst(0x348, "@uvm.irbuilder.new_trap")
commInst(0x349, "@uvm.irbuilder.new_watchpoint")
commInst(0x34a, "@uvm.irbuilder.new_wpbranch")
commInst(0x34b, "@uvm.irbuilder.new_ccall")
commInst(0x34c, "@uvm.irbuilder.new_newthread")
commInst(0x34d, "@uvm.irbuilder.new_swapstack")
commInst(0x34e, "@uvm.irbuilder.new_comminst")
/// GEN:END:IRBUILDER_COMMINSTS
}
......@@ -198,6 +198,85 @@ object TypeInferer {
case "@uvm.meta.set_trap_handler" => Seq()
/// GEN:BEGIN:IRBUILDER_RETVALS
case "@uvm.irbuilder.load" => Seq()
case "@uvm.irbuilder.abort" => Seq()
case "@uvm.irbuilder.gen_sym" => Seq(I32)
case "@uvm.irbuilder.new_type_int" => Seq()
case "@uvm.irbuilder.new_type_float" => Seq()
case "@uvm.irbuilder.new_type_double" => Seq()
case "@uvm.irbuilder.new_type_uptr" => Seq()
case "@uvm.irbuilder.new_type_ufuncptr" => Seq()
case "@uvm.irbuilder.new_type_struct" => Seq()
case "@uvm.irbuilder.new_type_hybrid" => Seq()
case "@uvm.irbuilder.new_type_array" => Seq()
case "@uvm.irbuilder.new_type_vector" => Seq()
case "@uvm.irbuilder.new_type_void" => Seq()
case "@uvm.irbuilder.new_type_ref" => Seq()
case "@uvm.irbuilder.new_type_iref" => Seq()
case "@uvm.irbuilder.new_type_weakref" => Seq()
case "@uvm.irbuilder.new_type_funcref" => Seq()
case "@uvm.irbuilder.new_type_tagref64" => Seq()
case "@uvm.irbuilder.new_type_threadref" => Seq()
case "@uvm.irbuilder.new_type_stackref" => Seq()
case "@uvm.irbuilder.new_type_framecursorref" => Seq()
case "@uvm.irbuilder.new_type_irbuilderref" => Seq()
case "@uvm.irbuilder.new_funcsig" => Seq()
case "@uvm.irbuilder.new_const_int" => Seq()
case "@uvm.irbuilder.new_const_int_ex" => Seq()
case "@uvm.irbuilder.new_const_float" => Seq()
case "@uvm.irbuilder.new_const_double" => Seq()
case "@uvm.irbuilder.new_const_null" => Seq()
case "@uvm.irbuilder.new_const_seq" => Seq()
case "@uvm.irbuilder.new_const_extern" => Seq()
case "@uvm.irbuilder.new_global_cell" => Seq()
case "@uvm.irbuilder.new_func" => Seq()
case "@uvm.irbuilder.new_exp_func" => Seq()
case "@uvm.irbuilder.new_func_ver" => Seq()
case "@uvm.irbuilder.new_bb" => Seq()
case "@uvm.irbuilder.new_dest_clause" => Seq()
case "@uvm.irbuilder.new_exc_clause" => Seq()
case "@uvm.irbuilder.new_keepalive_clause" => Seq()
case "@uvm.irbuilder.new_csc_ret_with" => Seq()
case "@uvm.irbuilder.new_csc_kill_old" => Seq()
case "@uvm.irbuilder.new_nsc_pass_values" => Seq()
case "@uvm.irbuilder.new_nsc_throw_exc" => Seq()
case "@uvm.irbuilder.new_binop" => Seq()
case "@uvm.irbuilder.new_cmp" => Seq()
case "@uvm.irbuilder.new_conv" => Seq()
case "@uvm.irbuilder.new_select" => Seq()
case "@uvm.irbuilder.new_branch" => Seq()
case "@uvm.irbuilder.new_branch2" => Seq()
case "@uvm.irbuilder.new_switch" => Seq()
case "@uvm.irbuilder.new_call" => Seq()
case "@uvm.irbuilder.new_tailcall" => Seq()
case "@uvm.irbuilder.new_ret" => Seq()
case "@uvm.irbuilder.new_throw" => Seq()
case "@uvm.irbuilder.new_extractvalue" => Seq()
case "@uvm.irbuilder.new_insertvalue" => Seq()
case "@uvm.irbuilder.new_extractelement" => Seq()
case "@uvm.irbuilder.new_insertelement" => Seq()
case "@uvm.irbuilder.new_shufflevector" => Seq()
case "@uvm.irbuilder.new_new" => Seq()
case "@uvm.irbuilder.new_newhybrid" => Seq()
case "@uvm.irbuilder.new_alloca" => Seq()
case "@uvm.irbuilder.new_allocahybrid" => Seq()
case "@uvm.irbuilder.new_getiref" => Seq()
case "@uvm.irbuilder.new_getfieldiref" => Seq()
case "@uvm.irbuilder.new_getelemiref" => Seq()
case "@uvm.irbuilder.new_shiftiref" => Seq()
case "@uvm.irbuilder.new_getvarpartiref" => Seq()
case "@uvm.irbuilder.new_load" => Seq()
case "@uvm.irbuilder.new_store" => Seq()
case "@uvm.irbuilder.new_cmpxchg" => Seq()
case "@uvm.irbuilder.new_atomicrmw" => Seq()
case "@uvm.irbuilder.new_fence" => Seq()
case "@uvm.irbuilder.new_trap" => Seq()
case "@uvm.irbuilder.new_watchpoint" => Seq()
case "@uvm.irbuilder.new_wpbranch" => Seq()
case "@uvm.irbuilder.new_ccall" => Seq()
case "@uvm.irbuilder.new_newthread" => Seq()
case "@uvm.irbuilder.new_swapstack" => Seq()
case "@uvm.irbuilder.new_comminst" => Seq()
/// GEN:END:IRBUILDER_RETVALS
}
}
......
......@@ -95,97 +95,85 @@ object InstructionResultInferer {
case "@uvm.meta.set_trap_handler" => 0
/// GEN:BEGIN:IRBUILDER_RETVAL_NUMS
case "@uvm.irbuilder.new_bundle" => 1
case "@uvm.irbuilder.load_bundle_from_node" => 0
case "@uvm.irbuilder.abort_bundle_node" => 0
case "@uvm.irbuilder.get_node" => 1
case "@uvm.irbuilder.get_id" => 1
case "@uvm.irbuilder.set_name" => 0
case "@uvm.irbuilder.new_type_int" => 1
case "@uvm.irbuilder.new_type_float" => 1
case "@uvm.irbuilder.new_type_double" => 1
case "@uvm.irbuilder.new_type_uptr" => 1
case "@uvm.irbuilder.set_type_uptr" => 0
case "@uvm.irbuilder.new_type_ufuncptr" => 1
case "@uvm.irbuilder.set_type_ufuncptr" => 0
case "@uvm.irbuilder.new_type_struct" => 1
case "@uvm.irbuilder.new_type_hybrid" => 1
case "@uvm.irbuilder.new_type_array" => 1
case "@uvm.irbuilder.new_type_vector" => 1
case "@uvm.irbuilder.new_type_void" => 1
case "@uvm.irbuilder.new_type_ref" => 1
case "@uvm.irbuilder.set_type_ref" => 0
case "@uvm.irbuilder.new_type_iref" => 1
case "@uvm.irbuilder.set_type_iref" => 0
case "@uvm.irbuilder.new_type_weakref" => 1
case "@uvm.irbuilder.set_type_weakref" => 0
case "@uvm.irbuilder.new_type_funcref" => 1
case "@uvm.irbuilder.set_type_funcref" => 0
case "@uvm.irbuilder.new_type_tagref64" => 1
case "@uvm.irbuilder.new_type_threadref" => 1
case "@uvm.irbuilder.new_type_stackref" => 1
case "@uvm.irbuilder.new_type_framecursorref" => 1
case "@uvm.irbuilder.new_type_irnoderef" => 1
case "@uvm.irbuilder.new_funcsig" => 1
case "@uvm.irbuilder.new_const_int" => 1
case "@uvm.irbuilder.new_const_int_ex" => 1
case "@uvm.irbuilder.new_const_float" => 1
case "@uvm.irbuilder.new_const_double" => 1
case "@uvm.irbuilder.new_const_null" => 1
case "@uvm.irbuilder.new_const_seq" => 1
case "@uvm.irbuilder.new_const_extern" => 1
case "@uvm.irbuilder.new_global_cell" => 1
case "@uvm.irbuilder.new_func" => 1
case "@uvm.irbuilder.new_func_ver" => 1
case "@uvm.irbuilder.new_exp_func" => 1
case "@uvm.irbuilder.new_bb" => 1
case "@uvm.irbuilder.new_nor_param" => 1
case "@uvm.irbuilder.new_exc_param" => 1
case "@uvm.irbuilder.get_inst_res" => 1
case "@uvm.irbuilder.get_num_inst_res" => 1
case "@uvm.irbuilder.add_dest" => 0
case "@uvm.irbuilder.add_keepalives" => 0
case "@uvm.irbuilder.new_binop" => 1
case "@uvm.irbuilder.new_cmp" => 1
case "@uvm.irbuilder.new_conv" => 1
case "@uvm.irbuilder.new_select" => 1
case "@uvm.irbuilder.new_branch" => 1
case "@uvm.irbuilder.new_branch2" => 1
case "@uvm.irbuilder.new_switch" => 1
case "@uvm.irbuilder.add_switch_dest" => 0
case "@uvm.irbuilder.new_call" => 1
case "@uvm.irbuilder.new_tailcall" => 1
case "@uvm.irbuilder.new_ret" => 1
case "@uvm.irbuilder.new_throw" => 1
case "@uvm.irbuilder.new_extractvalue" => 1
case "@uvm.irbuilder.new_insertvalue" => 1
case "@uvm.irbuilder.new_extractelement" => 1
case "@uvm.irbuilder.new_insertelement" => 1
case "@uvm.irbuilder.new_shufflevector" => 1
case "@uvm.irbuilder.new_new" => 1
case "@uvm.irbuilder.new_newhybrid" => 1
case "@uvm.irbuilder.new_alloca" => 1
case "@uvm.irbuilder.new_allocahybrid" => 1
case "@uvm.irbuilder.new_getiref" => 1
case "@uvm.irbuilder.new_getfieldiref" => 1
case "@uvm.irbuilder.new_getelemiref" => 1
case "@uvm.irbuilder.new_shiftiref" => 1
case "@uvm.irbuilder.new_getvarpartiref" => 1
case "@uvm.irbuilder.new_load" => 1
case "@uvm.irbuilder.new_store" => 1
case "@uvm.irbuilder.new_cmpxchg" => 1
case "@uvm.irbuilder.new_atomicrmw" => 1
case "@uvm.irbuilder.new_fence" => 1
case "@uvm.irbuilder.new_trap" => 1
case "@uvm.irbuilder.new_watchpoint" => 1
case "@uvm.irbuilder.new_wpbranch" => 1
case "@uvm.irbuilder.new_ccall" => 1
case "@uvm.irbuilder.new_newthread" => 1
case "@uvm.irbuilder.new_swapstack_ret" => 1
case "@uvm.irbuilder.new_swapstack_kill" => 1
case "@uvm.irbuilder.set_newstack_pass_values" => 0
case "@uvm.irbuilder.set_newstack_throw_exc" => 0
case "@uvm.irbuilder.new_comminst" => 1
case "@uvm.irbuilder.load" => 0
case "@uvm.irbuilder.abort" => 0
case "@uvm.irbuilder.gen_sym" => 1
case "@uvm.irbuilder.new_type_int" => 0
case "@uvm.irbuilder.new_type_float" => 0
case "@uvm.irbuilder.new_type_double" => 0
case "@uvm.irbuilder.new_type_uptr" => 0
case "@uvm.irbuilder.new_type_ufuncptr" => 0
case "@uvm.irbuilder.new_type_struct" => 0
case "@uvm.irbuilder.new_type_hybrid" => 0
case "@uvm.irbuilder.new_type_array" => 0
case "@uvm.irbuilder.new_type_vector" => 0
case "@uvm.irbuilder.new_type_void" => 0
case "@uvm.irbuilder.new_type_ref" => 0
case "@uvm.irbuilder.new_type_iref" => 0
case "@uvm.irbuilder.new_type_weakref" => 0
case "@uvm.irbuilder.new_type_funcref" => 0
case "@uvm.irbuilder.new_type_tagref64" => 0
case "@uvm.irbuilder.new_type_threadref" => 0
case "@uvm.irbuilder.new_type_stackref" => 0
case "@uvm.irbuilder.new_type_framecursorref" => 0
case "@uvm.irbuilder.new_type_irbuilderref" => 0
case "@uvm.irbuilder.new_funcsig" => 0
case "@uvm.irbuilder.new_const_int" => 0
case "@uvm.irbuilder.new_const_int_ex" => 0
case "@uvm.irbuilder.new_const_float" => 0
case "@uvm.irbuilder.new_const_double" => 0
case "@uvm.irbuilder.new_const_null" => 0
case "@uvm.irbuilder.new_const_seq" => 0
case "@uvm.irbuilder.new_const_extern" => 0
case "@uvm.irbuilder.new_global_cell" => 0
case "@uvm.irbuilder.new_func" => 0
case "@uvm.irbuilder.new_exp_func" => 0
case "@uvm.irbuilder.new_func_ver" => 0
case "@uvm.irbuilder.new_bb" => 0
case "@uvm.irbuilder.new_dest_clause" => 0
case "@uvm.irbuilder.new_exc_clause" => 0
case "@uvm.irbuilder.new_keepalive_clause" => 0
case "@uvm.irbuilder.new_csc_ret_with" => 0
case "@uvm.irbuilder.new_csc_kill_old" => 0
case "@uvm.irbuilder.new_nsc_pass_values" => 0
case "@uvm.irbuilder.new_nsc_throw_exc" => 0
case "@uvm.irbuilder.new_binop" => 0
case "@uvm.irbuilder.new_cmp" => 0
case "@uvm.irbuilder.new_conv" => 0
case "@uvm.irbuilder.new_select" => 0
case "@uvm.irbuilder.new_branch" => 0
case "@uvm.irbuilder.new_branch2" => 0
case "@uvm.irbuilder.new_switch" => 0
case "@uvm.irbuilder.new_call" => 0
case "@uvm.irbuilder.new_tailcall" => 0
case "@uvm.irbuilder.new_ret" => 0
case "@uvm.irbuilder.new_throw" => 0
case "@uvm.irbuilder.new_extractvalue" => 0
case "@uvm.irbuilder.new_insertvalue" => 0
case "@uvm.irbuilder.new_extractelement" => 0
case "@uvm.irbuilder.new_insertelement" => 0
case "@uvm.irbuilder.new_shufflevector" => 0
case "@uvm.irbuilder.new_new" => 0
case "@uvm.irbuilder.new_newhybrid" => 0
case "@uvm.irbuilder.new_alloca" => 0
case "@uvm.irbuilder.new_allocahybrid" => 0
case "@uvm.irbuilder.new_getiref" => 0
case "@uvm.irbuilder.new_getfieldiref" => 0
case "@uvm.irbuilder.new_getelemiref" => 0
case "@uvm.irbuilder.new_shiftiref" => 0
case "@uvm.irbuilder.new_getvarpartiref" => 0
case "@uvm.irbuilder.new_load" => 0
case "@uvm.irbuilder.new_store" => 0
case "@uvm.irbuilder.new_cmpxchg" => 0
case "@uvm.irbuilder.new_atomicrmw" => 0
case "@uvm.irbuilder.new_fence" => 0
case "@uvm.irbuilder.new_trap" => 0
case "@uvm.irbuilder.new_watchpoint" => 0
case "@uvm.irbuilder.new_wpbranch" => 0
case "@uvm.irbuilder.new_ccall" => 0
case "@uvm.irbuilder.new_newthread" => 0
case "@uvm.irbuilder.new_swapstack" => 0
case "@uvm.irbuilder.new_comminst" => 0
/// GEN:END:IRBUILDER_RETVAL_NUMS
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment