[llvm-branch-commits] [llvm-branch] r259891 - Merging r259886 and r259888:
Author: hans
Date: Fri Feb 5 10:30:31 2016
New Revision: 259891
URL: http://llvm.org/viewvc/llvm-project?rev=259891&view=rev
Log:
Merging r259886 and r259888:
r259886 | nemanjai | 2016-02-05 06:50:29 -0800 (Fri, 05 Feb 2016) | 5 lines
Fix for PR 26193
This is a simple fix for a PowerPC intrinsic that was incorrectly defined
(the return type was incorrect).
r259888 | nemanjai | 2016-02-05 07:03:17 -0800 (Fri, 05 Feb 2016) | 3 lines
Add the missing test case for PR26193
Added:
llvm/branches/release_38/test/CodeGen/PowerPC/pr26193.ll
- copied unchanged from r259888,
llvm/trunk/test/CodeGen/PowerPC/pr26193.ll
Modified:
llvm/branches/release_38/ (props changed)
llvm/branches/release_38/include/llvm/IR/IntrinsicsPowerPC.td
llvm/branches/release_38/lib/Target/PowerPC/PPCInstrAltivec.td
Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 5 10:30:31 2016
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259645,259649,259695,259740,259798,259835,259840
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259645,259649,259695,259740,259798,259835,259840,259886,259888
Modified: llvm/branches/release_38/include/llvm/IR/IntrinsicsPowerPC.td
URL:
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/include/llvm/IR/IntrinsicsPowerPC.td?rev=259891&r1=259890&r2=259891&view=diff
==
--- llvm/branches/release_38/include/llvm/IR/IntrinsicsPowerPC.td (original)
+++ llvm/branches/release_38/include/llvm/IR/IntrinsicsPowerPC.td Fri Feb 5
10:30:31 2016
@@ -484,7 +484,7 @@ let TargetPrefix = "ppc" in { // All PP
Intrinsic<[llvm_v16i8_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
[IntrNoMem]>;
def int_ppc_altivec_vpkswss : GCCBuiltin<"__builtin_altivec_vpkswss">,
-Intrinsic<[llvm_v16i8_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
+Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
[IntrNoMem]>;
def int_ppc_altivec_vpkswus : GCCBuiltin<"__builtin_altivec_vpkswus">,
Intrinsic<[llvm_v8i16_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
Modified: llvm/branches/release_38/lib/Target/PowerPC/PPCInstrAltivec.td
URL:
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Target/PowerPC/PPCInstrAltivec.td?rev=259891&r1=259890&r2=259891&view=diff
==
--- llvm/branches/release_38/lib/Target/PowerPC/PPCInstrAltivec.td (original)
+++ llvm/branches/release_38/lib/Target/PowerPC/PPCInstrAltivec.td Fri Feb 5
10:30:31 2016
@@ -736,7 +736,7 @@ def VPKSHSS : VX1_Int_Ty2<398, "vpkshss"
def VPKSHUS : VX1_Int_Ty2<270, "vpkshus", int_ppc_altivec_vpkshus,
v16i8, v8i16>;
def VPKSWSS : VX1_Int_Ty2<462, "vpkswss", int_ppc_altivec_vpkswss,
- v16i8, v4i32>;
+ v8i16, v4i32>;
def VPKSWUS : VX1_Int_Ty2<334, "vpkswus", int_ppc_altivec_vpkswus,
v8i16, v4i32>;
def VPKUHUM : VXForm_1<14, (outs vrrc:$vD), (ins vrrc:$vA, vrrc:$vB),
___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-tag] r259905 - [analyzer] checker-277: Pull in nullability fixes and dealloc checker.
Author: dcoughlin
Date: Fri Feb 5 13:17:16 2016
New Revision: 259905
URL: http://llvm.org/viewvc/llvm-project?rev=259905&view=rev
Log:
[analyzer] checker-277: Pull in nullability fixes and dealloc checker.
Cherry-pick in the following fixes from trunk:
r259288:[analyzer] Make suppression of macro defensive checks work with
-analyzer-eagerly-assume.
r259222:[analyzer] Suppress null reports from defensive checks in function-like
macros.
r259221:[analyzer] Improve Nullability checker diagnostics
r259118:[analyzer] NullabilityChecker: Remove unused isReturnSelf() function.
r259099:[analyzer] Suppress nullability warnings in copy, mutableCopy, and init
families.
r258461:[analyzer] Suppress nullability warning for defensive super initializer
idiom.
r258896:[analyzer] ObjCDeallocChecker: Only operate on classes with retained
properties.
r258886:[analyzer] Body farm: Look for property ivar in shadowing readwrite
property.
r258061:[analyzer] Nullability: Look through implicit casts when suppressing
warnings on return.
r257938:[analyzer] Check for return of nil in ObjC methods with nonnull return
type.
Added:
cfe/tags/checker/checker-278/test/Analysis/DeallocMissingRelease.m
- copied unchanged from r258896,
cfe/trunk/test/Analysis/DeallocMissingRelease.m
cfe/tags/checker/checker-278/test/Analysis/nullability-no-arc.mm
- copied unchanged from r258061,
cfe/trunk/test/Analysis/nullability-no-arc.mm
Modified:
cfe/tags/checker/checker-278/ (props changed)
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Core/CheckerContext.cpp
cfe/tags/checker/checker-278/test/Analysis/MissingDealloc.m
cfe/tags/checker/checker-278/test/Analysis/PR2978.m
cfe/tags/checker/checker-278/test/Analysis/inlining/false-positive-suppression.c
cfe/tags/checker/checker-278/test/Analysis/nullability.mm
cfe/tags/checker/checker-278/test/Analysis/nullability_nullonly.mm
cfe/tags/checker/checker-278/test/Analysis/properties.m
Propchange: cfe/tags/checker/checker-278/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 5 13:17:16 2016
@@ -1,3 +1,4 @@
/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk:257938,258061,258461,258886,258896,259099,259118,259221-259222,259288
/cfe/trunk/test:170344
/cfe/trunk/test/SemaTemplate:126920
Modified:
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h?rev=259905&r1=259904&r2=259905&view=diff
==
---
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
(original)
+++
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
Fri Feb 5 13:17:16 2016
@@ -263,6 +263,10 @@ public:
Eng.getBugReporter().emitReport(std::move(R));
}
+ /// \brief Returns the word that should be used to refer to the declaration
+ /// in the report.
+ StringRef getDeclDescription(const Decl *D);
+
/// \brief Get the declaration of the called function (path-sensitive).
const FunctionDecl *getCalleeDecl(const CallExpr *CE) const;
Modified: cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp?rev=259905&r1=259904&r2=259905&view=diff
==
--- cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp (original)
+++ cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp Fri Feb 5 13:17:16
2016
@@ -383,10 +383,49 @@ Stmt *BodyFarm::getBody(const FunctionDe
return Val.getValue();
}
+static const ObjCIvarDecl *findBackingIvar(const ObjCPropertyDecl *Prop) {
+ const ObjCIvarDecl *IVar = Prop->getPropertyIvarDecl();
+
+ if (IVar)
+return IVar;
+
+ // When a readonly property is shadowed in a class extensions with a
+ // a readwrite property, the instance variable belongs to the shadowing
+ // property rather than the shadowed property. If there is no instance
+ // variable on a readonly property, check to see whether the property is
+ // shadowed and if so try to get the instance variable from shadowing
+ // property.
+ if (!Prop->isReadOnly())
+return nullptr;
+
+ aut
[llvm-branch-commits] [compiler-rt-branch] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: compiler-rt/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra-branch] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: clang-tools-extra/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-tag] r259929 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:30:02 2016 New Revision: 259929 URL: http://llvm.org/viewvc/llvm-project?rev=259929&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: llvm/tags/google/stable/2016-02-05/ (props changed) - copied from r256229, llvm/trunk/ Propchange: llvm/tags/google/stable/2016-02-05/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:30:02 2016 @@ -0,0 +1,25 @@ +Debug +Release +Release-Asserts +mklib +Makefile.config +config.log +config.status +cvs.out +autom4te.cache +configure.out +LLVM-* +_distcheckdir +llvm.spec +svn-commit.* +*.patch +*.patch.raw +cscope.* +Debug+Coverage-Asserts +Release+Coverage-Asserts +Debug+Coverage +Release+Coverage +Debug+Checks +Debug+Asserts +Release+Asserts +build Propchange: llvm/tags/google/stable/2016-02-05/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:30:02 2016 @@ -0,0 +1,3 @@ +/llvm/branches/Apple/Pertwee:110850,110961 +/llvm/branches/type-system-rewrite:133420-134817 +/llvm/trunk:155241 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-branch] r259922 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:29:49 2016 New Revision: 259922 URL: http://llvm.org/viewvc/llvm-project?rev=259922&view=rev Log: Updating branches/google/stable to r256229 Added: compiler-rt/branches/google/stable/ - copied from r256229, compiler-rt/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [compiler-rt-tag] r259921 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:29:48 2016 New Revision: 259921 URL: http://llvm.org/viewvc/llvm-project?rev=259921&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: compiler-rt/tags/google/stable/2016-02-05/ - copied from r256229, compiler-rt/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: llvm/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: lldb/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] r259928 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:30:00 2016 New Revision: 259928 URL: http://llvm.org/viewvc/llvm-project?rev=259928&view=rev Log: Updating branches/google/stable to r256229 Added: lldb/branches/google/stable/ (props changed) - copied from r256229, lldb/trunk/ Propchange: lldb/branches/google/stable/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:30:00 2016 @@ -0,0 +1,4 @@ +build +intermediates +llvm +llvm-build Propchange: lldb/branches/google/stable/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:30:00 2016 @@ -0,0 +1,2 @@ +/lldb/branches/apple/python-GIL:156467-162159 +/lldb/branches/iohandler:198360-200250 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [polly] r259926 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:29:56 2016 New Revision: 259926 URL: http://llvm.org/viewvc/llvm-project?rev=259926&view=rev Log: Updating branches/google/stable to r256229 Added: polly/branches/google/stable/ - copied from r256229, polly/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-tag] r259919 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:29:43 2016 New Revision: 259919 URL: http://llvm.org/viewvc/llvm-project?rev=259919&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: cfe/tags/google/stable/2016-02-05/ (props changed) - copied from r256229, cfe/trunk/ Propchange: cfe/tags/google/stable/2016-02-05/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:29:43 2016 @@ -0,0 +1,3 @@ +configure.out +cscope.files +cscope.out Propchange: cfe/tags/google/stable/2016-02-05/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:29:43 2016 @@ -0,0 +1,3 @@ +/cfe/branches/type-system-rewrite:134693-134817 +/cfe/trunk/test:170344 +/cfe/trunk/test/SemaTemplate:126920 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra-branch] r259924 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:29:53 2016 New Revision: 259924 URL: http://llvm.org/viewvc/llvm-project?rev=259924&view=rev Log: Updating branches/google/stable to r256229 Added: clang-tools-extra/branches/google/stable/ - copied from r256229, clang-tools-extra/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r259920 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:29:46 2016 New Revision: 259920 URL: http://llvm.org/viewvc/llvm-project?rev=259920&view=rev Log: Updating branches/google/stable to r256229 Added: cfe/branches/google/stable/ (props changed) - copied from r256229, cfe/trunk/ Propchange: cfe/branches/google/stable/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:29:46 2016 @@ -0,0 +1,3 @@ +configure.out +cscope.files +cscope.out Propchange: cfe/branches/google/stable/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:29:46 2016 @@ -0,0 +1,3 @@ +/cfe/branches/type-system-rewrite:134693-134817 +/cfe/trunk/test:170344 +/cfe/trunk/test/SemaTemplate:126920 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [lldb] r259927 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:29:58 2016 New Revision: 259927 URL: http://llvm.org/viewvc/llvm-project?rev=259927&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: lldb/tags/google/stable/2016-02-05/ (props changed) - copied from r256229, lldb/trunk/ Propchange: lldb/tags/google/stable/2016-02-05/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:29:58 2016 @@ -0,0 +1,4 @@ +build +intermediates +llvm +llvm-build Propchange: lldb/tags/google/stable/2016-02-05/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:29:58 2016 @@ -0,0 +1,2 @@ +/lldb/branches/apple/python-GIL:156467-162159 +/lldb/branches/iohandler:198360-200250 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [polly] r259925 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:29:55 2016 New Revision: 259925 URL: http://llvm.org/viewvc/llvm-project?rev=259925&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: polly/tags/google/stable/2016-02-05/ - copied from r256229, polly/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [clang-tools-extra-tag] r259923 - Creating tags/google/stable/2016-02-05 from r256229
Author: echristo Date: Fri Feb 5 15:29:51 2016 New Revision: 259923 URL: http://llvm.org/viewvc/llvm-project?rev=259923&view=rev Log: Creating tags/google/stable/2016-02-05 from r256229 Added: clang-tools-extra/tags/google/stable/2016-02-05/ - copied from r256229, clang-tools-extra/trunk/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: cfe/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r259930 - Updating branches/google/stable to r256229
Author: echristo Date: Fri Feb 5 15:30:04 2016 New Revision: 259930 URL: http://llvm.org/viewvc/llvm-project?rev=259930&view=rev Log: Updating branches/google/stable to r256229 Added: llvm/branches/google/stable/ (props changed) - copied from r256229, llvm/trunk/ Propchange: llvm/branches/google/stable/ -- --- svn:ignore (added) +++ svn:ignore Fri Feb 5 15:30:04 2016 @@ -0,0 +1,25 @@ +Debug +Release +Release-Asserts +mklib +Makefile.config +config.log +config.status +cvs.out +autom4te.cache +configure.out +LLVM-* +_distcheckdir +llvm.spec +svn-commit.* +*.patch +*.patch.raw +cscope.* +Debug+Coverage-Asserts +Release+Coverage-Asserts +Debug+Coverage +Release+Coverage +Debug+Checks +Debug+Asserts +Release+Asserts +build Propchange: llvm/branches/google/stable/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Feb 5 15:30:04 2016 @@ -0,0 +1,3 @@ +/llvm/branches/Apple/Pertwee:110850,110961 +/llvm/branches/type-system-rewrite:133420-134817 +/llvm/trunk:155241 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [polly] r259918 - Cleaning up stable branch
Author: echristo Date: Fri Feb 5 15:29:41 2016 New Revision: 259918 URL: http://llvm.org/viewvc/llvm-project?rev=259918&view=rev Log: Cleaning up stable branch Removed: polly/branches/google/stable/ ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r259939 - Merging r259931:
Author: hans
Date: Fri Feb 5 16:15:03 2016
New Revision: 259939
URL: http://llvm.org/viewvc/llvm-project?rev=259939&view=rev
Log:
Merging r259931:
r259931 | uweigand | 2016-02-05 13:34:28 -0800 (Fri, 05 Feb 2016) | 33 lines
[SystemZ] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macros
Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248] macros on SystemZ.
This fixes a miscompile of GCC C++11 standard library headers
due to use of those macros in an ABI-changing manner.
See e.g. /usr/include/c++/4.8.5/ext/concurrence.h:
// Compile time constant that indicates prefered locking policy in
// the current configuration.
static const _Lock_policy __default_lock_policy =
#ifdef __GTHREADS
#if (defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2) \
&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4))
_S_atomic;
#else
_S_mutex;
#endif
#else
_S_single;
#endif
A different choice of __default_lock_policy causes different
sizes of several of the C++11 data structures, which are then
incompatible when inlined in clang-compiled code with what the
(GCC-compiled) external library expects.
This in turn leads to various crashes when using std::thread
in code compiled with clang, as see e.g. via the ThreadPool
unit tests. See PR 26473 for an example.
Modified:
cfe/branches/release_38/ (props changed)
cfe/branches/release_38/lib/Basic/Targets.cpp
cfe/branches/release_38/test/Preprocessor/predefined-arch-macros.c
Propchange: cfe/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 5 16:15:03 2016
@@ -1,4 +1,4 @@
/cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:257652,257695,257710,257831,257838,257853,257861,257869-257871,257947,258110,258396,259183,259260,259598
+/cfe/trunk:257652,257695,257710,257831,257838,257853,257861,257869-257871,257947,258110,258396,259183,259260,259598,259931
/cfe/trunk/test:170344
/cfe/trunk/test/SemaTemplate:126920
Modified: cfe/branches/release_38/lib/Basic/Targets.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/lib/Basic/Targets.cpp?rev=259939&r1=259938&r2=259939&view=diff
==
--- cfe/branches/release_38/lib/Basic/Targets.cpp (original)
+++ cfe/branches/release_38/lib/Basic/Targets.cpp Fri Feb 5 16:15:03 2016
@@ -6151,6 +6151,12 @@ public:
Builder.defineMacro("__s390x__");
Builder.defineMacro("__zarch__");
Builder.defineMacro("__LONG_DOUBLE_128__");
+
+Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
+Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
+Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
+Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
if (HasTransactionalExecution)
Builder.defineMacro("__HTM__");
if (Opts.ZVector)
Modified: cfe/branches/release_38/test/Preprocessor/predefined-arch-macros.c
URL:
http://llvm.org/viewvc/llvm-project/cfe/branches/release_38/test/Preprocessor/predefined-arch-macros.c?rev=259939&r1=259938&r2=259939&view=diff
==
--- cfe/branches/release_38/test/Preprocessor/predefined-arch-macros.c
(original)
+++ cfe/branches/release_38/test/Preprocessor/predefined-arch-macros.c Fri Feb
5 16:15:03 2016
@@ -1787,6 +1787,10 @@
// RUN: -target s390x-unknown-linux \
// RUN: | FileCheck %s -check-prefix=CHECK_SYSTEMZ_Z10
//
+// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
+// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
+// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
+// CHECK_SYSTEMZ_Z10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
// CHECK_SYSTEMZ_Z10: #define __LONG_DOUBLE_128__ 1
// CHECK_SYSTEMZ_Z10: #define __s390__ 1
// CHECK_SYSTEMZ_Z10: #define __s390x__ 1
@@ -1796,6 +1800,10 @@
// RUN: -target s390x-unknown-linux \
// RUN: | FileCheck %s -check-prefix=CHECK_SYSTEMZ_ZEC12
//
+// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
+// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
+// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
+// CHECK_SYSTEMZ_ZEC12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
// CHECK_SYSTEMZ_ZEC12: #define __HTM__ 1
// CHECK_SYSTEMZ_ZEC12: #define __LONG_DOUBLE_128__ 1
// CHECK_SYSTEMZ_ZEC12: #define __s390__ 1
___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-branch] r259940 - Merging r259381:
Author: hans
Date: Fri Feb 5 16:17:38 2016
New Revision: 259940
URL: http://llvm.org/viewvc/llvm-project?rev=259940&view=rev
Log:
Merging r259381:
r259381 | uweigand | 2016-02-01 10:31:19 -0800 (Mon, 01 Feb 2016) | 21 lines
[SystemZ] Fix wrong-code generation for certain always-false conditions
We've found another bug in the code generation logic conditions for a
certain class of always-false conditions, those of the form
if ((a & 1) < 0)
These only reach the back end when compiling without optimization.
The bug was introduced by the choice of using TEST UNDER MASK
to implement a check for
if ((a & MASK) < VAL)
as
if ((a & MASK) == 0)
where VAL is less than the the lowest bit of MASK. This is correct
in all cases except for VAL == 0, in which case the original
condition is always false, but the replacement isn't.
Fixed by excluding that particular case.
Added:
llvm/branches/release_38/test/CodeGen/SystemZ/int-cmp-53.ll
- copied unchanged from r259381,
llvm/trunk/test/CodeGen/SystemZ/int-cmp-53.ll
Modified:
llvm/branches/release_38/ (props changed)
llvm/branches/release_38/lib/Target/SystemZ/SystemZISelLowering.cpp
Propchange: llvm/branches/release_38/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 5 16:17:38 2016
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259645,259649,259695,259740,259798,259835,259840,259886,259888
+/llvm/trunk:155241,257645,257648,257730,257775,257791,257875,257886,257902,257905,257925,257929-257930,257940,257942,257977,257979,257997,258168,258184,258207,258221,258273,258325,258406,258416,258428,258436,258471,258690,258729,258891,258971,259177-259178,259228,259236,259342,259346,259375,259381,259645,259649,259695,259740,259798,259835,259840,259886,259888
Modified: llvm/branches/release_38/lib/Target/SystemZ/SystemZISelLowering.cpp
URL:
http://llvm.org/viewvc/llvm-project/llvm/branches/release_38/lib/Target/SystemZ/SystemZISelLowering.cpp?rev=259940&r1=259939&r2=259940&view=diff
==
--- llvm/branches/release_38/lib/Target/SystemZ/SystemZISelLowering.cpp
(original)
+++ llvm/branches/release_38/lib/Target/SystemZ/SystemZISelLowering.cpp Fri Feb
5 16:17:38 2016
@@ -1849,7 +1849,7 @@ static unsigned getTestUnderMaskCond(uns
if (CCMask == SystemZ::CCMASK_CMP_NE)
return SystemZ::CCMASK_TM_SOME_1;
}
- if (EffectivelyUnsigned && CmpVal <= Low) {
+ if (EffectivelyUnsigned && CmpVal > 0 && CmpVal <= Low) {
if (CCMask == SystemZ::CCMASK_CMP_LT)
return SystemZ::CCMASK_TM_ALL_0;
if (CCMask == SystemZ::CCMASK_CMP_GE)
___
llvm-branch-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
