reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/include/clang/CodeGen/SwiftCallingConv.h
   75     return Entries.empty();
tools/clang/lib/CodeGen/SwiftCallingConv.cpp
  266   if (Entries.empty() || Entries.back().End <= begin) {
  266   if (Entries.empty() || Entries.back().End <= begin) {
  267     Entries.push_back({begin, end, type});
  273   size_t index = Entries.size() - 1;
  275     if (Entries[index - 1].End <= begin) break;
  281   if (Entries[index].Begin >= end) {
  285     Entries.insert(Entries.begin() + index, {begin, end, type});
  285     Entries.insert(Entries.begin() + index, {begin, end, type});
  294   if (Entries[index].Begin == begin && Entries[index].End == end) {
  294   if (Entries[index].Begin == begin && Entries[index].End == end) {
  296     if (Entries[index].Type == type) return;
  299     if (Entries[index].Type == nullptr) {
  302       Entries[index].Type = nullptr;
  308     if (auto entryType = getCommonType(Entries[index].Type, type)) {
  309       Entries[index].Type = entryType;
  314     Entries[index].Type = nullptr;
  334   if (Entries[index].Type && Entries[index].Type->isVectorTy()) {
  334   if (Entries[index].Type && Entries[index].Type->isVectorTy()) {
  341   Entries[index].Type = nullptr;
  344   if (begin < Entries[index].Begin) {
  345     Entries[index].Begin = begin;
  346     assert(index == 0 || begin >= Entries[index - 1].End);
  351   while (end > Entries[index].End) {
  352     assert(Entries[index].Type == nullptr);
  355     if (index == Entries.size() - 1 || end <= Entries[index + 1].Begin) {
  355     if (index == Entries.size() - 1 || end <= Entries[index + 1].Begin) {
  356       Entries[index].End = end;
  361     Entries[index].End = Entries[index + 1].Begin;
  361     Entries[index].End = Entries[index + 1].Begin;
  367     if (Entries[index].Type == nullptr)
  371     if (Entries[index].Type->isVectorTy() &&
  372         end < Entries[index].End) {
  377     Entries[index].Type = nullptr;
  384   auto vecTy = cast<llvm::VectorType>(Entries[index].Type);
  385   auto split = splitLegalVectorType(CGM, Entries[index].getWidth(), vecTy);
  390   Entries.insert(Entries.begin() + index + 1, numElts - 1, StorageEntry());
  390   Entries.insert(Entries.begin() + index + 1, numElts - 1, StorageEntry());
  392   CharUnits begin = Entries[index].Begin;
  394     Entries[index].Type = eltTy;
  395     Entries[index].Begin = begin;
  396     Entries[index].End = begin + eltSize;
  452   if (Entries.empty()) {
  464   bool hasOpaqueEntries = (Entries[0].Type == nullptr);
  465   for (size_t i = 1, e = Entries.size(); i != e; ++i) {
  466     if (shouldMergeEntries(Entries[i - 1], Entries[i], chunkSize)) {
  466     if (shouldMergeEntries(Entries[i - 1], Entries[i], chunkSize)) {
  467       Entries[i - 1].Type = nullptr;
  468       Entries[i].Type = nullptr;
  469       Entries[i - 1].End = Entries[i].Begin;
  469       Entries[i - 1].End = Entries[i].Begin;
  472     } else if (Entries[i].Type == nullptr) {
  485   auto orig = std::move(Entries);
  486   assert(Entries.empty());
  491       Entries.push_back(orig[i]);
  531       Entries.push_back({unitBegin, unitEnd, entryTy});
  545   for (auto &entry : Entries) {
  556   if (Entries.empty()) {
  565   for (auto &entry : Entries) {
  594     for (auto &entry : Entries) {
  602   } else if (Entries.size() == 1) {
  603     unpaddedType = Entries[0].Type;
  613   if (Entries.empty()) return false;
  616   if (Entries.size() == 1) {
  618                                                            Entries.back().Type,
  623   componentTys.reserve(Entries.size());
  624   for (auto &entry : Entries) {