[llvm-commits] [PATCH] revise/enhance atomic primitive code generation

Michael Liao michael.liao at intel.com
Mon Jul 30 16:02:05 PDT 2012


Hi,

Not sure have any one got chance to review this?

Yours
- Michael

On Thu, 2012-07-26 at 02:26 -0700, Michael Liao wrote:
> On Wed, 2012-07-25 at 15:34 -0700, Chandler Carruth wrote:
> > First off, these sound like fantastic enhancements! =] Thanks for
> > pulling them out.
> > 
> > 
> > Can you split this into separate patches and post them individually
> > for review? I think each of your bullet points would make for a good
> > patch to review.
> 
> The original patch is split into 6 pieces attached (need applying them
> in that order):
> 
> * 0001-unify-the-logic-in-SelectAtomicLoadAdd-and-SelectAto.patch
> 
> merge SelectAtomicLoadAdd & SelectAtomicLoadArith into a single
> function. atomic op table is extended to support ADD/SUB/INC/DEC.
> 
> * 0002-refine-code-generation-for-atomic-operations-with-sp.patch
> 
> revise atomic operations based on spin-loop, reduce one unnecessary load
> and clean-up/merge the functions. td fils are also cleaned up by
> eliminating unnecessary attributes for pseudo insn.
> 
> * 0003-revise-atomic-instruction-td-files.patch
> 
> rewrite most of atomic instructions in templates
> 
> * 0004-add-missing-i8-max-min-umax-umin-support.patch
> 
> add missing i8 max/min/umax/umin support
> 
> * 0005-add-missing-i64-max-min-umax-umin-on-32-bit-target.patch
> 
> add missing i64 max/min/umax/umin support on 32-bit target
> 
> * 0006-add-lock-prefix-output-support-in-assembly-printer.patch
> 
> enable assembly printer to output 'lock' prefix to simplify mnemonic in
> td files
> 
> test cases are added for the previously missing atomic operatons.
> 
> Yours
> - Michael
> 
> 
> > 
> > 
> > On Wed, Jul 25, 2012 at 3:06 PM, Michael Liao <michael.liao at intel.com>
> > wrote:
> >         - unify the logic in SelectAtomicLoadAdd and
> >         SelectAtomicLoadArith and
> >           merge them together
> >         - refine spin-loop to reduce one unnecessary load
> >         - add missing i8 max/min/umax/umin
> >         - add missing i64 max/min/umax/umin on 32-bit target
> >         - refine atomic instruction td files to use the template for
> >         groups of
> >           instructions
> >         - Output 'lock' prefix in assembler printer to simplify the
> >         assembly
> >           text in td files
> >         
> >         Please review the attached patch and commit if it's OK.
> >         
> >         Yours
> >         - Michael
> >         
> >         ---
> >         [1] http://software.intel.com/file/36945
> >         [2]
> >         http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell/
> >         
> >         _______________________________________________
> >         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