Hi, all I found a pass at lib/Transforms/Scalar/Sink.cpp which can be used to sinking optimization. But curiously it's not enabled in opt as default and only enabled in AMDGPU backend. Does anyone know the reason? And I have an instruction sequence as following to be sinked. The MachineSink pass and Sink.cpp only handle instructions with 2 successors, how to sink such computing sequence across call?(Because there are much more available registers after call, volatile registers can be used.) ``` int g(); int foo(int m) { int t = m *3; int q = m/3; int q1 = m/31; int q2 = m/32; int q3 = m/33; g(); return t+q+q1+q2+q3; } ``` -- Zeson -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190918/2831ab11/attachment.html>