Updated hw6 to a newer version
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
parent
9224001a22
commit
0c04936ccf
356 changed files with 8408 additions and 4725 deletions
55
hw6/llprograms/sp22_hw3/full_bst.ll
Normal file
55
hw6/llprograms/sp22_hw3/full_bst.ll
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
|
||||
%Node = type { %Node*, %Node*, i64 }
|
||||
|
||||
|
||||
@n1 = global %Node { %Node* null, %Node* null, i64 1 }
|
||||
@n2 = global %Node { %Node* null, %Node* null, i64 1 }
|
||||
@n3 = global %Node { %Node* null, %Node* null, i64 1 }
|
||||
@n4 = global %Node { %Node* null, %Node* null, i64 1 }
|
||||
@n5 = global %Node { %Node* @n1, %Node* @n2, i64 1 }
|
||||
@n6 = global %Node { %Node* @n3, %Node* @n4, i64 1 }
|
||||
@root1 = global %Node { %Node* @n5, %Node* @n6, i64 1 }
|
||||
|
||||
@n5_2 = global %Node { %Node* @n1, %Node* null, i64 1 }
|
||||
@root2 = global %Node { %Node* @n5_2, %Node* @n6, i64 1 }
|
||||
|
||||
define i1 @bst_full(%Node* %n) {
|
||||
%1 = icmp eq %Node* %n, null
|
||||
br i1 %1, label %full, label %check_leaf
|
||||
|
||||
check_leaf:
|
||||
|
||||
%nlptr = getelementptr %Node, %Node* %n, i64 0, i32 0
|
||||
%nl = load %Node*, %Node** %nlptr
|
||||
%cmp1 = icmp eq %Node* %nl, null
|
||||
|
||||
%nrptr = getelementptr %Node, %Node* %n, i64 0, i32 1
|
||||
%nr = load %Node*, %Node** %nrptr
|
||||
%cmp2 = icmp eq %Node* %nr, null
|
||||
|
||||
%and = and i1 %cmp1, %cmp2
|
||||
br i1 %and, label %full, label %check_one_is_null
|
||||
|
||||
check_one_is_null:
|
||||
%xor = xor i1 %cmp1, %cmp2
|
||||
br i1 %xor, label %not_full, label %check_subtrees
|
||||
|
||||
check_subtrees:
|
||||
%left = call i1 @bst_full(%Node* %nl)
|
||||
%right = call i1 @bst_full(%Node* %nr)
|
||||
%result = and i1 %left, %right
|
||||
br i1 %result, label %full, label %not_full
|
||||
|
||||
full:
|
||||
ret i1 1
|
||||
|
||||
not_full:
|
||||
ret i1 0
|
||||
|
||||
}
|
||||
|
||||
define i64 @main(i64 %argc, i8** %argv) {
|
||||
%2 = call i1 @bst_full(%Node* @root1)
|
||||
ret i1 %2
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue