[FEATURE] Support Clang compilation
My testing indicates that compiling with Clang gives a noticeable (on the order of 10%) speed improvement - likely because it optimizes the Eigen matrix code a bit better than the VS compiler.
It probably makes sense not to switch the VS project to Clang, since it will make it harder for people to compile out-of-the-box (most people won't have Clang installed). I think it can be specified in the release build process, though.
The only issues I encountered with building the plugin with Clang were a couple of minor iPlug2 things that seem to have already been fixed - but in a later version of iPlug2 than the fork the plugin is currently using.
I am not sure why NAM is using a non-fork fork of iPlug2 :)
I think this can be closed since the repo now tracks the iPlug2 repo, where https://github.com/iPlug2/iPlug2/commit/dbdf118fc8273eba0241ffe90202e415de4968a4 is merged
I think this can be closed since the repo now tracks the iPlug2 repo, where iPlug2/iPlug2@dbdf118 is merged
That should hopefully enable clang support, but we still don't actually use it. If it has a significant performance impact (as it seems to), we should consider using it for the build.
i think this can be closed now?
@sdatkinson Can you re-open this?
I think it is worth looking into having an official clang build. Recent experiments with clang on the LV2 plugin are showing around a 30% performance improvement for standard WaveNet models:
https://github.com/mikeoliphant/neural-amp-modeler-lv2/discussions/51
PR here that gets a start on this: https://github.com/sdatkinson/NeuralAmpModelerPlugin/pull/383