mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
[PowerPC] Use a small cleanup pass to remove VSX self copies
As explained in r204976, because of how the allocation of VSX registers interacts with the call-lowering code, we sometimes end up generating self VSX copies. Specifically, things like this: %VSL2<def> = COPY %F2, %VSL2<imp-use,kill> (where %F2 is really a sub-register of %VSL2, and so this copy is a nop) This adds a small cleanup pass to remove these prior to post-RA scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204980 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -182,6 +182,9 @@ bool PPCPassConfig::addPreRegAlloc() {
|
||||
}
|
||||
|
||||
bool PPCPassConfig::addPreSched2() {
|
||||
if (getPPCSubtarget().hasVSX())
|
||||
addPass(createPPCVSXCopyCleanupPass());
|
||||
|
||||
if (getOptLevel() != CodeGenOpt::None)
|
||||
addPass(&IfConverterID);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user