mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 23:31:37 +00:00
ef9b9a7939
This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33918 91177308-0d34-0410-b5e6-96231b3b80d8
34 lines
759 B
LLVM
34 lines
759 B
LLVM
; RUN: llvm-as %s -o - | llvm-dis > %t1.ll
|
|
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
|
|
; RUN: diff %t1.ll %t2.ll
|
|
|
|
%FunTy = type i28(i28)
|
|
|
|
declare i28 @"test"(...) ; Test differences of prototype
|
|
|
|
implementation
|
|
|
|
define void @"invoke"(%FunTy *%x) {
|
|
%foo = call %FunTy* %x(i28 123)
|
|
%foo2 = tail call %FunTy* %x(i28 123)
|
|
ret void
|
|
}
|
|
|
|
define i28 @"main"(i28 %argc) ; TODO: , sbyte **argv, sbyte **envp)
|
|
begin
|
|
%retval = call i28 (i28) *@test2(i28 %argc)
|
|
%two = add i28 %retval, %retval
|
|
%retval2 = invoke i28 @test2(i28 %argc)
|
|
to label %Next unwind label %Error
|
|
Next:
|
|
%two2 = add i28 %two, %retval2
|
|
call void @invoke (%FunTy* @test2)
|
|
ret i28 %two2
|
|
Error:
|
|
ret i28 -1
|
|
end
|
|
|
|
define i28 @"test2"(i28 %i0) {
|
|
ret i28 %i0
|
|
}
|