From 617f0d65b20b7b405b1acecea6f99ccd0a6d73f3 Mon Sep 17 00:00:00 2001 From: johannst Date: Thu, 5 Jan 2023 20:25:01 +0000 Subject: deploy: 802cca1963bc27f8ea4e4923029909e45464d3df --- src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html | 115 ++++++++++----------- 1 file changed, 54 insertions(+), 61 deletions(-) (limited to 'src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html') diff --git a/src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html b/src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html index ebf9b28..968856f 100644 --- a/src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html +++ b/src/llvm_kaleidoscope_rs/llvm/pass_manager.rs.html @@ -1,10 +1,4 @@ -pass_manager.rs - source -
1
+pass_manager.rs - source
1
 2
 3
 4
@@ -79,81 +73,80 @@
 73
 74
 75
-
use llvm_sys::{
-    core::{
-        LLVMCreateFunctionPassManagerForModule, LLVMDisposePassManager,
-        LLVMInitializeFunctionPassManager, LLVMRunFunctionPassManager,
+
use llvm_sys::{
+    core::{
+        LLVMCreateFunctionPassManagerForModule, LLVMDisposePassManager,
+        LLVMInitializeFunctionPassManager, LLVMRunFunctionPassManager,
     },
-    prelude::LLVMPassManagerRef,
-    transforms::{
-        instcombine::LLVMAddInstructionCombiningPass,
-        scalar::{LLVMAddCFGSimplificationPass, LLVMAddNewGVNPass, LLVMAddReassociatePass},
+    prelude::LLVMPassManagerRef,
+    transforms::{
+        instcombine::LLVMAddInstructionCombiningPass,
+        scalar::{LLVMAddCFGSimplificationPass, LLVMAddNewGVNPass, LLVMAddReassociatePass},
     },
 };
 
-use std::marker::PhantomData;
+use std::marker::PhantomData;
 
-use super::{FnValue, Module};
+use super::{FnValue, Module};
 
-/// Wrapper for a LLVM Function PassManager (legacy).
-pub struct FunctionPassManager<'llvm> {
-    fpm: LLVMPassManagerRef,
-    _ctx: PhantomData<&'llvm ()>,
+/// Wrapper for a LLVM Function PassManager (legacy).
+pub struct FunctionPassManager<'llvm> {
+    fpm: LLVMPassManagerRef,
+    _ctx: PhantomData<&'llvm ()>,
 }
 
-impl<'llvm> FunctionPassManager<'llvm> {
-    /// Create a new Function PassManager with the following optimization passes
-    /// - InstructionCombiningPass
-    /// - ReassociatePass
-    /// - NewGVNPass
-    /// - CFGSimplificationPass
-    ///
-    /// The list of selected optimization passes is taken from the tutorial chapter [LLVM
-    /// Optimization Passes](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl04.html#id3).
-    pub fn with_ctx(module: &'llvm Module) -> FunctionPassManager<'llvm> {
-        let fpm = unsafe {
-            // Borrows module reference.
-            LLVMCreateFunctionPassManagerForModule(module.module())
+impl<'llvm> FunctionPassManager<'llvm> {
+    /// Create a new Function PassManager with the following optimization passes
+    /// - InstructionCombiningPass
+    /// - ReassociatePass
+    /// - NewGVNPass
+    /// - CFGSimplificationPass
+    ///
+    /// The list of selected optimization passes is taken from the tutorial chapter [LLVM
+    /// Optimization Passes](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl04.html#id3).
+    pub fn with_ctx(module: &'llvm Module) -> FunctionPassManager<'llvm> {
+        let fpm = unsafe {
+            // Borrows module reference.
+            LLVMCreateFunctionPassManagerForModule(module.module())
         };
-        assert!(!fpm.is_null());
+        assert!(!fpm.is_null());
 
-        unsafe {
-            // Do simple "peephole" optimizations and bit-twiddling optzns.
-            LLVMAddInstructionCombiningPass(fpm);
-            // Reassociate expressions.
-            LLVMAddReassociatePass(fpm);
-            // Eliminate Common SubExpressions.
-            LLVMAddNewGVNPass(fpm);
-            // Simplify the control flow graph (deleting unreachable blocks, etc).
-            LLVMAddCFGSimplificationPass(fpm);
+        unsafe {
+            // Do simple "peephole" optimizations and bit-twiddling optzns.
+            LLVMAddInstructionCombiningPass(fpm);
+            // Reassociate expressions.
+            LLVMAddReassociatePass(fpm);
+            // Eliminate Common SubExpressions.
+            LLVMAddNewGVNPass(fpm);
+            // Simplify the control flow graph (deleting unreachable blocks, etc).
+            LLVMAddCFGSimplificationPass(fpm);
 
-            let fail = LLVMInitializeFunctionPassManager(fpm);
-            assert_eq!(fail, 0);
+            let fail = LLVMInitializeFunctionPassManager(fpm);
+            assert_eq!(fail, 0);
         }
 
-        FunctionPassManager {
-            fpm,
-            _ctx: PhantomData,
+        FunctionPassManager {
+            fpm,
+            _ctx: PhantomData,
         }
     }
 
-    /// Run the optimization passes registered with the Function PassManager on the function
-    /// referenced by `fn_value`.
-    pub fn run(&'llvm self, fn_value: FnValue<'llvm>) {
-        unsafe {
-            // Returns 1 if any of the passes modified the function, false otherwise.
-            LLVMRunFunctionPassManager(self.fpm, fn_value.value_ref());
+    /// Run the optimization passes registered with the Function PassManager on the function
+    /// referenced by `fn_value`.
+    pub fn run(&'llvm self, fn_value: FnValue<'llvm>) {
+        unsafe {
+            // Returns 1 if any of the passes modified the function, false otherwise.
+            LLVMRunFunctionPassManager(self.fpm, fn_value.value_ref());
         }
     }
 }
 
-impl Drop for FunctionPassManager<'_> {
-    fn drop(&mut self) {
-        unsafe {
-            LLVMDisposePassManager(self.fpm);
+impl Drop for FunctionPassManager<'_> {
+    fn drop(&mut self) {
+        unsafe {
+            LLVMDisposePassManager(self.fpm);
         }
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file -- cgit v1.2.3