[clang] 229c95a - [CodeCompletion] Signature help for aggregate initialization.

via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 4 08:39:46 PST 2022


This commit appears to add a file "tl" which I suspect wasn't intended?
--paulr

> -----Original Message-----
> From: cfe-commits <cfe-commits-bounces at lists.llvm.org> On Behalf Of Sam
> McCall via cfe-commits
> Sent: Tuesday, January 4, 2022 10:01 AM
> To: cfe-commits at lists.llvm.org
> Subject: [clang] 229c95a - [CodeCompletion] Signature help for aggregate
> initialization.
> 
> 
> Author: Sam McCall
> Date: 2022-01-04T16:00:22+01:00
> New Revision: 229c95ab661d89d29a64bff014229b7c6d3ee8a1
> 
> URL: https://urldefense.com/v3/__https://github.com/llvm/llvm-
> project/commit/229c95ab661d89d29a64bff014229b7c6d3ee8a1__;!!JmoZiZGBv3RvKR
> Sx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDXwjSN-5BvfmyXHYwZJDzsg$
> DIFF: https://urldefense.com/v3/__https://github.com/llvm/llvm-
> project/commit/229c95ab661d89d29a64bff014229b7c6d3ee8a1.diff__;!!JmoZiZGBv
> 3RvKRSx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDXwjSN-
> 5BvfmyXHY_PGieew$
> 
> LOG: [CodeCompletion] Signature help for aggregate initialization.
> 
> The "parameter list" is the list of fields which should be initialized.
> We introduce a new OverloadCandidate kind for this.
> It starts to become harder for CC consumers to handle all the cases for
> params, so I added some extra APIs on OverloadCandidate to abstract them.
> 
> Includes some basic support for designated initializers.
> The same aggregate signature is shown, the current arg jumps after the
> one you just initialized. This follows C99 semantics for mixed
> designated/positional initializers (which clang supports in C++ as an
> extension)
> and is also a useful prompt for C++ as C++ designated initializers must be
> in order.
> 
> Related bugs:
>  -
> https://urldefense.com/v3/__https://github.com/clangd/clangd/issues/965__;
> !!JmoZiZGBv3RvKRSx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDXwjSN-
> 5BvfmyXHZM2H6KjA$
>  -
> https://urldefense.com/v3/__https://github.com/clangd/clangd/issues/306__;
> !!JmoZiZGBv3RvKRSx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDXwjSN-
> 5BvfmyXHZe9W7eZQ$
> 
> Differential Revision:
> https://urldefense.com/v3/__https://reviews.llvm.org/D116326__;!!JmoZiZGBv
> 3RvKRSx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDXwjSN-
> 5BvfmyXHZMd1DaPg$
> 
> Added:
>     tl
> 
> Modified:
>     clang-tools-extra/clangd/CodeComplete.cpp
>     clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
>     clang/include/clang/Sema/CodeCompleteConsumer.h
>     clang/lib/Sema/CodeCompleteConsumer.cpp
>     clang/lib/Sema/SemaCodeComplete.cpp
>     clang/test/CodeCompletion/ctor-signature.cpp
> 
> Removed:
> 
> 
> 
> ##########################################################################
> ######
> diff  --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-
> extra/clangd/CodeComplete.cpp
> index 53d8f0d6cdeb7..50388e08c30aa 100644
> --- a/clang-tools-extra/clangd/CodeComplete.cpp
> +++ b/clang-tools-extra/clangd/CodeComplete.cpp
> @@ -896,10 +896,7 @@ struct ScoredSignature {
>  int paramIndexForArg(const CodeCompleteConsumer::OverloadCandidate
> &Candidate,
>                       int Arg) {
>    int NumParams = Candidate.getNumParams();
> -  if (const auto *F = Candidate.getFunction()) {
> -    if (F->isVariadic())
> -      ++NumParams;
> -  } else if (auto *T = Candidate.getFunctionType()) {
> +  if (auto *T = Candidate.getFunctionType()) {
>      if (auto *Proto = T->getAs<FunctionProtoType>()) {
>        if (Proto->isVariadic())
>          ++NumParams;
> @@ -996,8 +993,7 @@ class SignatureHelpCollector final : public
> CodeCompleteConsumer {
>                                      const ScoredSignature &R) {
>        // Ordering follows:
>        // - Less number of parameters is better.
> -      // - Function is better than FunctionType which is better than
> -      // Function Template.
> +      // - Aggregate > Function > FunctionType > FunctionTemplate
>        // - High score is better.
>        // - Shorter signature is better.
>        // - Alphabetically smaller is better.
> @@ -1009,18 +1005,22 @@ class SignatureHelpCollector final : public
> CodeCompleteConsumer {
>                 R.Quality.NumberOfOptionalParameters;
>        if (L.Quality.Kind != R.Quality.Kind) {
>          using OC = CodeCompleteConsumer::OverloadCandidate;
> -        switch (L.Quality.Kind) {
> -        case OC::CK_Function:
> -          return true;
> -        case OC::CK_FunctionType:
> -          return R.Quality.Kind != OC::CK_Function;
> -        case OC::CK_FunctionTemplate:
> -          return false;
> -        case OC::CK_Template:
> -          assert(false && "Never see templates and other overloads
> mixed");
> -          return false;
> -        }
> -        llvm_unreachable("Unknown overload candidate type.");
> +        auto KindPriority = [&](OC::CandidateKind K) {
> +          switch (K) {
> +          case OC::CK_Aggregate:
> +            return 1;
> +          case OC::CK_Function:
> +            return 2;
> +          case OC::CK_FunctionType:
> +            return 3;
> +          case OC::CK_FunctionTemplate:
> +            return 4;
> +          case OC::CK_Template:
> +            return 5;
> +          }
> +          llvm_unreachable("Unknown overload candidate type.");
> +        };
> +        return KindPriority(L.Quality.Kind) <
> KindPriority(R.Quality.Kind);
>        }
>        if (L.Signature.label.size() != R.Signature.label.size())
>          return L.Signature.label.size() < R.Signature.label.size();
> @@ -1171,24 +1171,9 @@ class ParamNameCollector final : public
> CodeCompleteConsumer {
>             "too many arguments");
> 
>      for (unsigned I = 0; I < NumCandidates; ++I) {
> -      OverloadCandidate Candidate = Candidates[I];
> -      NamedDecl *Param = nullptr;
> -      if (auto *Func = Candidate.getFunction()) {
> -        if (CurrentArg < Func->getNumParams())
> -          Param = Func->getParamDecl(CurrentArg);
> -      } else if (auto *Template = Candidate.getTemplate()) {
> -        if (CurrentArg < Template->getTemplateParameters()->size())
> -          Param = Template->getTemplateParameters()-
> >getParam(CurrentArg);
> -      }
> -
> -      if (!Param)
> -        continue;
> -      auto *Ident = Param->getIdentifier();
> -      if (!Ident)
> -        continue;
> -      auto Name = Ident->getName();
> -      if (!Name.empty())
> -        ParamNames.insert(Name.str());
> +      if (const NamedDecl *ND = Candidates[I].getParamDecl(CurrentArg))
> +        if (const auto *II = ND->getIdentifier())
> +          ParamNames.emplace(II->getName());
>      }
>    }
> 
> 
> diff  --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
> b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
> index 9d5c57670be1f..52dee0fdc0e21 100644
> --- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
> +++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
> @@ -1294,6 +1294,25 @@ TEST(SignatureHelpTest, Constructors) {
>    CheckBracedInit("int x(S); int i = x({^});");
>  }
> 
> +TEST(SignatureHelpTest, Aggregates) {
> +  std::string Top = R"cpp(
> +    struct S {
> +      int a, b, c, d;
> +    };
> +  )cpp";
> +  auto AggregateSig = Sig("S{[[int a]], [[int b]], [[int c]], [[int
> d]]}");
> +  EXPECT_THAT(signatures(Top + "S s{^}").signatures,
> +              UnorderedElementsAre(AggregateSig, Sig("S{}"),
> +                                   Sig("S{[[const S &]]}"),
> +                                   Sig("S{[[S &&]]}")));
> +  EXPECT_THAT(signatures(Top + "S s{1,^}").signatures,
> +              ElementsAre(AggregateSig));
> +  EXPECT_EQ(signatures(Top + "S s{1,^}").activeParameter, 1);
> +  EXPECT_THAT(signatures(Top + "S s{.c=3,^}").signatures,
> +              ElementsAre(AggregateSig));
> +  EXPECT_EQ(signatures(Top + "S s{.c=3,^}").activeParameter, 3);
> +}
> +
>  TEST(SignatureHelpTest, OverloadInitListRegression) {
>    auto Results = signatures(R"cpp(
>      struct A {int x;};
> 
> diff  --git a/clang/include/clang/Sema/CodeCompleteConsumer.h
> b/clang/include/clang/Sema/CodeCompleteConsumer.h
> index 70c34703f0a00..41c495882b27b 100644
> --- a/clang/include/clang/Sema/CodeCompleteConsumer.h
> +++ b/clang/include/clang/Sema/CodeCompleteConsumer.h
> @@ -1018,6 +1018,9 @@ class CodeCompleteConsumer {
> 
>        /// The candidate is a template, template arguments are being
> completed.
>        CK_Template,
> +
> +      /// The candidate is aggregate initialization of a record type.
> +      CK_Aggregate,
>      };
> 
>    private:
> @@ -1040,17 +1043,32 @@ class CodeCompleteConsumer {
>        /// The template overload candidate, available when
>        /// Kind == CK_Template.
>        const TemplateDecl *Template;
> +
> +      /// The class being aggregate-initialized,
> +      /// when Kind == CK_Aggregate
> +      const RecordDecl *AggregateType;
>      };
> 
>    public:
>      OverloadCandidate(FunctionDecl *Function)
> -        : Kind(CK_Function), Function(Function) {}
> +        : Kind(CK_Function), Function(Function) {
> +      assert(Function != nullptr);
> +    }
> 
>      OverloadCandidate(FunctionTemplateDecl *FunctionTemplateDecl)
> -        : Kind(CK_FunctionTemplate),
> FunctionTemplate(FunctionTemplateDecl) {}
> +        : Kind(CK_FunctionTemplate),
> FunctionTemplate(FunctionTemplateDecl) {
> +      assert(FunctionTemplateDecl != nullptr);
> +    }
> 
>      OverloadCandidate(const FunctionType *Type)
> -        : Kind(CK_FunctionType), Type(Type) {}
> +        : Kind(CK_FunctionType), Type(Type) {
> +      assert(Type != nullptr);
> +    }
> +
> +    OverloadCandidate(const RecordDecl *Aggregate)
> +        : Kind(CK_Aggregate), AggregateType(Aggregate) {
> +      assert(Aggregate != nullptr);
> +    }
> 
>      OverloadCandidate(const TemplateDecl *Template)
>          : Kind(CK_Template), Template(Template) {}
> @@ -1077,8 +1095,23 @@ class CodeCompleteConsumer {
>        return Template;
>      }
> 
> +    /// Retrieve the aggregate type being initialized.
> +    const RecordDecl *getAggregate() const {
> +      assert(getKind() == CK_Aggregate);
> +      return AggregateType;
> +    }
> +
> +    /// Get the number of parameters in this signature.
>      unsigned getNumParams() const;
> 
> +    /// Get the type of the Nth parameter.
> +    /// Returns null if the type is unknown or N is out of range.
> +    QualType getParamType(unsigned N) const;
> +
> +    /// Get the declaration of the Nth parameter.
> +    /// Returns null if the decl is unknown or N is out of range.
> +    const NamedDecl *getParamDecl(unsigned N) const;
> +
>      /// Create a new code-completion string that describes the function
>      /// signature of this overload candidate.
>      CodeCompletionString *
> 
> diff  --git a/clang/lib/Sema/CodeCompleteConsumer.cpp
> b/clang/lib/Sema/CodeCompleteConsumer.cpp
> index bb088fd5fe97f..fefe20941f179 100644
> --- a/clang/lib/Sema/CodeCompleteConsumer.cpp
> +++ b/clang/lib/Sema/CodeCompleteConsumer.cpp
> @@ -508,6 +508,7 @@
> CodeCompleteConsumer::OverloadCandidate::getFunctionType() const {
>      return Type;
> 
>    case CK_Template:
> +  case CK_Aggregate:
>      return nullptr;
>    }
> 
> @@ -517,11 +518,80 @@
> CodeCompleteConsumer::OverloadCandidate::getFunctionType() const {
>  unsigned CodeCompleteConsumer::OverloadCandidate::getNumParams() const {
>    if (Kind == CK_Template)
>      return Template->getTemplateParameters()->size();
> -  if (const auto *FPT =
> dyn_cast_or_null<FunctionProtoType>(getFunctionType()))
> -    return FPT->getNumParams();
> +
> +  if (Kind == CK_Aggregate) {
> +    unsigned Count =
> +        std::distance(AggregateType->field_begin(), AggregateType-
> >field_end());
> +    if (const auto *CRD = dyn_cast<CXXRecordDecl>(AggregateType))
> +      Count += CRD->getNumBases();
> +    return Count;
> +  }
> +
> +  if (const auto *FT = getFunctionType())
> +    if (const auto *FPT = dyn_cast<FunctionProtoType>(FT))
> +      return FPT->getNumParams();
> +
>    return 0;
>  }
> 
> +QualType
> +CodeCompleteConsumer::OverloadCandidate::getParamType(unsigned N) const {
> +  if (Kind == CK_Aggregate) {
> +    if (const auto *CRD = dyn_cast<CXXRecordDecl>(AggregateType)) {
> +      if (N < CRD->getNumBases())
> +        return std::next(CRD->bases_begin(), N)->getType();
> +      N -= CRD->getNumBases();
> +    }
> +    for (const auto *Field : AggregateType->fields())
> +      if (N-- == 0)
> +        return Field->getType();
> +    return QualType();
> +  }
> +
> +  if (Kind == CK_Template) {
> +    TemplateParameterList *TPL = getTemplate()->getTemplateParameters();
> +    if (N < TPL->size())
> +      if (const auto *D = dyn_cast<NonTypeTemplateParmDecl>(TPL-
> >getParam(N)))
> +        return D->getType();
> +    return QualType();
> +  }
> +
> +  if (const auto *FT = getFunctionType())
> +    if (const auto *FPT = dyn_cast<FunctionProtoType>(FT))
> +      if (N < FPT->getNumParams())
> +        return FPT->getParamType(N);
> +  return QualType();
> +}
> +
> +const NamedDecl *
> +CodeCompleteConsumer::OverloadCandidate::getParamDecl(unsigned N) const {
> +  if (Kind == CK_Aggregate) {
> +    if (const auto *CRD = dyn_cast<CXXRecordDecl>(AggregateType)) {
> +      if (N < CRD->getNumBases())
> +        return std::next(CRD->bases_begin(), N)->getType()-
> >getAsTagDecl();
> +      N -= CRD->getNumBases();
> +    }
> +    for (const auto *Field : AggregateType->fields())
> +      if (N-- == 0)
> +        return Field;
> +    return nullptr;
> +  }
> +
> +  if (Kind == CK_Template) {
> +    TemplateParameterList *TPL = getTemplate()->getTemplateParameters();
> +    if (N < TPL->size())
> +      return TPL->getParam(N);
> +    return nullptr;
> +  }
> +
> +  // Note that if we only have a FunctionProtoType, we don't have param
> decls.
> +  if (const auto *FD = getFunction()) {
> +    if (N < FD->param_size())
> +      return FD->getParamDecl(N);
> +  }
> +  return nullptr;
> +}
> +
>  //===--------------------------------------------------------------------
> --===//
>  // Code completion consumer implementation
>  //===--------------------------------------------------------------------
> --===//
> 
> diff  --git a/clang/lib/Sema/SemaCodeComplete.cpp
> b/clang/lib/Sema/SemaCodeComplete.cpp
> index e2bf5edc7b5e7..e089f85420bc6 100644
> --- a/clang/lib/Sema/SemaCodeComplete.cpp
> +++ b/clang/lib/Sema/SemaCodeComplete.cpp
> @@ -2817,14 +2817,18 @@ formatBlockPlaceholder(const PrintingPolicy
> &Policy, const NamedDecl *BlockDecl,
>                         Optional<ArrayRef<QualType>> ObjCSubsts = None);
> 
>  static std::string
> -FormatFunctionParameter(const PrintingPolicy &Policy, const ParmVarDecl
> *Param,
> -                        bool SuppressName = false, bool SuppressBlock =
> false,
> +FormatFunctionParameter(const PrintingPolicy &Policy,
> +                        const DeclaratorDecl *Param, bool SuppressName =
> false,
> +                        bool SuppressBlock = false,
>                          Optional<ArrayRef<QualType>> ObjCSubsts = None) {
>    // Params are unavailable in FunctionTypeLoc if the FunctionType is
> invalid.
>    // It would be better to pass in the param Type, which is usually
> available.
>    // But this case is rare, so just pretend we fell back to int as
> elsewhere.
>    if (!Param)
>      return "int";
> +  Decl::ObjCDeclQualifier ObjCQual = Decl::OBJC_TQ_None;
> +  if (const auto *PVD = dyn_cast<ParmVarDecl>(Param))
> +    ObjCQual = PVD->getObjCDeclQualifier();
>    bool ObjCMethodParam = isa<ObjCMethodDecl>(Param->getDeclContext());
>    if (Param->getType()->isDependentType() ||
>        !Param->getType()->isBlockPointerType()) {
> @@ -2840,8 +2844,7 @@ FormatFunctionParameter(const PrintingPolicy
> &Policy, const ParmVarDecl *Param,
>        Type = Type.substObjCTypeArgs(Param->getASTContext(), *ObjCSubsts,
>                                      ObjCSubstitutionContext::Parameter);
>      if (ObjCMethodParam) {
> -      Result =
> -          "(" + formatObjCParamQualifiers(Param->getObjCDeclQualifier(),
> Type);
> +      Result = "(" + formatObjCParamQualifiers(ObjCQual, Type);
>        Result += Type.getAsString(Policy) + ")";
>        if (Param->getIdentifier() && !SuppressName)
>          Result += Param->getIdentifier()->getName();
> @@ -2878,8 +2881,7 @@ FormatFunctionParameter(const PrintingPolicy
> &Policy, const ParmVarDecl *Param,
> 
>      if (ObjCMethodParam) {
>        Result = Type.getAsString(Policy);
> -      std::string Quals =
> -          formatObjCParamQualifiers(Param->getObjCDeclQualifier(), Type);
> +      std::string Quals = formatObjCParamQualifiers(ObjCQual, Type);
>        if (!Quals.empty())
>          Result = "(" + Quals + " " + Result + ")";
>        if (Result.back() != ')')
> @@ -3689,6 +3691,31 @@ const RawComment *clang::getParameterComment(
>    return nullptr;
>  }
> 
> +static void AddOverloadAggregateChunks(const RecordDecl *RD,
> +                                       const PrintingPolicy &Policy,
> +                                       CodeCompletionBuilder &Result,
> +                                       unsigned CurrentArg) {
> +  unsigned ChunkIndex = 0;
> +  auto AddChunk = [&](llvm::StringRef Placeholder) {
> +    if (ChunkIndex > 0)
> +      Result.AddChunk(CodeCompletionString::CK_Comma);
> +    const char *Copy = Result.getAllocator().CopyString(Placeholder);
> +    if (ChunkIndex == CurrentArg)
> +      Result.AddCurrentParameterChunk(Copy);
> +    else
> +      Result.AddPlaceholderChunk(Copy);
> +    ++ChunkIndex;
> +  };
> +  // Aggregate initialization has all bases followed by all fields.
> +  // (Bases are not legal in C++11 but in that case we never get here).
> +  if (auto *CRD = llvm::dyn_cast<CXXRecordDecl>(RD)) {
> +    for (const auto &Base : CRD->bases())
> +      AddChunk(Base.getType().getAsString(Policy));
> +  }
> +  for (const auto &Field : RD->fields())
> +    AddChunk(FormatFunctionParameter(Policy, Field));
> +}
> +
>  /// Add function overload parameter chunks to the given code completion
>  /// string.
>  static void AddOverloadParameterChunks(ASTContext &Context,
> @@ -3698,6 +3725,11 @@ static void AddOverloadParameterChunks(ASTContext
> &Context,
>                                         CodeCompletionBuilder &Result,
>                                         unsigned CurrentArg, unsigned
> Start = 0,
>                                         bool InOptional = false) {
> +  if (!Function && !Prototype) {
> +    Result.AddChunk(CodeCompletionString::CK_CurrentParameter, "...");
> +    return;
> +  }
> +
>    bool FirstParameter = true;
>    unsigned NumParams =
>        Function ? Function->getNumParams() : Prototype->getNumParams();
> @@ -3851,22 +3883,13 @@
> CodeCompleteConsumer::OverloadCandidate::CreateSignatureString(
> 
>    FunctionDecl *FDecl = getFunction();
>    const FunctionProtoType *Proto =
> -      dyn_cast<FunctionProtoType>(getFunctionType());
> -  if (!FDecl && !Proto) {
> -    // Function without a prototype. Just give the return type and a
> -    // highlighted ellipsis.
> -    const FunctionType *FT = getFunctionType();
> -    Result.AddResultTypeChunk(Result.getAllocator().CopyString(
> -        FT->getReturnType().getAsString(Policy)));
> -    Result.AddChunk(Braced ? CodeCompletionString::CK_LeftBrace
> -                           : CodeCompletionString::CK_LeftParen);
> -    Result.AddChunk(CodeCompletionString::CK_CurrentParameter, "...");
> -    Result.AddChunk(Braced ? CodeCompletionString::CK_RightBrace
> -                           : CodeCompletionString::CK_RightParen);
> -    return Result.TakeString();
> -  }
> +      dyn_cast_or_null<FunctionProtoType>(getFunctionType());
> 
> -  if (FDecl) {
> +  // First, the name/type of the callee.
> +  if (getKind() == CK_Aggregate) {
> +    Result.AddTextChunk(
> +        Result.getAllocator().CopyString(getAggregate()->getName()));
> +  } else if (FDecl) {
>      if (IncludeBriefComments) {
>        if (auto RC = getParameterComment(S.getASTContext(), *this,
> CurrentArg))
>          Result.addBriefComment(RC->getBriefText(S.getASTContext()));
> @@ -3878,14 +3901,19 @@
> CodeCompleteConsumer::OverloadCandidate::CreateSignatureString(
>      FDecl->getDeclName().print(OS, Policy);
>      Result.AddTextChunk(Result.getAllocator().CopyString(OS.str()));
>    } else {
> +    // Function without a declaration. Just give the return type.
>      Result.AddResultTypeChunk(Result.getAllocator().CopyString(
> -        Proto->getReturnType().getAsString(Policy)));
> +        getFunctionType()->getReturnType().getAsString(Policy)));
>    }
> 
> +  // Next, the brackets and parameters.
>    Result.AddChunk(Braced ? CodeCompletionString::CK_LeftBrace
>                           : CodeCompletionString::CK_LeftParen);
> -  AddOverloadParameterChunks(S.getASTContext(), Policy, FDecl, Proto,
> Result,
> -                             CurrentArg);
> +  if (getKind() == CK_Aggregate)
> +    AddOverloadAggregateChunks(getAggregate(), Policy, Result,
> CurrentArg);
> +  else
> +    AddOverloadParameterChunks(S.getASTContext(), Policy, FDecl, Proto,
> Result,
> +                               CurrentArg);
>    Result.AddChunk(Braced ? CodeCompletionString::CK_RightBrace
>                           : CodeCompletionString::CK_RightParen);
> 
> @@ -5926,18 +5954,18 @@ static QualType getParamType(Sema &SemaRef,
>    // overload candidates.
>    QualType ParamType;
>    for (auto &Candidate : Candidates) {
> -    // FIXME: handle non-type-template-parameters by merging with D116326
> -    if (const auto *FType = Candidate.getFunctionType())
> -      if (const auto *Proto = dyn_cast<FunctionProtoType>(FType))
> -        if (N < Proto->getNumParams()) {
> -          if (ParamType.isNull())
> -            ParamType = Proto->getParamType(N);
> -          else if (!SemaRef.Context.hasSameUnqualifiedType(
> -                       ParamType.getNonReferenceType(),
> -                       Proto->getParamType(N).getNonReferenceType()))
> -            // Otherwise return a default-constructed QualType.
> -            return QualType();
> -        }
> +    QualType CandidateParamType = Candidate.getParamType(N);
> +    if (CandidateParamType.isNull())
> +      continue;
> +    if (ParamType.isNull()) {
> +      ParamType = CandidateParamType;
> +      continue;
> +    }
> +    if (!SemaRef.Context.hasSameUnqualifiedType(
> +            ParamType.getNonReferenceType(),
> +            CandidateParamType.getNonReferenceType()))
> +      // Two conflicting types, give up.
> +      return QualType();
>    }
> 
>    return ParamType;
> @@ -6058,6 +6086,73 @@ QualType Sema::ProduceCallSignatureHelp(Expr *Fn,
> ArrayRef<Expr *> Args,
>    return !CandidateSet.empty() ? ParamType : QualType();
>  }
> 
> +// Determine which param to continue aggregate initialization from after
> +// a designated initializer.
> +//
> +// Given struct S { int a,b,c,d,e; }:
> +//   after `S{.b=1,`       we want to suggest c to continue
> +//   after `S{.b=1, 2,`    we continue with d (this is legal C and ext in
> C++)
> +//   after `S{.b=1, .a=2,` we continue with b (this is legal C and ext in
> C++)
> +//
> +// Possible outcomes:
> +//   - we saw a designator for a field, and continue from the returned
> index.
> +//     Only aggregate initialization is allowed.
> +//   - we saw a designator, but it was complex or we couldn't find the
> field.
> +//     Only aggregate initialization is possible, but we can't assist
> with it.
> +//     Returns an out-of-range index.
> +//   - we saw no designators, just positional arguments.
> +//     Returns None.
> +static llvm::Optional<unsigned>
> +getNextAggregateIndexAfterDesignatedInit(const ResultCandidate
> &Aggregate,
> +                                         ArrayRef<Expr *> Args) {
> +  static constexpr unsigned Invalid =
> std::numeric_limits<unsigned>::max();
> +  assert(Aggregate.getKind() == ResultCandidate::CK_Aggregate);
> +
> +  // Look for designated initializers.
> +  // They're in their syntactic form, not yet resolved to fields.
> +  IdentifierInfo *DesignatedFieldName = nullptr;
> +  unsigned ArgsAfterDesignator = 0;
> +  for (const Expr *Arg : Args) {
> +    if (const auto *DIE = dyn_cast<DesignatedInitExpr>(Arg)) {
> +      if (DIE->size() == 1 && DIE->getDesignator(0)->isFieldDesignator())
> {
> +        DesignatedFieldName = DIE->getDesignator(0)->getFieldName();
> +        ArgsAfterDesignator = 0;
> +      } else {
> +        return Invalid; // Complicated designator.
> +      }
> +    } else if (isa<DesignatedInitUpdateExpr>(Arg)) {
> +      return Invalid; // Unsupported.
> +    } else {
> +      ++ArgsAfterDesignator;
> +    }
> +  }
> +  if (!DesignatedFieldName)
> +    return llvm::None;
> +
> +  // Find the index within the class's fields.
> +  // (Probing getParamDecl() directly would be quadratic in number of
> fields).
> +  unsigned DesignatedIndex = 0;
> +  const FieldDecl *DesignatedField = nullptr;
> +  for (const auto *Field : Aggregate.getAggregate()->fields()) {
> +    if (Field->getIdentifier() == DesignatedFieldName) {
> +      DesignatedField = Field;
> +      break;
> +    }
> +    ++DesignatedIndex;
> +  }
> +  if (!DesignatedField)
> +    return Invalid; // Designator referred to a missing field, give up.
> +
> +  // Find the index within the aggregate (which may have leading bases).
> +  unsigned AggregateSize = Aggregate.getNumParams();
> +  while (DesignatedIndex < AggregateSize &&
> +         Aggregate.getParamDecl(DesignatedIndex) != DesignatedField)
> +    ++DesignatedIndex;
> +
> +  // Continue from the index after the last named field.
> +  return DesignatedIndex + ArgsAfterDesignator + 1;
> +}
> +
>  QualType Sema::ProduceConstructorSignatureHelp(QualType Type,
>                                                 SourceLocation Loc,
>                                                 ArrayRef<Expr *> Args,
> @@ -6065,48 +6160,72 @@ QualType
> Sema::ProduceConstructorSignatureHelp(QualType Type,
>                                                 bool Braced) {
>    if (!CodeCompleter)
>      return QualType();
> +  SmallVector<ResultCandidate, 8> Results;
> 
>    // A complete type is needed to lookup for constructors.
> -  CXXRecordDecl *RD =
> -      isCompleteType(Loc, Type) ? Type->getAsCXXRecordDecl() : nullptr;
> +  RecordDecl *RD =
> +      isCompleteType(Loc, Type) ? Type->getAsRecordDecl() : nullptr;
>    if (!RD)
>      return Type;
> -  // FIXME: we don't support signature help for aggregate initialization,
> so
> -  //        don't offer a confusing partial list (e.g. the copy
> constructor).
> -  if (Braced && RD->isAggregate())
> -    return Type;
> +  CXXRecordDecl *CRD = dyn_cast<CXXRecordDecl>(RD);
> +
> +  // Consider aggregate initialization.
> +  // We don't check that types so far are correct.
> +  // We also don't handle C99/C++17 brace-elision, we assume init-list
> elements
> +  // are 1:1 with fields.
> +  // FIXME: it would be nice to support "unwrapping" aggregates that
> contain
> +  // a single subaggregate, like std::array<T, N> -> T __elements[N].
> +  if (Braced && !RD->isUnion() &&
> +      (!LangOpts.CPlusPlus || (CRD && CRD->isAggregate()))) {
> +    ResultCandidate AggregateSig(RD);
> +    unsigned AggregateSize = AggregateSig.getNumParams();
> +
> +    if (auto NextIndex =
> +            getNextAggregateIndexAfterDesignatedInit(AggregateSig, Args))
> {
> +      // A designator was used, only aggregate init is possible.
> +      if (*NextIndex >= AggregateSize)
> +        return Type;
> +      Results.push_back(AggregateSig);
> +      return ProduceSignatureHelp(*this, Results, *NextIndex, OpenParLoc,
> +                                  Braced);
> +    }
> +
> +    // Describe aggregate initialization, but also constructors below.
> +    if (Args.size() < AggregateSize)
> +      Results.push_back(AggregateSig);
> +  }
> 
>    // FIXME: Provide support for member initializers.
>    // FIXME: Provide support for variadic template constructors.
> 
> -  OverloadCandidateSet CandidateSet(Loc,
> OverloadCandidateSet::CSK_Normal);
> -
> -  for (NamedDecl *C : LookupConstructors(RD)) {
> -    if (auto *FD = dyn_cast<FunctionDecl>(C)) {
> -      // FIXME: we can't yet provide correct signature help for
> initializer
> -      //        list constructors, so skip them entirely.
> -      if (Braced && LangOpts.CPlusPlus && isInitListConstructor(FD))
> -        continue;
> -      AddOverloadCandidate(FD, DeclAccessPair::make(FD, C->getAccess()),
> Args,
> -                           CandidateSet,
> -                           /*SuppressUserConversions=*/false,
> -                           /*PartialOverloading=*/true,
> -                           /*AllowExplicit*/ true);
> -    } else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(C)) {
> -      if (Braced && LangOpts.CPlusPlus &&
> -          isInitListConstructor(FTD->getTemplatedDecl()))
> -        continue;
> +  if (CRD) {
> +    OverloadCandidateSet CandidateSet(Loc,
> OverloadCandidateSet::CSK_Normal);
> +    for (NamedDecl *C : LookupConstructors(CRD)) {
> +      if (auto *FD = dyn_cast<FunctionDecl>(C)) {
> +        // FIXME: we can't yet provide correct signature help for
> initializer
> +        //        list constructors, so skip them entirely.
> +        if (Braced && LangOpts.CPlusPlus && isInitListConstructor(FD))
> +          continue;
> +        AddOverloadCandidate(FD, DeclAccessPair::make(FD, C-
> >getAccess()), Args,
> +                             CandidateSet,
> +                             /*SuppressUserConversions=*/false,
> +                             /*PartialOverloading=*/true,
> +                             /*AllowExplicit*/ true);
> +      } else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(C)) {
> +        if (Braced && LangOpts.CPlusPlus &&
> +            isInitListConstructor(FTD->getTemplatedDecl()))
> +          continue;
> 
> -      AddTemplateOverloadCandidate(
> -          FTD, DeclAccessPair::make(FTD, C->getAccess()),
> -          /*ExplicitTemplateArgs=*/nullptr, Args, CandidateSet,
> -          /*SuppressUserConversions=*/false,
> -          /*PartialOverloading=*/true);
> +        AddTemplateOverloadCandidate(
> +            FTD, DeclAccessPair::make(FTD, C->getAccess()),
> +            /*ExplicitTemplateArgs=*/nullptr, Args, CandidateSet,
> +            /*SuppressUserConversions=*/false,
> +            /*PartialOverloading=*/true);
> +      }
>      }
> +    mergeCandidatesWithResults(*this, Results, CandidateSet, Loc,
> Args.size());
>    }
> 
> -  SmallVector<ResultCandidate, 8> Results;
> -  mergeCandidatesWithResults(*this, Results, CandidateSet, Loc,
> Args.size());
>    return ProduceSignatureHelp(*this, Results, Args.size(), OpenParLoc,
> Braced);
>  }
> 
> 
> diff  --git a/clang/test/CodeCompletion/ctor-signature.cpp
> b/clang/test/CodeCompletion/ctor-signature.cpp
> index b02c8811bbcf0..8f0cfacfc1155 100644
> --- a/clang/test/CodeCompletion/ctor-signature.cpp
> +++ b/clang/test/CodeCompletion/ctor-signature.cpp
> @@ -42,13 +42,29 @@ int b3 = consumeBar({});
>  // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:41:22 %s |
> FileCheck -check-prefix=CHECK-BRACED %s
> 
>  struct Aggregate {
> -  // FIXME: no support for aggregates yet.
> -  // CHECK-AGGREGATE-NOT: OVERLOAD: Aggregate{<#const Aggregate &#>}
> -  // CHECK-AGGREGATE-NOT: OVERLOAD: {{.*}}first
>    int first;
>    int second;
> +  int third;
>  };
> 
> -Aggregate a{};
> -// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:52:13 %s |
> FileCheck -check-prefix=CHECK-AGGREGATE %s
> +Aggregate a{1, 2, 3};
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:50:13 %s |
> FileCheck -check-prefix=CHECK-AGGREGATE-1 %s
> +// CHECK-AGGREGATE-1: OVERLOAD: Aggregate{<#int first#>, int second, int
> third}
> +// CHECK-AGGREGATE-1: OVERLOAD: Aggregate{<#const Aggregate &#>}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:50:16 %s |
> FileCheck -check-prefix=CHECK-AGGREGATE-2 %s
> +// CHECK-AGGREGATE-2: OVERLOAD: Aggregate{int first, <#int second#>, int
> third}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:50:18 %s |
> FileCheck -check-prefix=CHECK-AGGREGATE-3 %s
> +// CHECK-AGGREGATE-3: OVERLOAD: Aggregate{int first, int second, <#int
> third#>}
> 
> +Aggregate d{.second=1, .first=2, 3, 4, };
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:13 %s |
> FileCheck -check-prefix=CHECK-DESIG-1 %s
> +// CHECK-DESIG-1: OVERLOAD: Aggregate{<#int first#>, int second, int
> third}
> +// CHECK-DESIG-1: OVERLOAD: Aggregate{<#const Aggregate &#>}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:24 %s |
> FileCheck -check-prefix=CHECK-DESIG-2 %s
> +// CHECK-DESIG-2: OVERLOAD: Aggregate{int first, int second, <#int
> third#>}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:34 %s |
> FileCheck -check-prefix=CHECK-DESIG-3 %s
> +// CHECK-DESIG-3: OVERLOAD: Aggregate{int first, <#int second#>, int
> third}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:37 %s |
> FileCheck -check-prefix=CHECK-DESIG-4 %s
> +// CHECK-DESIG-4: OVERLOAD: Aggregate{int first, int second, <#int
> third#>}
> +// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:59:38 %s |
> FileCheck -check-prefix=CHECK-DESIG-5 %s --allow-empty
> +// CHECK-DESIG-5-NOT: OVERLOAD
> 
> diff  --git "a/tl\033" "b/tl\033"
> new file mode 100644
> index 0000000000000..1a124a4c5c135
> --- /dev/null
> +++ "b/tl\033"
> @@ -0,0 +1,1381 @@
> +2a92efd0a239 (HEAD -> main,
> origin/main) HEAD@{0}: rebase (finish): returning to
> refs/heads/main
> +2a92efd0a239 (HEAD -> main,
> origin/main) HEAD@{1}: rebase (pick): [CodeComplete]
> drop unused Scope param. NFC
> +1379eb577607 HEAD@{2}: rebase (start): checkout origin/main
> +1e3d96c67ff9 HEAD@{3}: commit: [CodeComplete] drop unused Scope
> param. NFC
> +6231ef262415 HEAD@{4}: rebase (finish): returning to
> refs/heads/main
> +6231ef262415 HEAD@{5}: rebase (start): checkout origin/main
> +f1f5a85af8be HEAD@{6}: checkout: moving from aggregates to main
> +c8b1ec7561fe (aggregates) HEAD@{7}:
> commit (amend): [CodeCompletion] Signature help for aggregate
> initialization.
> +fee43399f0af HEAD@{8}: commit (amend): [CodeCompletion] Signature
> help for aggregate initialization.
> +daf114e5c347 HEAD@{9}: rebase (continue) (finish): returning to
> refs/heads/aggregates
> +daf114e5c347 HEAD@{10}: rebase (continue): [CodeCompletion]
> Signature help for aggregate initialization.
> +f2b3e25f860e (configcompiler)
> HEAD@{11}: rebase (start): checkout origin/main
> +4f17932fb479 HEAD@{12}: checkout: moving from configcompiler to
> aggregates
> +f2b3e25f860e (configcompiler)
> HEAD@{13}: rebase (finish): returning to refs/heads/configcompiler
> +f2b3e25f860e (configcompiler)
> HEAD@{14}: rebase (pick): [clangd] Add CompileFlags.Compiler option to
> override argv0
> +f4ef79306cee HEAD@{15}: rebase (start): checkout origin/main
> +6443bd3db307 HEAD@{16}: commit (amend): [clangd] Add
> CompileFlags.Compiler option to override argv0
> +0fa6fc0238fe HEAD@{17}: reset: moving to HEAD
> +0fa6fc0238fe HEAD@{18}: checkout: moving from main to
> configcompiler
> +f1f5a85af8be HEAD@{19}: rebase (finish): returning to
> refs/heads/main
> +f1f5a85af8be HEAD@{20}: rebase (start): checkout origin/main
> +09f8315bba39 (arraytype) HEAD@{21}:
> checkout: moving from bracehelp to main
> +a61f34ea2502 (bracehelp) HEAD@{22}:
> commit: [clangd] Fix windows build after 478863ef58c7f7314e06
> +92417eaf3329 HEAD@{23}: rebase (finish): returning to
> refs/heads/bracehelp
> +92417eaf3329 HEAD@{24}: rebase (pick): [CodeCompletion] Signature
> help for braced constructor calls
> +a390c9905d4d HEAD@{25}: rebase (start): checkout origin/main
> +8da663369977 HEAD@{26}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +9ee52e712414 HEAD@{27}: rebase (continue) (finish): returning to
> refs/heads/bracehelp
> +9ee52e712414 HEAD@{28}: rebase (continue): [CodeCompletion]
> Signature help for braced constructor calls
> +364eb371012b HEAD@{29}: rebase (start): checkout origin/main
> +b245d1eaec2d HEAD@{30}: checkout: moving from iwyustdlib to
> bracehelp
> +478863ef58c7 (iwyustdlib) HEAD@{31}:
> commit (amend): [clangd] Basic IncludeCleaner support for c/c++ standard
> library
> +ee8a314f09c0 HEAD@{32}: rebase (finish): returning to
> refs/heads/iwyustdlib
> +ee8a314f09c0 HEAD@{33}: rebase (pick): [clangd] Basic
> IncludeCleaner support for c/c++ standard library
> +b9ed95afc4b1 HEAD@{34}: rebase (start): checkout origin/main
> +f038610fb5f3 HEAD@{35}: checkout: moving from insertion_point to
> iwyustdlib
> +fe68088d44f7 (insertion_point)
> HEAD@{36}: rebase (finish): returning to refs/heads/insertion_point
> +fe68088d44f7 (insertion_point)
> HEAD@{37}: rebase (pick): [clangd] Helper for determining member insertion
> point.
> +9e6f88b31a7f (tidydiags) HEAD@{38}:
> rebase (start): checkout origin/main
> +aacd98d5b867 HEAD@{39}: checkout: moving from tidydiags to
> insertion_point
> +9e6f88b31a7f (tidydiags) HEAD@{40}:
> commit (amend): [clangd] Respect .clang-tidy ExtraArgs (-Wfoo only) when
> producing diagnostics
> +e9211c3dd6ba HEAD@{41}: rebase (finish): returning to
> refs/heads/tidydiags
> +e9211c3dd6ba HEAD@{42}: rebase (pick): [clangd] Respect .clang-
> tidy ExtraArgs (-Wfoo only) when producing diagnostics
> +7505aeefc4e6 HEAD@{43}: rebase (start): checkout origin/main
> +53abaad295f4 HEAD@{44}: checkout: moving from aggregates to
> tidydiags
> +4f17932fb479 HEAD@{45}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +9cf82ca7e4ee HEAD@{46}: checkout: moving from tmplargs to
> aggregates
> +cd45e8c7bc16 (tmplargs) HEAD@{47}:
> rebase (finish): returning to refs/heads/tmplargs
> +cd45e8c7bc16 (tmplargs) HEAD@{48}:
> rebase (pick): [CodeCompletion] Signature help for template argument lists
> +3a33c0b1ce0d HEAD@{49}: rebase (start): checkout origin/main
> +36da2251bd60 HEAD@{50}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +ef7f8bce7503 HEAD@{51}: checkout: moving from arcpatch-D116218 to
> tmplargs
> +f2b2aae6843b (arcpatch-D116218)
> HEAD@{52}: commit (amend): [clangd] Fix selection on multi-dimensional
> array.
> +50f8215cc9be HEAD@{53}: commit (amend): [clangd] Fix selection on
> multi-dimensional array. (alternate version)
> +85244a21fd16 HEAD@{54}: commit (amend): [clangd] Fix selection on
> multi-dimensional array. (alternate version)
> +169e8e0af680 HEAD@{55}: rebase (finish): returning to
> refs/heads/arcpatch-D116218
> +169e8e0af680 HEAD@{56}: rebase (pick): [clangd] Fix selection on
> multi-dimensional array.
> +ca271f4ef5a2 HEAD@{57}: rebase (start): checkout origin/main
> +70d0857a4dea HEAD@{58}: commit: [clangd] Fix selection on multi-
> dimensional array.
> +09f8315bba39 (arraytype) HEAD@{59}:
> checkout: moving from main to arcpatch-D116218
> +09f8315bba39 (arraytype) HEAD@{60}:
> checkout: moving from tmplargs to main
> +ef7f8bce7503 HEAD@{61}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +a7b31d694812 HEAD@{62}: checkout: moving from insertion_point to
> tmplargs
> +aacd98d5b867 HEAD@{63}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +ac972fe4ff15 HEAD@{64}: checkout: moving from main to
> insertion_point
> +09f8315bba39 (arraytype) HEAD@{65}:
> reset: moving to HEAD
> +09f8315bba39 (arraytype) HEAD@{66}:
> checkout: moving from constructor to main
> +41fbc109a1ae (constructor) HEAD@{67}:
> commit (amend): [clangd] Add code action to generate a constructor for a
> C++ class
> +8e709f570606 HEAD@{68}: commit (amend): [clangd] Add code action
> to generate a constructor for a C++ class
> +456dc7755f32 HEAD@{69}: commit: [clangd] Add code action to
> generate a constructor for a C++ class
> +ac972fe4ff15 HEAD@{70}: checkout: moving from insertion_point to
> constructor
> +ac972fe4ff15 HEAD@{71}: checkout: moving from constructor to
> insertion_point
> +09f8315bba39 (arraytype) HEAD@{72}:
> reset: moving to HEAD
> +09f8315bba39 (arraytype) HEAD@{73}:
> checkout: moving from constructor to constructor
> +09f8315bba39 (arraytype) HEAD@{74}:
> reset: moving to HEAD~1
> +aa6435e963ca HEAD@{75}: checkout: moving from insertion_point to
> constructor
> +ac972fe4ff15 HEAD@{76}: checkout: moving from constructor to
> insertion_point
> +aa6435e963ca HEAD@{77}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +45d6b0cd4780 HEAD@{78}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +ac972fe4ff15 HEAD@{79}: checkout: moving from insertion_point to
> constructor
> +ac972fe4ff15 HEAD@{80}: checkout: moving from specialmember to
> insertion_point
> +60a028a904d5 (specialmember) HEAD@{81}:
> commit (amend): [clangd] Code action to declare missing move/copy
> constructor/assignment
> +939996aed14e HEAD@{82}: checkout: moving from
> 939996aed14ec84df8cce3f4a5ec4988c4a1f564 to specialmember
> +939996aed14e HEAD@{83}: rebase (pick): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +ac972fe4ff15 HEAD@{84}: rebase (start): checkout insertion_point
> +bbeef89ae1af HEAD@{85}: checkout: moving from specialmember to
> bbeef89ae1af
> +ac972fe4ff15 HEAD@{86}: rebase (finish): returning to
> refs/heads/specialmember
> +ac972fe4ff15 HEAD@{87}: rebase (start): checkout insertion_point
> +bbeef89ae1af HEAD@{88}: checkout: moving from insertion_point to
> specialmember
> +ac972fe4ff15 HEAD@{89}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +0eac12f86ab3 HEAD@{90}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +156bab8c3ab7 HEAD@{91}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +da546cc68656 HEAD@{92}: commit (amend): [clangd] Helper for
> determining member insertion point.
> +407f5558b48c HEAD@{93}: commit: [clangd] Helper for determining
> member insertion point.
> +09f8315bba39 (arraytype) HEAD@{94}:
> checkout: moving from main to insertion_point
> +09f8315bba39 (arraytype) HEAD@{95}:
> checkout: moving from specialmember to main
> +bbeef89ae1af HEAD@{96}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +a66453e487e3 HEAD@{97}: reset: moving to HEAD
> +a66453e487e3 HEAD@{98}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +31c647f871a8 HEAD@{99}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +500372f1ac6d HEAD@{100}: reset: moving to HEAD
> +500372f1ac6d HEAD@{101}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +174dac9746f1 HEAD@{102}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +34bba952dadc HEAD@{103}: commit (amend): [clangd] Code action to
> declare missing move/copy constructor/assignment
> +8b2288785c88 HEAD@{104}: commit: [clangd] Code action to declare
> missing move/copy constructor/assignment
> +09f8315bba39 (arraytype) HEAD@{105}:
> checkout: moving from main to specialmember
> +09f8315bba39 (arraytype) HEAD@{106}:
> checkout: moving from typeDefinition to main
> +6fbb2e3eca26 (typeDefinition)
> HEAD@{107}: commit (amend): [clangd] Implement textDocument/typeDefinition
> +1ea84876711e HEAD@{108}: commit (amend): [clangd] Implement
> textDocument/typeDefinition
> +2bf2e73c73d9 HEAD@{109}: commit (amend): [clangd] Implement
> textDocument/typeDefinition
> +d15e5a597103 HEAD@{110}: commit (amend): [clangd] Implement
> textDocument/typeDefinition
> +494458626828 HEAD@{111}: commit: [clangd] Implement
> textDocument/typeDefinition
> +09f8315bba39 (arraytype) HEAD@{112}:
> checkout: moving from main to typeDefinition
> +09f8315bba39 (arraytype) HEAD@{113}:
> rebase (finish): returning to refs/heads/main
> +09f8315bba39 (arraytype) HEAD@{114}:
> rebase (start): checkout origin/main
> +72ea6fbc150a HEAD@{115}: checkout: moving from arraytype to main
> +09f8315bba39 (arraytype) HEAD@{116}:
> rebase (finish): returning to refs/heads/arraytype
> +09f8315bba39 (arraytype) HEAD@{117}:
> rebase (pick): [Sema] a[x] has type T when a has type T* or T[], even when
> T is dependent
> +ed67d5a03aaf HEAD@{118}: rebase (start): checkout origin/main
> +5c3e13fb9825 HEAD@{119}: commit (amend): [Sema] a[x] has type T
> when a has type T* or T[], even when T is dependent
> +991036e41b3b HEAD@{120}: commit (amend): [Sema] a[x] has type T
> when a has type T* or T[], even when T is dependent
> +47ffbac82a3f HEAD@{121}: commit (amend): [Sema] a[x] has type T
> when a has type T* or T[], even when T is dependent
> +9923e86a3a96 HEAD@{122}: rebase (continue) (finish): returning to
> refs/heads/arraytype
> +9923e86a3a96 HEAD@{123}: rebase (continue): [Sema] a[x] has type
> T when a has type T* or T[], even when T is dependent
> +15787ccd4574 HEAD@{124}: rebase (start): checkout origin/main
> +1dc8f4774d34 HEAD@{125}: rebase (abort): updating HEAD
> +0651768d7a19 HEAD@{126}: rebase (pick): updated
> suggesting/coloring of call & return args & implicit operands.
> +f86d65195716 HEAD@{127}: rebase (pick): updated
> suggesting/coloring of call & return args & implicit operands
> +3002813063a8 HEAD@{128}: rebase (pick): --changed Sugesting
> colors for method calls/return values etc.
> +7bdf5ba01bb0 HEAD@{129}: rebase (pick): fixed a coalscing bug
> +7524a1746083 HEAD@{130}: rebase (pick): Add library
> +ba28b47cb919 HEAD@{131}: rebase (pick): Be const correct
> +1aa4098bafea HEAD@{132}: rebase (pick): Minor code cleanups
> +629281c4710d HEAD@{133}: rebase (pick): Add cast_or_null &
> dyn_cast_or_null
> +24c3a0a84fda HEAD@{134}: rebase (pick): Implement initializers
> for structs and pointers
> +2f93ba463315 HEAD@{135}: rebase (pick): Rename
> ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired
> typing that much
> +e58844e57ecb HEAD@{136}: rebase (pick): Improve error messages on
> assertion failure.
> +73eab57ce304 HEAD@{137}: rebase (pick): * getExitNode() doesn't
> exist in method anymore
> +171cd5f1d612 HEAD@{138}: rebase (pick): Added Instrumentation
> subdirectory.
> +2423a863e15b HEAD@{139}: rebase (pick): Implement global
> variables. Struct and Pointer initializers are not implemented yet though
> +3af979135686 HEAD@{140}: rebase (pick): Implement linking of
> global variable constant references
> +c1129719df3c HEAD@{141}: rebase (pick): Add some more interesting
> test cases for the linker
> +23ab0f2c31f9 HEAD@{142}: rebase (pick): Oops, didn't handle hex
> values correctly. :(
> +c39415b7c1cd HEAD@{143}: rebase (pick): * Fix the constpoolarray
> -> c"" printing routines to escape things properly
> +eb2b5e2b34dd HEAD@{144}: rebase (pick): *** empty log message ***
> +a28f8e125258 HEAD@{145}: rebase (pick): Minor cleanup
> +131d908673ef HEAD@{146}: rebase (pick): *** empty log message ***
> +c11c83a339c8 HEAD@{147}: rebase (pick): Implement linker. It's
> 95% working now.
> +30fa72c1feb8 HEAD@{148}: rebase (pick): More interesting testcase
> +5a055ed280fd HEAD@{149}: rebase (pick): Forward operands into
> implicit uses as well as explicit ones.
> +eab25baceb5b HEAD@{150}: rebase (pick): External methods
> shouldn't have argument lists
> +f2bd12a6d988 HEAD@{151}: rebase (pick): Update comment, remove
> misleading method
> +67bb9adc5a0f HEAD@{152}: rebase (pick): Initializers are not
> const even if the GV is.
> +c3d3c0630d9d HEAD@{153}: rebase (pick): Add a new -d argument to
> dump the internal rep as assembly.
> +a7b34ac799ce HEAD@{154}: rebase (pick): Cast NULL when requested.
> +731d883c3187 HEAD@{155}: rebase (pick): Added getEntryNode() and
> getExitNode() functions.
> +0003ef936aab HEAD@{156}: rebase (pick): Insert code to trace
> values at basic block and method exits.
> +a4927eee849c HEAD@{157}: rebase (pick): Insert code to trace
> values at basic block and method exits.
> +59a501e47f06 HEAD@{158}: rebase (pick): Added routine to create a
> char array for a string.
> +f3328d15f543 HEAD@{159}: rebase (pick): Added routine to create a
> char array for a string.
> +1b48aa670b0f HEAD@{160}: rebase (pick): Enable most tests.
> +b578289a8fa8 HEAD@{161}: rebase (pick): Added a string global
> variable.
> +86d5a822efcc HEAD@{162}: rebase (pick): Two bug fixes that were
> suppressing some "load-constant-into-register" instrs.
> +ae10fbb5bb27 HEAD@{163}: rebase (pick): Move the burg file to
> here. Add .in suffix to indicate that it gets
> +42fcb2d89630 HEAD@{164}: rebase (pick): Make the sparc.burg file
> be a little more flexible and rubust in the fact of
> +e5eb3fe6f018 HEAD@{165}: rebase (pick): Use the instruction.def
> file to remain up to date with future instruction
> +a95ca89e8976 HEAD@{166}: rebase (pick): New file to define
> instructions...
> +1a9806113e30 HEAD@{167}: rebase (pick): Burg files should come
> out of the Debug Directory for temporary files
> +a1012b17f9a7 HEAD@{168}: rebase (pick): New module linking
> functionality prototype
> +5726d1d2ecd4 HEAD@{169}: rebase (pick): Check in makefile
> +bfc372b3a5a3 HEAD@{170}: rebase (pick): Fixed tags target so it
> only happens at root level.
> +ad26264a523c HEAD@{171}: rebase (pick): Add C source for
> testmisc.ll
> +9c5a5f970837 HEAD@{172}: rebase (pick): Dang, I screwed up the
> merge. This should be better
> +db6e9ecc453f HEAD@{173}: rebase (pick): New testcase for testing
> constant pointers to globals
> +5eff5faafba2 HEAD@{174}: rebase (pick): Test files for linker
> +77a7c277d54d HEAD@{175}: rebase (pick): MethodTypes take an
> explicit isVarArg argument
> +19293514b699 HEAD@{176}: rebase (pick): Fix comment flyer
> +684125529570 HEAD@{177}: rebase (pick): Add new linker
> +cff52fd4a48a HEAD@{178}: rebase (pick): Build the new linker
> +cba92a5489f2 HEAD@{179}: rebase (pick): Use null keyword instead
> of kludge
> +42c3881f4c41 HEAD@{180}: rebase (pick): Add more function call
> and prototype specific tests
> +c82370afa049 HEAD@{181}: rebase (pick): Compile the transforms
> directory
> +6dad439c635a HEAD@{182}: rebase (pick): Start of a linker
> +71585a57f2b0 HEAD@{183}: rebase (pick): Implement the invoke
> instruction
> +4aac971feb66 HEAD@{184}: rebase (pick): * Fix a nefarious bugs:
> TypesEqual was wrong for varargs methods
> +81374f6531a5 HEAD@{185}: rebase (pick): Convert a runtime check
> into an assertion
> +fc856307fe9a HEAD@{186}: rebase (pick): * Add support for Module
> specific constants
> +5119ee94dd54 HEAD@{187}: rebase (pick): Add new TerminatorInst
> ctor for invoke
> +97aceab30ca0 HEAD@{188}: rebase (pick): * Fix TODO
> +fdd33fff63c6 HEAD@{189}: rebase (pick): Fix broken #endif
> +6eab48b3c68d HEAD@{190}: rebase (pick): * Add #include
> +d64929f66211 HEAD@{191}: rebase (pick): Add StringList support
> +d5f1339c1461 HEAD@{192}: rebase (pick): Support the invoke
> instruction
> +362b89b2697e HEAD@{193}: rebase (pick): Support indirect calls
> +250990a3ef85 HEAD@{194}: rebase (pick): not is a keyword in ansi
> C++, avoid it
> +cad98049b01e HEAD@{195}: rebase (pick): * Fix privacy issues on
> RegToRefVecMap
> +6d8a50fb7185 HEAD@{196}: rebase (pick): * Use new style casts
> more
> +d5ef68f42b47 HEAD@{197}: rebase (pick): * Add real support for
> global variable addresses initializing constants
> +5b89a0710636 HEAD@{198}: rebase (pick): * Support writing
> GlobalVariables with info comments by them
> +38600d48ce25 HEAD@{199}: rebase (pick): * Add support for forward
> references of global variable addresses
> +30567de7ef54 HEAD@{200}: rebase (pick): Add operator< to ValID's
> so that they can be put in map's
> +c4253f651f13 HEAD@{201}: rebase (pick): Remove exception
> specification
> +e46a527bd890 HEAD@{202}: rebase (pick): Support the new Invoke
> instruction
> +dbf3974c7876 HEAD@{203}: rebase (pick): Support pointers to
> globals happily
> +f72067424d95 HEAD@{204}: rebase (pick): Fix code to make GCC 2.96
> happy
> +ec668ae234aa HEAD@{205}: rebase (pick): * Add support for Invoke
> instructions
> +b92a0735743c HEAD@{206}: rebase (pick): Fix filename in comment
> +eac143eefddc HEAD@{207}: rebase (pick): Better linux support.
> This file still sucks
> +98503c7ebc77 HEAD@{208}: rebase (pick): Fix broken #endif
> +ca3d924e3846 HEAD@{209}: rebase (pick): not is a keyword in Ansi
> C++. Avoid it
> +c168bc53e09e HEAD@{210}: rebase (pick): Clean up initializers for
> GCC 2.96
> +b54fa1a20171 HEAD@{211}: rebase (pick): Remove exception
> specification. Only slows code down.
> +ed95b6657e6b HEAD@{212}: rebase (pick): Changes to compile with
> GCC 2.96
> +c22edf4bc5a2 HEAD@{213}: rebase (pick): Add comment indicating
> semantics of indirect calls
> +4dcafac17dcb HEAD@{214}: rebase (pick): New ctor for invoke inst
> +a8a651345904 HEAD@{215}: rebase (pick): Add support for indirect
> calls
> +af0d7630a30d HEAD@{216}: rebase (pick): Add some casts to make
> GCC 2.96 happy.
> +868db5e40c09 HEAD@{217}: rebase (pick): Add use_back() methods
> +08696c9b3a19 HEAD@{218}: rebase (pick): Add classof
> implementations for User
> +3776f284eb1a HEAD@{219}: rebase (pick): Expose typedefs
> +d5660029e7f9 HEAD@{220}: rebase (pick): Add support for module
> local constants
> +8f28f49eecf5 HEAD@{221}: rebase (pick): Add new opcode for Invoke
> instruction
> +c6c0d280af0b HEAD@{222}: rebase (pick): Minor changes, add new
> ctor for invoke instruction
> +f230dca276c8 HEAD@{223}: rebase (pick): Add assertions
> +c4ea40ffae4f HEAD@{224}: rebase (pick): * Minor Formatting
> changes.
> +e4f89d5176af HEAD@{225}: rebase (pick): * Add destroyConstant
> stuff to handle module local constants
> +0a73f5e2e880 HEAD@{226}: rebase (pick): Update todo's
> +b66fb116fe18 HEAD@{227}: rebase (pick): Each tools should not
> make tags
> +969240424993 HEAD@{228}: rebase (pick): --corrected coalescing
> test: coalsed only if two are of the same reg class
> +54622d353dc1 HEAD@{229}: rebase (pick): added support for implict
> operands in machine instruction
> +af225afe483a HEAD@{230}: rebase (pick): --added support for
> implicit operands in machine instructions
> +4c1eeb2f0207 HEAD@{231}: rebase (pick): Delete *.s on clean.
> +e0e2c0de0d59 HEAD@{232}: rebase (pick): Record implicitRefs for
> each machine instruction instead of
> +c7344856e2e2 HEAD@{233}: rebase (pick): Add graph edges due to
> implicit refs in each machine instruction.
> +da6e725984b0 HEAD@{234}: rebase (pick): Added a rule for building
> TAGS.
> +84249865be76 HEAD@{235}: rebase (pick): Repeat some libs due to
> circular dependences between Sparc and other
> +b41937df9bac HEAD@{236}: rebase (pick): Don't insert useful
> instructions in delay slot of a RETURN.
> +8ec3840fd358 HEAD@{237}: rebase (pick): Insert code to load
> constants used as Call or Return arguments.
> +dfb65425ee14 HEAD@{238}: rebase (pick): Machine-independent code
> generation routines used in instruction
> +e8a1ea03539a HEAD@{239}: rebase (pick): Moved code generation
> support routines to InstrSelectionSupport.{h,cpp}.
> +920028cc0b2f HEAD@{240}: rebase (pick): Moved code generation
> support routines to InstrSelectionSupport.cpp.
> +362badd47ffe HEAD@{241}: rebase (pick): Moved first function to
> "simpleadd.ll".
> +e3a87d5e89a0 HEAD@{242}: rebase (pick): testmemory and sumarray
> now work with instruction selection.
> +a08813e66ef9 HEAD@{243}: rebase (pick): --removed %g regs being
> allocated - fix later
> +576355e82463 HEAD@{244}: rebase (pick): Add hack to get rid of
> malloc & free instructions for code generation
> +5566f9c03615 HEAD@{245}: rebase (pick): Add comment
> +704887cc1858 HEAD@{246}: rebase (pick): Support multiple global's
> definitions
> +97e5c873483d HEAD@{247}: rebase (pick): Factor parentness out of
> Module & GlobalVariable into GlobalValue
> +370c4a28a876 HEAD@{248}: rebase (pick): Rename getNullPointer to
> getNull
> +ddfe3ae972ff HEAD@{249}: rebase (pick): Rename getNullPointer to
> getNull
> +7b0ee1e797ab HEAD@{250}: rebase (pick): Allow duplicate constant
> values as long as they are compatible.
> +a13bc1844828 HEAD@{251}: rebase (pick): Share ConstPoolPointer
> elements correctly
> +bd8752038e30 HEAD@{252}: rebase (pick): Fix broken testcase
> +398a1a5573f9 HEAD@{253}: rebase (pick): Add check to make sure
> that we dont reference MEthodType's directly
> +bdb349a55426 HEAD@{254}: rebase (pick): * Both Method &
> GlobalVariable now subclass GlobalValue
> +5c22b0d643af HEAD@{255}: rebase (pick): Adjust test cases to
> match the fact that methods are now explicit pointer values, not explicit
> +1f92e9fc5d90 HEAD@{256}: rebase (pick): First try at a horrible
> global value reference wrapper
> +ebf7f8fa07e7 HEAD@{257}: rebase (pick): Clean up parser, fix a
> bug that prevented this from working:
> +eedd6c7c8622 HEAD@{258}: rebase (pick): * Add support for null as
> a constant
> +550de7f1b919 HEAD@{259}: rebase (pick): Modify testcases for new
> LLVM const syntax
> +dfe6c7e0aff1 HEAD@{260}: rebase (pick): Commit more code over to
> new cast style
> +8d5994a86223 HEAD@{261}: rebase (pick): Convert more code to use
> new style casts
> +22c53dc308b0 HEAD@{262}: rebase (pick): Add more support for new
> style casts
> +e876f00ebb60 HEAD@{263}: rebase (pick): Add support for new style
> casts
> +0b735821091f HEAD@{264}: rebase (pick): Add support for newer
> cleaner isa, cast, dyn_cast
> +8f546a6b1eb9 HEAD@{265}: rebase (pick): Update comments
> +154b8c0b0bdb HEAD@{266}: rebase (pick): Pull predecessor and
> successor iterators out of the CFG*.h files, and plop them into
> +96bfa8db5614 HEAD@{267}: rebase (pick): Pull predecessor and
> successor iterators out of the CFG*.h files, and plop them into
> +0c5cd66015ba HEAD@{268}: rebase (pick): Comment out a paragraph
> that refers to a file that no longer exists
> +bf9adf15ad50 HEAD@{269}: rebase (pick): Fix emission of return
> instructions
> +af1ab310689d HEAD@{270}: rebase (pick): Add path to as so it
> doesn't find llvm as if that path is set.
> +554b4bc20205 HEAD@{271}: rebase (pick): Exclude a couple of tests
> that the regalloc stuff doesn't handle yet
> +2d6c6b32a60e HEAD@{272}: rebase (pick): Add
> diff erent "cast constant value" for several possible types.
> +5a0bdbf41700 HEAD@{273}: rebase (pick): Add vector `implicitUses'
> to class MachineCodeForVMInstr to hold values
> +69e68114634e HEAD@{274}: rebase (pick): Several fixes:
> +ecfd19aa7a65 HEAD@{275}: rebase (pick): removing phy regaloc -
> incorrect file
> +c9899c19a917 HEAD@{276}: rebase (pick): Change latency of setuw
> and setsw to 2 cycles.
> +8e03b2d97f34 HEAD@{277}: rebase (pick): Change ! ( ...== ...) to
> !=.
> +aa06d6438043 HEAD@{278}: rebase (pick): Improved dump for disp
> type operand.
> +d09bbd3e62ee HEAD@{279}: rebase (pick): Bug fixes:
> +4542845ffac4 HEAD@{280}: rebase (pick): Minor changes for bug
> fixes in SchedGraph.cpp.
> +f2d34339b43a HEAD@{281}: rebase (pick): Two bug fixes:
> +dadedae23021 HEAD@{282}: rebase (pick): *** empty log message ***
> +e30f6b836af1 HEAD@{283}: rebase (pick): no major change.
> +17745bb05c7a HEAD@{284}: rebase (pick): added suggesting color
> support
> +0c5afc6b26f2 HEAD@{285}: rebase (pick): added suggesting color
> suppor
> +bdaab1203288 HEAD@{286}: rebase (pick): added support for
> suggesting colors
> +3061d7a1e42b HEAD@{287}: rebase (pick): --added suggesting
> colors; call/ret arg handling
> +f3d3eee7e06a HEAD@{288}: rebase (pick): Add a test for the new
> null keyword
> +8e9b70834fa4 HEAD@{289}: rebase (pick): Implement constant
> pointers, and null specifically in the parser, bytecode writer, and
> +d20cd6b4422b HEAD@{290}: rebase (pick): Implement a constant
> pointer value
> +91bf6d53e2e8 HEAD@{291}: rebase (pick): Pull iterators out of
> CFG.h and genericize them with GraphTraits
> +1f5ff53527ab HEAD@{292}: rebase (pick): File #include file
> +60f364cc5b13 HEAD@{293}: rebase (pick): Pull iterators out of
> CFG.h and CFGdecls and put them in Support directory
> +ab4adf7cba15 HEAD@{294}: rebase (pick): * Properly escape
> function names
> +b329ccfca12b HEAD@{295}: rebase (pick): Check in bug fix for
> vadve
> +3eaa426db4d4 HEAD@{296}: rebase (pick): Add commands to assemble
> and compile a .ll file
> +0fd9a3dcc702 HEAD@{297}: rebase (pick): Initial support for
> construction of a call graph
> +b3a3ecaf05f7 HEAD@{298}: rebase (pick): Add support to print a
> call graph, and also add support for module level interprocedural analyses
> +464bdb4b73aa HEAD@{299}: rebase (pick): Adding the tool to the
> path doesn't break anything anymore
> +f1f7f171a7a5 HEAD@{300}: rebase (pick): Make error report a
> little more useful
> +58d981ac2a15 HEAD@{301}: rebase (pick): ADCE is broken but at
> least we know why
> +dae33afb6ab1 HEAD@{302}: rebase (pick): print out value's by
> pointer
> +cb586b4aa067 HEAD@{303}: rebase (pick): Add capability to print
> out call graph
> +24c1bbab59ca HEAD@{304}: rebase (pick): Global variables/complex
> constants have been resolved!
> +4d13ee0a9344 HEAD@{305}: rebase (pick): -- fixed a ret val bug
> +19f2d28d3fb2 HEAD@{306}: rebase (pick): -- removed debugging
> messages
> +d23e458745cb HEAD@{307}: rebase (pick): -fixed return value bug.
> +b53ab66b2055 HEAD@{308}: rebase (pick): Add proper support to
> send output to the right place
> +1da35ac9ce16 HEAD@{309}: rebase (pick): Print .def files as well
> as other files
> +1a7c20d822d2 HEAD@{310}: rebase (pick): Change debug info from
> #define to command line option
> +bdd630363635 HEAD@{311}: rebase (pick): Change debug info from
> #define to command line option
> +d27bcdc4d564 HEAD@{312}: rebase (pick): * REMOVE extraneous debug
> info if DEBUG_RA is not set
> +b58b0442c078 HEAD@{313}: rebase (pick): Seperate instruction
> definitions into new SparcInstr.def file
> +84ba33c8b41a HEAD@{314}: rebase (pick): Okay, make the member
> function work.
> +c14992951e06 HEAD@{315}: rebase (pick): Remove global debug
> output fns that have been superceded by a member func
> +78a5c492e944 HEAD@{316}: rebase (pick): Remove debugging output
> stuff
> +3f14f79d64e6 HEAD@{317}: rebase (pick): Emit assembly language
> from the target...
> +5a780fe743b5 HEAD@{318}: rebase (pick): Add emitAssembly Method
> +6d1bd8d21e41 HEAD@{319}: rebase (pick): Add idea
> +f821fceb8d6a HEAD@{320}: rebase (pick): Add EmitAssembly to mf
> +d2ccd8e344fc HEAD@{321}: rebase (pick): First cut at assembly
> output
> +7cd873804115 HEAD@{322}: rebase (pick): Add emitAssemblyMethod to
> TargetMachine
> +8749075054d9 HEAD@{323}: rebase (pick): *** empty log message ***
> +ca4aeed4cda6 HEAD@{324}: rebase (pick): --added methods to
> operand class to set/get registers after register allocation
> +d3262f97ed7a HEAD@{325}: rebase (pick): -- ruchira
> +983537f3112b HEAD@{326}: rebase (pick): -- updated printing
> +df8fc0fcada5 HEAD@{327}: rebase (pick): Remove a copy of a bunch
> of code
> +5ff0c9da9f43 HEAD@{328}: rebase (pick): C++ gives us auto_ptr's,
> so we might as well use them. :)
> +0a6274f4f469 HEAD@{329}: rebase (pick): Fix up code a bit, remove
> operator<< to Assembly/Writer.h
> +8ebd15ef9e5b HEAD@{330}: rebase (pick): Remove extraneous
> #includes
> +992e6cf11454 HEAD@{331}: rebase (pick): Move operator << from
> Value.h to Assembly/Writer.h
> +05c03e0a4a43 HEAD@{332}: rebase (pick): Remove operator << to
> Assembly/Writer.h
> +32354c42e162 HEAD@{333}: rebase (pick): Don't check for null on
> delete
> +348cbcb3414c HEAD@{334}: rebase (pick): Un-neuter makefile
> +b9015643ae16 HEAD@{335}: rebase (pick): Minor changes.
> +31eddde1fbe7 HEAD@{336}: rebase (pick): Folded inssel*.ll into
> select.ll.
> +93a7445ced49 HEAD@{337}: rebase (pick): Renamed files to match
> the primary classes they provide.
> +73a5ca83c073 HEAD@{338}: rebase (pick): Renamed a header file.
> +116c6caa7247 HEAD@{339}: rebase (pick): Make class TargetMachine
> the common interface to all target-dependent
> +4fc2bc116a7f HEAD@{340}: rebase (pick): Allow pointer constants
> as well as integer and booleans.
> +4350d1b2f431 HEAD@{341}: rebase (pick): Make class TargetMachine
> the common interface to all target-dependent
> +c3645e342ca4 HEAD@{342}: rebase (pick): Renamed files to match
> the main classes they provide.
> +2221c6a54d56 HEAD@{343}: rebase (pick): Cast unsigned to int! It
> was causing a nice little bug.
> +3692872402ab HEAD@{344}: rebase (pick): Minor changes.
> +fdf7be61f2e0 HEAD@{345}: rebase (pick): Don't add instructions to
> subtree for Phi or Call.
> +c5ec3128e60a HEAD@{346}: rebase (pick): Format file header.
> +9bce80700742 HEAD@{347}: rebase (pick): Add new entry/exit edges
> when removing delay slot nodes from the graph.
> +0c5c4e8dfb45 HEAD@{348}: rebase (pick): Moved erase edge
> functions to class SchedGraph.
> +ad74a2f916dd HEAD@{349}: rebase (pick): Renamed some header
> files.
> +6f280562c6f1 HEAD@{350}: rebase (pick): Moved erase-edge
> functions from SchedGraphNode to SchedGraph.
> +c20d754ef692 HEAD@{351}: rebase (pick): Moved DebugValue to
> Value.cpp.
> +a18896cb69d9 HEAD@{352}: rebase (pick): Added debugging support.
> +b99a5873a966 HEAD@{353}: rebase (pick): Moved debugging
> interfaces for class Value to Value.h.
> +de14aceb2e19 HEAD@{354}: rebase (pick): Minor fixes: renamed
> target machine files; fold sched info into TargetMachine.
> +1fabb8f4d05b HEAD@{355}: rebase (pick): Make class TargetMachine
> the common interface to all target-dependent
> +004e1e8c9bd5 HEAD@{356}: rebase (pick): Added debugging support.
> +5308e6f9d6ca HEAD@{357}: rebase (pick): Fix testcases to handle
> new syntax for construction and initializeation
> +23bc63990bca HEAD@{358}: rebase (pick): Remove the unsized array
> constraint
> +23b021feb086 HEAD@{359}: rebase (pick): Add support for global
> constants, and for initializers for constants
> +1f2803d9c6b3 HEAD@{360}: rebase (pick): Add support for global
> constants, and for initializers for constants
> +e1fed6f079c9 HEAD@{361}: rebase (pick): added a method to get reg
> num after register allocation
> +ae7bbf4710cc HEAD@{362}: rebase (pick): modified machine code
> printing
> +13af7a7caac6 HEAD@{363}: rebase (pick): -modified machine operand
> class - took regNum out of union to set regNum after
> +6bddc120b229 HEAD@{364}: rebase (pick): modified printing of
> debug messages
> +313c2a193181 HEAD@{365}: rebase (pick): --added methods for
> printing
> +b8916ea9dfc9 HEAD@{366}: rebase (pick): added setRegForValue to
> MachineOperand class
> +072b09e468f8 HEAD@{367}: rebase (pick): fixed printing messages
> +357bf235defd HEAD@{368}: rebase (pick): -- debug messages
> dissabled
> +b3a9794066b2 HEAD@{369}: rebase (pick): added reg alloc support
> +4ac010f69361 HEAD@{370}: rebase (pick): --reg alloc code added
> +c7e1696e212a HEAD@{371}: rebase (pick): -reg alloc code
> +74fe0add218c HEAD@{372}: rebase (pick): added register allocation
> code
> +1c1d5b77ea72 HEAD@{373}: rebase (pick): Added regalloc
> +261723120208 HEAD@{374}: rebase (pick): Oops, accidentally
> checked my debugging makefile
> +ccba943ebd24 HEAD@{375}: rebase (pick): Fix a bug with not
> removing method level types after compilation
> +32436a343662 HEAD@{376}: rebase (pick): added RegAlloc Directory
> to DIRS
> +1c24930f9da4 HEAD@{377}: rebase (pick): *** empty log message ***
> +cac3722a15a8 HEAD@{378}: rebase (pick): *** empty log message ***
> +c6554b4537c1 HEAD@{379}: rebase (pick): Remove invalid testcase
> +847094903baa HEAD@{380}: rebase (pick): Remove invalid testcase.
> Unneccesary anyways
> +d71ff5c79c96 HEAD@{381}: rebase (pick): Add new test cases
> +7789d9c7f54d HEAD@{382}: rebase (pick): Add support for loading
> and storing pointers...
> +a3aa024f5831 HEAD@{383}: rebase (pick): Fix a bug that caused a
> crash if a setcc had zero uses.
> +c70348cb828c HEAD@{384}: rebase (pick): Add a forward decl, oops.
> +85c86566e9a5 HEAD@{385}: rebase (pick): Chris seems fond of
> #include <vector>. Fix these. Also convert use list in
> +3edb0d2e080e HEAD@{386}: rebase (pick): Add a comment
> +5c8a3647ccb6 HEAD@{387}: rebase (pick): Minor reformatting, &
> protection fixes
> +ec87fa4f8523 HEAD@{388}: rebase (pick): Break scheduling
> infrastructure out of TargetMachine.cpp into SchedInfo.cpp
> +d589bb98df47 HEAD@{389}: rebase (pick): Split Register specific
> stuff out from TargetMachine.h to RegInfo.h
> +ec018be202c8 HEAD@{390}: rebase (pick): Split Target/Machine.h
> into three files:
> +53bcc4463c09 HEAD@{391}: rebase (pick): Make a new llvm/Target
> #include directory.
> +aaca226978d7 HEAD@{392}: rebase (pick): Checkin changes to:
> +9cec2d47b443 HEAD@{393}: rebase (pick): Checkin changes to:
> +3b15eb471b31 HEAD@{394}: rebase (pick): Move files to new sparc
> directory
> +11954336afe2 HEAD@{395}: rebase (pick): Move the sparc target to
> a new lib/Target directory
> +a8d3715d2038 HEAD@{396}: rebase (pick): Move files.
> +82cb584aec3c HEAD@{397}: rebase (pick): Move the contents of the
> CodeGen/TargetMachine/Sparc directory to Target/Sparc
> +1799226a9df7 HEAD@{398}: rebase (pick): This checkin represents
> some cleanup of the backend, implementing the following things:
> +2153a7e280f6 HEAD@{399}: rebase (pick): This checkin represents
> some cleanup of the backend, implementing the following things:
> +9936a71b49ba HEAD@{400}: rebase (pick): Updates to use local
> header files.
> +ddef6185b427 HEAD@{401}: rebase (pick): Export the instruction
> forest support from the analysis library
> +44e4e80c2911 HEAD@{402}: rebase (pick): Initial instruction tree
> support for the analysis library
> +001ff12fbe1c HEAD@{403}: rebase (pick): Generic k-way tree
> support
> +015b075f7f69 HEAD@{404}: rebase (pick): More cleanups, preparing
> to revamp InstrForest to, among other things,
> +d6c5ea5c2392 HEAD@{405}: rebase (pick): * Clean up InstrForest
> +8f70795fa947 HEAD@{406}: rebase (pick): Eliminate 'BasicNode'
> from InstrForest.
> +02e210b78442 HEAD@{407}: rebase (pick): Eliminate MainTreeNode
> function
> +bacc3815ee3a HEAD@{408}: rebase (pick): Remove irrelevant gross
> K&R Cisms
> +99dec15bddc1 HEAD@{409}: rebase (pick): Handle subtract in
> expression classifier
> +9c9d9777ee76 HEAD@{410}: rebase (pick): Disable destructors on
> constants
> +58b30135c56a HEAD@{411}: rebase (pick): Use the correct style
> casts
> +6fb05a7fb6f1 HEAD@{412}: rebase (pick): Use correct style casts
> +f6d78c00b28d HEAD@{413}: rebase (pick): Use correct style casts
> +bd9287aa5602 HEAD@{414}: rebase (pick): Use type checking
> predicates
> +b760399acaf2 HEAD@{415}: rebase (pick): Use correct casts
> +86f6acb766bb HEAD@{416}: rebase (pick): Use predicate for Value
> type test
> +b1223a7dc00c HEAD@{417}: rebase (pick): Use predicate for Value
> type test
> +5dbd964b9fbc HEAD@{418}: rebase (pick): ModuleTyID doesn't exist
> anyymore
> +c583d68d95f8 HEAD@{419}: rebase (pick): getMethodType is now just
> getType
> +862b2212c267 HEAD@{420}: rebase (pick): Add support for printing
> globals
> +9815c0143466 HEAD@{421}: rebase (pick): Update to use correct
> type cast
> +4ebfeafd5ae2 HEAD@{422}: rebase (pick): Add support for global
> variables
> +7309e89eeead HEAD@{423}: rebase (pick): * Add capability of
> printing out a global variable
> +332d403bc73d HEAD@{424}: rebase (pick): * Method::getType should
> return type cast as MethodType, eliminate getMethodType
> +09b1c8b53b5b HEAD@{425}: rebase (pick): Update assertion to allow
> extra case
> +c9f650f82da6 HEAD@{426}: rebase (pick): Fix a bug I introduced
> (assertion failed: Unknown operand type), and convert to predicate style
> for type checks
> +ca665a4f7301 HEAD@{427}: rebase (pick): Implement global variable
> support
> +78c27fc8588b HEAD@{428}: rebase (pick): Add support for external
> methods
> +3b4968db64d9 HEAD@{429}: rebase (pick): Genericize support for
> calling functions a bit
> +f2292a6f5bef HEAD@{430}: rebase (pick): Add support for tool
> specified linker options
> +e7d26918d539 HEAD@{431}: rebase (pick): Remove the definitions of
> 3 global functions that don't belong in the core
> +3268cb00c3aa HEAD@{432}: rebase (pick): Implement the subset of
> the GetConstantValueAsSignedInt function that is needed, locally. Remove
> the two support functions to inline their contents.
> +5ce25378872d HEAD@{433}: rebase (pick): Implement the subset of
> the GetConstantValueAsSignedInt function that is needed, locally.
> +7f1dfe6c75ba HEAD@{434}: rebase (pick): Remove 3 gross global
> functions that don't belong here
> +bcfd7d3b4a2f HEAD@{435}: rebase (pick): Rename contype to subtype
> +925282156193 HEAD@{436}: rebase (pick): Make ADCE more robust, it
> still has problems, but it's getting closer
> +a8aa73f44e44 HEAD@{437}: rebase (pick): Fix problems with freeing
> memory twice
> +3e58e695c052 HEAD@{438}: rebase (pick): Rename file to be
> consistent with header name
> +45093beca645 HEAD@{439}: rebase (pick): Rerun backend tests if as
> or llc is changed
> +920978127ffb HEAD@{440}: rebase (pick): iFix dependence order
> +0dda5dffe9e1 HEAD@{441}: rebase (pick): Clean up Type class by
> removing mutable ConstRules member and use annotations insead
> +8926543a23ba HEAD@{442}: rebase (pick): Clean up ConstRules stuff
> to use annotations instead of a mutable member in Type
> +0554a9254254 HEAD@{443}: rebase (pick): Convert ConstRules to use
> annotations to clean it up.
> +ae70148c0e33 HEAD@{444}: rebase (pick): Fix automatic dependence
> on static libs
> +57a4461c8737 HEAD@{445}: rebase (pick): Handle cast float-to-
> float or cast double-to-double.
> +e26d17b941c6 HEAD@{446}: rebase (pick): Fix build breakage. :(
> +468369dd37c3 HEAD@{447}: rebase (pick): I really don't like it
> when people break the build.
> +093db3f2c28b HEAD@{448}: rebase (pick): Remove extraneous space
> +d7fa14961741 HEAD@{449}: rebase (pick): Remove extra #include
> +13c90b0c405c HEAD@{450}: rebase (pick): *** empty log message ***
> +ad0e744b8800 HEAD@{451}: rebase (pick): *** empty log message ***
> +479d6ea91cea HEAD@{452}: rebase (pick): Committed for
> compliation. Not yet final.
> +3e3b370cfca9 HEAD@{453}: rebase (pick): --Ruchira
> +215ca905feb5 HEAD@{454}: rebase (pick): New testcase to deal with
> lists
> +91c3618d9fba HEAD@{455}: rebase (pick): New file for supporting
> abstract types
> +d0201e668537 HEAD@{456}: rebase (pick): Make use of the new
> TOOLNAME/USEDLIBS options provided in Makefile.common
> +edadb7525ef9 HEAD@{457}: rebase (pick): Executables all live in a
> nice centralized location now
> +a461b8412da2 HEAD@{458}: rebase (pick): Executables have moved
> into centralized location
> +f02709b9d7a9 HEAD@{459}: rebase (pick): Support TOOLNAME and
> USEDLIBS options for easier tool building
> +e41581d43385 HEAD@{460}: rebase (pick): Remove old old file
> +cb93b76e7fdc HEAD@{461}: rebase (pick): Convert llc driver to
> standard tool format
> +cb8ea37f651a HEAD@{462}: rebase (pick): Provide a way to change
> the incoming value for a phi node
> +21daac648d0a HEAD@{463}: rebase (pick): Add llc path to setup
> +a3f8c0135396 HEAD@{464}: rebase (pick): Uhm... that was really
> bad
> +a428778af63a HEAD@{465}: rebase (pick): Clean up driver
> +545e4d0d6342 HEAD@{466}: rebase (pick): Make makefile not depend
> on where stuff is installed!!!!
> +63fb58422942 HEAD@{467}: rebase (pick): Updates to work with new
> lack of constant pool
> +d08a74d2397c HEAD@{468}: rebase (pick): Remove unneeded #includes
> +17ba4b1a7377 HEAD@{469}: rebase (pick): Remove unnecesary
> #include add dump calls pulled out of .h file
> +4baa9c258dc7 HEAD@{470}: rebase (pick): * Remove lots of
> #includes
> +5fbff64a9093 HEAD@{471}: rebase (pick): * Remove lots of
> unnecesary #includes
> +fa24fc193248 HEAD@{472}: rebase (pick): * Remove lots of annoying
> extra #includes
> +4a1115871ab1 HEAD@{473}: rebase (pick): * Add tag so emacs knows
> it's a c++ file
> +aa1f51a47db4 HEAD@{474}: rebase (pick): Add tags so emacs knows
> these are C++ files
> +66cdfde08ddd HEAD@{475}: rebase (pick): Remove extra space
> +df7b57cb2016 HEAD@{476}: rebase (pick): Remove
> ReversePostOrderTraversal declaration
> +e182a70686df HEAD@{477}: rebase (pick): * Don't predefine
> ReversePostOrderTraversal because it adds a dependence on vector
> +a7b751de9148 HEAD@{478}: rebase (pick): Check opaque, abstract,
> and recursive type handling
> +f65fc4c4b0ca HEAD@{479}: rebase (pick): NEw file
> +f5797eee291e HEAD@{480}: rebase (pick): Moved functionality into
> the other constant pool stuff
> +c317aff403de HEAD@{481}: rebase (pick): Follow the golden rule of
> the coding standards guide: Make the code look
> +228b2301a5b8 HEAD@{482}: rebase (pick): The header file for a
> translation unit should always be included first
> +ec28d6b33de6 HEAD@{483}: rebase (pick): A file should always
> include it's private header file *FIRST* see the
> +a4fd66e4bb44 HEAD@{484}: rebase (pick): Constant pool is
> eliminated
> +895e8966aaf7 HEAD@{485}: rebase (pick): Add support for iteration
> through type graphs
> +1bc1a1e55811 HEAD@{486}: rebase (pick): Remove support for const
> pool merging, which is obsolete now.
> +1f68aecd491b HEAD@{487}: rebase (pick): Annotations are now const
> +aa592d53a869 HEAD@{488}: rebase (pick): Build lli first
> +a7352c105c5a HEAD@{489}: rebase (pick): Symboltables are sorted
> in the bytecode, so no problems here!
> +5fdc17bb41c2 HEAD@{490}: rebase (pick): Cleanup
> +98cf8e526cfc HEAD@{491}: rebase (pick): Support abstract types
> +e64122141c47 HEAD@{492}: rebase (pick): Support a abstract,
> opaque, and recursive types
> +299db7ad37f6 HEAD@{493}: rebase (pick): Types and constnats are
> wierd objects in the symtabs
> +391ecb41103e HEAD@{494}: rebase (pick): Modules must have a
> valid, nonnull type. Make them void
> +186d4233d066 HEAD@{495}: rebase (pick): Support new setName
> interface
> +7339777dc091 HEAD@{496}: rebase (pick): * Support new setname
> interface
> +ba310ef38dcf HEAD@{497}: rebase (pick): * Cnstants are now global
> objects
> +05ef1117f8d2 HEAD@{498}: rebase (pick): Support new setName itf
> +3d922776af3d HEAD@{499}: rebase (pick): Annotations are const
> objects now
> +3ad5e85b0e7c HEAD@{500}: rebase (pick): Types and constants are
> wierd things in symbol tables now
> +e95eeb238191 HEAD@{501}: rebase (pick): * Eliminate reference to
> ConstantPool class
> +69013e51442c HEAD@{502}: rebase (pick): Constant pool is dead
> +6aabf9bb8d09 HEAD@{503}: rebase (pick): Constants are now global
> unique objects
> +5eccfe8f4744 HEAD@{504}: rebase (pick): * Eliminate constant pool
> dependancies:
> +116bd1f60c7d HEAD@{505}: rebase (pick): * Supoprt global
> constants
> +719ec15e3bca HEAD@{506}: rebase (pick): * Support global
> constants
> +3e22e6fbc35c HEAD@{507}: rebase (pick): annotations are now const
> +94469c594e8f HEAD@{508}: rebase (pick): * Emit bytecode using a
> deque instead of a vector to be faster
> +cd31dfffe14a HEAD@{509}: rebase (pick): * Remove support for
> internal constant pool
> +0ccb4914c583 HEAD@{510}: rebase (pick): * Assembly writer is not
> a module analyzer anymore
> +81be60efae5b HEAD@{511}: rebase (pick): * Add support for forward
> referencing types
> +92f9faa8cd41 HEAD@{512}: rebase (pick): Add support for forward
> referencing types
> +7cb39bcc9b11 HEAD@{513}: rebase (pick): Add support for an opaque
> type
> +0cc953a4eb36 HEAD@{514}: rebase (pick): Remove #include of
> nonexistant header file
> +e659434201e7 HEAD@{515}: rebase (pick): * Slot calc is now
> simpler and not based on module analyzer.
> +d9953427123b HEAD@{516}: rebase (pick): Module analyzer no longer
> has to iterate over constant pool
> +59b2b4978c66 HEAD@{517}: rebase (pick): Simplify code by
> eliminating need to hang onto constant pool references
> +ca915a915738 HEAD@{518}: rebase (pick): * Fixed mapped_iterator
> to actually work with functors
> +db2d5ad6fc13 HEAD@{519}: rebase (pick): Constant pools no longer
> exist
> +e6503b4355e7 HEAD@{520}: rebase (pick): Eliminate
> DoConstantPoolMerging. ConstantPools no longer exist
> +8e819e87f9aa HEAD@{521}: rebase (pick): You no longer have to
> delete constants! They are located in a global
> +9e1456843e33 HEAD@{522}: rebase (pick): Annotations are now
> passed around as const objects
> +37781e4265d3 HEAD@{523}: rebase (pick): Use a deque instead of a
> vector for greater efficiency writing bytecode
> +68b52d48b8d2 HEAD@{524}: rebase (pick): Clean stuff up.
> +ef8df94e3aba HEAD@{525}: rebase (pick): Simplify SlotCalculator.
> SlotCalculator is now not a ModuleAnalyzer
> +220b450fb4a8 HEAD@{526}: rebase (pick): Simplify analyzer
> +435cda780cfc HEAD@{527}: rebase (pick): * Fix long standing
> problems that would affect inlining. How could this have worked?
> +0cb567d4d189 HEAD@{528}: rebase (pick): Add assertion to check
> for
> +e0ab1c69297f HEAD@{529}: rebase (pick): * Values are
> AbstactTypeUsers to support abstract types
> +16c83b3c1356 HEAD@{530}: rebase (pick): Remove extra whitespace
> at EOL
> +a2e45cbc6285 HEAD@{531}: rebase (pick): * Add support for Opaque
> & Abstract types.
> +875576a6650b HEAD@{532}: rebase (pick): Support abstract types by
> keeping on the use list of the abstract type.
> +70bc7b10091b HEAD@{533}: rebase (pick): SymTabValues no longer
> hold constant pools
> +c3d4689a42cb HEAD@{534}: rebase (pick): SymTabValue no longer
> includes ValueHolder for Module. Include it ourself
> +aefcbb9a7f94 HEAD@{535}: rebase (pick): * Support new setName
> interface
> +22059fea78a8 HEAD@{536}: rebase (pick): Support new setName
> interface
> +30dd0bdb5f35 HEAD@{537}: rebase (pick): * Add new DerivedType
> base class that goes between Type and the derived types
> +fb9e4e1fcdc4 HEAD@{538}: rebase (pick): Implement support for
> globally unique constants. Constants no longer live
> +924247d31d99 HEAD@{539}: rebase (pick): Add support for walking
> type graphs
> +fa3aa419ab9f HEAD@{540}: rebase (pick): Changing setName
> semantics
> +38d0897ea620 HEAD@{541}: rebase (pick): Make annotations
> operations const with a mutable annotation list so that
> +59216be202de HEAD@{542}: rebase (pick): Fixed the "output
> constant pool even if he have no constants" issue
> +ab906331394b HEAD@{543}: rebase (pick): whoo hoo I did something!
> :)
> +628ad7914f58 HEAD@{544}: rebase (pick): Make fib be more real
> +e5ad7ea67698 HEAD@{545}: rebase (pick): *** empty log message ***
> +147dbdd611ae HEAD@{546}: rebase (pick): *** empty log message ***
> +07a717031897 HEAD@{547}: rebase (pick): Added directory LiveVar/
> +2b9d47fba512 HEAD@{548}: rebase (pick): Makefile for tools/tests/
> +ef1302a7da62 HEAD@{549}: rebase (pick): Driver to test
> IsPowerOf2. Could be extended for other library routines.
> +eb98e995c108 HEAD@{550}: rebase (pick): Add testcodegen target,
> and restrict which tests are run for it.
> +8e434f5bede3 HEAD@{551}: rebase (pick): Added nonterminals for
> arithmetic operations where one operand is constant.
> +8846488b12e7 HEAD@{552}: rebase (pick): Changed link line.
> +b9204403813b HEAD@{553}: rebase (pick): Add calls to
> NormalizeMethod() and to ScheduleInstructionsWithSSA().
> +ad0b73970f13 HEAD@{554}: rebase (pick): Makefile for InstrSched/
> +03d07894e506 HEAD@{555}: rebase (pick): Remove source list.
> +bf1f10e707bf HEAD@{556}: rebase (pick): Added directory
> InstrSched.
> +db25e211611a HEAD@{557}: rebase (pick): Major changes too hard to
> document :-)
> +6195f94883e7 HEAD@{558}: rebase (pick): Added function
> MachineInstr::operandIsDefined(i) and decl for
> +4aa6182a26f1 HEAD@{559}: rebase (pick): Extensive additions for
> supporting instruction scheduling.
> +21aba4339c60 HEAD@{560}: rebase (pick): Added class
> MachineSchedInfo and several supporting classes
> +d0513476dc87 HEAD@{561}: rebase (pick): Implementation of
> instruction scheduling for LLVM.
> +3222a43515d4 HEAD@{562}: rebase (pick): Class that encapsulates
> priority heuristics for instruction scheduling.
> +a3bb9d7ef0f4 HEAD@{563}: rebase (pick): Scheduling DAG for
> instruction scheduling. Currently for a single basic block.
> +f4be165ab676 HEAD@{564}: rebase (pick): Moved debug options
> declaration to header file, and moved
> +f914ba215bc2 HEAD@{565}: rebase (pick): Moved function
> PrintMachineInstructions here.
> +fb1a19d9a411 HEAD@{566}: rebase (pick): analyze() now checks to
> see that we don't analyze the same method twice.
> +9e8f74af6ec5 HEAD@{567}: rebase (pick): *** empty log message ***
> +3a2656af412d HEAD@{568}: rebase (pick): Simplification
> transformations to normalize the code for later passes.
> +bbb02c1d7c9b HEAD@{569}: rebase (pick): Use const int instead of
> #define.
> +d0b683357562 HEAD@{570}: rebase (pick): Add copy and assignment
> operators for POIterator, and
> +9f98fb5b9284 HEAD@{571}: rebase (pick): Added InstrSched library
> to link line.
> +dac45308ccd6 HEAD@{572}: rebase (pick): I suck
> +ff67dcc22be0 HEAD@{573}: rebase (pick): Initial checkin of
> TargetData code
> +8472822ff914 HEAD@{574}: rebase (pick): Remove target specific
> stuff from Type classes
> +13bd108c03e0 HEAD@{575}: rebase (pick): Remove target specific
> method from MemAccessInst class
> +2771054dbf3e HEAD@{576}: rebase (pick): Convert to use the new
> factored out TargetData class
> +ddadbddb187b HEAD@{577}: rebase (pick): Factor code out to the
> TargetData class
> +3e08de6cee86 HEAD@{578}: rebase (pick): Use the new TargetData
> class to factor out some of the shared code
> +729c3d47e91e HEAD@{579}: rebase (pick): Remove target specific
> method.
> +5ca1a2bcbc44 HEAD@{580}: rebase (pick): Remove target specific
> code, move to TargetData.cpp file
> +7cd798c969a4 HEAD@{581}: rebase (pick): Support passing a data
> pointer to annotation factory methods
> +3b3efaeeaf76 HEAD@{582}: rebase (pick): Demolish explicit source
> list
> +1afbb4027fae HEAD@{583}: rebase (pick): Extend annotations to
> pass data pointers around to the functions
> +74782cb4a340 HEAD@{584}: rebase (pick): Add another TODO: sigh
> +ab8c3000e11e HEAD@{585}: rebase (pick): Lots of new functionality
> +a9a8941bb775 HEAD@{586}: rebase (pick): Remove explicit source
> list
> +f011d42626b3 HEAD@{587}: rebase (pick): Add dependence to
> libvmcore.
> +37c91bae4bcd HEAD@{588}: rebase (pick): Make sure noone branches
> to the entry node of the method
> +ee0ddad61d01 HEAD@{589}: rebase (pick): Compile LLI
> +d34454f43919 HEAD@{590}: rebase (pick): Rename start methods to
> main so interpreter works easier
> +44dfadcd4a33 HEAD@{591}: rebase (pick): Add annotation support
> +03d42fd345d1 HEAD@{592}: rebase (pick): Handle case where there
> is no exit node from a flowgraph
> +6c329f4eaed8 HEAD@{593}: rebase (pick): Changed an assertion
> message
> +350d117dbdd5 HEAD@{594}: rebase (pick): Add annotation support to
> value
> +311767f056af HEAD@{595}: rebase (pick): * Add assertions
> +55c6be031f13 HEAD@{596}: rebase (pick): Initial checkin of
> interpreter
> +3fdb0df0b0b2 HEAD@{597}: rebase (pick): LV code on machine
> instructions
> +19e88d249e25 HEAD@{598}: rebase (pick): LV info on machine
> instructions
> +b1dfaf6145ab HEAD@{599}: rebase (pick): Corrected the compilation
> error by making the ValOperator class a friend of
> +3059c0b24b7c HEAD@{600}: rebase (pick): Always set isDef for
> operand in position resultPos.
> +081ab0fa9e0f HEAD@{601}: rebase (pick): Changed SetMachineOpernad
> calls in Set3OperandsFromInstr so that the
> +6be8772e0463 HEAD@{602}: rebase (pick): Changed case 64 to make
> the first arg of phi a defintion
> +abc698370478 HEAD@{603}: rebase (pick): Can't use ref to stack
> value!
> +56e7b4262d3e HEAD@{604}: rebase (pick): Needed old conditions as
> well as new in skipToNextVal()!
> +2b2d58164051 HEAD@{605}: rebase (pick): Bug fix in ValOpIterator:
> not moving past operand with NULL Value.
> +4a1a05bc1473 HEAD@{606}: rebase (pick): *** empty log message ***
> +32525540235d HEAD@{607}: rebase (pick): added a default isDef arg
> to SetMachineOperand method - Ruchira
> +ac7c6045f846 HEAD@{608}: rebase (pick): Added isDef field to
> MachineOperand class - Ruchira
> +f0942ac597e7 HEAD@{609}: rebase (pick): Add CC operand as 4th
> operand of SUBcc, and mark it as a def.
> +9568ebd1a049 HEAD@{610}: rebase (pick): Use extra operand for
> instructions that set a CC register that
> +17d5bdb8c5dc HEAD@{611}: rebase (pick): Also, move burg rule to
> Makefile.common.
> +5efe6ec39c6f HEAD@{612}: rebase (pick): And add rule to create a
> .cpp source file from burg input file!
> +5b8a3ae17209 HEAD@{613}: rebase (pick): Better still, lets move
> pathname for Burg to Makefile.common.
> +415c589a5b97 HEAD@{614}: rebase (pick): Add path and options for
> burg.
> +15a90d21c83f HEAD@{615}: rebase (pick): Use full pathname for
> burg.
> +044f893ad519 HEAD@{616}: rebase (pick): Allow numOperands of -1
> for variable #operands.
> +6b7eebde250d HEAD@{617}: rebase (pick): Simplify command line
> options, and add option for printing
> +5ac12a3af462 HEAD@{618}: rebase (pick): Had used the wrong
> option.
> +27df4e0f0c54 HEAD@{619}: rebase (pick): Added tree nodes for Phi
> instructions.
> +3d470f658f50 HEAD@{620}: rebase (pick): Generate tree nodes for
> Phi instructions.
> +5745231c1ee0 HEAD@{621}: rebase (pick): Allow machine
> instructions with variable numbers of arguments.
> +3de046767b96 HEAD@{622}: rebase (pick): Added dummy Phi
> instruction.
> +7df9d89320cb HEAD@{623}: rebase (pick): Generate dummy Phi
> machine instruction, plus a bug fix for BrCond(boolreg).
> +371350759bd5 HEAD@{624}: rebase (pick): Added support for testing
> instruction selection on all but 2 tests.
> +09c28c22fde1 HEAD@{625}: rebase (pick): Added class
> MachineCodeForBasicBlock.
> +ee4ef4ffe10c HEAD@{626}: rebase (pick): Record machine
> instructions in the vector for each basic block.
> +75e6a0432e3b HEAD@{627}: rebase (pick): Added vector of machine
> instructions for the basic block.
> +6c523d7b3a45 HEAD@{628}: rebase (pick): New test cases
> +a991e5fcc19d HEAD@{629}: rebase (pick): Remove some gross stuff
> +33162a8d8802 HEAD@{630}: rebase (pick): Allow vararg method types
> with 0 fixed types
> +18a61fcb43a4 HEAD@{631}: rebase (pick): Make error msg nicer
> +c3e2fe5af54b HEAD@{632}: rebase (pick): Enable the elimination of
> method prototypes that are not referenced
> +8fb736efbcdd HEAD@{633}: rebase (pick): * Make sure that the size
> of the type field can also control the output
> +a9dab08596d3 HEAD@{634}: rebase (pick): * Add calls to failure
> template so that it is actually possible to debug
> +077a425d4516 HEAD@{635}: rebase (pick): * Fix bugs
> +03c4f8933762 HEAD@{636}: rebase (pick): * Enable the use of
> escaped literal strings
> +934c4b501a22 HEAD@{637}: rebase (pick): Modify var names to make
> it apparant that the code is really generic
> +0a587153f15f HEAD@{638}: rebase (pick): Changes to make test
> scripts more reliable
> +e67cf2e7e23d HEAD@{639}: rebase (pick): Add test of string
> constants
> +c20b0ebc51c4 HEAD@{640}: rebase (pick): Added function
> printIndent.
> +841fdaf6e2f7 HEAD@{641}: rebase (pick): Added a pointer hash
> function object for use in pointer maps.
> +65fb5153e342 HEAD@{642}: rebase (pick): Make a function const.
> +0762b37e7677 HEAD@{643}: rebase (pick): Remove lib/LLC library.
> +cf6a5702c91e HEAD@{644}: rebase (pick): Added several SPARC
> instructions including conditional move and SETHI.
> +1fc9217c15ee HEAD@{645}: rebase (pick): Remove redundant and
> unused functions.
> +76b1285bfdc7 HEAD@{646}: rebase (pick): Added UltraSparcInstrInfo
> class to specialize class MachineInstrInfo.
> +6e560c22a4f9 HEAD@{647}: rebase (pick): Eliminate unused
> function.
> +5384b204a5da HEAD@{648}: rebase (pick): Bug fixes:
> +898348afb52d HEAD@{649}: rebase (pick): Added MachineInstrInfo
> class and moved instruction-related members there.
> +0c2462a079ed HEAD@{650}: rebase (pick): Eliminate separate enum
> for operand register type.
> +eac34ac45c71 HEAD@{651}: rebase (pick): Work around a few
> 'sorting issues' with the bytecode output that causes the bytecode
> +94e2da805ed4 HEAD@{652}: rebase (pick): Don't write out constants
> that do not have a name, they will be inlined.
> +0fb64b07f943 HEAD@{653}: rebase (pick): Refactor some of the
> constant stuff so that we can return complex constant
> +ad7945a175d6 HEAD@{654}: rebase (pick): Add an arg to insertVal
> to allow us to prevent builtin types from being ignored
> +fe70c81141d7 HEAD@{655}: rebase (pick): Add an arg to insertVal
> to allow us to prevent builtin types from being ignored
> +f2a10b61e2a7 HEAD@{656}: rebase (pick): New test for varargs
> functions
> +d7f49ed443ab HEAD@{657}: rebase (pick): Add library dep
> +fd413193db44 HEAD@{658}: rebase (pick): Parenthesize output for
> expranalyze so that pointer stuff being multiplied isn't confusing
> +88bb8ebe01fd HEAD@{659}: rebase (pick): Build as before dis
> +392cb8a9804a HEAD@{660}: rebase (pick): Add support for extern
> varargs methods & varargs method calls
> +89cb2de0eeac HEAD@{661}: rebase (pick): Add support for extern
> varargs methods & varargs method calls
> +aad7190b6bea HEAD@{662}: rebase (pick): Fix a bug when compiling
> 'shl ubyte * %var, ubyte 2'
> +b5d668969e65 HEAD@{663}: rebase (pick): Filter out noncore stuff
> +36123a777b5e HEAD@{664}: rebase (pick): Fixed a bug exposed when
> doing something like this: <program> -notanoption --help
> +a9622c681ad6 HEAD@{665}: rebase (pick): Changed printValue() to
> print constant value if the value is a constant.
> +bb2db6c88f8a HEAD@{666}: rebase (pick): *** empty log message ***
> +8d83c40582cc HEAD@{667}: rebase (pick): Doh! Wrong Optional flag.
> :(
> +a6c90bf6ee4c HEAD@{668}: rebase (pick): Add a comment indicating
> that there is documentation of the library
> +a98afe4b0579 HEAD@{669}: rebase (pick): Initial checking of some
> rough documentation for commandline library
> +48fca76a95a8 HEAD@{670}: rebase (pick): Change option name
> slightly
> +f62a2f2be6a9 HEAD@{671}: rebase (pick): Minor changes to
> implementation of CommandLine library to let users override
> +6c74f799d80b HEAD@{672}: rebase (pick): Add a missing </a> tag
> +026bec7cf715 HEAD@{673}: rebase (pick): Use the new Alias command
> line option
> +d2ec898cfb0e HEAD@{674}: rebase (pick): CommandLine library
> cleanup. No longer use getValue/setValue, instead, just treat the
> commandline
> +f74319d29b56 HEAD@{675}: rebase (pick): Doh! Wrong accessor.
> Caused 'can not read bytecode' errors. :(
> +104c6f0c01f6 HEAD@{676}: rebase (pick): -help is verbose enough
> that we don't need this anymore
> +b0dcda34759b HEAD@{677}: rebase (pick): Eliminated the Unique
> class in favor of NonCopyable and NonCopyableV
> +ec8abea1c777 HEAD@{678}: rebase (pick): Moved inline/llvm/Tools/*
> to include/llvm/Support/*
> +f434f8970fdd HEAD@{679}: rebase (pick): Initial checkin
> +bd177131a770 HEAD@{680}: rebase (pick): Fix coding style issues
> to actually attempt to be somewhat uniform
> +f4c632fabc9b HEAD@{681}: rebase (pick): Nonpolymorphic class,
> doesn't need a virtual dtor!
> +7bc807e14176 HEAD@{682}: rebase (pick): Clean up hash table usage
> +efe8c7aa1cf0 HEAD@{683}: rebase (pick): Removal of the redundant
> CompileContext wrapper
> +b099c14cc8ba HEAD@{684}: rebase (pick): Verbosify descriptions
> +b72d002be10f HEAD@{685}: rebase (pick): Large scale changes to
> implement new command line argument facility
> +23381cd5b5a1 HEAD@{686}: rebase (pick): Remove dependence on
> command line library. Silly anyway.
> +4ee192c0ff7a HEAD@{687}: rebase (pick): Make it pickier
> +442f68038647 HEAD@{688}: rebase (pick): Add flag for emacs so it
> realizes it's C++ code
> +99c4af7c6b12 HEAD@{689}: rebase (pick): New test case
> +01ef66c762bb HEAD@{690}: rebase (pick): Privatize LLCOptions. It
> had no business being visible to the entire
> +b18d26deb43d HEAD@{691}: rebase (pick): Move private header into
> private directory
> +57cb798a4677 HEAD@{692}: rebase (pick): Convert from using C
> style char*'s to strings.
> +144db6c30c7a HEAD@{693}: rebase (pick): Remove String file some
> more
> +78fc43ff73cb HEAD@{694}: rebase (pick): Remove stringutils.h file
> +3b9829cf7645 HEAD@{695}: rebase (pick): Destroy the StringUtils.h
> file
> +a1f7c42bcb01 HEAD@{696}: rebase (pick): Eliminate lots of
> unnecessary #includes and forward decls
> +f5e75c7e705d HEAD@{697}: rebase (pick): Eliminate many
> unneccesary #includes
> +1aa17f3bb25c HEAD@{698}: rebase (pick): Make code fit in 80
> columns more
> +b95c07e35c7f HEAD@{699}: rebase (pick): Remove unneccesary
> #includes
> +5381f682dd30 HEAD@{700}: rebase (pick): Exterminate nasty Cisms
> +11f554634433 HEAD@{701}: rebase (pick): Refer to
> include/llvm/CodeGen not Codegen
> +d2e18d70c558 HEAD@{702}: rebase (pick): Instructions for use
> +34e368c59b5b HEAD@{703}: rebase (pick): Make sure we build all of
> the code!
> +f0d858ed34f1 HEAD@{704}: rebase (pick): Renamed
> include/llvm/Codegen to include/llvm/CodeGen
> +6c8ccac2de98 HEAD@{705}: rebase (pick): Fix code to be in a
> consistent style
> +c267a7d71c7b HEAD@{706}: rebase (pick): More minor
> reorganizations
> +51777d7f1b52 HEAD@{707}: rebase (pick): Remove
> getTempValuesForMachineCode from the Instruction interface
> +21be61506817 HEAD@{708}: rebase (pick): Filter out the
> sparc.burm.c file
> +ef91903bfcbf HEAD@{709}: rebase (pick): Moved LLC subdir to the
> tools top level directory
> +0e90eb4b6eb7 HEAD@{710}: rebase (pick): Make the makefile work
> +345e38ed07ac HEAD@{711}: rebase (pick): Add new ctor for
> ConstPoolBool
> +9d9614205cf1 HEAD@{712}: rebase (pick): Add new constructor for
> const pool bool
> +363bdd9a0676 HEAD@{713}: rebase (pick): Add support for casts
> +7fd6dcb064ef HEAD@{714}: rebase (pick): Add support for casting
> operators
> +61f218f640e2 HEAD@{715}: rebase (pick): Support changed
> expression api
> +0d64b2ba0a9c HEAD@{716}: rebase (pick): More functionality,
> renamed API
> +df5dbc8e3949 HEAD@{717}: rebase (pick): Moved isIntegral to the
> Type system
> +a61ce81cc4d8 HEAD@{718}: rebase (pick): Autodep functionality
> broken. Remove so we get successful builds
> +148b96074cee HEAD@{719}: rebase (pick): Version of testmemory to
> test alloca, load and store.
> +5153d313b0ce HEAD@{720}: rebase (pick): Used a bigger constant in
> loopfunc.ll that doesn't fit in immed field.
> +36eb43e26456 HEAD@{721}: rebase (pick): Utility routines for
> simpler access to the value of an integer constant.
> +e31cf51c03a4 HEAD@{722}: rebase (pick): Program options class.
> +2339d0cf578d HEAD@{723}: rebase (pick): Driver and options for
> the llc compiler.
> +03cdc0b1bceb HEAD@{724}: rebase (pick): Description of the SPARC
> as a target architecture.
> +dd4b4355c99d HEAD@{725}: rebase (pick): Base clas for a
> description of a target architecture.
> +8a2e2fbd50e6 HEAD@{726}: rebase (pick): Instruction selection via
> pattern matching on instruction trees using BURG.
> +fea7ff57c801 HEAD@{727}: rebase (pick): *** empty log message ***
> +fae069f4e36b HEAD@{728}: rebase (pick): Added CodeGen, LLC, and
> Support.
> +24812650a87f HEAD@{729}: rebase (pick): General support utilities
> like a program options class and a StringMap
> +7c52e8197cf9 HEAD@{730}: rebase (pick): CompileContext and
> options class for the llc compiler.
> +aed61d90db66 HEAD@{731}: rebase (pick): Header files for the
> target architecture description and for instruction
> +82015f75875f HEAD@{732}: rebase (pick): Added support for getting
> the dependence of an executable on its libs,
> +70d2dc737e0b HEAD@{733}: rebase (pick): Add isIntegral() method
> to SignedIntType and UnsignedIntType.
> +c7371d8afb38 HEAD@{734}: rebase (pick): Provide simpler ways to
> extract the value of an integer constant.
> +15e79bcb6e4b HEAD@{735}: rebase (pick): Compute and cache
> information about the storage size and layout
> +6b94be0fa4af HEAD@{736}: rebase (pick): Provide uniform access to
> the pointer operand and to the index
> +2010845c92f1 HEAD@{737}: rebase (pick): Added a representation of
> the machine instructions generated
> +213160e0bb9f HEAD@{738}: rebase (pick): Start of expression
> analysis support
> +9250c349b550 HEAD@{739}: rebase (pick): Header to raise and lower
> representation
> +56dbc9359f2b HEAD@{740}: rebase (pick): Add support to call
> LevelRaise
> +6ffd08afd81c HEAD@{741}: rebase (pick): Update makefile for more
> accurate deps
> +f2df47febf1b HEAD@{742}: rebase (pick): Implement
> ensureTypeAvailable
> +e06171c5109f HEAD@{743}: rebase (pick): Add support for constant
> propogation of multiplies
> +ec9be9e818a5 HEAD@{744}: rebase (pick): Factor out
> WriteAsOperand.
> +4bef44e0adfc HEAD@{745}: rebase (pick): Add a comment.
> +f012589e78ed HEAD@{746}: rebase (pick): Add multiply as a
> supported constant propogation operation
> +643641cb450c HEAD@{747}: rebase (pick): New function:
> WriteAsOperand.
> +80470d72e903 HEAD@{748}: rebase (pick): Add new base class
> ConstPoolInt, useful for dealing with integral constants
> +7a5ca318dfe7 HEAD@{749}: rebase (pick): Add new method,
> ensureTypeAvailable
> +9abf2d95c339 HEAD@{750}: rebase (pick): Change is*Type to be a
> casting convertion operator
> +a7a79aafa026 HEAD@{751}: rebase (pick): Add an function to
> BinaryOperator to swap the two operands
> +f8bb46fb137c HEAD@{752}: rebase (pick): Add short forms of the
> get*Type methods.
> +9dbc6bb6b44d HEAD@{753}: rebase (pick): Fix nasty typo
> +d59d2aa4a97e HEAD@{754}: rebase (pick): Fix clean target
> +bf1c55b14525 HEAD@{755}: rebase (pick): Compile source files in
> alphabetical order
> +02990b116ef2 HEAD@{756}: rebase (pick): Fixed typo in comment
> +f5b88528d736 HEAD@{757}: rebase (pick): Support external methods
> +643d6d93c309 HEAD@{758}: rebase (pick): New test case for
> prototype support
> +12bb537e90da HEAD@{759}: rebase (pick): Reordered link line for
> correct static linking.
> +903f9efa3f84 HEAD@{760}: rebase (pick): Changed default to
> building library archives instead of shared objects.
> +aabc8315f101 HEAD@{761}: rebase (pick): Implement
> forward/external declarations for methods.
> +64e2c4726aa8 HEAD@{762}: rebase (pick): Implement
> forward/external declarations for methods. Also, emit an error if a method
> +a2be53991d96 HEAD@{763}: rebase (pick): Rename 'isMethodExternal'
> to 'isExternal'
> +af58b501dadf HEAD@{764}: rebase (pick): Add notes on instruction
> selection pass
> +3be6a7da5434 HEAD@{765}: rebase (pick): New testcase from GCC
> doing array operations
> +5702913064a2 HEAD@{766}: rebase (pick): Add support for assembly
> printing fp constants
> +05c8093e0529 HEAD@{767}: rebase (pick): Add support to the
> bytecode writer to recognize floating point constants
> +55f91192bf7c HEAD@{768}: rebase (pick): Add support to the
> bytecode reader to recognize floating point constants
> +828ae092b096 HEAD@{769}: rebase (pick): Add support to the parser
> to recognize floating point constants
> +9d78fb9b25fa HEAD@{770}: rebase (pick): Add a function to convert
> a double to a string
> +d25973d16cd9 HEAD@{771}: rebase (pick): Add support to write and
> read a fixed amount of raw data
> +c35d12757fd4 HEAD@{772}: rebase (pick): Add a note
> +94c6d03b6c82 HEAD@{773}: rebase (pick): * ValueHolder now takes 3
> arguments
> +67b11a5bd739 HEAD@{774}: rebase (pick): Add knowledge about the
> struct form of the GetElementPtr instruction
> +06adb0b2ab08 HEAD@{775}: rebase (pick): Remove dependency on the
> structure of ValueHolder.
> +0559fb6b55e4 HEAD@{776}: rebase (pick): * The parent of a
> constant pool is a symtabvalue, not a value.
> +fb6d8d18898e HEAD@{777}: rebase (pick): The parent of a constant
> pool is a symtabvalue, not a value.
> +c20531f12219 HEAD@{778}: rebase (pick): Added some comments,
> preparing to add global variables and method prototypes
> +39fae71357a5 HEAD@{779}: rebase (pick): * The parent of a
> constant pool is a SymTabValue, not a value.
> +e3812fad3a2d HEAD@{780}: rebase (pick): Made the following
> changes:
> +c6df40cee22e HEAD@{781}: rebase (pick): Added more todo's. Don't
> I ever accomplish anything?
> +6ee823f32e3d HEAD@{782}: rebase (pick): Add DebugValue member.
> +c8281fb7bdfe HEAD@{783}: rebase (pick): Made it not inline
> +e0c85017da0a HEAD@{784}: rebase (pick): Add DebugValue global
> function
> +a93311112bbc HEAD@{785}: rebase (pick): Don't clean out the type
> plane of the constant pool... this is a hack. FIXME
> +97add160370e HEAD@{786}: rebase (pick): Make sure that types go
> in the constant pool if they are used.
> +3f0bab207223 HEAD@{787}: rebase (pick): hasSideEffects should be
> marked virtual
> +08fc7cf1be14 HEAD@{788}: rebase (pick): Modify notes
> +96f249a20298 HEAD@{789}: rebase (pick): Fix stupid typo
> +c874f2e554d5 HEAD@{790}: rebase (pick): Initial checkin of coding
> standards
> +c0abd659a4e3 HEAD@{791}: rebase (pick): Updated documentation for
> load, store & getelementptr
> +8ff1023c5729 HEAD@{792}: rebase (pick): add coverage of newly
> implemented instructions.
> +87ad59d49e91 HEAD@{793}: rebase (pick): Implementation of Store &
> GetElementPtr
> +2b2b55bdec44 HEAD@{794}: rebase (pick): Implement checking for
> new instructions
> +4fb6aa4a9e7a HEAD@{795}: rebase (pick): Add note
> +e9d048cd6792 HEAD@{796}: rebase (pick): Implemented shl, shl, &
> load instructions
> +5833b72ec4b1 HEAD@{797}: rebase (pick): Moved Cast from being a
> Unary instruction to being an "Other" instruction
> +6b062514ff40 HEAD@{798}: rebase (pick): Use the CDG to mark
> branches alive on demand.
> +3005d00fa8dd HEAD@{799}: rebase (pick): Add a new "addOperand"
> method to User.
> +4cb53fdaeffb HEAD@{800}: rebase (pick): Fixed post dominator
> frontiers! Yaay!
> +aa86a73a5bec HEAD@{801}: rebase (pick): Neg instruction removed.
> Cast instruction implemented.
> +842d6e099476 HEAD@{802}: rebase (pick): Neg instruction removed.
> TODO item fulfilled.
> +7550203543d2 HEAD@{803}: rebase (pick): Removing unnecesary file
> +6c99b25c3bd8 HEAD@{804}: rebase (pick): Convert BinaryOperand and
> UnaryOperator to only take instruction types of
> +eea771ae35ce HEAD@{805}: rebase (pick): Broad superficial
> changes:
> +8b0f42aa64c1 HEAD@{806}: rebase (pick): Devirtualize
> User::dropAllReferences
> +b6af5d386268 HEAD@{807}: rebase (pick): Remove dtor's that simply
> call dropAllReferences
> +70707b9adf64 HEAD@{808}: rebase (pick): Changed the fundemental
> architecture of Operands for Instructions. Now
> +bc4bfa70b8e0 HEAD@{809}: rebase (pick): Changed memory reference
> instructions to store the result as the implicit
> +dd91a3d2d9e7 HEAD@{810}: rebase (pick): Fixed some error messages
> to be nicer
> +7f723d15a495 HEAD@{811}: rebase (pick): Add note about nuking
> Instruction::neg
> +a75385aa3c2e HEAD@{812}: rebase (pick): Initial checkin
> +93634e0499a7 HEAD@{813}: rebase (pick): Add better support for
> post dominator information.
> +0528ba902343 HEAD@{814}: rebase (pick): Add method to unify all
> exit nodes of a method
> +947db1d96a4f HEAD@{815}: rebase (pick): Implement support for
> postdominators, except in dom frontiers
> +a534bd635e5e HEAD@{816}: rebase (pick): New file, includes method
> to merge exit nodes together
> +9996c4da5186 HEAD@{817}: rebase (pick): * Add a DominatorBase
> base class to maintain root of Dominator info
> +042a9c01050d HEAD@{818}: rebase (pick): * Added comments
> +b30075f1d1b2 HEAD@{819}: rebase (pick): Update to include right
> file
> +b655a756d6a9 HEAD@{820}: rebase (pick): Initial checkin of
> analyze tool.
> +2c1174ab6df2 HEAD@{821}: rebase (pick): Build new analyze tool
> +8350bbd20ae5 HEAD@{822}: rebase (pick): Added analyze to path for
> SetupOpt script
> +c705cdc36c17 HEAD@{823}: rebase (pick): Add analyze tool to path
> for Setup script
> +b18d4fae85b6 HEAD@{824}: rebase (pick): IntervalPartition was
> changed to inherit from vector<Interval*> instead of
> +743ecc7f0095 HEAD@{825}: rebase (pick): IntervalPartition was
> changed to inherit from vector<Interval*> instead of
> +f95290eba1c4 HEAD@{826}: rebase (pick): *** empty log message ***
> +39b38db21649 HEAD@{827}: rebase (pick): Checkin of new Analysis
> result printing header
> +c16998cb96e5 HEAD@{828}: rebase (pick): Code got moved from the
> lib/Assembly/Writer/IntervalWriter.cpp file to
> +49090bf698f5 HEAD@{829}: rebase (pick): Remove code for printing
> out Analysis data structures. It got moved
> +2149e63cb883 HEAD@{830}: rebase (pick): Update documentation a
> bit, correct #include guard
> +b048f8d4a4b3 HEAD@{831}: rebase (pick): Add note about tool idea.
> Change command line of note to be more specific
> +62e192f9ef8f HEAD@{832}: rebase (pick): Add printing code for
> dominator info
> +5630a5fac34d HEAD@{833}: rebase (pick): Checkin of new dominator
> calculation routines. These will be improved in
> +ee98cbc6c810 HEAD@{834}: rebase (pick): Enable printing of
> dominator related information.
> +889fa47ccf94 HEAD@{835}: rebase (pick): Add new anaysis routines
> for building dominator related information
> +98e49f4ca414 HEAD@{836}: rebase (pick): Addition of 'deleter'
> function.
> +bac6bb0ae065 HEAD@{837}: rebase (pick): Moved deleter to
> include/llvm/Tools/STLExtras.h
> +de19f162cc14 HEAD@{838}: rebase (pick): Initial checkin. Should
> print dead instructions, except it doesn't do
> +4fb09389a03b HEAD@{839}: rebase (pick): Include ADCE pass, rename
> include/Opt directory to llvm/Optimizations
> +d56c334ebb78 HEAD@{840}: rebase (pick): Rename
> DoSparseConditionalConstantProp -> DoSCCP
> +d8c1f57237a1 HEAD@{841}: rebase (pick): Add note
> +c355930e34c8 HEAD@{842}: rebase (pick): Add prototypes for ADCE
> pass
> +a9aaeed69342 HEAD@{843}: rebase (pick): Rename
> DoSparseConditionalConstantProp to DoSCCP
> +82abf7e9b6fa HEAD@{844}: rebase (pick): Optimizations got their
> own header files
> +c49280c35c8a HEAD@{845}: rebase (pick): Implement reduceApply
> method
> +512b32b42708 HEAD@{846}: rebase (pick): Add a new pop_back()
> method
> +c2d246ce3e77 HEAD@{847}: rebase (pick): The ConstRules class got
> moved to the opt namespace
> +6167d0001fe5 HEAD@{848}: rebase (pick): Add a reduceApply method
> +d78e27809d32 HEAD@{849}: rebase (pick): Split AllOpts.h into lots
> of little .h files.
> +0963fce4a854 HEAD@{850}: rebase (pick): Export
> ConstantFoldTerminator, allow it to fold conditional branches to
> +849231387470 HEAD@{851}: rebase (pick): Added documentation.
> Constant fold terminators.
> +6ff2d0ae85ce HEAD@{852}: rebase (pick): Added prototype for
> ConstantFoldTerminator
> +6fe27ce22949 HEAD@{853}: rebase (pick): Add a check to avoid
> allowing V->replaceAllUsesWith(V)
> +3f6c78a176e1 HEAD@{854}: rebase (pick): Add implementation of
> BasicBlock::removePredecessor code that was factored
> +ba8f2c1f6a6f HEAD@{855}: rebase (pick): * Factored
> RemovePredecessorFromBlock into BasicBlock::removePredecessor
> +b0e4bdf5d6d0 HEAD@{856}: rebase (pick): We need to make sure to
> remove PHI nodes in the successor that cannot be
> +ca8d6d3dd907 HEAD@{857}: rebase (pick): Added a note about a new
> verification the verifier should do
> +0686d990fbf0 HEAD@{858}: rebase (pick): Added new
> removePredecessor method prototype
> +8930ec2756c1 HEAD@{859}: rebase (pick): Added note, moved note
> +6109478c092c HEAD@{860}: rebase (pick): Fixed the obnoxious
> problem that caused an entire directory to rebuild
> +f2eab63950b5 HEAD@{861}: rebase (pick): Miscellaneous cleanups:
> +63286b72d223 HEAD@{862}: rebase (pick): Add a new Sparse
> Conditional Constant Propogation pass
> +324c5dcc9d82 HEAD@{863}: rebase (pick): Add command line
> arguments for Constant Pool Merging & Sparse Conditional Constant Prop
> +b412bc074f36 HEAD@{864}: rebase (pick): Put in test of SCCP.
> Watch out though, because we need to sort the
> +b4bb71fd0f0d HEAD@{865}: rebase (pick): Change to use the new
> GenericBinaryInst class. Support lots more operators.
> +b00b3f2b682d HEAD@{866}: rebase (pick): Misc cleanup
> +540c4ae24c8e HEAD@{867}: rebase (pick): * Expose
> DoConstantPoolMerging
> +955a4d740cb4 HEAD@{868}: rebase (pick): Convert ugly
> postincrement to efficient preincrement
> +1dacaa7057bf HEAD@{869}: rebase (pick): * Move stuff around a
> bit.
> +926791f1ca54 HEAD@{870}: rebase (pick): Add instructions to fold
> unary and binary instructions.
> +77090a9ae8e4 HEAD@{871}: rebase (pick): * Use the new
> reduce_apply_bool template
> +d564849afb96 HEAD@{872}: rebase (pick): getBasicBlocks() is not
> needed anymore for reading Method data
> +c9c6da3ca1f7 HEAD@{873}: rebase (pick): Added methods to make
> dealing with switches and branch instructions
> +5b8794782e8c HEAD@{874}: rebase (pick): Minor formating changes
> +259afbe701de HEAD@{875}: rebase (pick): Make a new
> GenericBinaryInst class, instead of providing lots of silly
> +f26fbe244a3c HEAD@{876}: rebase (pick): Convert postincrements to
> more efficient preincrements
> +a685acebd652 HEAD@{877}: rebase (pick): Add a new slew of
> functions to allow dynamic_cast<> like operation for
> +49e5848f7266 HEAD@{878}: rebase (pick): Add extra forwarding
> accessor methods so that getMethodList(), getBasicBlocks()
> +41a60e4b2e4f HEAD@{879}: rebase (pick): Add more notes
> +0f81680a2104 HEAD@{880}: rebase (pick): Filter out some more
> stuff
> +0bf0d89d693b HEAD@{881}: rebase (pick): Moved
> UnaryOperator::create to InstrTypes.cpp until there is an iUnaryOps.cpp
> +4d5a89c84cd7 HEAD@{882}: rebase (pick): Implement induction
> variable injection!
> +c463b997b86a HEAD@{883}: rebase (pick): Renamed get.*Operator to
> create seeing that it would have to be qualified
> +ef4669a3e67b HEAD@{884}: rebase (pick): * Rename get.*Operator to
> create seeing that it would have to be qualified
> +e51131d287ae HEAD@{885}: rebase (pick): A silly stupid test of
> the loop depth calculator was added. REMOVE in the
> +d06ca69a78ce HEAD@{886}: rebase (pick): IntervalPartition: recode
> to use IntervalIterator to do all the work
> +d2fd00e218cb HEAD@{887}: rebase (pick): Add a helper function
> bind_obj
> +7fc109749907 HEAD@{888}: rebase (pick): Big changes. Interval*.h
> is now more or less finalized. IntervalPartition
> +5848055f471b HEAD@{889}: rebase (pick): CFG.h: change the
> iterator tag
> +c1eafb1d07ab HEAD@{890}: rebase (pick): ValueHolder's aren't
> interseting to me anymore
> +b1abed97808e HEAD@{891}: rebase (pick): New file due to the
> Intervals.h splitup
> +0724b3e90091 HEAD@{892}: rebase (pick): New files due to the
> Intervals.h splitup
> +ba91baa363b7 HEAD@{893}: rebase (pick): Add a useless phi for
> testing with InductionVariables stuff
> +f916541417e3 HEAD@{894}: rebase (pick): #include a
> diff erent header due to Intervals.h splitting up
> +5329f8f73c86 HEAD@{895}: rebase (pick): IntervalPartition &
> IntervalIterator classes have been split out into
> +fbea208252f0 HEAD@{896}: rebase (pick): IntervalPartition &
> IntervalIterator classes have been split out into
> +d828c7706db9 HEAD@{897}: rebase (pick): Prepare for split between
> Interval, IntervalIterator, and IntervalIPartition
> +3b3d00dffb19 HEAD@{898}: rebase (pick): Addition of
> IntervalIterator. Preparing for rename of Intervals.h to
> +f948fd9866ee HEAD@{899}: rebase (pick): Added notes
> +d41887123b2e HEAD@{900}: rebase (pick): Implement a lot more
> functionality. Now loop invariant and linear
> +d9b7e634b62b HEAD@{901}: rebase (pick): Interval::HeaderNode is
> now accessed thorugh an accessor function
> +32f9e9270229 HEAD@{902}: rebase (pick): Add comments
> +a3eb9281f099 HEAD@{903}: rebase (pick): Add accessor methods to
> binary/unary operators
> +b03e9bf9c388 HEAD@{904}: rebase (pick): Add a space to the PHI
> node output code to make it look nicer
> +605e752f0429 HEAD@{905}: rebase (pick): Moved printing code to
> the Assembly/Writer library.
> +8d6f5b857ebb HEAD@{906}: rebase (pick): Implement the new
> Interval::isLoop method
> +bc792603f8b8 HEAD@{907}: rebase (pick): New header file defined
> with neeto utilities put in one place
> +3b59035da7ea HEAD@{908}: rebase (pick): Modified to use the new
> reduce_apply algorithm
> +58967efc5647 HEAD@{909}: rebase (pick): * Added capability to
> print out an interval
> +0246e25d77a6 HEAD@{910}: rebase (pick): * Added comments
> +f88d93ea7fac HEAD@{911}: rebase (pick): Add a test case: an
> irreducible flow graph.
> +d9d7c6d1179e HEAD@{912}: rebase (pick): Get rid of a silly
> printout that isn't needed right now
> +667d489ab2c9 HEAD@{913}: rebase (pick): Add note
> +7d9fb3ab2fe8 HEAD@{914}: rebase (pick): New test case
> +6cdff3cad3c3 HEAD@{915}: rebase (pick): Add capability to print a
> derived interval graph
> +7ac17927b805 HEAD@{916}: rebase (pick): Add capability to build a
> derived interval graph
> +56e38307935f HEAD@{917}: rebase (pick): Factor the
> predeclarations of the CFG.h functionality into a seperate, new header
> +ea614fef124f HEAD@{918}: rebase (pick): Initial Checking of
> Interval handling code
> +644acdbfe034 HEAD@{919}: rebase (pick): Add stub for induction
> variable code
> +0a9fdd55c1ca HEAD@{920}: rebase (pick): Add a more complex test
> case
> +92e26fb33e21 HEAD@{921}: rebase (pick): Add a test case for
> interval code
> +5a4847e078a6 HEAD@{922}: rebase (pick): Add an optimization stub
> +423d0a2d3762 HEAD@{923}: rebase (pick): New file: Interval
> analysis support
> +f0e51696b0f1 HEAD@{924}: rebase (pick): Add a note
> +7b1bb4951dbd HEAD@{925}: rebase (pick): Filter out more stuff I
> don't want all the time
> +df4258024997 HEAD@{926}: rebase (pick): Removed silly test code
> +118b768314e8 HEAD@{927}: rebase (pick): Added options to print
> out basic blocks in a variety of
> diff erent orderings
> +a925ae543736 HEAD@{928}: rebase (pick): Updates to work with new
> cfg namespace
> +0b9af59e24ef HEAD@{929}: rebase (pick): Implement support for
> writing VCG format output
> +388ad96269af HEAD@{930}: rebase (pick): Move contents to the cfg
> namespace.
> +91078f85b47e HEAD@{931}: rebase (pick): Updates to support
> +fba16076cade HEAD@{932}: rebase (pick): Updates to support
> +fc5655471d3e HEAD@{933}: rebase (pick): Updates to support
> +0a9d874b1031 HEAD@{934}: rebase (pick): Updates to support
> +bcb3231d6613 HEAD@{935}: rebase (pick): Update documentation to
> reflect:
> +db7f6e6d79ea HEAD@{936}: rebase (pick): Moved getBinaryOperator
> to the BinaryOperator class and the getUnaryOperator
> +2cf6ee5926fe HEAD@{937}: rebase (pick): I actually got something
> done
> +783091c4f5c6 HEAD@{938}: rebase (pick): Beautify the source a
> bit.
> +94ea386b0c0c HEAD@{939}: rebase (pick): Include support for
> reverse iteration.
> +059def0ab975 HEAD@{940}: rebase (pick): Added a stupid testcase
> for iterators.
> +be3f7a5b9a7a HEAD@{941}: rebase (pick): Added reverse depth first
> capability, fixed depth first capability
> +5b0379941c62 HEAD@{942}: rebase (pick): Updated to work with new
> CFG.h file.
> +015520037831 HEAD@{943}: rebase (pick): Moved iterators to the
> new CFG.h file.
> +b77ecaef3f49 HEAD@{944}: rebase (pick): New file
> +2208b443367c HEAD@{945}: rebase (pick): inlining can change
> methods a second time, so don't rerun inliner when testing for
> +d7ec7d53b0c1 HEAD@{946}: rebase (pick): Add extra method to PHI
> node class
> +94a07501c89d HEAD@{947}: rebase (pick): Significant rework. DCE
> is still not done (see #ifdef'd out parts)
> +110f15739545 HEAD@{948}: rebase (pick): Fixed to print slightly
> diff erently. Added use counts for labels
> +add1ace044cd HEAD@{949}: rebase (pick): Fixes for BB iterators,
> additional methods added for DCE pass
> +8a8e91d33707 HEAD@{950}: rebase (pick): Extra comments
> +3bdcc96804e9 HEAD@{951}: rebase (pick): Now does not include
> instruction files...
> +c6325331663d HEAD@{952}: rebase (pick): Initial revision
> +f3f54944c027 HEAD@{953}: rebase (pick): New repository
> initialized by cvs2svn.
> +8b754e2f7567 (origin/master,
> fork/master) HEAD@{954}: rebase (start): checkout
> origin/master
> +1dc8f4774d34 HEAD@{955}: checkout: moving from main to arraytype
> +72ea6fbc150a HEAD@{956}: checkout: moving from recoverreturn to
> main
> +549498c110fa (recoverreturn)
> HEAD@{957}: commit (amend): [AST] Produce ReturnStmt containing
> RecoveryExpr when type is wrong
> +500ba6619cf3 HEAD@{958}: commit (amend): [AST] Produce ReturnStmt
> containing RecoveryExpr when type is wrong
> +256e9d00f6a8 HEAD@{959}: commit (amend): [AST] Produce ReturnStmt
> containing RecoveryExpr when type is wrong
> +056fc2e74960 HEAD@{960}: commit (amend): [AST] Produce ReturnStmt
> containing RecoveryExpr when type is wrong
> +d537c309a9d4 HEAD@{961}: commit: [AST] Produce ReturnStmt
> containing RecoveryExpr when type is wrong
> +72ea6fbc150a HEAD@{962}: checkout: moving from main to
> recoverreturn
> +72ea6fbc150a HEAD@{963}: rebase (finish): returning to
> refs/heads/main
> +72ea6fbc150a HEAD@{964}: rebase (start): checkout origin/main
> +9dc4af327b12 HEAD@{965}: checkout: moving from two to main
> +8062dae7812f (two) HEAD@{966}: commit
> (amend): [Parse] Use empty RecoveryExpr when if/while/do/switch conditions
> fail to parse
> +c5ce4cbfc3cd HEAD@{967}: rebase (finish): returning to
> refs/heads/two
> +c5ce4cbfc3cd HEAD@{968}: rebase (pick): [Parse] Use empty
> RecoveryExpr when if/while/do/switch conditions fail to parse
> +72ea6fbc150a HEAD@{969}: rebase (start): checkout origin/main
> +c56122daac76 HEAD@{970}: checkout: moving from iwyustdlib to two
> +f038610fb5f3 HEAD@{971}: commit (amend): [clangd] Basic
> IncludeCleaner support for c/c++ standard library
> +e7f383b77f38 HEAD@{972}: commit (amend): [clangd] Basic
> IncludeCleaner support for c/c++ standard library
> +23650256334a HEAD@{973}: commit (amend): [clangd] Basic
> IncludeCleaner support for c/c++ standard library
> +eb1c9e6fabaa HEAD@{974}: rebase (continue) (finish): returning to
> refs/heads/iwyustdlib
> +eb1c9e6fabaa HEAD@{975}: rebase (continue): [clangd] Basic
> IncludeCleaner support for c/c++ standard library
> +128c6ed73b8f HEAD@{976}: rebase (start): checkout origin/main
> +2f3a9575f9ad HEAD@{977}: checkout: moving from stdlib to
> iwyustdlib
> +cdfb640fe9e8 (stdlib) HEAD@{978}:
> checkout: moving from prettify to stdlib
> +77cc7d2fd845 (prettify) HEAD@{979}:
> commit (amend): [CodeCompletion][clangd] Clean __uglified parameter names
> in completion & hover
> +97d9713c55bc HEAD@{980}: commit (amend): [CodeCompletion][clangd]
> Clean __uglified parameter names in completion & hover
> +0e1e531ca3ab HEAD@{981}: commit (amend): [CodeCompletion][clangd]
> Clean __uglified parameter names in completion & hover
> +2dcf689f661e HEAD@{982}: commit (amend): [CodeCompletion][clangd]
> Clean __uglified parameter names in completion & hover
> +22e53b9a3b3f HEAD@{983}: commit: [CodeCompletion][clangd] Clean
> __uglified parameter names in completion & hover
> +9dc4af327b12 HEAD@{984}: checkout: moving from main to prettify
> +9dc4af327b12 HEAD@{985}: reset: moving to HEAD
> +9dc4af327b12 HEAD@{986}: reset: moving to HEAD
> +9dc4af327b12 HEAD@{987}: checkout: moving from
> 9dc4af327b12dfbcf90fde1641cd649c6814bf98 to main
> +9dc4af327b12 HEAD@{988}: checkout: moving from main to
> origin/main
> +2c644e2f71a5 HEAD@{989}: commit: FFix feature name in
> 9dc4af327b12dfbcf90fde1641cd649c6814bf98
> +9dc4af327b12 HEAD@{990}: rebase (finish): returning to
> refs/heads/main
> +9dc4af327b12 HEAD@{991}: rebase (pick): Re-land "[clang] Add
> early exit when checking for const init of arrays."
> +4fedd4be385e HEAD@{992}: rebase (start): checkout origin/main
> +a3fd292fed18 HEAD@{993}: commit (amend): Re-land "[clang] Add
> early exit when checking for const init of arrays."
> +70b8662a502c HEAD@{994}: commit (amend): Re-land "[clang] Add
> early exit when checking for const init of arrays."
> +2ff827ad7f2d HEAD@{995}: commit (amend): Re-land "[clang] Add
> early exit when checking for const init of arrays."
> +9ad5cbdb06d8 HEAD@{996}: revert: Re-land "[clang] Add early exit
> when checking for const init of arrays."
> +6f1a501fddae HEAD@{997}: checkout: moving from tmplargs to main
> +a7b31d694812 HEAD@{998}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +2142ae80cf59 HEAD@{999}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +4669c22c0e70 HEAD@{1000}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +99217d405b2b HEAD@{1001}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +86fa6ad9fb2b HEAD@{1002}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +0a7d62a75abf HEAD@{1003}: commit (amend): [CodeCompletion]
> Signature help for template argument lists
> +8b0170fa11c1 HEAD@{1004}: commit: [CodeCompletion] Signature help
> for template argument lists
> +6f1a501fddae HEAD@{1005}: checkout: moving from main to tmplargs
> +6f1a501fddae HEAD@{1006}: reset: moving to HEAD
> +6f1a501fddae HEAD@{1007}: checkout: moving from aggregates to
> main
> +9cf82ca7e4ee HEAD@{1008}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +c9f6b6b3f6a8 HEAD@{1009}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +7b37b2f933bd HEAD@{1010}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +e78f39a12189 HEAD@{1011}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +985a3b182774 HEAD@{1012}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +a7ab012a8ff1 HEAD@{1013}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +84c5ef8d6646 HEAD@{1014}: commit (amend): [CodeCompletion]
> Signature help for aggregate initialization.
> +7e2d55fea796 HEAD@{1015}: rebase (finish): returning to
> refs/heads/aggregates
> +7e2d55fea796 HEAD@{1016}: rebase (pick): [CodeCompletion]
> Signature help for aggregate initialization.
> +b245d1eaec2d HEAD@{1017}: rebase (start): checkout bracehelp
> +6175a4ae0cfc HEAD@{1018}: checkout: moving from bracehelp to
> aggregates
> +b245d1eaec2d HEAD@{1019}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +f648b926a983 HEAD@{1020}: checkout: moving from aggregates to
> bracehelp
> +6175a4ae0cfc HEAD@{1021}: commit: [CodeCompletion] Signature help
> for aggregate initialization.
> +f648b926a983 HEAD@{1022}: checkout: moving from bracehelp to
> aggregates
> +f648b926a983 HEAD@{1023}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +d830368b01ba HEAD@{1024}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +3fe02e425768 HEAD@{1025}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +3158a41d01e1 HEAD@{1026}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +8e451de571e7 HEAD@{1027}: commit (amend): [CodeCompletion]
> Signature help for braced constructor calls
> +b35aa36a3e3f HEAD@{1028}: commit: [CodeCompletion] Signature help
> for braced constructor calls
> +6f1a501fddae HEAD@{1029}: checkout: moving from main to bracehelp
> +6f1a501fddae HEAD@{1030}: checkout: moving from completeinit to
> main
> +347a926ee355 (completeinit)
> HEAD@{1031}: commit (amend): [CodeCompletion] (mostly) fix completion in
> incomplete C++ ctor initializers.
> +9babb0590695 HEAD@{1032}: commit (amend): [CodeCompletion]
> (mostly) fix completion in incomplete C++ ctor initializers.
> +91e9b7b90b4f HEAD@{1033}: commit (amend): [CodeCompletion]
> (mostly) fix completion in incomplete C++ ctor initializers.
> +0e1023621e0f HEAD@{1034}: commit: [CodeCompletion] (mostly) fix
> completion in incomplete C++ ctor initializers.
> +6f1a501fddae HEAD@{1035}: checkout: moving from main to
> completeinit
> +6f1a501fddae HEAD@{1036}: checkout: moving from configcompiler to
> main
> +0fa6fc0238fe HEAD@{1037}: commit (amend): [clangd] Add
> CompileFlags.Compiler option to override argv0
> +8205faff5871 HEAD@{1038}: commit (amend): [clangd] Add
> CompileFlags.Compiler option to override argv0
> +27055788e902 HEAD@{1039}: commit (amend): [clangd] Add
> CompileFlags.Compiler option to override argv0
> +f9bdd0229665 HEAD@{1040}: commit: [clangd] Add
> CompileFlags.Compiler option to override argv0
> +6f1a501fddae HEAD@{1041}: checkout: moving from main to
> configcompiler
> +6f1a501fddae HEAD@{1042}: checkout: moving from manglefilename to
> main
> +b3f0e3eeccc0 (manglefilename)
> HEAD@{1043}: commit (amend): [clangd] Adjust compile flags so they work
> when applied to other file(type)s.
> +22ea16ea69e9 HEAD@{1044}: commit (amend): [clangd] Adjust compile
> flags so they work when applied to other file(type)s.
> +8325fd69d14a HEAD@{1045}: commit (amend): [clangd] Adjust compile
> flags so they work when applied to other file(type)s.
> +0b435ba816ae HEAD@{1046}: commit: [clangd] Adjust compile flags
> so they work when applied to other file(type)s.
> +6f1a501fddae HEAD@{1047}: checkout: moving from main to
> manglefilename
> +6f1a501fddae HEAD@{1048}: checkout: moving from tidydiags to main
> +53abaad295f4 HEAD@{1049}: commit (amend): [clangd] Respect
> .clang-tidy ExtraArgs (-Wfoo only) when producing diagnostics
> +8daae4149924 HEAD@{1050}: commit (amend): [clangd] Respect
> .clang-tidy ExtraArgs (-Wfoo only) when producing diagnostics
> +95f3d66f621b HEAD@{1051}: commit (amend): [clangd] Respect
> .clang-tidy ExtraArgs (-Wfoo only) when producing diagnostics
> +6e4e13e32e9a HEAD@{1052}: commit (amend): [clangd] Respect
> .clang-tidy ExtraArgs (-Wfoo only) when producing diagnostics
> +b80c98fe991c HEAD@{1053}: commit: [clangd] Respect .clang-tidy
> ExtraArgs (-Wfoo only) when producing diagnostics
> +6f1a501fddae HEAD@{1054}: checkout: moving from main to tidydiags
> +6f1a501fddae HEAD@{1055}: rebase (finish): returning to
> refs/heads/main
> +6f1a501fddae HEAD@{1056}: rebase (pick): [clangd] Fix typo in
> test. NFC
> +dfa2ad1ad858 HEAD@{1057}: rebase (start): checkout origin/main
> +e5cc3319d413 HEAD@{1058}: rebase (finish): returning to
> refs/heads/main
> +e5cc3319d413 HEAD@{1059}: rebase (pick): [clangd] Fix typo in
> test. NFC
> +e751d97863fb HEAD@{1060}: rebase (start): checkout origin/main
> +be44f91f4fca HEAD@{1061}: commit: [clangd] Fix typo in test. NFC
> +c2f2bb066b83 HEAD@{1062}: reset: moving to HEAD
> +c2f2bb066b83 HEAD@{1063}: rebase (finish): returning to
> refs/heads/main
> +c2f2bb066b83 HEAD@{1064}: rebase (start): checkout origin/main
> +62bcb75ce510 HEAD@{1065}: checkout: moving from usingtype to main
> +af27466c5039 (usingtype) HEAD@{1066}:
> commit (amend): Reland "[AST] Add UsingType: a sugar type for types found
> via UsingDecl"
> +bbc902a8436d HEAD@{1067}: revert: Reland "[AST] Add UsingType: a
> sugar type for types found via UsingDecl"
> +cc56c66f27e1 HEAD@{1068}: revert: Revert "[AST] Add UsingType: a
> sugar type for types found via UsingDecl"
> +565c17574dd0 HEAD@{1069}: rebase (finish): returning to
> refs/heads/usingtype
> +565c17574dd0 HEAD@{1070}: rebase (start): checkout origin/main
> +e1600db19d63 HEAD@{1071}: rebase (finish): returning to
> refs/heads/usingtype
> +e1600db19d63 HEAD@{1072}: rebase (pick): [AST] Add UsingType: a
> sugar type for types found via UsingDecl
> +eb66f0662ad9 HEAD@{1073}: rebase (start): checkout origin/main
> +e5706481005a HEAD@{1074}: commit (amend): [AST] Add UsingType: a
> sugar type for types found via UsingDecl
> +c11ab3c47b88 HEAD@{1075}: rebase (finish): returning to
> refs/heads/usingtype
> +c11ab3c47b88 HEAD@{1076}: rebase (pick): [AST] Add UsingType: a
> sugar type for types found via UsingDecl
> +9cd55c7c3463 HEAD@{1077}: rebase (start): checkout origin/main
> +77701d00dbf1 HEAD@{1078}: commit (amend): [AST] Add UsingType: a
> sugar type for types found via UsingDecl
> +484ad728d0b4 HEAD@{1079}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +38567f18b381 HEAD@{1080}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +73794c07c44c HEAD@{1081}: rebase (finish): returning to
> refs/heads/usingtype
> +73794c07c44c HEAD@{1082}: rebase (pick): [AST] Add a sugar type
> for types found via UsingDecl
> +02fc8d5c9eb0 HEAD@{1083}: rebase (start): checkout origin/main
> +528e4f3170f7 HEAD@{1084}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +06aa0ecaf0ad HEAD@{1085}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +eb52127d5587 HEAD@{1086}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +383df0a0d6e6 HEAD@{1087}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +c4f8be2c2d68 HEAD@{1088}: rebase (continue) (finish): returning
> to refs/heads/usingtype
> +c4f8be2c2d68 HEAD@{1089}: rebase (continue): [AST] Add a sugar
> type for types found via UsingDecl
> +a596a5fc128b HEAD@{1090}: rebase (start): checkout origin/main
> +25184d506c43 HEAD@{1091}: checkout: moving from main to usingtype
> +62bcb75ce510 HEAD@{1092}: commit: [AST] Add more testcases to
> QualTypeNamesTest. NFC
> +32dede65ae98 HEAD@{1093}: rebase (finish): returning to
> refs/heads/main
> +32dede65ae98 HEAD@{1094}: rebase (pick): [AST] Fix
> QualTypeNamesTest, which was spuriously passing
> +509153f1e7d1 HEAD@{1095}: rebase (start): checkout origin/main
> +8b9423dcec0a HEAD@{1096}: commit: [AST] Fix QualTypeNamesTest,
> which was spuriously passing
> +ebed0ca71561 HEAD@{1097}: rebase (finish): returning to
> refs/heads/main
> +ebed0ca71561 HEAD@{1098}: rebase (start): checkout origin/main
> +6fef0ffa14a3 HEAD@{1099}: checkout: moving from usingtype to main
> +25184d506c43 HEAD@{1100}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +63d52ad6d61f HEAD@{1101}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +c0adf4433852 HEAD@{1102}: checkout: moving from origin to
> usingtype
> +8491272d5f8b (origin) HEAD@{1103}:
> commit (amend): [clangd] Extend SymbolOrigin, stop serializing it
> +58f8efe72279 HEAD@{1104}: rebase (finish): returning to
> refs/heads/origin
> +58f8efe72279 HEAD@{1105}: rebase (pick): [clangd] Extend
> SymbolOrigin, stop serializing it
> +e7007b69d43b (fixx) HEAD@{1106}: rebase
> (start): checkout origin/main
> +ddcc1d2c88de HEAD@{1107}: checkout: moving from fixx to origin
> +e7007b69d43b (fixx) HEAD@{1108}: rebase
> (finish): returning to refs/heads/fixx
> +e7007b69d43b (fixx) HEAD@{1109}: rebase
> (pick): [Sema] Add FixIt when a C++ out-of-line method has extra/missing
> const
> +54fc9eb9b313 HEAD@{1110}: rebase (start): checkout origin/main
> +563ef9895a46 HEAD@{1111}: commit (amend): [Sema] Add FixIt when a
> C++ out-of-line method has extra/missing const
> +eb9db3287358 HEAD@{1112}: rebase (finish): returning to
> refs/heads/fixx
> +eb9db3287358 HEAD@{1113}: rebase (pick): [Sema] Add FixIt when a
> C++ out-of-line method has extra/missing const
> +529833377ccd (block) HEAD@{1114}:
> rebase (start): checkout origin/main
> +9344dda72035 HEAD@{1115}: checkout: moving from block to fixx
> +529833377ccd (block) HEAD@{1116}:
> rebase (finish): returning to refs/heads/block
> +529833377ccd (block) HEAD@{1117}:
> rebase (pick): [clangd] Disable support for clang-tidy suppression blocks
> (NOLINTBEGIN)
> +a908ca6603ab HEAD@{1118}: rebase (start): checkout origin/main
> +e65ea60537a7 HEAD@{1119}: checkout: moving from asyncindex to
> block
> +747908384732 (asyncindex) HEAD@{1120}:
> rebase (continue) (finish): returning to refs/heads/asyncindex
> +747908384732 (asyncindex) HEAD@{1121}:
> rebase (continue): [clangd] Proof of concept: indexing after the preamble
> is built
> +a5927737daeb HEAD@{1122}: rebase (start): checkout origin/main
> +3f8dfb604b16 HEAD@{1123}: checkout: moving from shared to
> asyncindex
> +6917f87b3c7c (shared) HEAD@{1124}:
> rebase (finish): returning to refs/heads/shared
> +6917f87b3c7c (shared) HEAD@{1125}:
> rebase (pick): [clangd] Cleanup unneeded use of shared_ptr. NFC
> +4299d8d0ce42 HEAD@{1126}: rebase (start): checkout origin/main
> +998c40e04bec HEAD@{1127}: commit: [clangd] Cleanup unneeded use
> of shared_ptr. NFC
> +6fef0ffa14a3 HEAD@{1128}: checkout: moving from main to shared
> +6fef0ffa14a3 HEAD@{1129}: checkout: moving from asyncindex to
> main
> +3f8dfb604b16 HEAD@{1130}: commit (amend): [clangd] Proof of
> concept: indexing after the preamble is built
> +69244a114c0c HEAD@{1131}: commit (amend): [clangd] Proof of
> concept: indexing after the preamble is built
> +e0ed01382993 HEAD@{1132}: commit: [clangd] Proof of concept:
> indexing after the preamble is built
> +6fef0ffa14a3 HEAD@{1133}: checkout: moving from main to
> asyncindex
> +6fef0ffa14a3 HEAD@{1134}: reset: moving to HEAD
> +6fef0ffa14a3 HEAD@{1135}: reset: moving to HEAD
> +6fef0ffa14a3 HEAD@{1136}: reset: moving to HEAD
> +6fef0ffa14a3 HEAD@{1137}: reset: moving to HEAD
> +6fef0ffa14a3 HEAD@{1138}: checkout: moving from main to main
> +6fef0ffa14a3 HEAD@{1139}: rebase (finish): returning to
> refs/heads/main
> +6fef0ffa14a3 HEAD@{1140}: rebase (start): checkout origin/main
> +26f6fbe2be1d HEAD@{1141}: checkout: moving from ccedit to main
> +782052f2decf (fork/ccedit,
> ccedit) HEAD@{1142}: commit: [clangd] Prototype: code
> action to edit compile commands
> +26f6fbe2be1d HEAD@{1143}: checkout: moving from main to ccedit
> +26f6fbe2be1d HEAD@{1144}: reset: moving to origin/main
> +ac431fc2cdf1 (incomplete) HEAD@{1145}:
> reset: moving to origin/main
> +c797aa934727 HEAD@{1146}: revert: Revert "Revert
> "[Symbolizer][Debuginfo] Add debuginfod client to llvm-symbolizer.""
> +afa3c14e2ff9 HEAD@{1147}: checkout: moving from block to main
> +e65ea60537a7 HEAD@{1148}: commit (amend): [clangd] Disable
> support for clang-tidy suppression blocks (NOLINTBEGIN)
> +c416e5d69d7e HEAD@{1149}: commit (amend): [clangd] Disable
> support for clang-tidy suppression blocks (NOLINTBEGIN)
> +2c1e87eae0e2 HEAD@{1150}: commit: [clangd] Disable support for
> clang-tidy suppression blocks (NOLINTBEGIN)
> +afa3c14e2ff9 HEAD@{1151}: checkout: moving from main to block
> +afa3c14e2ff9 HEAD@{1152}: checkout: moving from fixx to main
> +9344dda72035 HEAD@{1153}: commit (amend): [Sema] Add FixIt when a
> C++ out-of-line method has extra/missing const
> +fb15c379c1f0 HEAD@{1154}: commit (amend): [Sema] Add FixIt when a
> C++ out-of-line method has extra/missing const
> +be240d2b0505 HEAD@{1155}: commit: [Sema] Add FixIt when a C++
> out-of-line method has extra/missing const
> +ac431fc2cdf1 (incomplete) HEAD@{1156}:
> checkout: moving from incomplete to fixx
> +ac431fc2cdf1 (incomplete) HEAD@{1157}:
> rebase (finish): returning to refs/heads/incomplete
> +ac431fc2cdf1 (incomplete) HEAD@{1158}:
> rebase (pick): [clangd] ... and mark a new test as -fno-ms-compatibility
> too
> +30fc88bf1dc1 HEAD@{1159}: rebase (start): checkout origin/main
> +d3aa8d688374 HEAD@{1160}: commit (amend): [clangd] ... and mark a
> new test as -fno-ms-compatibility too
> +03d0b9092b60 HEAD@{1161}: commit: [clangd] ... and mark a new
> test as -fno-ms-compatibility too
> +1a68c14b577f HEAD@{1162}: reset: moving to HEAD
> +1a68c14b577f HEAD@{1163}: rebase (finish): returning to
> refs/heads/incomplete
> +1a68c14b577f HEAD@{1164}: rebase (pick): [clangd] Restore -fno-
> ms-compatibility to tests
> +8d897ec91528 HEAD@{1165}: rebase (start): checkout origin/main
> +ac5910467704 HEAD@{1166}: commit: [clangd] Restore -fno-ms-
> compatibility to tests
> +c25ea488a39a HEAD@{1167}: reset: moving to HEAD
> +c25ea488a39a HEAD@{1168}: rebase (finish): returning to
> refs/heads/incomplete
> +c25ea488a39a HEAD@{1169}: rebase (pick): [clangd] Include-fixer:
> handle more "incomplete type" diags.
> +a55e51f9a64c HEAD@{1170}: rebase (start): checkout origin/main
> +11a2f06c37cc HEAD@{1171}: commit (amend): [clangd] Include-fixer:
> handle more "incomplete type" diags.
> +8182fffc0500 HEAD@{1172}: rebase (continue) (finish): returning
> to refs/heads/incomplete
> +8182fffc0500 HEAD@{1173}: rebase (continue): [clangd] Include-
> fixer: handle more "incomplete type" diags.
> +86caf517bf05 HEAD@{1174}: rebase (start): checkout origin/main
> +0958968acbe0 HEAD@{1175}: checkout: moving from incompletenfc to
> incomplete
> +a8bf389f4146 (incompletenfc)
> HEAD@{1176}: rebase (finish): returning to refs/heads/incompletenfc
> +a8bf389f4146 (incompletenfc)
> HEAD@{1177}: rebase (pick): [clangd] Clean up some include-fixer tests.
> NFC
> +3ed47bcc9618 HEAD@{1178}: rebase (start): checkout origin/main
> +76820d557062 HEAD@{1179}: commit (amend): [clangd] Clean up some
> include-fixer tests. NFC
> +c28420e6737b HEAD@{1180}: commit (amend): [clangd] Clean up some
> include-fixer tests. NFC
> +b48226a052b2 HEAD@{1181}: commit (amend): [clangd] Clean up some
> include-fixer tests. NFC
> +0958968acbe0 HEAD@{1182}: checkout: moving from incomplete to
> incompletenfc
> +0958968acbe0 HEAD@{1183}: checkout: moving from main to
> incomplete
> +afa3c14e2ff9 HEAD@{1184}: checkout: moving from indeximplicit to
> main
> +0d64c65efac9 (indeximplicit)
> HEAD@{1185}: cherry-pick: [clangd] Indexing of standard library
> +ee26e0ba082e (implicitc) HEAD@{1186}:
> checkout: moving from implicitc to indeximplicit
> +ee26e0ba082e (implicitc) HEAD@{1187}:
> commit (amend): [clangd] Include fixer for missing functions in C
> +9ac5d003594e HEAD@{1188}: commit (amend): [clangd] Include fixer
> for missing functions in C
> +3b4429acb859 HEAD@{1189}: commit (amend): [clangd] Include fixer
> for missing functions in C
> +1a75bc322127 HEAD@{1190}: commit (amend): [clangd] Include fixer
> for missing functions in C
> +94ab31f3c7a8 HEAD@{1191}: commit (amend): [clangd] Include fixer
> for missing functions in C
> +86494fa881eb HEAD@{1192}: commit: [clangd] Include fixer for
> missing functions in C
> +afa3c14e2ff9 HEAD@{1193}: checkout: moving from main to implicitc
> +afa3c14e2ff9 HEAD@{1194}: rebase (finish): returning to
> refs/heads/main
> +afa3c14e2ff9 HEAD@{1195}: rebase (start): checkout origin/main
> +d4865393b5da HEAD@{1196}: checkout: moving from incomplete to
> main
> +0958968acbe0 HEAD@{1197}: commit (amend): [clangd] Include-fixer:
> handle more "incomplete type" diags, clean up tests
> +aa89c6b2a300 HEAD@{1198}: commit (amend): [clangd] Include-fixer:
> handle more "incomplete type" diags, clean up tests
> +153236d44e9a HEAD@{1199}: commit (amend): [clangd] Include-fixer:
> handle more "incomplete type" diags, clean up tests
> +3f0f560caf3a HEAD@{1200}: commit: [clangd] Include-fixer: handle
> more "incomplete type" diags, clean up tests
> +d4865393b5da HEAD@{1201}: checkout: moving from main to
> incomplete
> +d4865393b5da HEAD@{1202}: reset: moving to HEAD
> +d4865393b5da HEAD@{1203}: rebase (finish): returning to
> refs/heads/main
> +d4865393b5da HEAD@{1204}: rebase (start): checkout origin/main
> +e7f53ec78fe8 HEAD@{1205}: checkout: moving from tblgen to main
> +7ef23188fe95 (tblgen) HEAD@{1206}:
> commit (amend): [clangd] Generate ConfigFragment/YAML/docs from one
> tablegen source
> +6bdf61f016e3 HEAD@{1207}: commit (amend): [clangd] Generate
> ConfigFragment/YAML/docs from one tablegen source
> +e249c35c3fb4 HEAD@{1208}: commit (amend): [clangd] Generate
> ConfigFragment/YAML/docs from one tablegen source
> +fcf5c9f5bf33 HEAD@{1209}: commit (amend): [clangd] Generate
> ConfigFragment/YAML/docs from one tablegen source
> +7b3888a32700 HEAD@{1210}: rebase (continue) (finish): returning
> to refs/heads/tblgen
> +7b3888a32700 HEAD@{1211}: rebase (continue): [clangd] Generate
> ConfigFragment/YAML/docs from one tablegen source
> +4afae6f7c7f6 HEAD@{1212}: rebase (start): checkout origin/main
> +34b10022310a HEAD@{1213}: commit: [clangd] Generate
> ConfigFragment/YAML/docs from one tablegen source
> +e7f53ec78fe8 HEAD@{1214}: checkout: moving from main to tblgen
> +e7f53ec78fe8 HEAD@{1215}: checkout: moving from two to main
> +c56122daac76 HEAD@{1216}: reset: moving to HEAD
> +c56122daac76 HEAD@{1217}: commit (amend): [Parse] Use empty
> RecoveryExpr when if/while/do/switch conditions fail to parse
> +2409b3d46f6c HEAD@{1218}: rebase (finish): returning to
> refs/heads/two
> +2409b3d46f6c HEAD@{1219}: rebase (pick): [Parse] Use empty
> RecoveryExpr when if/while/do/switch conditions fail to parse
> +2676759bf22e (morefix) HEAD@{1220}:
> rebase (start): checkout origin/main
> +ad885f5a3eab (arcpatch-D112996)
> HEAD@{1221}: checkout: moving from morefix to two
> +2676759bf22e (morefix) HEAD@{1222}:
> rebase (finish): returning to refs/heads/morefix
> +2676759bf22e (morefix) HEAD@{1223}:
> rebase (pick): [clangd] Add fixes for clang "include <foo.h>" diagnostics
> +b73cf6207efa HEAD@{1224}: rebase (start): checkout origin/main
> +da7ff2db120f HEAD@{1225}: rebase (finish): returning to
> refs/heads/morefix
> +da7ff2db120f HEAD@{1226}: rebase (pick): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +77b2bb55671a HEAD@{1227}: rebase (start): checkout origin/main
> +8bf667957ed0 HEAD@{1228}: commit (amend): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +56f023ff10d2 HEAD@{1229}: commit (amend): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +805bac439319 HEAD@{1230}: checkout: moving from origin to morefix
> +ddcc1d2c88de HEAD@{1231}: commit (amend): [clangd] Extend
> SymbolOrigin, stop serializing it
> +e4568ef854df HEAD@{1232}: commit (amend): [clangd] Extend
> SymbolOrigin, stop serializing it
> +9099df1707fe HEAD@{1233}: checkout: moving from stdlib to origin
> +cdfb640fe9e8 (stdlib) HEAD@{1234}:
> commit (amend): [clangd] Indexing of standard library
> +5c14772f82eb HEAD@{1235}: commit (amend): [clangd] Indexing of
> standard library
> +9bcdbb99a75b HEAD@{1236}: commit (amend): [clangd] WIP various
> stdlib indexing stuff
> +3e38a40b3f17 HEAD@{1237}: commit (amend): [clangd] WIP various
> stdlib indexing stuff
> +4ac5a41a65fc HEAD@{1238}: rebase (finish): returning to
> refs/heads/stdlib
> +4ac5a41a65fc HEAD@{1239}: rebase (pick): [clangd] WIP various
> stdlib indexing stuff
> +e1b9d805325b HEAD@{1240}: rebase (start): checkout origin/main
> +5330f525f264 (arcpatch-D105177)
> HEAD@{1241}: checkout: moving from arcpatch-D105177 to stdlib
> +5330f525f264 (arcpatch-D105177)
> HEAD@{1242}: checkout: moving from reserved to arcpatch-D105177
> +18cd067d0bfa (reserved) HEAD@{1243}:
> commit (amend): [clangd] Don't index __reserved_names in headers.
> +06dd586e7297 HEAD@{1244}: commit (amend): [clangd] Don't index
> __reserved_names in headers.
> +e58aab51c464 HEAD@{1245}: commit (amend): [clangd] Don't index
> __reserved_names in headers.
> +05a7bfb157fc HEAD@{1246}: commit: [clangd] Don't index
> __reserved_names in headers.
> +e7f53ec78fe8 HEAD@{1247}: checkout: moving from main to reserved
> +e7f53ec78fe8 HEAD@{1248}: checkout: moving from origin to main
> +9099df1707fe HEAD@{1249}: commit (amend): [clangd] Extend
> SymbolOrigin, stop serializing it
> +1557821a2bd2 HEAD@{1250}: commit (amend): [clangd] Extend
> SymbolOrigin, stop serializing it
> +8c3bd3cc7478 HEAD@{1251}: commit (amend): [clangd] Extend
> SymbolOrigin, stop serializing it
> +cb761c799928 HEAD@{1252}: commit: [clangd] Extend SymbolOrigin,
> stop serializing it
> +e7f53ec78fe8 HEAD@{1253}: checkout: moving from main to origin
> +e7f53ec78fe8 HEAD@{1254}: rebase (finish): returning to
> refs/heads/main
> +e7f53ec78fe8 HEAD@{1255}: rebase (start): checkout origin/main
> +afc9e7517ada HEAD@{1256}: checkout: moving from arcpatch-D105177
> to main
> +5330f525f264 (arcpatch-D105177)
> HEAD@{1257}: commit (amend): [clangd] WIP various stdlib indexing stuff
> +4c58226488ee HEAD@{1258}: commit (amend): [clangd] WIP various
> stdlib indexing stuff
> +ffbc79cbcc54 HEAD@{1259}: commit (amend): [clangd] WIP various
> stdlib indexing stuff
> +5d5179621ede HEAD@{1260}: checkout: moving from main to arcpatch-
> D105177
> +afc9e7517ada HEAD@{1261}: rebase (finish): returning to
> refs/heads/main
> +afc9e7517ada HEAD@{1262}: rebase (start): checkout origin/main
> +f764a1a5bd7c HEAD@{1263}: checkout: moving from arcpatch-D105177
> to main
> +5d5179621ede HEAD@{1264}: reset: moving to HEAD
> +5d5179621ede HEAD@{1265}: rebase (finish): returning to
> refs/heads/arcpatch-D105177
> +5d5179621ede HEAD@{1266}: rebase (pick): [clangd] Implemented
> indexing of standard library
> +25c7ec4fc622 HEAD@{1267}: rebase (start): checkout origin/main
> +7f2bbbd16a82 HEAD@{1268}: commit: [clangd] Implemented indexing
> of standard library
> +15acaad79d6e HEAD@{1269}: checkout: moving from main to arcpatch-
> D105177
> +f764a1a5bd7c HEAD@{1270}: checkout: moving from morefix to main
> +805bac439319 HEAD@{1271}: commit (amend): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +c74d8a0e6f33 HEAD@{1272}: commit (amend): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +86d15e9770ca HEAD@{1273}: commit (amend): [clangd] Add fixes for
> clang "include <foo.h>" diagnostics
> +a46d34a114b3 HEAD@{1274}: commit: [clangd] Add fixes for clang
> "include <foo.h>" diagnostics
> +f764a1a5bd7c HEAD@{1275}: checkout: moving from main to morefix
> +f764a1a5bd7c HEAD@{1276}: checkout: moving from usingtype to main
> +c0adf4433852 HEAD@{1277}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +661fde2dfe7c HEAD@{1278}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +f38cd8c69f6d HEAD@{1279}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +4b8286a14790 HEAD@{1280}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +480e5803b30f HEAD@{1281}: commit (amend): [AST] Add a sugar type
> for types found via UsingDecl
> +06cc1d22bf04 HEAD@{1282}: rebase (finish): returning to
> refs/heads/usingtype
> +06cc1d22bf04 HEAD@{1283}: rebase (pick): [AST] Add a sugar type
> for types found via UsingDecl
> +c133fb321f7c HEAD@{1284}: rebase (start): checkout origin/main
> +8545d9204be1 HEAD@{1285}: rebase (abort): updating HEAD
> +8545d9204be1 HEAD@{1286}: rebase (abort): updating HEAD
> +8545d9204be1 HEAD@{1287}: checkout: moving from main to usingtype
> +f764a1a5bd7c HEAD@{1288}: rebase (finish): returning to
> refs/heads/main
> +f764a1a5bd7c HEAD@{1289}: rebase (pick): [clangd] Avoid possible
> crash: apply configuration after binding methods
> +a6f53afbcb4d HEAD@{1290}: rebase (finish): returning to
> refs/heads/main
> +a6f53afbcb4d HEAD@{1291}: rebase (start): checkout origin/main
> +5fedbd5b1815 HEAD@{1292}: checkout: moving from main to usingtype
> +5fedbd5b1815 HEAD@{1293}: checkout: moving from token to main
> +3878ad5e448c (token) HEAD@{1294}:
> commit: xxx token
> +5fedbd5b1815 HEAD@{1295}: checkout: moving from main to token
> +5fedbd5b1815 HEAD@{1296}: rebase (finish): returning to
> refs/heads/main
> +5fedbd5b1815 HEAD@{1297}: rebase (start): checkout origin/main
> +e56d680fe870 HEAD@{1298}: checkout: moving from iwyustdlib to
> main
> +e56d680fe870 HEAD@{1299}: checkout: moving from main to
> iwyustdlib
> +e56d680fe870 HEAD@{1300}: rebase (finish): returning to
> refs/heads/main
> +e56d680fe870 HEAD@{1301}: rebase (start): checkout origin/main
> +4fb62e138398 HEAD@{1302}: checkout: moving from placeholders to
> main
> +8ac9d2ae5839 (placeholders)
> HEAD@{1303}: rebase (finish): returning to refs/heads/placeholders
> +8ac9d2ae5839 (placeholders)
> HEAD@{1304}: rebase (pick): [clangd] Fix function-arg-placeholder
> suppression with macros.
> +ebda5e1e521f HEAD@{1305}: checkout: moving from main to
> placeholders
> +ebda5e1e521f HEAD@{1306}: rebase (finish): returning to
> refs/heads/main
> +ebda5e1e521f HEAD@{1307}: rebase (start): checkout origin/main
> +48b67dca2ccc HEAD@{1308}: checkout: moving from two to main
> +ad885f5a3eab (arcpatch-D112996)
> HEAD@{1309}: checkout: moving from arcpatch-D112996 to two
> +63667c1896e1 HEAD@{1310}: rebase (finish): returning to
> refs/heads/arcpatch-D112996
> +63667c1896e1 HEAD@{1311}: rebase (pick): [clangd] Trace per-token
> time in clangd --check
> +f7500a4ef7bd HEAD@{1312}: rebase (pick): [CodeCompletion]
> Generally consider header files without extension
> +5fbcf677347e HEAD@{1313}: checkout: moving from main to arcpatch-
> D112996
> +48b67dca2ccc HEAD@{1314}: rebase (finish): returning to
> refs/heads/main
> +48b67dca2ccc HEAD@{1315}: rebase (start): checkout origin/main
> +627fa0b9a897 HEAD@{1316}: reset: moving to HEAD
> +627fa0b9a897 HEAD@{1317}: checkout: moving from enum to main
> +5880c835bdbe (enum) HEAD@{1318}: reset:
> moving to HEAD
> +5880c835bdbe (enum) HEAD@{1319}: reset:
> moving to HEAD
> +5880c835bdbe (enum) HEAD@{1320}: rebase
> (finish): returning to refs/heads/enum
> +5880c835bdbe (enum) HEAD@{1321}: rebase
> (pick): [Sema] Avoid crash in CheckEnumConstant with contains-error
> expressions
> +6a5e08cc4a5c (redecl) HEAD@{1322}:
> rebase (finish): returning to refs/heads/redecl
> +6a5e08cc4a5c (redecl) HEAD@{1323}:
> rebase (pick): [AST] injected-class-name is not a redecl, even in template
> specializations
> +627fa0b9a897 HEAD@{1324}: checkout: moving from main to redecl
> +627fa0b9a897 HEAD@{1325}: rebase (finish): returning to
> refs/heads/main
> +627fa0b9a897 HEAD@{1326}: rebase (start): checkout origin/main
> +f06e33298266 HEAD@{1327}: rebase (abort): updating HEAD
> +f06e33298266 HEAD@{1328}: rebase (abort): updating HEAD
> +f06e33298266 HEAD@{1329}: checkout: moving from specialfiles to
> main
> +73453e7adecb (specialfiles)
> HEAD@{1330}: rebase (finish): returning to refs/heads/specialfiles
> +73453e7adecb (specialfiles)
> HEAD@{1331}: rebase (pick): [clangd] Avoid expensive checks of buffer
> names in IncludeCleaner
> +de7494a33a5c (constcrash) HEAD@{1332}:
> rebase (finish): returning to refs/heads/constcrash
> +de7494a33a5c (constcrash) HEAD@{1333}:
> rebase (pick): [AST] fail rather than crash when const evaluating invalid
> c++ foreach
> +f06e33298266 HEAD@{1334}: checkout: moving from main to
> specialfiles
> +f06e33298266 HEAD@{1335}: rebase (finish): returning to
> refs/heads/main
> +f06e33298266 HEAD@{1336}: rebase (start): checkout origin/main
> +9cc08cb02fdc (crashtest) HEAD@{1337}:
> checkout: moving from crashtest to constcrash
> +9cc08cb02fdc (crashtest) HEAD@{1338}:
> rebase (finish): returning to refs/heads/crashtest
> +9cc08cb02fdc (crashtest) HEAD@{1339}:
> rebase (pick): [clangd] Add integration test for crash handling
> +51be7061d025 HEAD@{1340}: reset: moving to HEAD
> +51be7061d025 HEAD@{1341}: checkout: moving from main to crashtest
> +51be7061d025 HEAD@{1342}: commit: [clangd] Remove tricky
> integration test that flakes/fails on some platforms.
> +4373f3595f8e HEAD@{1343}: rebase (finish): returning to
> refs/heads/main
> +4373f3595f8e HEAD@{1344}: rebase (start): checkout origin/main
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1345}: checkout: moving from timer to main
> +aa1ac2ae451e (flush) HEAD@{1346}:
> checkout: moving from flush to timer
> +aa1ac2ae451e (flush) HEAD@{1347}:
> rebase (finish): returning to refs/heads/flush
> +aa1ac2ae451e (flush) HEAD@{1348}:
> rebase (pick): [clangd] Flush stderr after signal handlers run, so we
> always get the full stack/crash info
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1349}: checkout: moving from main to flush
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1350}: rebase (finish): returning to refs/heads/main
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1351}: rebase (start): checkout origin/main
> +4e91035387fa HEAD@{1352}: checkout: moving from arcpatch-
> D109506_1 to main
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1353}: rebase (finish): returning to refs/heads/arcpatch-D109506_1
> +045695f85cb8 (arcpatch-D109506_1)
> HEAD@{1354}: rebase (pick): [clangd] Print current request context along
> with the stack trace
> +980c7f32490b HEAD@{1355}: checkout: moving from arcpatch-D111318
> to arcpatch-D109506_1
> +a85b661d2ada (arcpatch-D111318)
> HEAD@{1356}: rebase (finish): returning to refs/heads/arcpatch-D111318
> +a85b661d2ada (arcpatch-D111318)
> HEAD@{1357}: rebase (pick): [clang][clangd] Improve signature help for
> variadic functions.
> +3964c1db915b HEAD@{1358}: checkout: moving from main to arcpatch-
> D111318
> +4e91035387fa HEAD@{1359}: rebase (finish): returning to
> refs/heads/main
> +4e91035387fa HEAD@{1360}: rebase (pick): [Support] Trim #include
> after b06df22
> +93c1b3caf052 HEAD@{1361}: reset: moving to HEAD
> +93c1b3caf052 HEAD@{1362}: rebase (finish): returning to
> refs/heads/main
> +93c1b3caf052 HEAD@{1363}: rebase (start): checkout origin/main
> +c15bbdeafffb HEAD@{1364}: checkout: moving from arcpatch-D110825
> to main
> +82fbd3412fec (arcpatch-D110825)
> HEAD@{1365}: commit: [clangd] Handle members of anon structs in
> SelectionTree
> +68e56bd320d7 HEAD@{1366}: checkout: moving from main to arcpatch-
> D110825
> +c15bbdeafffb HEAD@{1367}: rebase (finish): returning to
> refs/heads/main
> +c15bbdeafffb HEAD@{1368}: rebase (start): checkout origin/main
> +bb9333c3504a HEAD@{1369}: checkout: moving from uid to main
> +22555bafe90d (uid) HEAD@{1370}: rebase
> (finish): returning to refs/heads/uid
> +22555bafe90d (uid) HEAD@{1371}: rebase
> (pick): [VFS] InMemoryFilesystem's UniqueIDs are a function of path and
> content.
> +722e705f72dd (arcpatch-D110324)
> HEAD@{1372}: checkout: moving from arcpatch-D110324 to uid
> +722e705f72dd (arcpatch-D110324)
> HEAD@{1373}: rebase (finish): returning to refs/heads/arcpatch-D110324
> +722e705f72dd (arcpatch-D110324)
> HEAD@{1374}: rebase (start): checkout origin/main
> +eb209c13cce9 HEAD@{1375}: rebase (finish): returning to
> refs/heads/arcpatch-D110324
> +eb209c13cce9 HEAD@{1376}: rebase (pick): clangd: Do not report
> inline overrides twice
> +5685eb950da7 HEAD@{1377}: checkout: moving from main to arcpatch-
> D110324
> +bb9333c3504a HEAD@{1378}: rebase (finish): returning to
> refs/heads/main
> +bb9333c3504a HEAD@{1379}: rebase (start): checkout origin/main
> +61cc873a8ef1 HEAD@{1380}: checkout: moving from arcpatch-D109506
> to main
> 
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://urldefense.com/v3/__https://lists.llvm.org/cgi-
> bin/mailman/listinfo/cfe-
> commits__;!!JmoZiZGBv3RvKRSx!uQXxnl5TpWMb4VLqBh7hdl5PJBKwJUpwiqPOAlneE_FDX
> wjSN-5BvfmyXHZhTn6Eag$


More information about the cfe-commits mailing list