update target info for emscripten target
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index a5f3462..e34e290 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -318,6 +318,9 @@
// addresses.
this->TheCXXABI.set(TargetCXXABI::Emscripten);
}
+ ArrayRef<Builtin::Info> getTargetBuiltins() const override {
+ return None;
+ }
};
// @LOCALMOD-END Emscripten
@@ -6945,29 +6948,21 @@
//
// Set the natural stack alignment to 16 bytes to accomodate 128-bit aligned
// vectors.
- DescriptionString = "e-p:32:32-i64:64-v128:32:128-n32-S128";
+ DataLayoutString = "e-p:32:32-i64:64-v128:32:128-n32-S128";
}
-
- void getDefaultFeatures(llvm::StringMap<bool> &Features) const override {}
void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const override {
defineCPUMacros(Builder, "asmjs", /*Tuning=*/false);
}
- void getTargetBuiltins(const Builtin::Info *&Records,
- unsigned &NumRecords) const override {}
BuiltinVaListKind getBuiltinVaListKind() const override {
// Reuse PNaCl's va_list lowering.
return TargetInfo::PNaClABIBuiltinVaList;
}
- void getGCCRegNames(const char *const *&Names,
- unsigned &NumNames) const override {
- Names = nullptr;
- NumNames = 0;
+ ArrayRef<const char *> getGCCRegNames() const {
+ return None;
}
- void getGCCRegAliases(const GCCRegAlias *&Aliases,
- unsigned &NumAliases) const override {
- Aliases = nullptr;
- NumAliases = 0;
+ ArrayRef<TargetInfo::GCCRegAlias> getGCCRegAliases() const {
+ return None;
}
bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &Info) const override {
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
index bafb490..1c0f460 100644
--- a/lib/CodeGen/TargetInfo.cpp
+++ b/lib/CodeGen/TargetInfo.cpp
@@ -614,11 +614,9 @@
/// \brief Classify argument of given type \p Ty.
ABIArgInfo EmscriptenABIInfo::classifyArgumentType(QualType Ty) const {
if (isAggregateTypeForABI(Ty)) {
- unsigned TypeAlign = getContext().getTypeAlignInChars(Ty).getQuantity();
if (auto RAA = getRecordArgABI(Ty, getCXXABI()))
- return ABIArgInfo::getIndirect(TypeAlign,
- RAA == CGCXXABI::RAA_DirectInMemory);
- return ABIArgInfo::getIndirect(TypeAlign);
+ return getNaturalAlignIndirect(Ty, RAA == CGCXXABI::RAA_DirectInMemory);
+ return getNaturalAlignIndirect(Ty);
}
// Otherwise just do the default thing.