[llvm-commits] [llvm] r171027 - in /llvm/trunk: include/llvm/Target/TargetTransformImpl.h include/llvm/TargetTransformInfo.h lib/Target/TargetTransformImpl.cpp

Hal Finkel hfinkel at anl.gov
Wed Dec 26 13:45:11 PST 2012


----- Original Message -----
> From: "Nadav Rotem" <nrotem at apple.com>
> To: llvm-commits at cs.uiuc.edu
> Sent: Monday, December 24, 2012 4:04:03 AM
> Subject: [llvm-commits] [llvm] r171027 - in /llvm/trunk: include/llvm/Target/TargetTransformImpl.h
> include/llvm/TargetTransformInfo.h lib/Target/TargetTransformImpl.cpp
> 
> Author: nadav
> Date: Mon Dec 24 04:04:03 2012
> New Revision: 171027
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=171027&view=rev
> Log:
> CostModel: We have API for checking the costs of known shuffles. This
> patch adds
> support for the insert-subvector and extract-subvector kinds.
> 
> 
> Modified:
>     llvm/trunk/include/llvm/Target/TargetTransformImpl.h
>     llvm/trunk/include/llvm/TargetTransformInfo.h
>     llvm/trunk/lib/Target/TargetTransformImpl.cpp
> 
> Modified: llvm/trunk/include/llvm/Target/TargetTransformImpl.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetTransformImpl.h?rev=171027&r1=171026&r2=171027&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetTransformImpl.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetTransformImpl.h Mon Dec 24
> 04:04:03 2012
> @@ -71,7 +71,8 @@
>  
>    virtual unsigned getArithmeticInstrCost(unsigned Opcode, Type *Ty)
>    const;
>  
> -  virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp) const;
> +  virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
> +                                  int Index) const;
>  
>    virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
>                                      Type *Src) const;
> 
> Modified: llvm/trunk/include/llvm/TargetTransformInfo.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/TargetTransformInfo.h?rev=171027&r1=171026&r2=171027&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/TargetTransformInfo.h (original)
> +++ llvm/trunk/include/llvm/TargetTransformInfo.h Mon Dec 24 04:04:03
> 2012
> @@ -158,8 +158,10 @@
>    virtual ~VectorTargetTransformInfo() {}
>  
>    enum ShuffleKind {
> -    Broadcast, // Broadcast element 0 to all other elements.
> -    Reverse    // Reverse the order of the vector.
> +    Broadcast,       // Broadcast element 0 to all other elements.
> +    Reverse,         // Reverse the order of the vector.
> +    InsertSubvector, // InsertSubvector. Index indicates start
> offset.
> +    ExtractSubvector // ExtractSubvector Index indicates start
> offset.
>    };

Are these subvector insert and extract from the indicated index to the end of the vector? Should we add a length so that we have both the starting offset and length of the subvector?

Thanks again,
Hal

>  
>    /// Returns the expected cost of arithmetic ops, such as mul, xor,
>    fsub, etc.
> @@ -168,7 +170,10 @@
>    }
>  
>    /// Returns the cost of a shuffle instruction of kind Kind and of
>    type Tp.
> -  virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp) const
> {
> +  /// The index parameter is used by some of the shuffle kinds to
> add
> +  /// additional information.
> +  virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
> +                                  int Index) const {
>      return 1;
>    }
>  
> 
> Modified: llvm/trunk/lib/Target/TargetTransformImpl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetTransformImpl.cpp?rev=171027&r1=171026&r2=171027&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/TargetTransformImpl.cpp (original)
> +++ llvm/trunk/lib/Target/TargetTransformImpl.cpp Mon Dec 24 04:04:03
> 2012
> @@ -209,7 +209,8 @@
>  }
>  
>  unsigned VectorTargetTransformImpl::getShuffleCost(ShuffleKind Kind,
> -                                                   Type *Tp) const {
> +                                                   Type *Tp,
> +                                                   int Index) const
> {
>    return 1;
>  }
>  
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list