r258504 - Change of UserLabelPrefix default value from "_" to ""

Andrey Bokhanko via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 27 00:12:33 PST 2016


Hi James,

> I reverted this change with r258894, as it breaks (at least) sparc-rtems.

Can you send me a reproducer, please?

Right now I'm at a dead end -- no tests are broken, and no buildbots
are reported any fails. Yet you claim that my patch breaks one target
-- and there is zero info how to verify this.

> Clearly this area of the code was not sufficiently covered by the testsuite.

Not sure I understand what you mean -- it's actually covered quite
extensively in test/Preprocessor/init.c. There is a line for generic
SPARC as well:

// SPARC:#define __USER_LABEL_PREFIX__ _

and I added initialization of UserLabelPrefix to "_" in
SparcTargetInfo constructor specifically to accommodate this test.

Perhaps you might want to add tests for sparc-rterms target as well?

Yours,
Andrey


On Wed, Jan 27, 2016 at 4:10 AM, James Y Knight <jyknight at google.com> wrote:
> I reverted this change with r258894, as it breaks (at least) sparc-rtems.
> Clearly this area of the code was not sufficiently covered by the testsuite.
>
> On Fri, Jan 22, 2016 at 10:24 AM, Andrey Bokhanko via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>>
>> Author: asbokhan
>> Date: Fri Jan 22 09:24:34 2016
>> New Revision: 258504
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=258504&view=rev
>> Log:
>> Change of UserLabelPrefix default value from "_" to ""
>>
>> Differential Revision: http://reviews.llvm.org/D16295
>>
>> Modified:
>>     cfe/trunk/lib/Basic/TargetInfo.cpp
>>     cfe/trunk/lib/Basic/Targets.cpp
>>
>> Modified: cfe/trunk/lib/Basic/TargetInfo.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/TargetInfo.cpp?rev=258504&r1=258503&r2=258504&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Basic/TargetInfo.cpp (original)
>> +++ cfe/trunk/lib/Basic/TargetInfo.cpp Fri Jan 22 09:24:34 2016
>> @@ -72,7 +72,7 @@ TargetInfo::TargetInfo(const llvm::Tripl
>>    DoubleFormat = &llvm::APFloat::IEEEdouble;
>>    LongDoubleFormat = &llvm::APFloat::IEEEdouble;
>>    DataLayoutString = nullptr;
>> -  UserLabelPrefix = "_";
>> +  UserLabelPrefix = "";
>>    MCountName = "mcount";
>>    RegParmMax = 0;
>>    SSERegParmMax = 0;
>>
>> Modified: cfe/trunk/lib/Basic/Targets.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=258504&r1=258503&r2=258504&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Basic/Targets.cpp (original)
>> +++ cfe/trunk/lib/Basic/Targets.cpp Fri Jan 22 09:24:34 2016
>> @@ -102,9 +102,7 @@ protected:
>>
>>  public:
>>    CloudABITargetInfo(const llvm::Triple &Triple)
>> -      : OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -  }
>> +      : OSTargetInfo<Target>(Triple) {}
>>  };
>>
>>  static void getDarwinDefines(MacroBuilder &Builder, const LangOptions
>> &Opts,
>> @@ -242,6 +240,7 @@ public:
>>        this->TLSSupported = !Triple.isOSVersionLT(2);
>>
>>      this->MCountName = "\01mcount";
>> +    this->UserLabelPrefix = "_";
>>    }
>>
>>    std::string isValidSectionSpecifier(StringRef SR) const override {
>> @@ -284,8 +283,6 @@ protected:
>>  public:
>>    DragonFlyBSDTargetInfo(const llvm::Triple &Triple)
>>        : OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -
>>      switch (Triple.getArch()) {
>>      default:
>>      case llvm::Triple::x86:
>> @@ -327,8 +324,6 @@ protected:
>>    }
>>  public:
>>    FreeBSDTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -
>>      switch (Triple.getArch()) {
>>      default:
>>      case llvm::Triple::x86:
>> @@ -368,9 +363,7 @@ protected:
>>    }
>>  public:
>>    KFreeBSDTargetInfo(const llvm::Triple &Triple)
>> -      : OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -  }
>> +      : OSTargetInfo<Target>(Triple) {}
>>  };
>>
>>  // Minix Target
>> @@ -392,9 +385,7 @@ protected:
>>      DefineStd(Builder, "unix", Opts);
>>    }
>>  public:
>> -  MinixTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -  }
>> +  MinixTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {}
>>  };
>>
>>  // Linux target
>> @@ -467,7 +458,6 @@ protected:
>>    }
>>  public:
>>    NetBSDTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>>      this->MCountName = "_mcount";
>>    }
>>  };
>> @@ -488,7 +478,6 @@ protected:
>>    }
>>  public:
>>    OpenBSDTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>>      this->TLSSupported = false;
>>
>>        switch (Triple.getArch()) {
>> @@ -536,7 +525,6 @@ protected:
>>    }
>>  public:
>>    BitrigTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>>      this->MCountName = "__mcount";
>>    }
>>  };
>> @@ -554,9 +542,7 @@ protected:
>>      Builder.defineMacro("__ELF__");
>>    }
>>  public:
>> -  PSPTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -  }
>> +  PSPTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {}
>>  };
>>
>>  // PS3 PPU Target
>> @@ -576,7 +562,6 @@ protected:
>>    }
>>  public:
>>    PS3PPUTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>>      this->LongWidth = this->LongAlign = 32;
>>      this->PointerWidth = this->PointerAlign = 32;
>>      this->IntMaxType = TargetInfo::SignedLongLong;
>> @@ -604,7 +589,6 @@ public:
>>
>>      // On PS4, TLS variable cannot be aligned to more than 32 bytes (256
>> bits).
>>      this->MaxTLSAlign = 256;
>> -    this->UserLabelPrefix = "";
>>
>>      switch (Triple.getArch()) {
>>      default:
>> @@ -724,7 +708,6 @@ protected:
>>
>>  public:
>>    NaClTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>>      this->LongAlign = 32;
>>      this->LongWidth = 32;
>>      this->PointerAlign = 32;
>> @@ -778,7 +761,6 @@ public:
>>    explicit WebAssemblyOSTargetInfo(const llvm::Triple &Triple)
>>        : OSTargetInfo<Target>(Triple) {
>>      this->MCountName = "__mcount";
>> -    this->UserLabelPrefix = "";
>>      this->TheCXXABI.set(TargetCXXABI::WebAssembly);
>>    }
>>  };
>> @@ -816,6 +798,7 @@ public:
>>      SimdDefaultAlign = 128;
>>      LongDoubleWidth = LongDoubleAlign = 128;
>>      LongDoubleFormat = &llvm::APFloat::PPCDoubleDouble;
>> +    UserLabelPrefix = "_";
>>    }
>>
>>    /// \brief Flags for architecture specific defines.
>> @@ -1631,6 +1614,7 @@ public:
>>      NoAsmVariants = true;
>>      // Set the default GPU to sm20
>>      GPU = GK_SM20;
>> +    UserLabelPrefix = "_";
>>    }
>>    void getTargetDefines(const LangOptions &Opts,
>>                          MacroBuilder &Builder) const override {
>> @@ -3671,6 +3655,8 @@ public:
>>      // FIXME: Check that we actually have cmpxchg8b before setting
>>      // MaxAtomicInlineWidth. (cmpxchg8b is an i586 instruction.)
>>      MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
>> +
>> +    UserLabelPrefix = "_";
>>    }
>>    BuiltinVaListKind getBuiltinVaListKind() const override {
>>      return TargetInfo::CharPtrBuiltinVaList;
>> @@ -3882,7 +3868,6 @@ public:
>>      IntPtrType = SignedLong;
>>      PtrDiffType = SignedLong;
>>      ProcessIDType = SignedLong;
>> -    this->UserLabelPrefix = "";
>>      this->TLSSupported = false;
>>    }
>>    void getTargetDefines(const LangOptions &Opts,
>> @@ -3929,8 +3914,6 @@ protected:
>>
>>  public:
>>    RTEMSTargetInfo(const llvm::Triple &Triple) :
>> OSTargetInfo<Target>(Triple) {
>> -    this->UserLabelPrefix = "";
>> -
>>      switch (Triple.getArch()) {
>>      default:
>>      case llvm::Triple::x86:
>> @@ -3957,7 +3940,6 @@ public:
>>      SizeType = UnsignedLong;
>>      IntPtrType = SignedLong;
>>      PtrDiffType = SignedLong;
>> -    this->UserLabelPrefix = "";
>>    }
>>    void getTargetDefines(const LangOptions &Opts,
>>                          MacroBuilder &Builder) const override {
>> @@ -4005,6 +3987,8 @@ public:
>>      // x86-64 has atomics up to 16 bytes.
>>      MaxAtomicPromoteWidth = 128;
>>      MaxAtomicInlineWidth = 128;
>> +
>> +    UserLabelPrefix = "_";
>>    }
>>    BuiltinVaListKind getBuiltinVaListKind() const override {
>>      return TargetInfo::X86_64ABIBuiltinVaList;
>> @@ -4060,7 +4044,6 @@ public:
>>      SizeType = UnsignedLongLong;
>>      PtrDiffType = SignedLongLong;
>>      IntPtrType = SignedLongLong;
>> -    this->UserLabelPrefix = "";
>>    }
>>
>>    void getTargetDefines(const LangOptions &Opts,
>> @@ -4543,6 +4526,8 @@ public:
>>      // that follows it, `bar', `bar' will be aligned as the  type of the
>>      // zero length bitfield.
>>      UseZeroLengthBitfieldAlignment = true;
>> +
>> +    UserLabelPrefix = "_";
>>    }
>>
>>    StringRef getABI() const override { return ABI; }
>> @@ -5120,7 +5105,6 @@ public:
>>      TLSSupported = false;
>>      WCharType = UnsignedShort;
>>      SizeType = UnsignedInt;
>> -    UserLabelPrefix = "";
>>    }
>>    void getVisualStudioDefines(const LangOptions &Opts,
>>                                MacroBuilder &Builder) const {
>> @@ -5320,6 +5304,8 @@ public:
>>
>>      // AArch64 targets default to using the ARM C++ ABI.
>>      TheCXXABI.set(TargetCXXABI::GenericAArch64);
>> +
>> +    UserLabelPrefix = "_";
>>    }
>>
>>    StringRef getABI() const override { return ABI; }
>> @@ -5844,7 +5830,9 @@ class SparcTargetInfo : public TargetInf
>>    bool SoftFloat;
>>  public:
>>    SparcTargetInfo(const llvm::Triple &Triple)
>> -      : TargetInfo(Triple), SoftFloat(false) {}
>> +      : TargetInfo(Triple), SoftFloat(false) {
>> +    UserLabelPrefix = "_";
>> +  }
>>
>>    bool handleTargetFeatures(std::vector<std::string> &Features,
>>                              DiagnosticsEngine &Diags) override {
>> @@ -6145,6 +6133,7 @@ public:
>>      MinGlobalAlign = 16;
>>      DataLayoutString =
>> "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64";
>>      MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
>> +    UserLabelPrefix = "_";
>>    }
>>    void getTargetDefines(const LangOptions &Opts,
>>                          MacroBuilder &Builder) const override {
>> @@ -6304,6 +6293,7 @@ public:
>>      PtrDiffType = SignedInt;
>>      SigAtomicType = SignedLong;
>>      DataLayoutString = "e-m:e-p:16:16-i32:16:32-a:16-n8:16";
>> +    UserLabelPrefix = "_";
>>    }
>>    void getTargetDefines(const LangOptions &Opts,
>>                          MacroBuilder &Builder) const override {
>> @@ -6400,6 +6390,7 @@ public:
>>                         "-f64:32-v64:32-v128:32-a:0:32-n32";
>>      AddrSpaceMap = &TCEOpenCLAddrSpaceMap;
>>      UseAddrSpaceMapMangling = true;
>> +    UserLabelPrefix = "_";
>>    }
>>
>>    void getTargetDefines(const LangOptions &Opts,
>> @@ -6502,6 +6493,7 @@ public:
>>          IsNan2008(false), IsSingleFloat(false), FloatABI(HardFloat),
>>          DspRev(NoDSP), HasMSA(false), HasFP64(false), ABI(ABIStr) {
>>      TheCXXABI.set(TargetCXXABI::GenericMIPS);
>> +    UserLabelPrefix = "_";
>>    }
>>
>>    bool isNaN2008Default() const {
>> @@ -7078,7 +7070,6 @@ class PNaClTargetInfo : public TargetInf
>>  public:
>>    PNaClTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) {
>>      BigEndian = false;
>> -    this->UserLabelPrefix = "";
>>      this->LongAlign = 32;
>>      this->LongWidth = 32;
>>      this->PointerAlign = 32;
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>


More information about the cfe-commits mailing list