You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove llvm-muladd pass and move it's functionality to to llvm-simdloop (#55802)
Closes#55785
I'm not sure if we want to backport this like this. Because that removes
some functionality (the pass itself). So LLVM.jl and friends might need
annoying version code. We can maybe keep the code there and just not run
the pass in a backport.
Copy file name to clipboardExpand all lines: doc/src/devdocs/llvm-passes.md
-12Lines changed: 0 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,18 +114,6 @@ This pass is used to verify Julia's invariants about LLVM IR. This includes thin
114
114
115
115
These passes are used to perform transformations on LLVM IR that LLVM will not perform itself, e.g. fast math flag propagation, escape analysis, and optimizations on Julia-specific internal functions. They use knowledge about Julia's semantics to perform these optimizations.
116
116
117
-
### CombineMulAdd
118
-
119
-
* Filename: `llvm-muladd.cpp`
120
-
* Class Name: `CombineMulAddPass`
121
-
* Opt Name: `function(CombineMulAdd)`
122
-
123
-
This pass serves to optimize the particular combination of a regular `fmul` with a fast `fadd` into a contract `fmul` with a fast `fadd`. This is later optimized by the backend to a [fused multiply-add](https://en.wikipedia.org/wiki/Multiply%E2%80%93accumulate_operation#Fused_multiply%E2%80%93add) instruction, which can provide significantly faster operations at the cost of more [unpredictable semantics](https://simonbyrne.github.io/notes/fastmath/).
124
-
125
-
!!! note
126
-
127
-
This optimization only occurs when the `fmul` has a single use, which is the fast `fadd`.
0 commit comments