As a better alternative to D59207, run Early CSE before ARMParallelDSP. This leads to some small improvements some embedded benchmarks. I've also moved this to the IRPasses phase, along with alias analysis, because this is what we've been doing for a while downstream.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
test/CodeGen/ARM/vldm-sched-a9.ll | ||
---|---|---|
9 ↗ | (On Diff #190260) | Not having looked at that PR, or at this test case for very long, but it looks like this test is useless now? Does it needs to be modified to do and check for something useful? |
test/CodeGen/ARM/vldm-sched-a9.ll | ||
---|---|---|
9 ↗ | (On Diff #190260) | Yeah, it is useless now... there are other tests for vldm but fewer for vstm and none of them look particularly good! I'll see what I can do to produce something useful. |
I've re-written the vldm test so that at least a couple of vldmia are generated. Also added a todo because there seems to still be some inefficiencies there.
lib/Target/ARM/ARMTargetMachine.cpp | ||
---|---|---|
411 ↗ | (On Diff #190416) | Under CodeGenOpt::Aggressive, I don't see adding a cleanup pass like CSE being a problem (e.g. for compile-times). |
lib/Target/ARM/ARMTargetMachine.cpp | ||
---|---|---|
411 ↗ | (On Diff #190416) | Scoped alias appears to handle the cases where code is inlined from functions. I know that I included this passes at some point for a good reason, but I cannot remember and the tests do not reflect their requirement... so I'll remove them for now. |
This broke compilation of libcxx for armv7 mingw for me, see https://bugs.llvm.org/show_bug.cgi?id=41081 for details.