[llvm-commits] atomic operator patch

Mon P Wang monping at apple.com
Fri May 2 16:03:33 PDT 2008


Hi Dan,

Adding this utility function sounds like a good idea to me.  I'll add  
it to MachineBasicBlock as
transferSuccessors.

   -- Mon Ping

On May 2, 2008, at 3:10 PM, Dan Gohman wrote:

> Hi Mon Ping,
>
> This patch looks good to me. I just have a few minor comments.
>
> In lib/Target/X86/X86ISelLowering.cpp:
>
> +  // Move all successors to thisMBB to nextMBB
> +  for(MachineBasicBlock::succ_iterator iter = thisMBB->succ_begin(),
> +      end = thisMBB->succ_end(); iter != end; ++iter) {
> +    nextMBB->addSuccessor(*iter);
> +  }
> +
> +  // Update thisMBB to fall through to newMBB
> +  while(!thisMBB->succ_empty())
> +    thisMBB->removeSuccessor(thisMBB->succ_begin());
>
> Transferring all the successors from one block to another is
> a fairly common task. Could you add a utility routine to
> MachineBasicBlock to do this?
>
> +  // newBB jumps to itself and fall through to next bb
> +  newMBB->addSuccessor(nextMBB);
>
> Typo; the comment should say newMBB.
>
> Thanks,
>
> Dan
>
> On May 2, 2008, at 11:58 AM, Mon P Wang wrote:
>
>>
>> Thanks for all the helpful comments. I have fixed and cleanup the
>> code for the atomic operator patch.  I have changed the code to use
>> cmpxchg and to loop if the value we read has been altered before the
>> write.  Please let me know if you have any further comments.
>>
>> Thanks,
>> -- Mon Ping
>>
>> <atomic_op.patch>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list