search for: movssrr

Displaying 3 results from an estimated 3 matches for "movssrr".

2013 Dec 05
3
[LLVMdev] X86 - Help on fixing a poor code generation bug
...tage, the MOVSS/INSERTPS is still required since the ADDSS alone would not be equivalent to the hardware 'movss' instruction. I then started investigating the possibility of adding a pass that runs at 'postRegAlloc' stage. Before RegAlloc it may not be safe to remove the redundant MOVSSrr because of the TwoAddressInstruction Pass; this may decide to commute the operands of the ADDSS/MULSS. It is possible to write a pass that scans through each basic block in a function looking for opportunities to fold instructions based on the following patterns: ////// B<def, tied1> =...
2013 Dec 05
0
[LLVMdev] X86 - Help on fixing a poor code generation bug
...ill required since the ADDSS > alone would not be equivalent to the hardware 'movss' instruction. > > I then started investigating the possibility of adding a pass that > runs at 'postRegAlloc' stage. > > Before RegAlloc it may not be safe to remove the redundant MOVSSrr > because of the TwoAddressInstruction Pass; this may decide to commute > the operands of the ADDSS/MULSS. > > It is possible to write a pass that scans through each basic block in > a function looking for opportunities to fold instructions based on the > following patterns: >...
2007 Oct 06
2
[LLVMdev] Spill Interval Generation Question
...cy in spill code interval generation. The bug shows up when there's a copy that has its source register spilled. When the coalescer comes back around to try to coalesce the copy, the merge code complains that there are no values copied from the RHS. For example: Examining copy 256%reg1330 = MOVSSrr %reg1439<kill> MOVSSrr %reg1330<d> %reg1439 %reg1439 was created when a virtual register was spilled: Spilling register 1039 for live interval %reg1039,0 = [102,2340:0) 0 at 102 adding intervals for spills for interval: %reg1039,0 = [102,2340:0) 0 at 102 +[256,257:0) added n...