Page MenuHomePhabricator
Feed Advanced Search

Jul 16 2019

theraven added a comment to D64493: [Driver] Don't pass --dynamic-linker to ld on Solaris.

I think this was simply mirroring what gcc 4.something did on Solaris.

Jul 16 2019, 3:05 AM · Restricted Project, Restricted Project
theraven accepted D64493: [Driver] Don't pass --dynamic-linker to ld on Solaris.
Jul 16 2019, 3:05 AM · Restricted Project, Restricted Project

Jun 27 2019

theraven added inline comments to D63525: LangRef: Attempt to formulate some rules for addrspacecast.
Jun 27 2019, 5:25 AM

Jun 20 2019

theraven added a comment to D63525: LangRef: Attempt to formulate some rules for addrspacecast.

Apparently I forgot to hit submit on the comments I made yesterday, sorry!

Jun 20 2019, 2:03 AM

Jun 19 2019

theraven added a comment to D63525: LangRef: Attempt to formulate some rules for addrspacecast.

Thanks for working on this, it's a seriously underspecified part of LLVM.

Jun 19 2019, 1:22 AM

Jun 11 2019

theraven accepted D31924: SROA: Allow eliminating addrspacecasted allocas.

I think this looks like it will improve codegen for us and not violate any of our C-level guarantees. Hopefully @arichardson can also take a look.

Jun 11 2019, 1:31 AM

May 29 2019

theraven accepted D61974: [ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs.

LGTM. I wonder if we have any other ugly GCC bug compatibility parts in clang's Objective-C implementation...

May 29 2019, 9:06 AM · Restricted Project

May 17 2019

theraven added inline comments to D61974: [ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs.
May 17 2019, 3:37 AM · Restricted Project

May 16 2019

theraven requested changes to D61974: [ObjC] Fix encoding of ObjC pointer types that are pointers to typedefs.
May 16 2019, 12:23 AM · Restricted Project

May 7 2019

theraven added a comment to D61634: [clang/llvm] Allow efficient implementation of libc's memory functions in C/C++.

I wonder if a list of comma-separated names is the right approach. Would it make more sense to add a new attribute for each of the helpers, such as #no-runtime-for-memcpy? That should make querying simpler (one lookup in the table, rather than a lookup and a string scan) and also make it easier to add and remove attributes (merging is now just a matter of trying to add all of them, with the existing logic to deduplicate repeated attributes working).

May 7 2019, 5:40 AM · Restricted Project, Restricted Project

Apr 29 2019

theraven committed rG714a4425de37: Try to use /proc on FreeBSD for getExecutablePath (authored by theraven).
Try to use /proc on FreeBSD for getExecutablePath
Apr 29 2019, 2:23 AM
theraven committed rL359427: Try to use /proc on FreeBSD for getExecutablePath.
Try to use /proc on FreeBSD for getExecutablePath
Apr 29 2019, 2:23 AM

Apr 1 2019

theraven added a comment to D59945: [ObjCMetadata] Add support for reading Objective-C metadata.

I am not convinced that there is sufficient abstraction here to handle multiple runtimes without significant code duplication. The Mach-O and LLVM IR parsers both appear to duplicate all knowledge of the runtime's data structures, so if you wanted to add a second runtime you'd then need four classes. I would expect to see two abstraction layers:

Apr 1 2019, 6:00 AM · Restricted Project

Mar 31 2019

theraven committed rG7b36a86431e2: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs. (authored by theraven).
[gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs.
Mar 31 2019, 4:22 AM
theraven committed rG17d429535984: COMDAT-fold block descriptors. (authored by theraven).
COMDAT-fold block descriptors.
Mar 31 2019, 4:22 AM
theraven committed rG0e9e02cd723e: [objc-gnustep] Use .init_array not .ctors when requested. (authored by theraven).
[objc-gnustep] Use .init_array not .ctors when requested.
Mar 31 2019, 4:22 AM
theraven committed rL357364: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
[gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs.
Mar 31 2019, 4:22 AM
theraven committed rC357364: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
[gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs.
Mar 31 2019, 4:21 AM
theraven closed D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Mar 31 2019, 4:21 AM · Restricted Project
theraven committed rC357363: COMDAT-fold block descriptors..
COMDAT-fold block descriptors.
Mar 31 2019, 4:21 AM
theraven committed rL357363: COMDAT-fold block descriptors..
COMDAT-fold block descriptors.
Mar 31 2019, 4:21 AM
theraven closed D58807: [CodeGen] COMDAT-fold block descriptors.
Mar 31 2019, 4:21 AM · Restricted Project, Restricted Project
theraven committed rL357362: [objc-gnustep] Use .init_array not .ctors when requested..
[objc-gnustep] Use .init_array not .ctors when requested.
Mar 31 2019, 4:21 AM
theraven committed rC357362: [objc-gnustep] Use .init_array not .ctors when requested..
[objc-gnustep] Use .init_array not .ctors when requested.
Mar 31 2019, 4:21 AM
theraven updated the diff for D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
  • Fix ownership with Twine.
Mar 31 2019, 2:22 AM · Restricted Project

Mar 1 2019

theraven updated the diff for D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
  • Address Dustin's review comments.
  • [objc-gnustep] Use $ in symbol names on Windows.
  • Add fix from Dustin.
Mar 1 2019, 4:59 AM · Restricted Project
theraven added a comment to D58807: [CodeGen] COMDAT-fold block descriptors.

It would probably benefit from a test so that we don't regress.

Mar 1 2019, 12:35 AM · Restricted Project, Restricted Project
theraven accepted D58807: [CodeGen] COMDAT-fold block descriptors.

Looks good to me. On ELF and Mach-O, I think we get the equivalent behaviour automatically from the ODR linkage type. I'd really like to see linkage type and COMDAT made orthogonal, but that's a bigger change.

Mar 1 2019, 12:34 AM · Restricted Project, Restricted Project

Feb 28 2019

theraven added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 28 2019, 11:36 AM · Restricted Project
theraven added inline comments to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 28 2019, 8:10 AM · Restricted Project

Feb 27 2019

theraven created D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..
Feb 27 2019, 9:27 AM · Restricted Project
theraven added a comment to D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs..

This review is mostly so that @DHowett-MSFT can check that I didn't break his patches too badly in the cleanup and test that they still do allow building Objective-C DLLs on Windows.

Feb 27 2019, 9:27 AM · Restricted Project

Feb 24 2019

Herald added a project to D55802: Change CGObjC to use objc intrinsics instead of runtime methods: Restricted Project.

After some bisection, it appears that this is the revision that introduced the regression in the GNUstep Objective-C runtime test suite that I reported on the list a few weeks ago. In this is the test (compiled with -fobjc-runtime=gnustep-2.0 -O3 and an ELF triple):

Feb 24 2019, 7:48 AM · Restricted Project

Feb 3 2019

theraven committed rGccc42869a7e3: [objc-gnustep] Fix encoding of ivar size for _Bool. (authored by theraven).
[objc-gnustep] Fix encoding of ivar size for _Bool.
Feb 3 2019, 7:06 AM
theraven committed rL352995: [objc-gnustep] Fix encoding of ivar size for _Bool..
[objc-gnustep] Fix encoding of ivar size for _Bool.
Feb 3 2019, 7:06 AM
theraven committed rC352995: [objc-gnustep] Fix encoding of ivar size for _Bool..
[objc-gnustep] Fix encoding of ivar size for _Bool.
Feb 3 2019, 7:05 AM

Dec 29 2018

theraven accepted D54539: [CodeGen] Replace '@' characters in block descriptors' symbol names with '\1' on ELF targets..

Looks like a much cleaner change.

Dec 29 2018, 7:58 AM · Restricted Project

Dec 28 2018

theraven committed rL350130: [objc-gnustep2] Fix a bug in category generation..
[objc-gnustep2] Fix a bug in category generation.
Dec 28 2018, 9:49 AM
theraven committed rC350130: [objc-gnustep2] Fix a bug in category generation..
[objc-gnustep2] Fix a bug in category generation.
Dec 28 2018, 9:48 AM

Dec 27 2018

theraven committed rC350092: [objc-gnustep] Fix a copy-and-paste error..
[objc-gnustep] Fix a copy-and-paste error.
Dec 27 2018, 6:48 AM
theraven committed rL350092: [objc-gnustep] Fix a copy-and-paste error..
[objc-gnustep] Fix a copy-and-paste error.
Dec 27 2018, 6:48 AM
theraven added a comment to D54539: [CodeGen] Replace '@' characters in block descriptors' symbol names with '\1' on ELF targets..

Please can we either merge this or revert the original change that introduced the bug that this is fixing? It's now been 6 months since blocks generated invalid ELF symbols.

Dec 27 2018, 4:42 AM · Restricted Project

Dec 20 2018

theraven added a comment to D55869: Convert some ObjC retain/release msgSends to runtime calls.

This should be fine for the GNUstep runtime (the GCC runtime doesn't support ARC at all). My main concern is that it will break already-released versions of the runtime built with a newer version of clang. I can easily enable a new flag in the next release, but doing so for older ones is more problematic.

Dec 20 2018, 12:35 PM

Dec 13 2018

theraven added a comment to D55640: [clang-tidy] Implement a check for large Objective-C type encodings 🔍.

I wonder if we want to have an option to elide ObjC type info for all non-POD C++ types. Nothing that you do with the type encoding is likely to be correct (for example, you can see the pointer field in a std::shared_ptr, but you can't see that changes to it need to update reference counts) so it probably does more harm than good.

Dec 13 2018, 1:04 AM · Restricted Project
theraven added a comment to D55229: [COFF] Statically link certain runtime library functions.

If we're going to change the default, please at least add a flag to allow callers to opt into dlimport. We can then make that dependent on -static-objc or similar.

Dec 13 2018, 1:01 AM · Restricted Project, Restricted Project

Dec 11 2018

theraven added a comment to D55544: Warning: objc-encodings-larger-than=.

It would probably be a good idea to have a similar check on properties, as property encoding strings contain the type encoding (plus extra stuff).

Dec 11 2018, 6:02 AM · Restricted Project
theraven added a comment to rL348726: Add OpenBSD support to OpenMP.

I wonder if it would be cleaner to define a KMP_OS_POSIX and a KMP_OS_BSD and avoid a load of 'if Linux, FreeBSD, NetBSD, DragonFlyBSD, HURD' checks. This would make it easier for the next person to support a UNIX-like or BSD-derived OS.

Dec 11 2018, 12:58 AM

Nov 20 2018

theraven added a comment to rL346732: CMake: Deprecate using llvm-config to detect llvm installation.

It's not clear from this whether there's a plan to remove llvm-config, or just to remove llvm-config as a way for clang to detect llvm. I would be strongly opposed to the former. Having tried to maintain out-of-tree code that builds with multiple versions of LLVM, it is more or less possible with llvm-config and totally impossible with the LLVM CMake files. Unless dropping llvm-config is accompanied by a strong commitment to long-term API stability for the LLVM CMake infrastructure, this would have a significant negative impact on downstream consumers of LLVM (and, even then, extracting the CMake information when your downstream build system is not CMake is painful).

Nov 20 2018, 2:17 AM

Nov 15 2018

theraven added inline comments to D54539: [CodeGen] Replace '@' characters in block descriptors' symbol names with '\1' on ELF targets..
Nov 15 2018, 1:05 AM · Restricted Project

Oct 23 2018

theraven accepted D53547: NFC: Remove the ObjC1/ObjC2 distinction from clang (and related projects).

Looks good for me, and removing all of the code describing Objective-C 4 as ObjC1 makes me happy.

Oct 23 2018, 11:14 AM

Oct 12 2018

theraven added inline comments to D53162: [DataLayout] Add bit width of pointers to global values.
Oct 12 2018, 4:58 AM
theraven added inline comments to D53162: [DataLayout] Add bit width of pointers to global values.
Oct 12 2018, 3:23 AM

Sep 28 2018

theraven added a comment to D52581: [AST] Revert mangling changes from r339428.

The simplest option is something like P8109, where we add a .objc discriminator when mangling the RTTI itself. It would require the GNUStep runtime for Windows to be altered accordingly (e.g. https://github.com/gnustep/libobjc2/blob/master/eh_win32_msvc.cc#L85 would have to use ".objc.PAU" instead of ".PAU.objc_cls_"); would that be acceptable, @theraven and @DHowett-MSFT?

Sep 28 2018, 1:45 AM

Sep 27 2018

theraven added a comment to D47233: [CodeGen] Emit MSVC RTTI for Obj-C EH types.

We ran into some critical issues with this approach on x64. The pointers in the exception record are supposed to be image-relative instead of absolute, so I tried to make them absolute to libobjc2's load address, but I never quite solved it.

A slightly better-documented and cleaner version of the code you linked is here.

Sep 27 2018, 1:00 AM
theraven added a comment to D52581: [AST] Revert mangling changes from r339428.

I would have done the same for the GNUstep RTTI here, except I don't actually
see the code for that anywhere, and no tests seem to break either, so I
believe it's not upstreamed yet.

Sep 27 2018, 12:59 AM

Sep 23 2018

theraven added a comment to D52344: [Clang][CodeGen][ObjC]: Fix non-bridged CoreFoundation builds on ELF targets that use `-fconstant-cfstrings`..

Would you be okay with me renaming cfstring to .cfstring for ELF so it's in line with ELF section naming conventions (I'm not entirely sure if that could cause issues with ObjC stuff)? And yes I think it's best to avoid that code-path altogether if it turns out to be a constant as that's likely from the declaration of the type, I'll write a FileCheck test in a moment and check that I can apply the same logic to ELF aside from the DLL stuff as CoreFoundation needs to export the symbol somehow while preserving the implicit extern attribute for every other TU that comes from the builtin that CFSTR expands to. Is what I'm suggesting making sense? If not, let me know, I may be misunderstanding what's happening here.

Following the ELF conventions seems like the right thing to do, assuming it doesn't cause compatibility problems. David Chisnall might know best here.

Sep 23 2018, 2:39 AM

Sep 4 2018

theraven added a comment to D50783: [CodeGen] Merge identical block descriptor global variables.

The GNUstep documentation I found replaces '@' with '\1'. Would that fix the problem?

https://github.com/gnustep/libobjc2/blob/master/ABIDoc/abi.tex

Sep 4 2018, 6:03 AM
theraven committed rL341355: Add release notes for the new GNUstep Objective-C ABI..
Add release notes for the new GNUstep Objective-C ABI.
Sep 4 2018, 3:41 AM
theraven committed rL341354: Disable the GNUstep v2 ABI on Windows..
Disable the GNUstep v2 ABI on Windows.
Sep 4 2018, 3:41 AM
theraven committed rL341352: Revert "Disable the GNUstep v2 ABI on Windows.".
Revert "Disable the GNUstep v2 ABI on Windows."
Sep 4 2018, 3:10 AM
theraven committed rC341352: Revert "Disable the GNUstep v2 ABI on Windows.".
Revert "Disable the GNUstep v2 ABI on Windows."
Sep 4 2018, 3:10 AM
theraven committed rC341350: Disable the GNUstep v2 ABI on Windows..
Disable the GNUstep v2 ABI on Windows.
Sep 4 2018, 2:27 AM
theraven committed rL341350: Disable the GNUstep v2 ABI on Windows..
Disable the GNUstep v2 ABI on Windows.
Sep 4 2018, 2:27 AM

Aug 31 2018

theraven added inline comments to D50783: [CodeGen] Merge identical block descriptor global variables.
Aug 31 2018, 3:41 AM
theraven added a comment to D50783: [CodeGen] Merge identical block descriptor global variables.

This revision broke blocks on all ELF targets. The block descriptors' symbol names can now include the @ character, which is reserved on ELF platforms as a separator between symbol name and symbol version. As a result, nothing containing a block that has an Objective-C object argument will link. Please add mangling similar to that in the GNUstep runtime to avoid this.

Aug 31 2018, 3:40 AM

Aug 28 2018

theraven committed rL340807: Fix in getAllocationDataForFunction.
Fix in getAllocationDataForFunction
Aug 28 2018, 2:00 AM
theraven closed D50959: Fix in getAllocationDataForFunction.
Aug 28 2018, 2:00 AM

Aug 23 2018

theraven added a comment to D50144: Add Windows support for the GNUstep Objective-C ABI V2..

I'm confused by the funclet-based unwinding support. Do you intend GNUStep to be used with windows-msvc triples? If so, how is the runtime throwing exceptions? We took the approach of having the Obj-C runtime wrap Obj-C exceptions in C++ exceptions and then have vcruntime handle the rest (see https://reviews.llvm.org/D47233 and https://reviews.llvm.org/D47988), but I don't see any of the associated RTTI emission changes in this patch.

Aug 23 2018, 3:56 AM

Aug 21 2018

theraven accepted D50959: Fix in getAllocationDataForFunction.

Looks good to me. I will commit it unless anyone objects.

Aug 21 2018, 6:23 AM

Aug 16 2018

theraven added inline comments to D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 16 2018, 1:26 AM

Aug 15 2018

theraven added inline comments to D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 15 2018, 1:46 AM

Aug 14 2018

theraven committed rL339668: [gnu-objc] Make selector order deterministic..
[gnu-objc] Make selector order deterministic.
Aug 14 2018, 3:06 AM
theraven committed rC339668: [gnu-objc] Make selector order deterministic..
[gnu-objc] Make selector order deterministic.
Aug 14 2018, 3:06 AM
theraven closed D50559: [gnu-objc] Make selector order deterministic..
Aug 14 2018, 3:06 AM
theraven committed rL339667: Add a stub mangling for ObjC selectors in the Microsoft ABI..
Add a stub mangling for ObjC selectors in the Microsoft ABI.
Aug 14 2018, 3:05 AM
theraven committed rC339667: Add a stub mangling for ObjC selectors in the Microsoft ABI..
Add a stub mangling for ObjC selectors in the Microsoft ABI.
Aug 14 2018, 3:05 AM

Aug 13 2018

theraven updated the diff for D50559: [gnu-objc] Make selector order deterministic..
  • Add a test case.
Aug 13 2018, 2:17 AM

Aug 11 2018

theraven added inline comments to D50559: [gnu-objc] Make selector order deterministic..
Aug 11 2018, 4:15 AM

Aug 10 2018

theraven created D50559: [gnu-objc] Make selector order deterministic..
Aug 10 2018, 6:40 AM
theraven committed rC339429: Fix a deprecated warning in the last commit..
Fix a deprecated warning in the last commit.
Aug 10 2018, 5:54 AM
theraven committed rL339429: Fix a deprecated warning in the last commit..
Fix a deprecated warning in the last commit.
Aug 10 2018, 5:54 AM
theraven committed rL339428: Add Windows support for the GNUstep Objective-C ABI V2..
Add Windows support for the GNUstep Objective-C ABI V2.
Aug 10 2018, 5:54 AM
theraven committed rC339428: Add Windows support for the GNUstep Objective-C ABI V2..
Add Windows support for the GNUstep Objective-C ABI V2.
Aug 10 2018, 5:53 AM
theraven closed D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 10 2018, 5:53 AM
theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..

Squashed into a single commit.

Aug 10 2018, 5:12 AM

Aug 9 2018

theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..
  • Address Dustin's review comments.
  • Fix an issue in protocol generation.
  • Fix failing test.
  • Address rjmcall's review comments.
  • Add some missing comments and factor out SEH check.
Aug 9 2018, 3:42 AM
theraven added a comment to D50144: Add Windows support for the GNUstep Objective-C ABI V2..

I believe that this is now ready to land.

Aug 9 2018, 3:42 AM
theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..
  • Address rjmcall's review comments.
  • Revert blocks part of the patch to put in a separate review.
Aug 9 2018, 1:06 AM
theraven committed rC339317: Correctly initialise global blocks on Windows..
Correctly initialise global blocks on Windows.
Aug 9 2018, 1:03 AM
theraven committed rL339317: Correctly initialise global blocks on Windows..
Correctly initialise global blocks on Windows.
Aug 9 2018, 1:03 AM
theraven closed D50436: Correctly initialise global blocks on Windows..
Aug 9 2018, 1:03 AM

Aug 8 2018

theraven accepted D50448: [CGObjCGNU] Rename GetSelector helper method to fix -Woverloaded-virtual warning (PR38210).

Looks good to me. This method should probably take a StringRef rather than a const std::string&, but I can make that change separately.

Aug 8 2018, 8:39 AM
theraven added inline comments to D50144: Add Windows support for the GNUstep Objective-C ABI V2..
Aug 8 2018, 4:20 AM
theraven created D50436: Correctly initialise global blocks on Windows..
Aug 8 2018, 4:19 AM
theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..
  • Revert blocks part of the patch to put in a separate review.
Aug 8 2018, 1:54 AM
theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..
  • Address Dustin's review comments.
  • Fix an issue in protocol generation.
  • Fix failing test.
  • [gnu-objc] Make selector order deterministic.
  • Address rjmcall's review comments.
Aug 8 2018, 1:42 AM

Aug 7 2018

theraven committed rC339128: [objc-gnustep] Don't emit .guess ivar offset vars..
[objc-gnustep] Don't emit .guess ivar offset vars.
Aug 7 2018, 5:03 AM
theraven committed rL339128: [objc-gnustep] Don't emit .guess ivar offset vars..
[objc-gnustep] Don't emit .guess ivar offset vars.
Aug 7 2018, 5:03 AM
theraven added a comment to D50144: Add Windows support for the GNUstep Objective-C ABI V2..

I'd like to commit this, unless @rjmccall has any objections.

Aug 7 2018, 1:04 AM

Aug 6 2018

theraven updated the diff for D50144: Add Windows support for the GNUstep Objective-C ABI V2..
  • Fix failing test.
Aug 6 2018, 8:41 AM