forked from M-Labs/artiq
Ensure uwtable is added to all generated functions.
This commit is contained in:
parent
13ad9b5d08
commit
22457bc19c
|
@ -175,6 +175,7 @@ class LLVMIRGenerator:
|
||||||
def process_function(self, func):
|
def process_function(self, func):
|
||||||
try:
|
try:
|
||||||
self.llfunction = self.llmodule.get_global(func.name)
|
self.llfunction = self.llmodule.get_global(func.name)
|
||||||
|
|
||||||
if self.llfunction is None:
|
if self.llfunction is None:
|
||||||
llargtys = []
|
llargtys = []
|
||||||
for arg in func.arguments:
|
for arg in func.arguments:
|
||||||
|
@ -182,10 +183,12 @@ class LLVMIRGenerator:
|
||||||
llfunty = ll.FunctionType(args=llargtys,
|
llfunty = ll.FunctionType(args=llargtys,
|
||||||
return_type=self.llty_of_type(func.type.ret, for_return=True))
|
return_type=self.llty_of_type(func.type.ret, for_return=True))
|
||||||
self.llfunction = ll.Function(self.llmodule, llfunty, func.name)
|
self.llfunction = ll.Function(self.llmodule, llfunty, func.name)
|
||||||
self.llfunction.attributes.add('uwtable')
|
|
||||||
if func.is_internal:
|
if func.is_internal:
|
||||||
self.llfunction.linkage = 'internal'
|
self.llfunction.linkage = 'internal'
|
||||||
|
|
||||||
|
self.llfunction.attributes.add('uwtable')
|
||||||
|
|
||||||
self.llmap = {}
|
self.llmap = {}
|
||||||
self.llbuilder = ll.IRBuilder()
|
self.llbuilder = ll.IRBuilder()
|
||||||
self.fixups = []
|
self.fixups = []
|
||||||
|
|
Loading…
Reference in New Issue