[llvm-branch-commits] [cfe-branch] r278989 - Merging r278786:
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:
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:
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)
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
