Skip to content

Commit 0af8474

Browse files
committed
Add get_functions abstraction to simplecx and getter for module in genericCx
1 parent 7c34988 commit 0af8474

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

compiler/rustc_codegen_llvm/src/context.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,16 @@ impl<'ll, CX: Borrow<SCx<'ll>>> GenericCx<'ll, CX> {
698698
llvm::LLVMMDStringInContext2(self.llcx(), name.as_ptr() as *const c_char, name.len())
699699
})
700700
}
701+
702+
pub(crate) fn get_functions(&self) -> Vec<&'ll Value> {
703+
let mut functions = vec![];
704+
let mut func = unsafe { llvm::LLVMGetFirstFunction(self.llmod()) };
705+
while let Some(f) = func {
706+
functions.push(f);
707+
func = unsafe { llvm::LLVMGetNextFunction(f) }
708+
}
709+
functions
710+
}
701711
}
702712

703713
impl<'ll, 'tcx> MiscCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {

compiler/rustc_codegen_llvm/src/type_.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ impl<'ll, CX: Borrow<SCx<'ll>>> GenericCx<'ll, CX> {
128128
(**self).borrow().llcx
129129
}
130130

131+
pub(crate) fn llmod(&self) -> &'ll llvm::Module {
132+
(**self).borrow().llmod
133+
}
134+
131135
pub(crate) fn isize_ty(&self) -> &'ll Type {
132136
(**self).borrow().isize_ty
133137
}

0 commit comments

Comments
 (0)