Struct llvm_ir_analysis::CrossModuleAnalysis
source · pub struct CrossModuleAnalysis<'m> { /* private fields */ }
Expand description
Analyzes multiple Module
s, providing a ModuleAnalysis
for each; and also
provides a few additional cross-module analyses (e.g., a cross-module call
graph)
Implementations§
source§impl<'m> CrossModuleAnalysis<'m>
impl<'m> CrossModuleAnalysis<'m>
sourcepub fn new(modules: impl IntoIterator<Item = &'m Module>) -> Self
pub fn new(modules: impl IntoIterator<Item = &'m Module>) -> Self
Create a new CrossModuleAnalysis
for the given set of Module
s.
This method itself is cheap; individual analyses will be computed lazily on demand.
sourcepub fn modules<'s>(&'s self) -> impl Iterator<Item = &'m Module> + 's
pub fn modules<'s>(&'s self) -> impl Iterator<Item = &'m Module> + 's
Iterate over the analyzed Module
(s).
sourcepub fn functions<'s>(&'s self) -> impl Iterator<Item = &'m Function> + 's
pub fn functions<'s>(&'s self) -> impl Iterator<Item = &'m Function> + 's
Iterate over all the Function
s in the analyzed Module
(s).
sourcepub fn call_graph(&self) -> Ref<'_, CallGraph<'m>>
pub fn call_graph(&self) -> Ref<'_, CallGraph<'m>>
Get the full CallGraph
for the Module
(s).
This will include both cross-module and within-module calls.
sourcepub fn functions_by_type(&self) -> Ref<'_, FunctionsByType<'m>>
pub fn functions_by_type(&self) -> Ref<'_, FunctionsByType<'m>>
Get the FunctionsByType
for the Module
(s).
sourcepub fn module_analysis<'s>(&'s self, mod_name: &str) -> &'s ModuleAnalysis<'m>
pub fn module_analysis<'s>(&'s self, mod_name: &str) -> &'s ModuleAnalysis<'m>
Get the ModuleAnalysis
for the module with the given name.
Panics if no module of that name exists in the Module
(s) which the
CrossModuleAnalysis
was created with.
Auto Trait Implementations§
impl<'m> !RefUnwindSafe for CrossModuleAnalysis<'m>
impl<'m> Send for CrossModuleAnalysis<'m>
impl<'m> !Sync for CrossModuleAnalysis<'m>
impl<'m> Unpin for CrossModuleAnalysis<'m>
impl<'m> UnwindSafe for CrossModuleAnalysis<'m>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more