llvmlite と Python を使用して llvm IR コードを生成しています。特定の 1 つのモジュール内で多くの関数のコードを生成します。問題は、これらの関数の 1 つに対してコードが生成されている間に例外が発生すると、モジュール コード生成全体が破損することです。他のアクションを実行する前に、モジュールに「ねえ、その関数を完全に忘れてください」と言って、例外から回復する方法が欲しいです。例えば:
# Create function
func = ir.Function(module, functype, funcname)
# Create the entry BB in the function and set a new builder to it.
bb_entry = func.append_basic_block('entry')
builder = ir.IRBuilder(bb_entry)
try:
# Generate code for func with the builder ...
except:
# Oops, a problem occured while generating code
# Remove func from module : How to do that ?
del module.globals[funcname] # does not work...
何か助けはありますか?