mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-12 03:32:10 +00:00
R600/SI: Don't copy flags when extracting subreg
This was resulting in use of a register after a kill. For some reason this showed up as a problem in many tests when moving the SIFixSGPRCopies pass closer to instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222175 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6a95eb021b
commit
84230f9a53
@ -1281,13 +1281,15 @@ unsigned SIInstrInfo::buildExtractSubReg(MachineBasicBlock::iterator MI,
|
||||
// value so we don't need to worry about merging its subreg index with the
|
||||
// SubIdx passed to this function. The register coalescer should be able to
|
||||
// eliminate this extra copy.
|
||||
BuildMI(*MI->getParent(), MI, MI->getDebugLoc(), get(TargetOpcode::COPY),
|
||||
NewSuperReg)
|
||||
.addOperand(SuperReg);
|
||||
MachineBasicBlock *MBB = MI->getParent();
|
||||
DebugLoc DL = MI->getDebugLoc();
|
||||
|
||||
BuildMI(*MBB, MI, DL, get(TargetOpcode::COPY), NewSuperReg)
|
||||
.addReg(SuperReg.getReg(), 0, SuperReg.getSubReg());
|
||||
|
||||
BuildMI(*MBB, MI, DL, get(TargetOpcode::COPY), SubReg)
|
||||
.addReg(NewSuperReg, 0, SubIdx);
|
||||
|
||||
BuildMI(*MI->getParent(), MI, MI->getDebugLoc(), get(TargetOpcode::COPY),
|
||||
SubReg)
|
||||
.addReg(NewSuperReg, 0, SubIdx);
|
||||
return SubReg;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user