Commit Graph

4 Commits

Author SHA1 Message Date
Atmn Patel ac73b73c16 [clang] Add mustprogress and llvm.loop.mustprogress attribute deduction
Since C++11, the C++ standard has a forward progress guarantee
[intro.progress], so all such functions must have the `mustprogress`
requirement. In addition, from C11 and onwards, loops without a non-zero
constant conditional or no conditional are also required to make
progress (C11 6.8.5p6). This patch implements these attribute deductions
so they can be used by the optimization passes.

Differential Revision: https://reviews.llvm.org/D86841
2020-11-04 22:03:14 -05:00
Fariborz Jahanian 1e8a3c8ebd Add -std=c++98 to the test and minor improvment in addition.
llvm-svn: 172221
2013-01-11 17:33:57 +00:00
Fariborz Jahanian 00ccbdce21 Improve on my last test for patch for // rdar://12897704
llvm-svn: 172154
2013-01-11 00:55:44 +00:00
Fariborz Jahanian cc7f008b85 c++ IRGen. In trivial cases that object is going into static
storage and thus is implicitly zero-initialized, no need to
do C++11 memory model. This patch unconditionally detects
such condition and zeroinitializer's the variable.
Patch has been commented on and OKed by Doug off-line.
// rdar://12897704

llvm-svn: 172144
2013-01-10 23:28:43 +00:00