[llvm-branch-commits] [cfe-branch] r278989 - Merging r278786:

2016-08-17 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 17 16:58:11 2016
New Revision: 278989

URL: http://llvm.org/viewvc/llvm-project?rev=278989&view=rev
Log:
Merging r278786:

r278786 | jamesm | 2016-08-16 02:45:36 -0700 (Tue, 16 Aug 2016) | 4 lines

Left shifts of negative values are defined if -fwrapv is set

This means we shouldn't emit ubsan detection code or warn.
Fixes PR25552.


Added:
cfe/branches/release_39/test/CodeGen/wrapv-lshr-sanitize.c
  - copied unchanged from r278786, 
cfe/trunk/test/CodeGen/wrapv-lshr-sanitize.c
cfe/branches/release_39/test/Sema/negative-shift-wrapv.c
  - copied unchanged from r278786, 
cfe/trunk/test/Sema/negative-shift-wrapv.c
Modified:
cfe/branches/release_39/   (props changed)
cfe/branches/release_39/lib/CodeGen/CGExprScalar.cpp
cfe/branches/release_39/lib/Sema/SemaExpr.cpp

Propchange: cfe/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 17 16:58:11 2016
@@ -1,4 +1,4 @@
 /cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276900,276979,276983,277095,277138,277141,277221,277307,277522,277743,277783,277796-277797,277852,277866,277889,277900,278139,278156,278234-278235,278393,278395,278763
+/cfe/trunk:275880,275967,276102,276350,276361,276473,276653,276716,276887,276891,276900,276979,276983,277095,277138,277141,277221,277307,277522,277743,277783,277796-277797,277852,277866,277889,277900,278139,278156,278234-278235,278393,278395,278763,278786
 /cfe/trunk/test:170344
 /cfe/trunk/test/SemaTemplate:126920

Modified: cfe/branches/release_39/lib/CodeGen/CGExprScalar.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/CodeGen/CGExprScalar.cpp?rev=278989&r1=278988&r2=278989&view=diff
==
--- cfe/branches/release_39/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/branches/release_39/lib/CodeGen/CGExprScalar.cpp Wed Aug 17 16:58:11 
2016
@@ -2706,7 +2706,8 @@ Value *ScalarExprEmitter::EmitShl(const
 RHS = Builder.CreateIntCast(RHS, Ops.LHS->getType(), false, "sh_prom");
 
   bool SanitizeBase = CGF.SanOpts.has(SanitizerKind::ShiftBase) &&
-  Ops.Ty->hasSignedIntegerRepresentation();
+  Ops.Ty->hasSignedIntegerRepresentation() &&
+  !CGF.getLangOpts().isSignedOverflowDefined();
   bool SanitizeExponent = CGF.SanOpts.has(SanitizerKind::ShiftExponent);
   // OpenCL 6.3j: shift values are effectively % word size of LHS.
   if (CGF.getLangOpts().OpenCL)

Modified: cfe/branches/release_39/lib/Sema/SemaExpr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/Sema/SemaExpr.cpp?rev=278989&r1=278988&r2=278989&view=diff
==
--- cfe/branches/release_39/lib/Sema/SemaExpr.cpp (original)
+++ cfe/branches/release_39/lib/Sema/SemaExpr.cpp Wed Aug 17 16:58:11 2016
@@ -8567,7 +8567,7 @@ static void DiagnoseBadShiftValues(Sema&
 
   // If LHS does not have a signed type and non-negative value
   // then, the behavior is undefined. Warn about it.
-  if (Left.isNegative()) {
+  if (Left.isNegative() && !S.getLangOpts().isSignedOverflowDefined()) {
 S.DiagRuntimeBehavior(Loc, LHS.get(),
   S.PDiag(diag::warn_shift_lhs_negative)
 << LHS.get()->getSourceRange());


___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r278990 - Merging r278900:

2016-08-17 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 17 17:03:07 2016
New Revision: 278990

URL: http://llvm.org/viewvc/llvm-project?rev=278990&view=rev
Log:
Merging r278900:

r278900 | cycheng | 2016-08-16 20:17:44 -0700 (Tue, 16 Aug 2016) | 12 lines

[ppc64] Don't apply sibling call optimization if callee has any byval arg

This is a quick work around, because in some cases, e.g. caller's stack
size > callee's stack size, we are still able to apply sibling call
optimization even callee has any byval arg.

This patch fix: https://llvm.org/bugs/show_bug.cgi?id=28328

Reviewers: hfinkel kbarton nemanjai amehsan
Subscribers: hans, tjablin

https://reviews.llvm.org/D23441


Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/branches/release_39/test/CodeGen/PowerPC/ppc64-sibcall.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 17 17:03:07 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,23,278002,278086,278133,278157,278370,278413,278558,278569,278571,278573,278575,278584,278841
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,23,278002,278086,278133,278157,278370,278413,278558,278569,278571,278573,278575,278584,278841,278900

Modified: llvm/branches/release_39/lib/Target/PowerPC/PPCISelLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/PowerPC/PPCISelLowering.cpp?rev=278990&r1=278989&r2=278990&view=diff
==
--- llvm/branches/release_39/lib/Target/PowerPC/PPCISelLowering.cpp (original)
+++ llvm/branches/release_39/lib/Target/PowerPC/PPCISelLowering.cpp Wed Aug 17 
17:03:07 2016
@@ -4033,11 +4033,18 @@ PPCTargetLowering::IsEligibleForTailCall
   if (CalleeCC != CallingConv::Fast && CalleeCC != CallingConv::C)
 return false;
 
-  // Functions containing by val parameters are not supported.
+  // Caller contains any byval parameter is not supported.
   if (std::any_of(Ins.begin(), Ins.end(),
   [](const ISD::InputArg& IA) { return IA.Flags.isByVal(); }))
 return false;
 
+  // Callee contains any byval parameter is not supported, too.
+  // Note: This is a quick work around, because in some cases, e.g.
+  // caller's stack size > callee's stack size, we are still able to apply
+  // sibling call optimization. See: https://reviews.llvm.org/D23441#513574
+  if (any_of(Outs, [](const ISD::OutputArg& OA) { return OA.Flags.isByVal(); 
}))
+return false;
+
   // No TCO/SCO on indirect call because Caller have to restore its TOC
   if (!isFunctionGlobalAddress(Callee) &&
   !isa(Callee))

Modified: llvm/branches/release_39/test/CodeGen/PowerPC/ppc64-sibcall.ll
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/test/CodeGen/PowerPC/ppc64-sibcall.ll?rev=278990&r1=278989&r2=278990&view=diff
==
--- llvm/branches/release_39/test/CodeGen/PowerPC/ppc64-sibcall.ll (original)
+++ llvm/branches/release_39/test/CodeGen/PowerPC/ppc64-sibcall.ll Wed Aug 17 
17:03:07 2016
@@ -189,3 +189,15 @@ define void @w_caller(i8* %ptr) {
 ; CHECK-SCO-LABEL: w_caller:
 ; CHECK-SCO: bl w_callee
 }
+
+%struct.byvalTest = type { [8 x i8] }
+@byval = common global %struct.byvalTest zeroinitializer
+
+define void @byval_callee(%struct.byvalTest* byval %ptr) { ret void }
+define void @byval_caller() {
+  tail call void @byval_callee(%struct.byvalTest* byval @byval)
+  ret void
+
+; CHECK-SCO-LABEL: bl byval_callee
+; CHECK-SCO: bl byval_callee
+}


___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm-branch] r278993 - Merging r278938:

2016-08-17 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 17 17:13:00 2016
New Revision: 278993

URL: http://llvm.org/viewvc/llvm-project?rev=278993&view=rev
Log:
Merging r278938:

r278938 | mcrosier | 2016-08-17 08:54:39 -0700 (Wed, 17 Aug 2016) | 5 lines

Revert "Reassociate: Reprocess RedoInsts after each inst".

This reverts commit r258830, which introduced a bug described in PR28367.

PR28367


Removed:

llvm/branches/release_39/test/Transforms/Reassociate/prev_insts_canonicalized.ll
Modified:
llvm/branches/release_39/   (props changed)
llvm/branches/release_39/include/llvm/Transforms/Scalar/Reassociate.h
llvm/branches/release_39/lib/Transforms/Scalar/Reassociate.cpp

llvm/branches/release_39/test/Transforms/Reassociate/reassoc-intermediate-fnegs.ll
llvm/branches/release_39/test/Transforms/Reassociate/xor_reassoc.ll

Propchange: llvm/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 17 17:13:00 2016
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,23,278002,278086,278133,278157,278370,278413,278558,278569,278571,278573,278575,278584,278841,278900
+/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,23,278002,278086,278133,278157,278370,278413,278558,278569,278571,278573,278575,278584,278841,278900,278938

Modified: llvm/branches/release_39/include/llvm/Transforms/Scalar/Reassociate.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/include/llvm/Transforms/Scalar/Reassociate.h?rev=278993&r1=278992&r2=278993&view=diff
==
--- llvm/branches/release_39/include/llvm/Transforms/Scalar/Reassociate.h 
(original)
+++ llvm/branches/release_39/include/llvm/Transforms/Scalar/Reassociate.h Wed 
Aug 17 17:13:00 2016
@@ -65,7 +65,7 @@ public:
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &);
 
 private:
-  void BuildRankMap(Function &F, ReversePostOrderTraversal &RPOT);
+  void BuildRankMap(Function &F);
   unsigned getRank(Value *V);
   void canonicalizeOperands(Instruction *I);
   void ReassociateExpression(BinaryOperator *I);

Modified: llvm/branches/release_39/lib/Transforms/Scalar/Reassociate.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Transforms/Scalar/Reassociate.cpp?rev=278993&r1=278992&r2=278993&view=diff
==
--- llvm/branches/release_39/lib/Transforms/Scalar/Reassociate.cpp (original)
+++ llvm/branches/release_39/lib/Transforms/Scalar/Reassociate.cpp Wed Aug 17 
17:13:00 2016
@@ -145,8 +145,7 @@ static BinaryOperator *isReassociableOp(
   return nullptr;
 }
 
-void ReassociatePass::BuildRankMap(
-Function &F, ReversePostOrderTraversal &RPOT) {
+void ReassociatePass::BuildRankMap(Function &F) {
   unsigned i = 2;
 
   // Assign distinct ranks to function arguments.
@@ -155,6 +154,7 @@ void ReassociatePass::BuildRankMap(
 DEBUG(dbgs() << "Calculated Rank[" << I->getName() << "] = " << i << "\n");
   }
 
+  ReversePostOrderTraversal RPOT(&F);
   for (BasicBlock *BB : RPOT) {
 unsigned BBRank = RankMap[BB] = ++i << 16;
 
@@ -2172,28 +2172,13 @@ void ReassociatePass::ReassociateExpress
 }
 
 PreservedAnalyses ReassociatePass::run(Function &F, FunctionAnalysisManager &) 
{
-  // Reassociate needs for each instruction to have its operands already
-  // processed, so we first perform a RPOT of the basic blocks so that
-  // when we process a basic block, all its dominators have been processed
-  // before.
-  ReversePostOrderTraversal RPOT(&F);
-  BuildRankMap(F, RPOT);
+  // Calculate the rank map for F.
+  BuildRankMap(F);
 
   MadeChange = false;
-  for (BasicBlock *BI : RPOT) {
-// Use a worklist to keep track of which instructions have been processed
-// (and which insts won't be optimized again) so when redoing insts,
-// optimize insts rightaway which won't be processed later.
-SmallSet Worklist;
-
-// Insert all instructions in the BB
-for (Instruction &I : *BI)
-  Worklist.insert(&I);
-
+  for (Function::iterator BI = F.begin(), BE = F.end(); BI != BE; ++BI) {
 // Opti

[llvm-branch-commits] [clang-tools-extra-branch] r278997 - Merging r278949: (excluding the clang-include-fixer.el part)

2016-08-17 Thread Hans Wennborg via llvm-branch-commits
Author: hans
Date: Wed Aug 17 17:21:18 2016
New Revision: 278997

URL: http://llvm.org/viewvc/llvm-project?rev=278997&view=rev
Log:
Merging r278949: (excluding the clang-include-fixer.el part)

r278949 | eugenezelenko | 2016-08-17 10:27:56 -0700 (Wed, 17 Aug 2016) | 4 lines

[Include-fixer] Install executables and support scripts

Differential revision: https://reviews.llvm.org/D23045



Modified:
clang-tools-extra/branches/release_39/   (props changed)

clang-tools-extra/branches/release_39/include-fixer/find-all-symbols/tool/CMakeLists.txt
clang-tools-extra/branches/release_39/include-fixer/tool/CMakeLists.txt

Propchange: clang-tools-extra/branches/release_39/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 17 17:21:18 2016
@@ -1 +1 @@
-/clang-tools-extra/trunk:275943,277097
+/clang-tools-extra/trunk:275943,277097,278949

Modified: 
clang-tools-extra/branches/release_39/include-fixer/find-all-symbols/tool/CMakeLists.txt
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/branches/release_39/include-fixer/find-all-symbols/tool/CMakeLists.txt?rev=278997&r1=278996&r2=278997&view=diff
==
--- 
clang-tools-extra/branches/release_39/include-fixer/find-all-symbols/tool/CMakeLists.txt
 (original)
+++ 
clang-tools-extra/branches/release_39/include-fixer/find-all-symbols/tool/CMakeLists.txt
 Wed Aug 17 17:21:18 2016
@@ -1,8 +1,10 @@
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
 
-add_clang_executable(find-all-symbols FindAllSymbolsMain.cpp)
-target_link_libraries(find-all-symbols
+add_clang_executable(find-all-symbols
+  FindAllSymbolsMain.cpp
+  )
 
+target_link_libraries(find-all-symbols
   clangAST
   clangASTMatchers
   clangBasic
@@ -11,3 +13,10 @@ target_link_libraries(find-all-symbols
   clangTooling
   findAllSymbols
   )
+
+install(TARGETS find-all-symbols
+  RUNTIME DESTINATION bin)
+
+install(PROGRAMS run-find-all-symbols.py
+  DESTINATION share/clang
+  COMPONENT find-all-symbols)

Modified: 
clang-tools-extra/branches/release_39/include-fixer/tool/CMakeLists.txt
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/branches/release_39/include-fixer/tool/CMakeLists.txt?rev=278997&r1=278996&r2=278997&view=diff
==
--- clang-tools-extra/branches/release_39/include-fixer/tool/CMakeLists.txt 
(original)
+++ clang-tools-extra/branches/release_39/include-fixer/tool/CMakeLists.txt Wed 
Aug 17 17:21:18 2016
@@ -1,6 +1,9 @@
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
 
-add_clang_executable(clang-include-fixer ClangIncludeFixer.cpp)
+add_clang_executable(clang-include-fixer
+  ClangIncludeFixer.cpp
+  )
+
 target_link_libraries(clang-include-fixer
   clangBasic
   clangFormat
@@ -11,3 +14,10 @@ target_link_libraries(clang-include-fixe
   clangToolingCore
   findAllSymbols
   )
+
+install(TARGETS clang-include-fixer
+  RUNTIME DESTINATION bin)
+
+install(PROGRAMS clang-include-fixer.py
+  DESTINATION share/clang
+  COMPONENT clang-include-fixer)


___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits