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();
+...