Revive inline_function()
This commit is contained in:
parent
c439c2fb40
commit
78cde30883
5 changed files with 44 additions and 12 deletions
32
test/inlining.py
Normal file
32
test/inlining.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
from llvm.core import *
|
||||
import unittest
|
||||
|
||||
class TestInlining(unittest.TestCase):
|
||||
def test_inline_call(self):
|
||||
mod = Module.new(__name__)
|
||||
callee = mod.add_function(Type.function(Type.int(), [Type.int()]),
|
||||
name='bar')
|
||||
|
||||
builder = Builder.new(callee.append_basic_block('entry'))
|
||||
builder.ret(builder.add(callee.args[0], callee.args[0]))
|
||||
|
||||
caller = mod.add_function(Type.function(Type.int(), []),
|
||||
name='foo')
|
||||
|
||||
builder = Builder.new(caller.append_basic_block('entry'))
|
||||
callinst = builder.call(callee, [Constant.int(Type.int(), 1234)])
|
||||
builder.ret(callinst)
|
||||
|
||||
pre_inlining = str(caller)
|
||||
self.assertIn('call', pre_inlining)
|
||||
|
||||
self.assertTrue(inline_function(callinst))
|
||||
|
||||
post_inlining = str(caller)
|
||||
self.assertNotIn('call', post_inlining)
|
||||
self.assertIn('2468', post_inlining)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue