[llvm-dev] Optimization about Sink.cpp pass
Zeson Wu via llvm-dev
llvm-dev at lists.llvm.org
Wed Sep 18 03:55:30 PDT 2019
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>
More information about the llvm-dev
mailing list