[llvm-commits] [Review Request][Patch]Introduce the VectorizeConfig class.

Sebastian Pop spop at codeaurora.org
Thu Apr 5 09:42:20 PDT 2012


On Thu, Apr 5, 2012 at 11:37 AM, Sebastian Pop <spop at codeaurora.org> wrote:
> Please avoid the negative field names: instead please use the positive...

Okay, here are my suggestions for the new names:

> On Thu, Apr 5, 2012 at 9:33 AM, Hongbin Zheng <etherzhhb at gmail.com> wrote:
>>  //===----------------------------------------------------------------------===//
>> +/// @brief Vectorize configuration.
>> +struct VectorizeConfig {
>> +  //===--------------------------------------------------------------------===//
>> +  // Target architecture related parameters
>> +
>> +  /// @brief The size of the native vector registers.
>> +  unsigned VectorBits;
>> +
>> +  /// @brief Don't try to vectorize integer values.
>> +  bool NoInts;
>> +

VectorizeInts

>> +  /// @brief Don't try to vectorize floating-point values.
>> +  bool NoFloats;

VectorizeFloats

>> +
>> +  /// @brief Don't try to vectorize casting (conversion) operations.
>> +  bool NoCasts;

VectorizeCasts

>> +
>> +  /// @briefDon't try to vectorize floating-point math intrinsics.
>> +  bool NoMath;

VectorizeMath

>> +
>> +  /// @brief Don't try to vectorize the fused-multiply-add intrinsic.
>> +  bool NoFMA;

VectorizeFMA

>> +
>> +  /// @brief Don't try to vectorize loads and stores.
>> +  bool NoMemOps;

VectorizeMemOps

>>       // Give a load or store half of the required depth so that load/store
>>       // pairs will vectorize.
>> -      if (!NoMemOpBoost && (isa<LoadInst>(V) || isa<StoreInst>(V)))
>> -        return ReqChainDepth/2;
>> +      if (!Config.NoMemOpBoost && (isa<LoadInst>(V) || isa<StoreInst>(V)))

if (Config.VectorizeMemOpBoost && ... )

>> +        return Config.ReqChainDepth/2;
>>
>>       return 1;
>>     }
>> @@ -431,9 +436,9 @@ namespace {
>>       case Intrinsic::exp:
>>       case Intrinsic::exp2:
>>       case Intrinsic::pow:
>> -        return !NoMath;
>> +        return !Config.NoMath;

return Config.VectorizeMath;

>>       case Intrinsic::fma:
>> -        return !NoFMA;
>> +        return !Config.NoFMA;

return Config.VectorizeFMA;

etc.

> ... that way, you would avoid the double negation here and elsewhere.
>
> Thanks,
> Sebastian
> --
> Qualcomm Innovation Center, Inc is a member of Code Aurora Forum




More information about the llvm-commits mailing list