Re: [PATCH] D21515: Update clang for D21514. NFC

2016-09-08 Thread Amaury SECHET via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL281018: Update clang for D21514. NFC (authored by deadalnix).

Changed prior to commit:
  https://reviews.llvm.org/D21515?vs=62791&id=70783#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D21515

Files:
  cfe/trunk/lib/CodeGen/CGExpr.cpp

Index: cfe/trunk/lib/CodeGen/CGExpr.cpp
===
--- cfe/trunk/lib/CodeGen/CGExpr.cpp
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp
@@ -2758,10 +2758,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }


Index: cfe/trunk/lib/CodeGen/CGExpr.cpp
===
--- cfe/trunk/lib/CodeGen/CGExpr.cpp
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp
@@ -2758,10 +2758,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r281018 - Update clang for D21514. NFC

2016-09-09 Thread Amaury Sechet via cfe-commits
Author: deadalnix
Date: Thu Sep  8 23:42:49 2016
New Revision: 281018

URL: http://llvm.org/viewvc/llvm-project?rev=281018&view=rev
Log:
Update clang for D21514. NFC

Summary: As per title.

Reviewers: ahatanak, bkramer, whitequark, mehdi_amini, void

Subscribers: cfe-commits

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

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

Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=281018&r1=281017&r2=281018&view=diff
==
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Thu Sep  8 23:42:49 2016
@@ -2758,10 +2758,11 @@ void CodeGenFunction::EmitTrapCheck(llvm
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }


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


[PATCH] D13744: Update clang as per D13683

2015-10-14 Thread Amaury SECHET via cfe-commits
deadalnix created this revision.
deadalnix added reviewers: chandlerc, dexonsmith, echristo.
deadalnix added a subscriber: cfe-commits.

This diffs remove use of deprecated API.

http://reviews.llvm.org/D13744

Files:
  lib/CodeGen/CGDebugInfo.cpp

Index: lib/CodeGen/CGDebugInfo.cpp
===
--- lib/CodeGen/CGDebugInfo.cpp
+++ lib/CodeGen/CGDebugInfo.cpp
@@ -844,7 +844,7 @@
   }
 
   llvm::DITypeRefArray EltTypeArray = DBuilder.getOrCreateTypeArray(EltTys);
-  return DBuilder.createSubroutineType(Unit, EltTypeArray);
+  return DBuilder.createSubroutineType(EltTypeArray);
 }
 
 /// Convert an AccessSpecifier into the corresponding DINode flag.
@@ -1095,7 +1095,7 @@
   if (Func->getExtProtoInfo().RefQualifier == RQ_RValue)
 Flags |= llvm::DINode::FlagRValueReference;
 
-  return DBuilder.createSubroutineType(Unit, EltTypeArray, Flags);
+  return DBuilder.createSubroutineType(EltTypeArray, Flags);
 }
 
 /// isFunctionLocalClass - Return true if CXXRecordDecl is defined
@@ -1395,7 +1395,7 @@
   /* Function type */
   llvm::Metadata *STy = getOrCreateType(Context.IntTy, Unit);
   llvm::DITypeRefArray SElements = DBuilder.getOrCreateTypeArray(STy);
-  llvm::DIType *SubTy = DBuilder.createSubroutineType(Unit, SElements);
+  llvm::DIType *SubTy = DBuilder.createSubroutineType(SElements);
   unsigned Size = Context.getTypeSize(Context.VoidPtrTy);
   llvm::DIType *vtbl_ptr_type =
   DBuilder.createPointerType(SubTy, Size, 0, "__vtbl_ptr_type");
@@ -2599,8 +2599,7 @@
   if (!D || DebugKind <= CodeGenOptions::DebugLineTablesOnly)
 // Create fake but valid subroutine type. Otherwise -verify would fail, and
 // subprogram DIE will miss DW_AT_decl_file and DW_AT_decl_line fields.
-return DBuilder.createSubroutineType(F,
- DBuilder.getOrCreateTypeArray(None));
+return DBuilder.createSubroutineType(DBuilder.getOrCreateTypeArray(None));
 
   if (const CXXMethodDecl *Method = dyn_cast(D))
 return getOrCreateMethodType(Method, F);
@@ -2637,7 +2636,7 @@
   Elts.push_back(DBuilder.createUnspecifiedParameter());
 
 llvm::DITypeRefArray EltTypeArray = DBuilder.getOrCreateTypeArray(Elts);
-return DBuilder.createSubroutineType(F, EltTypeArray);
+return DBuilder.createSubroutineType(EltTypeArray);
   }
 
   // Handle variadic function types; they need an additional
@@ -2651,7 +2650,7 @@
   EltTys.push_back(getOrCreateType(FPT->getParamType(i), F));
   EltTys.push_back(DBuilder.createUnspecifiedParameter());
   llvm::DITypeRefArray EltTypeArray = 
DBuilder.getOrCreateTypeArray(EltTys);
-  return DBuilder.createSubroutineType(F, EltTypeArray);
+  return DBuilder.createSubroutineType(EltTypeArray);
 }
 
   return cast(getOrCreateType(FnType, F));


Index: lib/CodeGen/CGDebugInfo.cpp
===
--- lib/CodeGen/CGDebugInfo.cpp
+++ lib/CodeGen/CGDebugInfo.cpp
@@ -844,7 +844,7 @@
   }
 
   llvm::DITypeRefArray EltTypeArray = DBuilder.getOrCreateTypeArray(EltTys);
-  return DBuilder.createSubroutineType(Unit, EltTypeArray);
+  return DBuilder.createSubroutineType(EltTypeArray);
 }
 
 /// Convert an AccessSpecifier into the corresponding DINode flag.
@@ -1095,7 +1095,7 @@
   if (Func->getExtProtoInfo().RefQualifier == RQ_RValue)
 Flags |= llvm::DINode::FlagRValueReference;
 
-  return DBuilder.createSubroutineType(Unit, EltTypeArray, Flags);
+  return DBuilder.createSubroutineType(EltTypeArray, Flags);
 }
 
 /// isFunctionLocalClass - Return true if CXXRecordDecl is defined
@@ -1395,7 +1395,7 @@
   /* Function type */
   llvm::Metadata *STy = getOrCreateType(Context.IntTy, Unit);
   llvm::DITypeRefArray SElements = DBuilder.getOrCreateTypeArray(STy);
-  llvm::DIType *SubTy = DBuilder.createSubroutineType(Unit, SElements);
+  llvm::DIType *SubTy = DBuilder.createSubroutineType(SElements);
   unsigned Size = Context.getTypeSize(Context.VoidPtrTy);
   llvm::DIType *vtbl_ptr_type =
   DBuilder.createPointerType(SubTy, Size, 0, "__vtbl_ptr_type");
@@ -2599,8 +2599,7 @@
   if (!D || DebugKind <= CodeGenOptions::DebugLineTablesOnly)
 // Create fake but valid subroutine type. Otherwise -verify would fail, and
 // subprogram DIE will miss DW_AT_decl_file and DW_AT_decl_line fields.
-return DBuilder.createSubroutineType(F,
- DBuilder.getOrCreateTypeArray(None));
+return DBuilder.createSubroutineType(DBuilder.getOrCreateTypeArray(None));
 
   if (const CXXMethodDecl *Method = dyn_cast(D))
 return getOrCreateMethodType(Method, F);
@@ -2637,7 +2636,7 @@
   Elts.push_back(DBuilder.createUnspecifiedParameter());
 
 llvm::DITypeRefArray EltTypeArray = DBuilder.getOrCreateTypeArray(Elts);
-return DBuilder.createSubroutineType(F, EltTypeArray);
+return DBuilder.createSubroutineType(EltTypeArray);
   }
 
   // Handle variadic function types; they need an

Re: [PATCH] D19299: lower __builtin_expect() directly to prof metadata instead of LLVM intrinsic

2016-04-20 Thread Amaury SECHET via cfe-commits
deadalnix added a subscriber: deadalnix.


Comment at: lib/CodeGen/CGStmt.cpp:1560-1588
@@ -1560,1 +1559,31 @@
+MDHelper.createUnpredictable());
+  } else if (FD->getBuiltinID() == Builtin::BI__builtin_expect) {
+
+// FIXME: builtin_expect should use the same metadata type as
+// builtin_unpredictable and be handled above. For now, we're mimicking
+// the LLVM behavior of the 'LowerExpectIntrinsic' pass.
+
+// HACK: Hardcode the taken/not-taken weights based on the existing 
LLVM
+// default values. This code is expected to be very temporary. Once we
+// have prepared LLVM to handle builtin_expect using 'unpredictable'
+// metadata, this gets deleted.
+
+const int LikelyWeight = 64;
+const int UnlikelyWeight = 4;
+
+llvm::Value *ExpectedVal = EmitScalarExpr(Call->getArg(1));
+if (auto *ExpectConst = dyn_cast(ExpectedVal)) {
+  // The +1 is for the default case.
+  SmallVector Weights(SwitchInsn->getNumCases() + 1,
+UnlikelyWeight);
+  auto ExpectedCase = SwitchInsn->findCaseValue(ExpectConst);
+  if (ExpectedCase == SwitchInsn->case_default())
+Weights[0] = LikelyWeight;
+  else
+Weights[ExpectedCase.getCaseIndex() + 1] = LikelyWeight;
+
+  SwitchInsn->setMetadata(llvm::LLVMContext::MD_prof,
+  MDHelper.createBranchWeights(Weights));
+}
+  }
 }

If I understand properly this is transitional and eventually, you want to 
remove the intrinsic ? I think I like it, having 2 ways to hint here is only 
making things more complicated without adding much value.


http://reviews.llvm.org/D19299



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


Re: [PATCH] D19299: lower __builtin_expect() directly to prof metadata instead of LLVM intrinsic

2016-04-20 Thread Amaury SECHET via cfe-commits
deadalnix added a comment.

In http://reviews.llvm.org/D19299#406517, @spatel wrote:

> Rereading your question, I'm now wondering if you are asking if we can get 
> rid of the source level builtin_unpredictable() ? I had not considered that, 
> but I think that is also possible if we add a flag to builtin_expect() to 
> mean 'this branch is unpredictable'.
>
> Please let me know if I answered the correct question. :)


You did answer my question. I don't really mind source level intrinsic, I'm 
more concerned about the IR and how they are lowered. Overall I like where this 
is going. It looks like @davidxl is on it for the review, and he seems to have 
a good idea of where this should go, so I'll defer to him for acceptance/change 
requests.


http://reviews.llvm.org/D19299



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


Re: [PATCH] D19105: Changes in clang after running http://reviews.llvm.org/D18821

2016-05-25 Thread Amaury SECHET via cfe-commits
deadalnix requested changes to this revision.
This revision now requires changes to proceed.


Comment at: include/llvm-c/Core.h:604
@@ -603,3 +603,3 @@
  */
-LLVMBool LLVMPrintModuleToFile(LLVMModuleRef M, const char *Filename,
+bool LLVMPrintModuleToFile(LLVMModuleRef M, const char *Filename,
char **ErrorMessage);

Please keep LLVMBool in the C API. ABI change are a NO NO.


http://reviews.llvm.org/D19105



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


[PATCH] D21515: Update clang for D21514. NFC

2016-06-19 Thread Amaury SECHET via cfe-commits
deadalnix created this revision.
deadalnix added reviewers: ahatanak, bkramer, whitequark, mehdi_amini, void.
deadalnix added a subscriber: cfe-commits.

As per title.

http://reviews.llvm.org/D21515

Files:
  lib/CodeGen/CGExpr.cpp

Index: lib/CodeGen/CGExpr.cpp
===
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -2735,10 +2735,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }


Index: lib/CodeGen/CGExpr.cpp
===
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -2735,10 +2735,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D21515: Update clang for D21514. NFC

2016-07-05 Thread Amaury SECHET via cfe-commits
deadalnix updated this revision to Diff 62791.
deadalnix added a comment.

rebase/ping


http://reviews.llvm.org/D21515

Files:
  lib/CodeGen/CGExpr.cpp

Index: lib/CodeGen/CGExpr.cpp
===
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -2753,10 +2753,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }


Index: lib/CodeGen/CGExpr.cpp
===
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -2753,10 +2753,11 @@
 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
   llvm::CallInst *TrapCall = Builder.CreateCall(CGM.getIntrinsic(IntrID));
 
-  if (!CGM.getCodeGenOpts().TrapFuncName.empty())
-TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex,
-   "trap-func-name",
-   CGM.getCodeGenOpts().TrapFuncName);
+  if (!CGM.getCodeGenOpts().TrapFuncName.empty()) {
+auto A = llvm::Attribute::get(getLLVMContext(), "trap-func-name",
+  CGM.getCodeGenOpts().TrapFuncName);
+TrapCall->addAttribute(llvm::AttributeSet::FunctionIndex, A);
+  }
 
   return TrapCall;
 }
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits