search for: commuteinstruction

Displaying 4 results from an estimated 4 matches for "commuteinstruction".

2016 Mar 25
1
[VSXFMAMutate] OldFMAReg may be wrongly rewritten
...ar 22, 2016 at 5:13 PM Eric Christopher wrote: > I think we can probably go ahead and throw this up on Phabricator for > review. I'd probably bring in Matthias for review as well. > > Thanks! > > -eric > (Follow up on the discuss in IRC) I tried to bridge PPC backend and commuteInstruction, not sure if correctly, but here I got some non-optimal results: in 12 differences, 8 of them are improvements, but 3 of them are regressions. If I implemented commuteInstruction correctly, and current two-address isn't picking up all of them, I guess my pass is still worth trying (it catches...
2016 Mar 23
0
[VSXFMAMutate] OldFMAReg may be wrongly rewritten
I think we can probably go ahead and throw this up on Phabricator for review. I'd probably bring in Matthias for review as well. Thanks! -eric On Wed, Mar 16, 2016 at 10:53 AM Tim Shen <timshen at google.com> wrote: > I implemented a proof of concept of a new generic MachineFunction SSA > pass. The code is not readable and not efficient yet, but it shows > interesting
2016 Mar 16
2
[VSXFMAMutate] OldFMAReg may be wrongly rewritten
I implemented a proof of concept of a new generic MachineFunction SSA pass. The code is not readable and not efficient yet, but it shows interesting results: In fma.ll @test_FMSUB2 (return dummy(A * B + C, A * B - D)): before: fmr 0, 1 xsmaddadp 3, 0, 2 xsmsubmdp 0, 2, 4 fmr 1, 3 fmr 2, 0 bl dummy2 after: xsmsubadp 4, 1, 2 xsmaddmdp
2013 Dec 05
3
[LLVMdev] X86 - Help on fixing a poor code generation bug
...!= Candidates.end()) { + MachineOperand &MO = I->getOperand(0); + MachineInstr *CMI = CI->second; + + if (MO.getReg() == CMI->getOperand(2).getReg()) { + DEBUG(dbgs() << "Commuting: " << *I); + MachineInstr *NewMI = TII->commuteInstruction(I,false); + assert(NewMI && "failed to commute the operands!"); + + DEBUG(dbgs() << "NewMI is: " << *NewMI); + DEBUG(dbgs() << "Removing redundant insert: " << *CMI); + CMI->eraseFromParent(); +...