jfb updated this revision to Diff 48363.
jfb added a comment.
- Add test.
http://reviews.llvm.org/D17349
Files:
lib/Basic/Targets.cpp
test/CodeGen/arm-vfp-asm-constraint.c
Index: test/CodeGen/arm-vfp-asm-constraint.c
===
--- /
jfb added a comment.
Added a test.
Constraint validation is lacking in LLVM: it doesn't check that the input
variable matches the constraint. I do pass `mfpmath vfp` to the test in case
this gets fixed, but it's not strictly necessary right now.
The following is currently accepted:
int oops
jfb added a comment.
Is this ready to land? I'm hoping to get it into the 3.8 branch since it
affects musl libc's latest release.
http://reviews.llvm.org/D17349
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/m
Author: jfb
Date: Fri Feb 19 00:54:45 2016
New Revision: 261309
URL: http://llvm.org/viewvc/llvm-project?rev=261309&view=rev
Log:
ARM: fix VFP asm constraints
Summary:
Rich Felker was sad that clang used 'w' and 'P' for VFP constraints when GCC
documents them as 't' and 'w':
https://gcc.gnu.or
Author: jfb
Date: Fri Feb 19 00:54:47 2016
New Revision: 261310
URL: http://llvm.org/viewvc/llvm-project?rev=261310&view=rev
Log:
Add test.
Added:
cfe/trunk/test/CodeGen/arm-vfp-asm-constraint.c
Added: cfe/trunk/test/CodeGen/arm-vfp-asm-constraint.c
URL:
http://llvm.org/viewvc/llvm-project/
This revision was automatically updated to reflect the committed changes.
Closed by commit rL261309: ARM: fix VFP asm constraints (authored by jfb).
Changed prior to commit:
http://reviews.llvm.org/D17349?vs=48363&id=48453#toc
Repository:
rL LLVM
http://reviews.llvm.org/D17349
Files:
cfe/
jfb added a comment.
@t.p.northover: would an acceptable solution be to add a new trait such as
`CGM.getCXXABI().CanCallMismatchedFunctionType()` or something of the sort? ARM
would set it to true, wasm to false.
http://reviews.llvm.org/D19275
___
jfb added a subscriber: pcc.
jfb added a comment.
> I guess there's a more general issue here which is that LLVM appears to be
> more permissive about prototype mismatch than wasm. Specifically, I'm
> thinking about how swifterror relies on being able to pass extra parameters
> to a function th
jfb added inline comments.
Comment at: lib/Transforms/IPO/MergeFunctions.cpp:147
@@ -146,3 +146,3 @@
struct Config : ValueMapConfig {
-enum { FollowRAUW = false };
+enum { FollowRAUW = 0 };
};
This change should go to ValueMap, I think it should be m
jfb accepted this revision.
jfb added a reviewer: jfb.
jfb added a comment.
This revision is now accepted and ready to land.
lgtm
http://reviews.llvm.org/D19275
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/ma
jfb created this revision.
jfb added reviewers: jyknight, reames.
jfb added a subscriber: cfe-commits.
See LLVM change D18775 for details, this change depends on it.
http://reviews.llvm.org/D18776
Files:
lib/CodeGen/CGAtomic.cpp
lib/CodeGen/CGBuiltin.cpp
lib/CodeGen/CGExprScalar.cpp
lib/
Author: jfb
Date: Wed Apr 6 12:26:42 2016
New Revision: 265569
URL: http://llvm.org/viewvc/llvm-project?rev=265569&view=rev
Log:
NFC: make AtomicOrdering an enum class
Summary: See LLVM change D18775 for details, this change depends on it.
Reviewers: jyknight, reames
Subscribers: cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL265569: NFC: make AtomicOrdering an enum class (authored by
jfb).
Changed prior to commit:
http://reviews.llvm.org/D18776?vs=52637&id=52820#toc
Repository:
rL LLVM
http://reviews.llvm.org/D18776
Fi
Author: jfb
Date: Wed Apr 6 18:37:36 2016
New Revision: 265617
URL: http://llvm.org/viewvc/llvm-project?rev=265617&view=rev
Log:
NFC: use AtomicOrdering isStrongerThan
Summary: As discussed in D18775.
Reviewers: jyknight
Differential Revision: http://reviews.llvm.org/D18840
Modified:
cfe/
jfb created this revision.
jfb added reviewers: jyknight, reames.
jfb added a subscriber: cfe-commits.
Depends on http://reviews.llvm.org/D18875
This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM, as
discussed in http://reviews.llvm.org/D18200#inline-151433
http://reviews.llv
jfb updated this revision to Diff 53931.
jfb added a comment.
- Use validity checks, reduce casting while still avoiding UB on out-of-range
enum values.
http://reviews.llvm.org/D18876
Files:
include/clang/AST/Expr.h
lib/CodeGen/CGAtomic.cpp
lib/Sema/SemaChecking.cpp
Index: lib/Sema/Sema
jfb added a comment.
In http://reviews.llvm.org/D18876#399934, @jyknight wrote:
> The large amount of casting to/from integers for AtomicOrderingCABI makes me
> think that it probably ought not actually be converted to an enum class after
> all.
Untrusted user input with enums is a problem: y
jfb added a comment.
In http://reviews.llvm.org/D18876#403119, @jyknight wrote:
> In http://reviews.llvm.org/D18876#402855, @jfb wrote:
>
> > In http://reviews.llvm.org/D18876#399934, @jyknight wrote:
> >
> > > The large amount of casting to/from integers for AtomicOrderingCABI makes
> > > me th
Author: jfb
Date: Sun Apr 17 16:01:09 2016
New Revision: 266574
URL: http://llvm.org/viewvc/llvm-project?rev=266574&view=rev
Log:
NFC: unify clang / LLVM atomic ordering
Summary:
Depends on http://reviews.llvm.org/D18875
This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM, as
This revision was automatically updated to reflect the committed changes.
Closed by commit rL266574: NFC: unify clang / LLVM atomic ordering (authored by
jfb).
Changed prior to commit:
http://reviews.llvm.org/D18876?vs=53931&id=54012#toc
Repository:
rL LLVM
http://reviews.llvm.org/D18876
F
Author: jfb
Date: Sun Apr 17 16:28:50 2016
New Revision: 266575
URL: http://llvm.org/viewvc/llvm-project?rev=266575&view=rev
Log:
Revert "NFC: unify clang / LLVM atomic ordering"
This reverts commit b0495df9eae2824bee830cc4c94f5441f0d4cbc9.
Same as for the corresponding LLVM revert, an assert se
Author: jfb
Date: Mon Apr 18 13:01:49 2016
New Revision: 266641
URL: http://llvm.org/viewvc/llvm-project?rev=266641&view=rev
Log:
NFC: unify clang / LLVM atomic ordering
This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM,
as discussed in http://reviews.llvm.org/D18200#inline-15
jfb added inline comments.
Comment at: lib/CodeGen/CGDeclCXX.cpp:94
@@ -92,2 +93,3 @@
if (dtorKind == QualType::DK_cxx_destructor &&
- (record = type->getAsCXXRecordDecl())) {
+ (record = type->getAsCXXRecordDecl()) &&
+ (!CGM.getCXXABI().HasThisReturn(
-
jfb added inline comments.
Comment at: lib/CodeGen/CGDeclCXX.cpp:92
@@ +91,3 @@
+ // disabled via a flag, a different helper function is generated anyway.
+ const CXXRecordDecl *Record = type->getAsCXXRecordDecl();
+ bool CanRegisterDestructor = Record &&
Can y
jfb added a comment.
lgtm besides two nits. Would be good to get a review from @t.p.northover or
someone from ARM.
Comment at: lib/CodeGen/CGDeclCXX.cpp:95
@@ +94,3 @@
+ Record->getDestructor(), Dtor_Complete));
+ // If __cxa_atexit is disable
jfb created this revision.
jfb added a reviewer: cfe-commits.
libc++ implements std::atomic<_Tp> using __atomic_base<_Tp> with
`mutable _Atomic(_Tp) __a_`. That member must be suitably aligned on
relevant ISAs for instructions such as cmpxchg to work properly, but
this alignment isn't checked anyw
jfb updated this revision to Diff 63723.
jfb added a comment.
- Move atomics.align to libcxx-specific
- Give names to anonymous structs
http://reviews.llvm.org/D22073
Files:
test/libcxx/atomics/atomics.align/align.pass.cpp
Index: test/libcxx/atomics/atomics.align/align.pass.cpp
=
jfb added a comment.
In http://reviews.llvm.org/D22073#481402, @EricWF wrote:
> - The test should be moved to `test/libcxx/atomics/atomics.align` since it's
> libc++ specific.
Done.
> - Please give the anonymous struct declarations unique names. `T1`, `T2`,
> ..., `TN` is fine. Currently the
Author: jfb
Date: Tue Jul 12 15:14:52 2016
New Revision: 275210
URL: http://llvm.org/viewvc/llvm-project?rev=275210&view=rev
Log:
libc++: name anonymous structs
As discussed in http://reviews.llvm.org/D22073
Modified:
libcxx/trunk/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Author: jfb
Date: Sat Mar 5 08:22:02 2016
New Revision: 262771
URL: http://llvm.org/viewvc/llvm-project?rev=262771&view=rev
Log:
libc++: fix typo
Modified:
libcxx/trunk/CMakeLists.txt
Modified: libcxx/trunk/CMakeLists.txt
URL:
http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt
jfb created this revision.
jfb added reviewers: mclow.lists, rsmith.
jfb added a subscriber: cfe-commits.
Herald added subscribers: dschuff, jfb.
This was voted into C++17 at last week's Jacksonville meeting. The final
P0152R1 paper will be in the upcoming post-Jacksonville mailing, and is also
jfb created this revision.
jfb added reviewers: mclow.lists, rsmith.
jfb added a subscriber: cfe-commits.
This was voted into C++17 at last week's Jacksonville meeting. The final
P0152R1 paper will be in the upcoming post-Jacksonville mailing, and is also
available here:
http://jfbastien.githu
jfb added a comment.
I'll check with GCC folks whether they want to share macros the same way we're
already sharing `__GCC_ATOMIC_*_LOCK_FREE`. The new macros I propose are
`__LLVM__ATOMIC_*_BYTES_LOCK_FREE` and `__LLVM_LOCK_FREE_IS_SIZE_BASED`.
Let's do a first sanity-check round of code revie
jfb added inline comments.
Comment at: lib/Frontend/InitPreprocessor.cpp:480
@@ +479,3 @@
+ if (LangOpts.CPlusPlus1z) {
+Builder.defineMacro("__cpp_lib_atomic_is_always_lock_free", "201603");
+ }
How do you pick these numbers before the standard is actually
jfb added inline comments.
Comment at: include/atomic:840
@@ +839,3 @@
+#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE
+#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
+
Moving these from the bottom of the file since I need them.
jfb added inline comments.
Comment at: lib/Frontend/InitPreprocessor.cpp:480
@@ +479,3 @@
+ if (LangOpts.CPlusPlus1z) {
+Builder.defineMacro("__cpp_lib_atomic_is_always_lock_free", "201603");
+ }
jfb wrote:
> How do you pick these numbers before the standard
Author: jfb
Date: Fri Mar 18 12:48:58 2016
New Revision: 263798
URL: http://llvm.org/viewvc/llvm-project?rev=263798&view=rev
Log:
Missing ATOMIC_*_LOCK_FREE tests
Forked from D17951, these tests should have been there but weren't.
Modified:
libcxx/trunk/test/std/atomics/atomics.lockfree/lock
jfb added a comment.
In http://reviews.llvm.org/D17950#376349, @jyknight wrote:
> This conflicts with http://reviews.llvm.org/D17933. Most of this change also
> seems unnecessary.
>
> - I think the `is_always_lock_free` function should be defined based on the
> existing `__atomic_always_lock_fr
jfb updated this revision to Diff 51049.
jfb added a comment.
- Use __atomic_always_lock_free instead
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Index: test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
jfb added inline comments.
Comment at: lib/Frontend/InitPreprocessor.cpp:305
@@ +304,3 @@
+if (TypeWidth == TypeAlign && (TypeWidth & (TypeWidth - 1)) == 0 &&
+TypeWidth <= InlineWidth)
+ return Always;
bcraig wrote:
> jyknight wrote:
> > jfb wrot
jfb updated this revision to Diff 51048.
jfb added a comment.
- Use __atomic_always_lock_free instead
http://reviews.llvm.org/D17950
Files:
lib/Frontend/InitPreprocessor.cpp
test/Lexer/cxx-features.cpp
Index: test/Lexer/cxx-features.cpp
=
jfb added inline comments.
Comment at: include/atomic:859
@@ +858,3 @@
+template <> _LIBCPP_CONSTEXPR bool __libcpp_always_lock_free = 2 ==
ATOMIC_CHAR32_T_LOCK_FREE;
+template <> _LIBCPP_CONSTEXPR bool __libcpp_always_lock_free = 2 ==
ATOMIC_WCHAR_T_LOCK_FREE;
+template <> _LIB
jfb added inline comments.
Comment at: include/atomic:859
@@ +858,3 @@
+template <> _LIBCPP_CONSTEXPR bool __libcpp_always_lock_free = 2 ==
ATOMIC_CHAR32_T_LOCK_FREE;
+template <> _LIBCPP_CONSTEXPR bool __libcpp_always_lock_free = 2 ==
ATOMIC_WCHAR_T_LOCK_FREE;
+template <> _LIB
jfb added a comment.
In http://reviews.llvm.org/D17950#377386, @cfe-commits wrote:
> I know that MIPS does that, and an out-of-tree implementation of hexagon
> implements 1-byte cmpxchg in terms of the 4-byte version. The emulation
> code isn't particularly small, and it seems reasonable to m
jfb added inline comments.
Comment at: include/atomic:900
@@ +899,3 @@
+# if defined(_LIBCPP_LOCK_FREE_IS_SIZE_BASED)
+ static _LIBCPP_CONSTEXPR bool is_always_lock_free =
__libcpp_always_lock_free;
+# else
Actually, this should be based on `sizeof(__a_)` and *n
jfb added a comment.
In http://reviews.llvm.org/D17951#376546, @bcraig wrote:
> Visual Studio has a flag, /Zc:wchar_t-, that turns wchar_t into a short.
> This flag is for people that need to maintain ABI compatibility with ancient
> Visual Studios (MSVC6? MSVC5?). It is definitely non-confor
jfb updated this revision to Diff 50846.
jfb added a comment.
- Split up tests.
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
test/std/atomics/atomics.lockfree/lockfree.pass.cpp
Index: test/std/atomics/atomics.lockfree/lo
On Fri, Mar 18, 2016 at 7:30 AM, Craig, Ben via cfe-commits <
cfe-commits@lists.llvm.org> wrote:
> On 3/18/2016 1:50 AM, Joerg Sonnenberger via cfe-commits wrote:
>
>> On Thu, Mar 17, 2016 at 05:56:17PM +0000, JF Bastien via cfe-commits
>> wrote:
>>
>>>
jfb added a comment.
In http://reviews.llvm.org/D17950#376965, @jfb wrote:
> In http://reviews.llvm.org/D17950#376349, @jyknight wrote:
>
> > This conflicts with http://reviews.llvm.org/D17933. Most of this change
> > also seems unnecessary.
> >
> > - I think the `is_always_lock_free` function s
jfb updated this revision to Diff 50903.
jfb added a comment.
- Size is based on __a_ not _Tp
- Check value is consistent with C macros
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
test/std/atomics/atomics.lockfree/lockfr
jfb added inline comments.
Comment at: lib/Frontend/InitPreprocessor.cpp:465
@@ +464,3 @@
+ if (LangOpts.CPlusPlus1z) {
+Builder.defineMacro("__cpp_lib_atomic_is_always_lock_free", "201603");
+ }
rsmith wrote:
> This should be defined by the relevant library
Author: jfb
Date: Tue Mar 22 16:12:48 2016
New Revision: 264098
URL: http://llvm.org/viewvc/llvm-project?rev=264098&view=rev
Log:
Update cxx-features test to C++1z
Forked from the following patch:
http://reviews.llvm.org/D17950
Modified:
cfe/trunk/test/Lexer/cxx-features.cpp
Modified: cfe
jfb abandoned this revision.
Comment at: lib/Frontend/InitPreprocessor.cpp:465
@@ +464,3 @@
+ if (LangOpts.CPlusPlus1z) {
+Builder.defineMacro("__cpp_lib_atomic_is_always_lock_free", "201603");
+ }
jfb wrote:
> rsmith wrote:
> > This should be defined by the
jfb added a comment.
As discussed in now-abandoned http://reviews.llvm.org/D17950 I'll implement
everything in libc++. I just have to move the feature test macro to libc++.
http://reviews.llvm.org/D17951
___
cfe-commits mailing list
cfe-commits@lis
jfb updated this revision to Diff 51346.
jfb added a comment.
- Define __cpp_lib_atomic_is_always_lock_free in libc++
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Index: test/std/atomics/atomics.lockfree/isalwayslockfree.p
jfb added inline comments.
Comment at: include/atomic:859
@@ +858,3 @@
+#if defined(__cpp_lib_atomic_is_always_lock_free)
+ static _LIBCPP_CONSTEXPR bool is_always_lock_free =
__atomic_always_lock_free(sizeof(__a_), 0);
+#endif
I don't think so: it's similar to
jfb updated this revision to Diff 51473.
jfb added a comment.
- Add definition.
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Index: test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
==
jfb added inline comments.
Comment at: include/atomic:859
@@ +858,3 @@
+#if defined(__cpp_lib_atomic_is_always_lock_free)
+ static _LIBCPP_CONSTEXPR bool is_always_lock_free =
__atomic_always_lock_free(sizeof(__a_), 0);
+#endif
EricWF wrote:
> jfb wrote:
> > I d
Author: jfb
Date: Wed Mar 23 19:20:44 2016
New Revision: 264226
URL: http://llvm.org/viewvc/llvm-project?rev=264226&view=rev
Log:
NFC: clarify comment on lock-free macros
Used by both libstdc++ and libc++.
Modified:
cfe/trunk/lib/Frontend/InitPreprocessor.cpp
Modified: cfe/trunk/lib/Fronten
jfb updated this revision to Diff 51607.
jfb added a comment.
Herald added a subscriber: jfb.
- Check feature test macro exists
http://reviews.llvm.org/D17951
Files:
include/atomic
test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Index: test/std/atomics/atomics.lockfree/isalways
This revision was automatically updated to reflect the committed changes.
Closed by commit rL264413: Implement is_always_lock_free (authored by jfb).
Changed prior to commit:
http://reviews.llvm.org/D17951?vs=51607&id=51638#toc
Repository:
rL LLVM
http://reviews.llvm.org/D17951
Files:
lib
Author: jfb
Date: Fri Mar 25 10:48:21 2016
New Revision: 264413
URL: http://llvm.org/viewvc/llvm-project?rev=264413&view=rev
Log:
Implement is_always_lock_free
Summary:
This was voted into C++17 at the Jacksonville meeting. The final P0152R1
paper will be in the upcoming post-Jacksonville mailin
Hi Dan,
I think this change (or one of the surrounding ones) broken compiling C
code with WebAssembly.
Errors look like: error at line 3: unknown section: .text.foobar
See:
https://build.chromium.org/p/client.wasm.llvm/builders/linux/builds/1507/steps/Link%20LLVM%20Torture%20with%20wasmate/logs
It looks like that's just wasmate. I'll accelerate its deletion.
On Wed, Jan 6, 2016 at 6:41 PM, JF Bastien wrote:
> Hi Dan,
>
> I think this change (or one of the surrounding ones) broken compiling C
> code with WebAssembly.
>
> Errors look like: error at line 3: unknown section: .text.foobar
101 - 164 of 164 matches
Mail list logo