Stoorx updated this revision to Diff 515752.
Stoorx edited the summary of this revision.
Stoorx added a comment.
Fix, Rebase & retitle
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148799/new/
https://reviews.llvm.org/D148799
Files:
clang/include/clang/Basic/TargetInfo.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/AArch64.h
clang/lib/Basic/Targets/AMDGPU.h
clang/lib/Basic/Targets/ARC.h
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Targets/ARM.h
clang/lib/Basic/Targets/AVR.h
clang/lib/Basic/Targets/BPF.h
clang/lib/Basic/Targets/CSKY.h
clang/lib/Basic/Targets/DirectX.h
clang/lib/Basic/Targets/Hexagon.h
clang/lib/Basic/Targets/Lanai.h
clang/lib/Basic/Targets/Le64.h
clang/lib/Basic/Targets/LoongArch.h
clang/lib/Basic/Targets/M68k.cpp
clang/lib/Basic/Targets/M68k.h
clang/lib/Basic/Targets/MSP430.h
clang/lib/Basic/Targets/Mips.h
clang/lib/Basic/Targets/NVPTX.h
clang/lib/Basic/Targets/PNaCl.h
clang/lib/Basic/Targets/PPC.h
clang/lib/Basic/Targets/RISCV.h
clang/lib/Basic/Targets/SPIR.h
clang/lib/Basic/Targets/Sparc.h
clang/lib/Basic/Targets/SystemZ.h
clang/lib/Basic/Targets/TCE.h
clang/lib/Basic/Targets/VE.h
clang/lib/Basic/Targets/WebAssembly.h
clang/lib/Basic/Targets/X86.h
clang/lib/Basic/Targets/XCore.h
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CGStmt.cpp
Index: clang/lib/CodeGen/CGStmt.cpp
===================================================================
--- clang/lib/CodeGen/CGStmt.cpp
+++ clang/lib/CodeGen/CGStmt.cpp
@@ -2779,7 +2779,7 @@
"unwind clobber can't be used with asm goto");
// Add machine specific clobbers
- std::string MachineClobbers = getTarget().getClobbers();
+ std::string_view MachineClobbers = getTarget().getClobbers();
if (!MachineClobbers.empty()) {
if (!Constraints.empty())
Constraints += ',';
Index: clang/lib/CodeGen/CGBuiltin.cpp
===================================================================
--- clang/lib/CodeGen/CGBuiltin.cpp
+++ clang/lib/CodeGen/CGBuiltin.cpp
@@ -939,7 +939,7 @@
// Build the constraints. FIXME: We should support immediates when possible.
std::string Constraints = "={@ccc},r,r,~{cc},~{memory}";
- std::string MachineClobbers = CGF.getTarget().getClobbers();
+ std::string_view MachineClobbers = CGF.getTarget().getClobbers();
if (!MachineClobbers.empty()) {
Constraints += ',';
Constraints += MachineClobbers;
@@ -1082,7 +1082,7 @@
AsmOS << "$0, ${1:y}";
std::string Constraints = "=r,*Z,~{memory}";
- std::string MachineClobbers = CGF.getTarget().getClobbers();
+ std::string_view MachineClobbers = CGF.getTarget().getClobbers();
if (!MachineClobbers.empty()) {
Constraints += ',';
Constraints += MachineClobbers;
Index: clang/lib/Basic/Targets/XCore.h
===================================================================
--- clang/lib/Basic/Targets/XCore.h
+++ clang/lib/Basic/Targets/XCore.h
@@ -49,7 +49,7 @@
return TargetInfo::VoidPtrBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
static const char *const GCCRegNames[] = {
Index: clang/lib/Basic/Targets/X86.h
===================================================================
--- clang/lib/Basic/Targets/X86.h
+++ clang/lib/Basic/Targets/X86.h
@@ -262,7 +262,7 @@
StringRef Constraint, unsigned Size) const;
std::string convertConstraint(const char *&Constraint) const override;
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
return "~{dirflag},~{fpsr},~{flags}";
}
Index: clang/lib/Basic/Targets/WebAssembly.h
===================================================================
--- clang/lib/Basic/Targets/WebAssembly.h
+++ clang/lib/Basic/Targets/WebAssembly.h
@@ -130,7 +130,7 @@
return false;
}
- const char *getClobbers() const final { return ""; }
+ std::string_view getClobbers() const final { return ""; }
bool isCLZForZeroUndef() const final { return false; }
Index: clang/lib/Basic/Targets/VE.h
===================================================================
--- clang/lib/Basic/Targets/VE.h
+++ clang/lib/Basic/Targets/VE.h
@@ -69,7 +69,7 @@
}
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
static const char *const GCCRegNames[] = {
Index: clang/lib/Basic/Targets/TCE.h
===================================================================
--- clang/lib/Basic/Targets/TCE.h
+++ clang/lib/Basic/Targets/TCE.h
@@ -99,7 +99,7 @@
return std::nullopt;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
BuiltinVaListKind getBuiltinVaListKind() const override {
return TargetInfo::VoidPtrBuiltinVaList;
Index: clang/lib/Basic/Targets/SystemZ.h
===================================================================
--- clang/lib/Basic/Targets/SystemZ.h
+++ clang/lib/Basic/Targets/SystemZ.h
@@ -106,7 +106,7 @@
return TargetInfo::convertConstraint(Constraint);
}
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
// FIXME: Is this really right?
return "";
}
Index: clang/lib/Basic/Targets/Sparc.h
===================================================================
--- clang/lib/Basic/Targets/Sparc.h
+++ clang/lib/Basic/Targets/Sparc.h
@@ -77,7 +77,7 @@
}
return false;
}
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
// FIXME: Implement!
return "";
}
Index: clang/lib/Basic/Targets/SPIR.h
===================================================================
--- clang/lib/Basic/Targets/SPIR.h
+++ clang/lib/Basic/Targets/SPIR.h
@@ -164,7 +164,7 @@
return std::nullopt;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
return std::nullopt;
Index: clang/lib/Basic/Targets/RISCV.h
===================================================================
--- clang/lib/Basic/Targets/RISCV.h
+++ clang/lib/Basic/Targets/RISCV.h
@@ -60,7 +60,7 @@
return TargetInfo::VoidPtrBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
StringRef getConstraintRegister(StringRef Constraint,
StringRef Expression) const override {
Index: clang/lib/Basic/Targets/PPC.h
===================================================================
--- clang/lib/Basic/Targets/PPC.h
+++ clang/lib/Basic/Targets/PPC.h
@@ -330,7 +330,7 @@
return R;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
int getEHDataRegisterNumber(unsigned RegNo) const override {
if (RegNo == 0)
return 3;
Index: clang/lib/Basic/Targets/PNaCl.h
===================================================================
--- clang/lib/Basic/Targets/PNaCl.h
+++ clang/lib/Basic/Targets/PNaCl.h
@@ -69,7 +69,7 @@
return false;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
bool hasBitIntType() const override { return true; }
};
Index: clang/lib/Basic/Targets/NVPTX.h
===================================================================
--- clang/lib/Basic/Targets/NVPTX.h
+++ clang/lib/Basic/Targets/NVPTX.h
@@ -109,7 +109,7 @@
}
}
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
// FIXME: Is this really right?
return "";
}
Index: clang/lib/Basic/Targets/Mips.h
===================================================================
--- clang/lib/Basic/Targets/Mips.h
+++ clang/lib/Basic/Targets/Mips.h
@@ -278,7 +278,7 @@
return TargetInfo::convertConstraint(Constraint);
}
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
// In GCC, $1 is not widely used in generated code (it's used only in a few
// specific situations), so there is no real need for users to add it to
// the clobbers list if they want to use it in their inline assembly code.
Index: clang/lib/Basic/Targets/MSP430.h
===================================================================
--- clang/lib/Basic/Targets/MSP430.h
+++ clang/lib/Basic/Targets/MSP430.h
@@ -87,7 +87,7 @@
return false;
}
- const char *getClobbers() const override {
+ std::string_view getClobbers() const override {
// FIXME: Is this really right?
return "";
}
Index: clang/lib/Basic/Targets/M68k.h
===================================================================
--- clang/lib/Basic/Targets/M68k.h
+++ clang/lib/Basic/Targets/M68k.h
@@ -49,7 +49,7 @@
bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const override;
std::optional<std::string> handleAsmEscapedChar(char EscChar) const override;
- const char *getClobbers() const override;
+ std::string_view getClobbers() const override;
BuiltinVaListKind getBuiltinVaListKind() const override;
bool setCPU(const std::string &Name) override;
};
Index: clang/lib/Basic/Targets/M68k.cpp
===================================================================
--- clang/lib/Basic/Targets/M68k.cpp
+++ clang/lib/Basic/Targets/M68k.cpp
@@ -236,7 +236,7 @@
return std::string(1, *Constraint);
}
-const char *M68kTargetInfo::getClobbers() const {
+std::string_view M68kTargetInfo::getClobbers() const {
// FIXME: Is this really right?
return "";
}
Index: clang/lib/Basic/Targets/LoongArch.h
===================================================================
--- clang/lib/Basic/Targets/LoongArch.h
+++ clang/lib/Basic/Targets/LoongArch.h
@@ -51,7 +51,7 @@
return TargetInfo::VoidPtrBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override;
Index: clang/lib/Basic/Targets/Le64.h
===================================================================
--- clang/lib/Basic/Targets/Le64.h
+++ clang/lib/Basic/Targets/Le64.h
@@ -41,7 +41,7 @@
return TargetInfo::PNaClABIBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
return std::nullopt;
Index: clang/lib/Basic/Targets/Lanai.h
===================================================================
--- clang/lib/Basic/Targets/Lanai.h
+++ clang/lib/Basic/Targets/Lanai.h
@@ -87,7 +87,7 @@
return false;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
bool hasBitIntType() const override { return true; }
};
Index: clang/lib/Basic/Targets/Hexagon.h
===================================================================
--- clang/lib/Basic/Targets/Hexagon.h
+++ clang/lib/Basic/Targets/Hexagon.h
@@ -112,7 +112,7 @@
ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const override;
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
static const char *getHexagonCPUSuffix(StringRef Name);
Index: clang/lib/Basic/Targets/DirectX.h
===================================================================
--- clang/lib/Basic/Targets/DirectX.h
+++ clang/lib/Basic/Targets/DirectX.h
@@ -77,7 +77,7 @@
return std::nullopt;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
return std::nullopt;
Index: clang/lib/Basic/Targets/CSKY.h
===================================================================
--- clang/lib/Basic/Targets/CSKY.h
+++ clang/lib/Basic/Targets/CSKY.h
@@ -82,7 +82,7 @@
bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const override;
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const override;
Index: clang/lib/Basic/Targets/BPF.h
===================================================================
--- clang/lib/Basic/Targets/BPF.h
+++ clang/lib/Basic/Targets/BPF.h
@@ -60,7 +60,7 @@
ArrayRef<Builtin::Info> getTargetBuiltins() const override;
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
BuiltinVaListKind getBuiltinVaListKind() const override {
return TargetInfo::VoidPtrBuiltinVaList;
Index: clang/lib/Basic/Targets/AVR.h
===================================================================
--- clang/lib/Basic/Targets/AVR.h
+++ clang/lib/Basic/Targets/AVR.h
@@ -69,7 +69,7 @@
return TargetInfo::VoidPtrBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
static const char *const GCCRegNames[] = {
Index: clang/lib/Basic/Targets/ARM.h
===================================================================
--- clang/lib/Basic/Targets/ARM.h
+++ clang/lib/Basic/Targets/ARM.h
@@ -181,7 +181,7 @@
bool
validateConstraintModifier(StringRef Constraint, char Modifier, unsigned Size,
std::string &SuggestedModifier) const override;
- const char *getClobbers() const override;
+ std::string_view getClobbers() const override;
StringRef getConstraintRegister(StringRef Constraint,
StringRef Expression) const override {
Index: clang/lib/Basic/Targets/ARM.cpp
===================================================================
--- clang/lib/Basic/Targets/ARM.cpp
+++ clang/lib/Basic/Targets/ARM.cpp
@@ -1244,7 +1244,7 @@
return true;
}
-const char *ARMTargetInfo::getClobbers() const {
+std::string_view ARMTargetInfo::getClobbers() const {
// FIXME: Is this really right?
return "";
}
Index: clang/lib/Basic/Targets/ARC.h
===================================================================
--- clang/lib/Basic/Targets/ARC.h
+++ clang/lib/Basic/Targets/ARC.h
@@ -48,7 +48,7 @@
return TargetInfo::VoidPtrBuiltinVaList;
}
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override {
static const char *const GCCRegNames[] = {
Index: clang/lib/Basic/Targets/AMDGPU.h
===================================================================
--- clang/lib/Basic/Targets/AMDGPU.h
+++ clang/lib/Basic/Targets/AMDGPU.h
@@ -117,7 +117,7 @@
bool hasBFloat16Type() const override { return isAMDGCN(getTriple()); }
const char *getBFloat16Mangling() const override { return "u6__bf16"; };
- const char *getClobbers() const override { return ""; }
+ std::string_view getClobbers() const override { return ""; }
ArrayRef<const char *> getGCCRegNames() const override;
Index: clang/lib/Basic/Targets/AArch64.h
===================================================================
--- clang/lib/Basic/Targets/AArch64.h
+++ clang/lib/Basic/Targets/AArch64.h
@@ -192,7 +192,7 @@
bool
validateConstraintModifier(StringRef Constraint, char Modifier, unsigned Size,
std::string &SuggestedModifier) const override;
- const char *getClobbers() const override;
+ std::string_view getClobbers() const override;
StringRef getConstraintRegister(StringRef Constraint,
StringRef Expression) const override {
Index: clang/lib/Basic/Targets/AArch64.cpp
===================================================================
--- clang/lib/Basic/Targets/AArch64.cpp
+++ clang/lib/Basic/Targets/AArch64.cpp
@@ -1295,7 +1295,7 @@
}
}
-const char *AArch64TargetInfo::getClobbers() const { return ""; }
+std::string_view AArch64TargetInfo::getClobbers() const { return ""; }
int AArch64TargetInfo::getEHDataRegisterNumber(unsigned RegNo) const {
if (RegNo == 0)
Index: clang/include/clang/Basic/TargetInfo.h
===================================================================
--- clang/include/clang/Basic/TargetInfo.h
+++ clang/include/clang/Basic/TargetInfo.h
@@ -1178,7 +1178,7 @@
}
/// Returns a string of target-specific clobbers, in LLVM format.
- virtual const char *getClobbers() const = 0;
+ virtual std::string_view getClobbers() const = 0;
/// Returns true if NaN encoding is IEEE 754-2008.
/// Only MIPS allows a different encoding.
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits