r256396 - Some minor correction based on David Blaikie post-commit code review for r255281.

2015-12-24 Thread Ekaterina Romanova via cfe-commits
Author: kromanova
Date: Thu Dec 24 16:52:41 2015
New Revision: 256396

URL: http://llvm.org/viewvc/llvm-project?rev=256396=rev
Log:
Some minor correction based on David Blaikie post-commit code review for 
r255281.

Modified:
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
cfe/trunk/lib/Parse/ParseDeclCXX.cpp

Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=256396=256395=256396=diff
==
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu Dec 24 16:52:41 2015
@@ -1,4 +1,4 @@
-//===--- CompilerInvocation.cpp 
---===//
+//===--- 
 //
 // The LLVM Compiler Infrastructure
 //
@@ -417,8 +417,7 @@ static bool ParseCodeGenArgs(CodeGenOpti
   Opts.EmitCodeView = Args.hasArg(OPT_gcodeview);
   Opts.SplitDwarfFile = Args.getLastArgValue(OPT_split_dwarf_file);
   Opts.DebugTypeExtRefs = Args.hasArg(OPT_dwarf_ext_refs);
-  if (Triple.isPS4CPU())
-Opts.DebugExplicitImport = true;
+  Opts.DebugExplicitImport = Triple.isPS4CPU(); 
 
   for (const auto  : Args.getAllArgValues(OPT_fdebug_prefix_map_EQ))
 Opts.DebugPrefixMap.insert(StringRef(Arg).split('='));

Modified: cfe/trunk/lib/Parse/ParseDeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDeclCXX.cpp?rev=256396=256395=256396=diff
==
--- cfe/trunk/lib/Parse/ParseDeclCXX.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDeclCXX.cpp Thu Dec 24 16:52:41 2015
@@ -65,7 +65,7 @@ Parser::DeclGroupPtrTy Parser::ParseName
   if (Tok.is(tok::code_completion)) {
 Actions.CodeCompleteNamespaceDecl(getCurScope());
 cutOffParsing();
-return DeclGroupPtrTy();;
+return DeclGroupPtrTy();
   }
 
   SourceLocation IdentLoc;


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: r254262 - [X86][SSE2] Added SSE2 IR + assembly codegen builtin tests

2015-12-24 Thread Sanjay Patel via cfe-commits
In case anyone is planning to fix this sort of thing universally, I broke:
test/CodeGen/aarch64-poly64.c
with:
http://reviews.llvm.org/rL256394

and hopefully worked-around the fail with:
http://reviews.llvm.org/rL256395

That test file doesn't even pretend to be independent of LLVM
optimizations; it's checking asm after using -O3.


On Sun, Nov 29, 2015 at 5:38 PM, Eric Christopher via cfe-commits <
cfe-commits@lists.llvm.org> wrote:

> Yeah, I've been trying to fix them. I didn't see them go in. :(
>
> And yes, that's a good way to tie them. It shouldn't be bad though.
> Separation of concerns and all.
>
> -eric
>
> On Sun, Nov 29, 2015, 3:10 PM Robinson, Paul <
> paul_robin...@playstation.sony.com> wrote:
>
> It looks like there are a number of the *-builtins.c tests that have grown
> this feature of testing both IR and asm.  Seems to have sprung from PR24580.
>
>
>
>
>
>
> Simon, if you're concerned about bitrot, I'd think you could have comments
> in the Clang test citing the LLVM test, and vice versa.  It's not a
> guarantee but it certainly should help.
>
> --paulr
>
>
>
> *From:* cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] *On
> Behalf Of *Eric Christopher via cfe-commits
> *Sent:* Sunday, November 29, 2015 2:21 PM
> *To:* Simon Pilgrim; cfe-commits@lists.llvm.org
> *Subject:* Re: r254262 - [X86][SSE2] Added SSE2 IR + assembly codegen
> builtin tests
>
>
>
> There's no reason a split set of tests would fail at doing this. You can
> test that the IR is what you expect and then that the backend tests it as
> well. It's very simple to do.
>
>
>
> On Sun, Nov 29, 2015, 2:08 PM Simon Pilgrim 
> wrote:
>
> So the problem we’re trying to solve is it make sure that in debug builds,
> clang compiles c/c++ intrinsics in the headers down to assembly that is
> very close to the expected instruction.
>
>
>
> What we had before (testing c/c++ to IR results in clang/test/CodeGen and
> testing with llc on ‘similar' IR in llvm/test/CodeGen/X86) was very
> sensitive to bitrot, especially as we’ve put so much effort into removing
> what target specific intrinsics that we can.
>
>
>
> I’m happy to split the tests but would prefer that they are both being
> tested from c/c++ source (that at least is unlikely to ever change) so that
> we have a better chance of keeping track of any big changes - so is there
> anywhere in the clang project that they can be put?
>
>
>
> On 29 Nov 2015, at 21:47, Eric Christopher  wrote:
>
>
>
> In the backend. If at all possible IR tests only in the front end. Same
> with optimization etc.
>
>
>
> On Sun, Nov 29, 2015, 1:46 PM Simon Pilgrim 
> wrote:
>
> I can try - if asm is not supposed to go in tests/CodeGen where is it
> supposed to go?
>
>
>
> On 29 Nov 2015, at 20:38, Eric Christopher 
> gmail.com > wrote:
>
>
>
> This is amazing... And entirely the wrong place for the asm tests. :)
>
> Would you mind splitting this test case in two with an IR test for clang
> and an asm test for llvm?
>
> Thanks!
>
>
>
> On Sun, Nov 29, 2015, 12:25 PM Simon Pilgrim via cfe-commits <
> cfe-commits@lists.llvm.org> wrote:
>
> Author: rksimon
> Date: Sun Nov 29 14:23:00 2015
> New Revision: 254262
>
> URL: http:// 
> llvm.org /
> viewvc
> /
> llvm-project
> 
> ?rev=254262=rev
> 
> Log:
> [X86][SSE2] Added SSE2 IR + assembly codegen builtin tests
>
> Improved tests as discussed in PR24580
>
> Added:
> cfe/trunk/test/CodeGen/sse2-builtins.c
>
> Added: cfe/trunk/test/CodeGen/sse2-builtins.c
> URL: http://
> 
> llvm.org
> 
> /
> 
> viewvc
> 
> /
> 
> llvm-project
> 
> /
> 
> cfe
> 
> /trunk/test/
> 
> CodeGen
> 
> 

r256403 - Revert r256399 "[Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC"

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 18:36:02 2015
New Revision: 256403

URL: http://llvm.org/viewvc/llvm-project?rev=256403=rev
Log:
Revert r256399 "[Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC"

It broke lldb build.

Modified:
cfe/trunk/include/clang/AST/DeclCXX.h
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/AST/ASTImporter.cpp
cfe/trunk/lib/AST/DeclCXX.cpp
cfe/trunk/lib/Parse/ParseDeclCXX.cpp
cfe/trunk/lib/Sema/SemaDeclCXX.cpp
cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp

Modified: cfe/trunk/include/clang/AST/DeclCXX.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclCXX.h?rev=256403=256402=256403=diff
==
--- cfe/trunk/include/clang/AST/DeclCXX.h (original)
+++ cfe/trunk/include/clang/AST/DeclCXX.h Thu Dec 24 18:36:02 2015
@@ -701,7 +701,7 @@ public:
   }
 
   /// \brief Sets the base classes of this struct or class.
-  void setBases(ArrayRef Bases);
+  void setBases(CXXBaseSpecifier const * const *Bases, unsigned NumBases);
 
   /// \brief Retrieves the number of base classes of this class.
   unsigned getNumBases() const { return data().NumBases; }

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256403=256402=256403=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 18:36:02 2015
@@ -5365,10 +5365,10 @@ public:
 SourceLocation BaseLoc,
 SourceLocation EllipsisLoc);
 
-  bool AttachBaseSpecifiers(CXXRecordDecl *Class,
-MutableArrayRef Bases);
-  void ActOnBaseSpecifiers(Decl *ClassDecl,
-   MutableArrayRef Bases);
+  bool AttachBaseSpecifiers(CXXRecordDecl *Class, CXXBaseSpecifier **Bases,
+unsigned NumBases);
+  void ActOnBaseSpecifiers(Decl *ClassDecl, CXXBaseSpecifier **Bases,
+   unsigned NumBases);
 
   bool IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base);
   bool IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base,

Modified: cfe/trunk/lib/AST/ASTImporter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=256403=256402=256403=diff
==
--- cfe/trunk/lib/AST/ASTImporter.cpp (original)
+++ cfe/trunk/lib/AST/ASTImporter.cpp Thu Dec 24 18:36:02 2015
@@ -2073,7 +2073,7 @@ bool ASTNodeImporter::ImportDefinition(R
EllipsisLoc));
 }
 if (!Bases.empty())
-  ToCXX->setBases(Bases);
+  ToCXX->setBases(Bases.data(), Bases.size());
   }
   
   if (shouldForceImportDeclContext(Kind))

Modified: cfe/trunk/lib/AST/DeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=256403=256402=256403=diff
==
--- cfe/trunk/lib/AST/DeclCXX.cpp (original)
+++ cfe/trunk/lib/AST/DeclCXX.cpp Thu Dec 24 18:36:02 2015
@@ -135,13 +135,14 @@ CXXRecordDecl::CreateDeserialized(const
 }
 
 void
-CXXRecordDecl::setBases(ArrayRef Bases) {
+CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
+unsigned NumBases) {
   ASTContext  = getASTContext();
 
   if (!data().Bases.isOffset() && data().NumBases > 0)
 C.Deallocate(data().getBases());
 
-  if (!Bases.empty()) {
+  if (NumBases) {
 // C++ [dcl.init.aggr]p1:
 //   An aggregate is [...] a class with [...] no base classes [...].
 data().Aggregate = false;
@@ -157,9 +158,9 @@ CXXRecordDecl::setBases(ArrayRef VBases;
 
-  data().Bases = new(C) CXXBaseSpecifier [Bases.size()];
-  data().NumBases = Bases.size();
-  for (unsigned i = 0; i < Bases.size(); ++i) {
+  data().Bases = new(C) CXXBaseSpecifier [NumBases];
+  data().NumBases = NumBases;
+  for (unsigned i = 0; i < NumBases; ++i) {
 data().getBases()[i] = *Bases[i];
 // Keep track of inherited vbases for this base class.
 const CXXBaseSpecifier *Base = Bases[i];

Modified: cfe/trunk/lib/Parse/ParseDeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDeclCXX.cpp?rev=256403=256402=256403=diff
==
--- cfe/trunk/lib/Parse/ParseDeclCXX.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDeclCXX.cpp Thu Dec 24 18:36:02 2015
@@ -1844,7 +1844,7 @@ void Parser::ParseBaseClause(Decl *Class
   }
 
   // Attach the base specifiers
-  Actions.ActOnBaseSpecifiers(ClassDecl, BaseInfo);
+  Actions.ActOnBaseSpecifiers(ClassDecl, BaseInfo.data(), BaseInfo.size());
 }
 
 /// ParseBaseSpecifier - Parse a C++ base-specifier. A base-specifier is

Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
URL: 

r256393 - use auto for obvious type; NFC

2015-12-24 Thread Sanjay Patel via cfe-commits
Author: spatel
Date: Thu Dec 24 15:11:29 2015
New Revision: 256393

URL: http://llvm.org/viewvc/llvm-project?rev=256393=rev
Log:
use auto for obvious type; NFC

Modified:
cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp

Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=256393=256392=256393=diff
==
--- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp (original)
+++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp Thu Dec 24 15:11:29 2015
@@ -785,7 +785,7 @@ struct CounterCoverageMappingBuilder
 else
   pushRegion(Count, getStart(S));
 
-if (const CaseStmt *CS = dyn_cast(S)) {
+if (const auto *CS = dyn_cast(S)) {
   Visit(CS->getLHS());
   if (const Expr *RHS = CS->getRHS())
 Visit(RHS);


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r256395 - fix test that depends on LLVM optimizations

2015-12-24 Thread Sanjay Patel via cfe-commits
Author: spatel
Date: Thu Dec 24 15:53:40 2015
New Revision: 256395

URL: http://llvm.org/viewvc/llvm-project?rev=256395=rev
Log:
fix test that depends on LLVM optimizations

Modified:
cfe/trunk/test/CodeGen/aarch64-poly64.c

Modified: cfe/trunk/test/CodeGen/aarch64-poly64.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/aarch64-poly64.c?rev=256395=256394=256395=diff
==
--- cfe/trunk/test/CodeGen/aarch64-poly64.c (original)
+++ cfe/trunk/test/CodeGen/aarch64-poly64.c Thu Dec 24 15:53:40 2015
@@ -1,3 +1,6 @@
+// FIXME: This is a front-end test that depends on LLVM optimizations (-O3). 
+// It should be split into separate files for front/middle/back-end testing.
+
 // REQUIRES: aarch64-registered-target
 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \
 // RUN:  -ffp-contract=fast -S -O3 -o - %s | FileCheck %s --check-prefix=CHECK 
\
@@ -77,7 +80,7 @@ poly64x1_t test_vcopy_lane_p64(poly64x1_
 poly64x2_t test_vcopyq_lane_p64(poly64x2_t a, poly64x1_t b) {
   // CHECK-LABEL: test_vcopyq_lane_p64
   return vcopyq_lane_p64(a, 1, b, 0);
-  // CHECK: ins  {{v[0-9]+}}.d[1], {{v[0-9]+}}.d[0]
+  // CHECK: zip1 v0.2d, v0.2d, v1.2d
 }
 
 poly64x2_t test_vcopyq_laneq_p64(poly64x2_t a, poly64x2_t b) {


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15729: Load compiler plugins in ASTUnit, too

2015-12-24 Thread Doug Gregor via cfe-commits
doug.gregor added a comment.

It looks good. Are you able to include a test for this?


http://reviews.llvm.org/D15729



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r256400 - [Sema] ArrayRef-ize ActOnTemplateParameterList. NFC

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 17:58:25 2015
New Revision: 256400

URL: http://llvm.org/viewvc/llvm-project?rev=256400=rev
Log:
[Sema] ArrayRef-ize ActOnTemplateParameterList. NFC

Modified:
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/Parse/ParseDecl.cpp
cfe/trunk/lib/Parse/ParseDeclCXX.cpp
cfe/trunk/lib/Parse/ParseTemplate.cpp
cfe/trunk/lib/Sema/SemaTemplate.cpp

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256400=256399=256400=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 17:58:25 2015
@@ -5583,7 +5583,7 @@ public:
  SourceLocation ExportLoc,
  SourceLocation TemplateLoc,
  SourceLocation LAngleLoc,
- Decl **Params, unsigned NumParams,
+ ArrayRef Params,
  SourceLocation RAngleLoc);
 
   /// \brief The context in which we are checking a template parameter list.

Modified: cfe/trunk/lib/Parse/ParseDecl.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=256400=256399=256400=diff
==
--- cfe/trunk/lib/Parse/ParseDecl.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDecl.cpp Thu Dec 24 17:58:25 2015
@@ -1974,8 +1974,8 @@ Decl *Parser::ParseDeclarationAfterDecla
 // Recover as if it were an explicit specialization.
 TemplateParameterLists FakedParamLists;
 FakedParamLists.push_back(Actions.ActOnTemplateParameterList(
-0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, nullptr,
-0, LAngleLoc));
+0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None,
+LAngleLoc));
 
 ThisDecl =
 Actions.ActOnTemplateDeclarator(getCurScope(), FakedParamLists, D);

Modified: cfe/trunk/lib/Parse/ParseDeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDeclCXX.cpp?rev=256400=256399=256400=diff
==
--- cfe/trunk/lib/Parse/ParseDeclCXX.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDeclCXX.cpp Thu Dec 24 17:58:25 2015
@@ -1662,8 +1662,8 @@ void Parser::ParseClassSpecifier(tok::To
   // "template<>", so that we treat this construct as a class
   // template specialization.
   FakedParamLists.push_back(Actions.ActOnTemplateParameterList(
-  0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, 
nullptr,
-  0, LAngleLoc));
+  0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None,
+  LAngleLoc));
   TemplateParams = 
 }
   }

Modified: cfe/trunk/lib/Parse/ParseTemplate.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseTemplate.cpp?rev=256400=256399=256400=diff
==
--- cfe/trunk/lib/Parse/ParseTemplate.cpp (original)
+++ cfe/trunk/lib/Parse/ParseTemplate.cpp Thu Dec 24 17:58:25 2015
@@ -126,8 +126,7 @@ Parser::ParseTemplateDeclarationOrSpecia
   Actions.ActOnTemplateParameterList(CurTemplateDepthTracker.getDepth(), 
  ExportLoc,
  TemplateLoc, LAngleLoc,
- TemplateParams.data(),
- TemplateParams.size(), RAngleLoc));
+ TemplateParams, RAngleLoc));
 
 if (!TemplateParams.empty()) {
   isSpecialization = false;
@@ -280,8 +279,8 @@ Parser::ParseSingleDeclarationAfterTempl
 // Recover as if it were an explicit specialization.
 TemplateParameterLists FakedParamLists;
 FakedParamLists.push_back(Actions.ActOnTemplateParameterList(
-0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, nullptr,
-0, LAngleLoc));
+0, SourceLocation(), TemplateInfo.TemplateLoc, LAngleLoc, None,
+LAngleLoc));
 
 return ParseFunctionDefinition(
 DeclaratorInfo, ParsedTemplateInfo(,
@@ -631,8 +630,7 @@ Parser::ParseTemplateTemplateParameter(u
   TemplateParameterList *ParamList =
 Actions.ActOnTemplateParameterList(Depth, SourceLocation(),
TemplateLoc, LAngleLoc,
-   TemplateParams.data(),
-   TemplateParams.size(),
+   TemplateParams,
RAngleLoc);
 
   // Grab a default argument (if available).

Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
URL: 

r256397 - [Sema] ArrayRef-ize ParseObjCStringLiteral and CodeCompleteObjCProtocolReferences. NFC

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 17:58:11 2015
New Revision: 256397

URL: http://llvm.org/viewvc/llvm-project?rev=256397=rev
Log:
[Sema] ArrayRef-ize ParseObjCStringLiteral and 
CodeCompleteObjCProtocolReferences. NFC

Modified:
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/Parse/ParseObjc.cpp
cfe/trunk/lib/Sema/SemaCodeComplete.cpp
cfe/trunk/lib/Sema/SemaExprObjC.cpp

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256397=256396=256397=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 17:58:11 2015
@@ -5087,8 +5087,7 @@ public:
 
   // ParseObjCStringLiteral - Parse Objective-C string literals.
   ExprResult ParseObjCStringLiteral(SourceLocation *AtLocs,
-Expr **Strings,
-unsigned NumStrings);
+ArrayRef Strings);
 
   ExprResult BuildObjCStringLiteral(SourceLocation AtLoc, StringLiteral *S);
 
@@ -8900,8 +8899,8 @@ public:
  DeclGroupPtrTy IterationVar);
   void CodeCompleteObjCSelector(Scope *S,
 ArrayRef SelIdents);
-  void CodeCompleteObjCProtocolReferences(IdentifierLocPair *Protocols,
-  unsigned NumProtocols);
+  void CodeCompleteObjCProtocolReferences(
+ ArrayRef 
Protocols);
   void CodeCompleteObjCProtocolDecl(Scope *S);
   void CodeCompleteObjCInterfaceDecl(Scope *S);
   void CodeCompleteObjCSuperclass(Scope *S,

Modified: cfe/trunk/lib/Parse/ParseObjc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseObjc.cpp?rev=256397=256396=256397=diff
==
--- cfe/trunk/lib/Parse/ParseObjc.cpp (original)
+++ cfe/trunk/lib/Parse/ParseObjc.cpp Thu Dec 24 17:58:11 2015
@@ -503,8 +503,7 @@ ObjCTypeParamList *Parser::parseObjCType
   if (Tok.is(tok::code_completion)) {
 // FIXME: If these aren't protocol references, we'll need different
 // completions.
-Actions.CodeCompleteObjCProtocolReferences(protocolIdents.data(),
-   protocolIdents.size());
+Actions.CodeCompleteObjCProtocolReferences(protocolIdents);
 cutOffParsing();
 
 // FIXME: Better recovery here?.
@@ -1566,8 +1565,7 @@ ParseObjCProtocolReferences(SmallVectorI
 
   while (1) {
 if (Tok.is(tok::code_completion)) {
-  Actions.CodeCompleteObjCProtocolReferences(ProtocolIdents.data(), 
- ProtocolIdents.size());
+  Actions.CodeCompleteObjCProtocolReferences(ProtocolIdents);
   cutOffParsing();
   return true;
 }
@@ -1670,8 +1668,7 @@ void Parser::parseObjCTypeArgsOrProtocol
   if (!BaseT.isNull() && BaseT->acceptsObjCTypeParams()) {
 Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Type);
   } else {
-Actions.CodeCompleteObjCProtocolReferences(identifierLocPairs.data(),
-   identifierLocPairs.size());
+Actions.CodeCompleteObjCProtocolReferences(identifierLocPairs);
   }
   cutOffParsing();
   return;
@@ -3287,8 +3284,7 @@ ExprResult Parser::ParseObjCStringLitera
 AtStrings.push_back(Lit.get());
   }
 
-  return Actions.ParseObjCStringLiteral([0], AtStrings.data(),
-AtStrings.size());
+  return Actions.ParseObjCStringLiteral(AtLocs.data(), AtStrings);
 }
 
 /// ParseObjCBooleanLiteral -

Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=256397=256396=256397=diff
==
--- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)
+++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Thu Dec 24 17:58:11 2015
@@ -5926,8 +5926,8 @@ static void AddProtocolResults(DeclConte
   }
 }
 
-void Sema::CodeCompleteObjCProtocolReferences(IdentifierLocPair *Protocols,
-  unsigned NumProtocols) {
+void Sema::CodeCompleteObjCProtocolReferences(
+ArrayRef Protocols) 
{
   ResultBuilder Results(*this, CodeCompleter->getAllocator(),
 CodeCompleter->getCodeCompletionTUInfo(),
 CodeCompletionContext::CCC_ObjCProtocolName);
@@ -5938,9 +5938,9 @@ void Sema::CodeCompleteObjCProtocolRefer
 // Tell the result set to ignore all of the protocols we have
 // already seen.
 // FIXME: This doesn't work when caching code-completion results.
-for (unsigned I = 0; I != NumProtocols; ++I)
-  if (ObjCProtocolDecl 

r256399 - [Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 17:58:20 2015
New Revision: 256399

URL: http://llvm.org/viewvc/llvm-project?rev=256399=rev
Log:
[Sema] ArrayRef-ize ActOnBaseSpecifiers. NFC

Modified:
cfe/trunk/include/clang/AST/DeclCXX.h
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/AST/ASTImporter.cpp
cfe/trunk/lib/AST/DeclCXX.cpp
cfe/trunk/lib/Parse/ParseDeclCXX.cpp
cfe/trunk/lib/Sema/SemaDeclCXX.cpp
cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp

Modified: cfe/trunk/include/clang/AST/DeclCXX.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclCXX.h?rev=256399=256398=256399=diff
==
--- cfe/trunk/include/clang/AST/DeclCXX.h (original)
+++ cfe/trunk/include/clang/AST/DeclCXX.h Thu Dec 24 17:58:20 2015
@@ -701,7 +701,7 @@ public:
   }
 
   /// \brief Sets the base classes of this struct or class.
-  void setBases(CXXBaseSpecifier const * const *Bases, unsigned NumBases);
+  void setBases(ArrayRef Bases);
 
   /// \brief Retrieves the number of base classes of this class.
   unsigned getNumBases() const { return data().NumBases; }

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256399=256398=256399=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 17:58:20 2015
@@ -5365,10 +5365,10 @@ public:
 SourceLocation BaseLoc,
 SourceLocation EllipsisLoc);
 
-  bool AttachBaseSpecifiers(CXXRecordDecl *Class, CXXBaseSpecifier **Bases,
-unsigned NumBases);
-  void ActOnBaseSpecifiers(Decl *ClassDecl, CXXBaseSpecifier **Bases,
-   unsigned NumBases);
+  bool AttachBaseSpecifiers(CXXRecordDecl *Class,
+MutableArrayRef Bases);
+  void ActOnBaseSpecifiers(Decl *ClassDecl,
+   MutableArrayRef Bases);
 
   bool IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base);
   bool IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base,

Modified: cfe/trunk/lib/AST/ASTImporter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=256399=256398=256399=diff
==
--- cfe/trunk/lib/AST/ASTImporter.cpp (original)
+++ cfe/trunk/lib/AST/ASTImporter.cpp Thu Dec 24 17:58:20 2015
@@ -2073,7 +2073,7 @@ bool ASTNodeImporter::ImportDefinition(R
EllipsisLoc));
 }
 if (!Bases.empty())
-  ToCXX->setBases(Bases.data(), Bases.size());
+  ToCXX->setBases(Bases);
   }
   
   if (shouldForceImportDeclContext(Kind))

Modified: cfe/trunk/lib/AST/DeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=256399=256398=256399=diff
==
--- cfe/trunk/lib/AST/DeclCXX.cpp (original)
+++ cfe/trunk/lib/AST/DeclCXX.cpp Thu Dec 24 17:58:20 2015
@@ -135,14 +135,13 @@ CXXRecordDecl::CreateDeserialized(const
 }
 
 void
-CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
-unsigned NumBases) {
+CXXRecordDecl::setBases(ArrayRef Bases) {
   ASTContext  = getASTContext();
 
   if (!data().Bases.isOffset() && data().NumBases > 0)
 C.Deallocate(data().getBases());
 
-  if (NumBases) {
+  if (!Bases.empty()) {
 // C++ [dcl.init.aggr]p1:
 //   An aggregate is [...] a class with [...] no base classes [...].
 data().Aggregate = false;
@@ -158,9 +157,9 @@ CXXRecordDecl::setBases(CXXBaseSpecifier
   // The virtual bases of this class.
   SmallVector VBases;
 
-  data().Bases = new(C) CXXBaseSpecifier [NumBases];
-  data().NumBases = NumBases;
-  for (unsigned i = 0; i < NumBases; ++i) {
+  data().Bases = new(C) CXXBaseSpecifier [Bases.size()];
+  data().NumBases = Bases.size();
+  for (unsigned i = 0; i < Bases.size(); ++i) {
 data().getBases()[i] = *Bases[i];
 // Keep track of inherited vbases for this base class.
 const CXXBaseSpecifier *Base = Bases[i];

Modified: cfe/trunk/lib/Parse/ParseDeclCXX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDeclCXX.cpp?rev=256399=256398=256399=diff
==
--- cfe/trunk/lib/Parse/ParseDeclCXX.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDeclCXX.cpp Thu Dec 24 17:58:20 2015
@@ -1844,7 +1844,7 @@ void Parser::ParseBaseClause(Decl *Class
   }
 
   // Attach the base specifiers
-  Actions.ActOnBaseSpecifiers(ClassDecl, BaseInfo.data(), BaseInfo.size());
+  Actions.ActOnBaseSpecifiers(ClassDecl, BaseInfo);
 }
 
 /// ParseBaseSpecifier - Parse a C++ base-specifier. A base-specifier is

Modified: 

r256401 - [Sema] ArrayRef-ize SubstExprs. NFC

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 17:58:29 2015
New Revision: 256401

URL: http://llvm.org/viewvc/llvm-project?rev=256401=rev
Log:
[Sema] ArrayRef-ize SubstExprs. NFC

Modified:
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
cfe/trunk/lib/Sema/TreeTransform.h

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256401=256400=256401=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 17:58:29 2015
@@ -7008,7 +7008,7 @@ public:
   /// \param Outputs Will receive all of the substituted arguments.
   ///
   /// \returns true if an error occurred, false otherwise.
-  bool SubstExprs(Expr **Exprs, unsigned NumExprs, bool IsCall,
+  bool SubstExprs(ArrayRef Exprs, bool IsCall,
   const MultiLevelTemplateArgumentList ,
   SmallVectorImpl );
 

Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp?rev=256401=256400=256401=diff
==
--- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp Thu Dec 24 17:58:29 2015
@@ -2664,16 +2664,17 @@ ExprResult Sema::SubstInitializer(Expr *
   return Instantiator.TransformInitializer(Init, CXXDirectInit);
 }
 
-bool Sema::SubstExprs(Expr **Exprs, unsigned NumExprs, bool IsCall,
+bool Sema::SubstExprs(ArrayRef Exprs, bool IsCall,
   const MultiLevelTemplateArgumentList ,
   SmallVectorImpl ) {
-  if (NumExprs == 0)
+  if (Exprs.empty())
 return false;
 
   TemplateInstantiator Instantiator(*this, TemplateArgs,
 SourceLocation(),
 DeclarationName());
-  return Instantiator.TransformExprs(Exprs, NumExprs, IsCall, Outputs);
+  return Instantiator.TransformExprs(Exprs.data(), Exprs.size(),
+ IsCall, Outputs);
 }
 
 NestedNameSpecifierLoc

Modified: cfe/trunk/lib/Sema/TreeTransform.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/TreeTransform.h?rev=256401=256400=256401=diff
==
--- cfe/trunk/lib/Sema/TreeTransform.h (original)
+++ cfe/trunk/lib/Sema/TreeTransform.h Thu Dec 24 17:58:29 2015
@@ -391,7 +391,7 @@ public:
   /// due to transformation.
   ///
   /// \returns true if an error occurred, false otherwise.
-  bool TransformExprs(Expr **Inputs, unsigned NumInputs, bool IsCall,
+  bool TransformExprs(Expr *const *Inputs, unsigned NumInputs, bool IsCall,
   SmallVectorImpl ,
   bool *ArgChanged = nullptr);
 
@@ -3200,7 +3200,7 @@ ExprResult TreeTransform::Trans
 }
 
 template
-bool TreeTransform::TransformExprs(Expr **Inputs,
+bool TreeTransform::TransformExprs(Expr *const *Inputs,
 unsigned NumInputs,
 bool IsCall,
   SmallVectorImpl ,


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r256398 - [Sema] ArrayRef-ize BuildObjCDictionaryLiteral. NFC

2015-12-24 Thread Craig Topper via cfe-commits
Author: ctopper
Date: Thu Dec 24 17:58:15 2015
New Revision: 256398

URL: http://llvm.org/viewvc/llvm-project?rev=256398=rev
Log:
[Sema] ArrayRef-ize BuildObjCDictionaryLiteral. NFC

Modified:
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/lib/Parse/ParseObjc.cpp
cfe/trunk/lib/Sema/SemaExprObjC.cpp
cfe/trunk/lib/Sema/TreeTransform.h

Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=256398=256397=256398=diff
==
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Thu Dec 24 17:58:15 2015
@@ -5112,8 +5112,7 @@ public:
   ObjCMethodDecl *setterMethod);
 
   ExprResult BuildObjCDictionaryLiteral(SourceRange SR,
-ObjCDictionaryElement *Elements,
-unsigned NumElements);
+   MutableArrayRef 
Elements);
 
   ExprResult BuildObjCEncodeExpression(SourceLocation AtLoc,
   TypeSourceInfo *EncodedTypeInfo,

Modified: cfe/trunk/lib/Parse/ParseObjc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseObjc.cpp?rev=256398=256397=256398=diff
==
--- cfe/trunk/lib/Parse/ParseObjc.cpp (original)
+++ cfe/trunk/lib/Parse/ParseObjc.cpp Thu Dec 24 17:58:15 2015
@@ -3435,7 +3435,7 @@ ExprResult Parser::ParseObjCDictionaryLi
   
   // Create the ObjCDictionaryLiteral.
   return Actions.BuildObjCDictionaryLiteral(SourceRange(AtLoc, EndLoc),
-Elements.data(), Elements.size());
+Elements);
 }
 
 ///objc-encode-expression:

Modified: cfe/trunk/lib/Sema/SemaExprObjC.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprObjC.cpp?rev=256398=256397=256398=diff
==
--- cfe/trunk/lib/Sema/SemaExprObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprObjC.cpp Thu Dec 24 17:58:15 2015
@@ -865,9 +865,8 @@ ExprResult Sema::BuildObjCArrayLiteral(S
 ArrayWithObjectsMethod, SR));
 }
 
-ExprResult Sema::BuildObjCDictionaryLiteral(SourceRange SR, 
-ObjCDictionaryElement *Elements,
-unsigned NumElements) {
+ExprResult Sema::BuildObjCDictionaryLiteral(SourceRange SR,
+  MutableArrayRef Elements) 
{
   SourceLocation Loc = SR.getBegin();
 
   if (!NSDictionaryDecl) {
@@ -1004,31 +1003,31 @@ ExprResult Sema::BuildObjCDictionaryLite
   // Check that each of the keys and values provided is valid in a collection 
   // literal, performing conversions as necessary.
   bool HasPackExpansions = false;
-  for (unsigned I = 0, N = NumElements; I != N; ++I) {
+  for (ObjCDictionaryElement  : Elements) {
 // Check the key.
-ExprResult Key = CheckObjCCollectionLiteralElement(*this, Elements[I].Key, 
+ExprResult Key = CheckObjCCollectionLiteralElement(*this, Element.Key,
KeyT);
 if (Key.isInvalid())
   return ExprError();
 
 // Check the value.
 ExprResult Value
-  = CheckObjCCollectionLiteralElement(*this, Elements[I].Value, ValueT);
+  = CheckObjCCollectionLiteralElement(*this, Element.Value, ValueT);
 if (Value.isInvalid())
   return ExprError();
 
-Elements[I].Key = Key.get();
-Elements[I].Value = Value.get();
+Element.Key = Key.get();
+Element.Value = Value.get();
 
-if (Elements[I].EllipsisLoc.isInvalid())
+if (Element.EllipsisLoc.isInvalid())
   continue;
 
-if (!Elements[I].Key->containsUnexpandedParameterPack() &&
-!Elements[I].Value->containsUnexpandedParameterPack()) {
-  Diag(Elements[I].EllipsisLoc, 
+if (!Element.Key->containsUnexpandedParameterPack() &&
+!Element.Value->containsUnexpandedParameterPack()) {
+  Diag(Element.EllipsisLoc,
diag::err_pack_expansion_without_parameter_packs)
-<< SourceRange(Elements[I].Key->getLocStart(),
-   Elements[I].Value->getLocEnd());
+<< SourceRange(Element.Key->getLocStart(),
+   Element.Value->getLocEnd());
   return ExprError();
 }
 
@@ -1040,7 +1039,7 @@ ExprResult Sema::BuildObjCDictionaryLite
 = Context.getObjCObjectPointerType(
 
Context.getObjCInterfaceType(NSDictionaryDecl));
   return MaybeBindToTemporary(ObjCDictionaryLiteral::Create(
-  Context, makeArrayRef(Elements, NumElements), HasPackExpansions, Ty,
+  Context, Elements, HasPackExpansions, Ty,
   DictionaryWithObjectsMethod, SR));
 }
 

Modified: 

Re: [PATCH] D15729: Load compiler plugins in ASTUnit, too

2015-12-24 Thread Milian Wolff via cfe-commits
milianw added a subscriber: milianw.
milianw added a comment.

lgtm, but someone else should approve


http://reviews.llvm.org/D15729



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15603: [OpenCL] Pipe type support

2015-12-24 Thread Anastasia Stulova via cfe-commits
Anastasia added inline comments.


Comment at: lib/AST/ASTContext.cpp:3121
@@ +3120,3 @@
+QualType ASTContext::getPipeType(QualType T) const {
+  // Unique pointers, to guarantee there is only one pointer of a particular
+  // structure.

I don't think this comment is much related here - a copy-paste issue perhaps? 
But I see this is replicated elsewhere.

As mentioned in comment of http://reviews.llvm.org/D14441, I think we might 
want to look at refactoring the code that handles wrapper types in Clang. 
However, this shouldn't prevent this patch from being committed.


Comment at: lib/CodeGen/CGOpenCLRuntime.cpp:108
@@ +107,3 @@
+PipeTy = llvm::PointerType::get(llvm::StructType::create(
+  CGM.getLLVMContext(), "opencl.pipe_t"), PipeAddrSpc);
+  }

Should there be any indication of pipe element type or at least its size?  I.e 
should we differentiate between 'pipe char' or 'pipe int' in IR?

Perhaps, it doesn't have to be a part of this commit, but it would still be 
useful to understand.


Comment at: lib/CodeGen/CodeGenFunction.cpp:565
@@ +564,3 @@
+// FIXME: now image and pipe share the same access qualifier maybe we can
+// refine it to OCL acess qualifier and also handle write_read
+if (ty->isImageType()|| ty->isPipeType()) {

acess -> access
OCL -> OpenCL


Comment at: lib/Sema/TreeTransform.h:5352
@@ -5329,1 +5351,3 @@
+
+namespace {
   /// \brief Simple iterator that traverses the template arguments in a

Not clear why the namespace is being added here? i. e. seems to be old code.


Comment at: test/CodeGenOpenCL/pipe_types.cl:15
@@ +14,3 @@
+// CHECK: define void @test2(%opencl.pipe_t* %p)
+  reserve_id_t rid;
+// CHECK: %rid = alloca %opencl.reserve_id_t

Do we need to check reserve_id_t in every test? I feel like having it once 
would be enough.


Comment at: test/SemaOpenCL/pipes-1.2-negative.cl:1
@@ +1,2 @@
+// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.2
+

Could we add tests for checking CL2.0 pipes diagnostics added in this patch?


http://reviews.llvm.org/D15603



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r256377 - Replace llvm::utostr calls in Twine context with Twines. NFC.

2015-12-24 Thread Benjamin Kramer via cfe-commits
Author: d0k
Date: Thu Dec 24 04:07:37 2015
New Revision: 256377

URL: http://llvm.org/viewvc/llvm-project?rev=256377=rev
Log:
Replace llvm::utostr calls in Twine context with Twines. NFC.

Modified:
cfe/trunk/lib/AST/ItaniumMangle.cpp
cfe/trunk/lib/Basic/Targets.cpp

Modified: cfe/trunk/lib/AST/ItaniumMangle.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumMangle.cpp?rev=256377=256376=256377=diff
==
--- cfe/trunk/lib/AST/ItaniumMangle.cpp (original)
+++ cfe/trunk/lib/AST/ItaniumMangle.cpp Thu Dec 24 04:07:37 2015
@@ -1018,7 +1018,7 @@ void CXXNameMangler::mangleUnqualifiedNa
   unsigned UnnamedMangle = getASTContext().getManglingNumber(TD);
   Out << "Ut";
   if (UnnamedMangle > 1)
-Out << llvm::utostr(UnnamedMangle - 2);
+Out << UnnamedMangle - 2;
   Out << '_';
   break;
 }
@@ -2450,7 +2450,7 @@ void CXXNameMangler::mangleAArch64NeonVe
 EltName = mangleAArch64VectorBase(cast(EltType));
 
   std::string TypeName =
-  ("__" + EltName + "x" + llvm::utostr(T->getNumElements()) + "_t").str();
+  ("__" + EltName + "x" + Twine(T->getNumElements()) + "_t").str();
   Out << TypeName.length() << TypeName;
 }
 

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=256377=256376=256377=diff
==
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Thu Dec 24 04:07:37 2015
@@ -4700,7 +4700,7 @@ public:
 
 // ACLE 6.4.1 ARM/Thumb instruction set architecture
 // __ARM_ARCH is defined as an integer value indicating the current ARM ISA
-Builder.defineMacro("__ARM_ARCH", llvm::utostr(ArchVersion));
+Builder.defineMacro("__ARM_ARCH", Twine(ArchVersion));
 
 if (ArchVersion >= 8) {
   // ACLE 6.5.7 Crypto Extension


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r256382 - [X86][ms-inline asm] Test case for adding support for memory operands that include structs

2015-12-24 Thread Marina Yatsina via cfe-commits
Author: myatsina
Date: Thu Dec 24 06:11:40 2015
New Revision: 256382

URL: http://llvm.org/viewvc/llvm-project?rev=256382=rev
Log:
[X86][ms-inline asm] Test case for adding support for memory operands that 
include structs

Test case for commit 256381

Differential Revision: http://reviews.llvm.org/D15749


Modified:
cfe/trunk/test/CodeGen/ms-inline-asm.c

Modified: cfe/trunk/test/CodeGen/ms-inline-asm.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ms-inline-asm.c?rev=256382=256381=256382=diff
==
--- cfe/trunk/test/CodeGen/ms-inline-asm.c (original)
+++ cfe/trunk/test/CodeGen/ms-inline-asm.c Thu Dec 24 06:11:40 2015
@@ -536,6 +536,38 @@ void t42() {
 // CHECK: "=*m,~{dirflag},~{fpsr},~{flags}"(i32* %flags)
 }
 
+void t43() {
+// CHECK-LABEL: define void @t43
+  C strct;
+// Work around PR20368: These should be single line blocks
+ __asm { mov eax, 4[strct.c1] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[strct.c3 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$8$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 8[strct.c2.a + 4 + 32*2 - 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$72$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 12[4 + strct.c2.b] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$16$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[4 + strct.c4.b2.b + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$12$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c1 + (2*32)] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$132$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c2.a - 2*32] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [strct.c4.b1 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [strct.c4.b2.a + 4 + 32*2 - 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$64$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [4 + strct.c1] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [4 + strct.c2.b + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$8$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [64 + strct.c3 + (2*32)] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$128$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [64 + strct.c4.b2.b - 2*32] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+}
+
 void call_clobber() {
   __asm call t41
   // CHECK-LABEL: define void @call_clobber


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15749: [X86][ms-inline asm] Test case for adding support for memory operands that include structs

2015-12-24 Thread Marina Yatsina via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL256382: [X86][ms-inline asm] Test case for adding support 
for memory operands that… (authored by myatsina).

Changed prior to commit:
  http://reviews.llvm.org/D15749?vs=43531=43593#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D15749

Files:
  cfe/trunk/test/CodeGen/ms-inline-asm.c

Index: cfe/trunk/test/CodeGen/ms-inline-asm.c
===
--- cfe/trunk/test/CodeGen/ms-inline-asm.c
+++ cfe/trunk/test/CodeGen/ms-inline-asm.c
@@ -536,6 +536,38 @@
 // CHECK: "=*m,~{dirflag},~{fpsr},~{flags}"(i32* %flags)
 }
 
+void t43() {
+// CHECK-LABEL: define void @t43
+  C strct;
+// Work around PR20368: These should be single line blocks
+ __asm { mov eax, 4[strct.c1] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[strct.c3 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$8$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 8[strct.c2.a + 4 + 32*2 - 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$72$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 12[4 + strct.c2.b] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$16$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[4 + strct.c4.b2.b + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$12$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c1 + (2*32)] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$132$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c2.a - 2*32] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [strct.c4.b1 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [strct.c4.b2.a + 4 + 32*2 - 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$64$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [4 + strct.c1] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [4 + strct.c2.b + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$8$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [64 + strct.c3 + (2*32)] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$128$0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [64 + strct.c4.b2.b - 2*32] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $0", 
"*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+}
+
 void call_clobber() {
   __asm call t41
   // CHECK-LABEL: define void @call_clobber


Index: cfe/trunk/test/CodeGen/ms-inline-asm.c
===
--- cfe/trunk/test/CodeGen/ms-inline-asm.c
+++ cfe/trunk/test/CodeGen/ms-inline-asm.c
@@ -536,6 +536,38 @@
 // CHECK: "=*m,~{dirflag},~{fpsr},~{flags}"(i32* %flags)
 }
 
+void t43() {
+// CHECK-LABEL: define void @t43
+  C strct;
+// Work around PR20368: These should be single line blocks
+ __asm { mov eax, 4[strct.c1] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[strct.c3 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$8$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 8[strct.c2.a + 4 + 32*2 - 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$72$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 12[4 + strct.c2.b] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$16$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[4 + strct.c4.b2.b + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$12$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c1 + (2*32)] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$132$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, 4[64 + strct.c2.a - 2*32] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov eax, [strct.c4.b1 + 4] }
+// CHECK: call void asm sideeffect inteldialect "mov eax, dword ptr $$4$0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
+  __asm { mov