Page MenuHomePhabricator

theraven (David Chisnall)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 19 2012, 2:56 AM (472 w, 2 d)

Recent Activity

Today

theraven added a comment to D68480: Implementation of C++20's P1135R6 for libcxx.

This appears to have baked in some ABI details that don't permit efficient implementation on some of our supported platforms. In the future, please can you post an RFC from things that need to integrate with platform-specific code? We're now stuck with this interface until we are willing to do an ABI-breaking change. In particular:

Wed, Dec 8, 6:33 AM · Restricted Project

Nov 8 2021

theraven added a comment to D96914: [ELF] Add -z start-stop-gc to let __start_/__stop_ not retain C identifier name sections.

I completely agree with @jrtc27 on this, specifically:

Nov 8 2021, 5:29 AM · Restricted Project

Oct 27 2021

theraven accepted D112400: [clang][compiler-rt][atomics] Add `__c11_atomic_fetch_nand` builtin and support `__atomic_fetch_nand` libcall.

Thanks!

Oct 27 2021, 5:33 AM · Restricted Project, Restricted Project
theraven added a comment to D112400: [clang][compiler-rt][atomics] Add `__c11_atomic_fetch_nand` builtin and support `__atomic_fetch_nand` libcall.

Ah, it looks as if you didn't add the __c11_ variant of the builtin? Please can you add this?

Oct 27 2021, 3:20 AM · Restricted Project, Restricted Project

Oct 26 2021

theraven accepted D112400: [clang][compiler-rt][atomics] Add `__c11_atomic_fetch_nand` builtin and support `__atomic_fetch_nand` libcall.

Looks good to me, thanks!

Oct 26 2021, 3:11 AM · Restricted Project, Restricted Project
theraven added a comment to D112385: [ELF] Support 128-bit bitmask in oneof(RelExpr).

This looks cleaner and simpler than mine, which was a quick hack to get it compiling. Thanks!

Oct 26 2021, 1:18 AM · Restricted Project

Oct 14 2021

theraven requested review of D111792: [ObjC-GNUstep] Fix ivars for dll{im,ex}ported classes..
Oct 14 2021, 4:58 AM · Restricted Project

Jul 8 2021

theraven added a comment to D105142: RFC: Implementing new mechanism for hard register operands to inline asm as a constraint..

The code looks fine but it would be good to see some docs along with it. We're currently missing docs on inline assembly entirely and the GCC ones are somewhat... opaque when it comes to describing how constraints work.

Thank you for your feedback! By docs do you mind updating/adding some information to the existing LLVM docs(like the langref https://llvm.org/docs/LangRef.html for example), or more comments to the code?

Jul 8 2021, 2:40 AM · Restricted Project

Jul 7 2021

theraven added a comment to D99517: Implemented [[clang::musttail]] attribute for guaranteed tail calls..

Here's a minimal test:

Jul 7 2021, 3:52 AM · Restricted Project

Jun 30 2021

theraven added a comment to D104349: [compiler-rt][atomics] Add `restrict` modifier to pointer arguments of `__atomic_exchange_c`.

I don't believe a compiler can ever generate code that hits this code path. The public function is:

Jun 30 2021, 5:56 AM · Restricted Project
theraven added a comment to D105142: RFC: Implementing new mechanism for hard register operands to inline asm as a constraint..

The code looks fine but it would be good to see some docs along with it. We're currently missing docs on inline assembly entirely and the GCC ones are somewhat... opaque when it comes to describing how constraints work.

Jun 30 2021, 5:44 AM · Restricted Project

Jun 29 2021

theraven added a comment to D99517: Implemented [[clang::musttail]] attribute for guaranteed tail calls..

The error message here is very confusing:

Jun 29 2021, 1:40 AM · Restricted Project

Jun 22 2021

theraven added a comment to D104264: Fix atomic loads and stores of 64-bit values in non-default address spaces on ARM.

To elaborate: The set of possible invalid IR is huge and back ends are permitted to assume that they are only ever provided with valid IR, as per the informal contract between the back end and the rest of the compiler (including requiring function arguments to be arranged in a way that the back end's ABI-lowering logic understands). Ensuring that the back end is only ever given IR that it knows how to consume is the responsibility of whatever is invoking the back end. In an ideal world, every construct that a front end + optimiser pipeline may feed to a back end would have a test in tests/Target/{back end} that would check that it correctly lowers the IR.

Jun 22 2021, 9:18 AM · Restricted Project
theraven added a comment to D104264: Fix atomic loads and stores of 64-bit values in non-default address spaces on ARM.

Back ends are expected to crash when given invalid IR.

Jun 22 2021, 8:53 AM · Restricted Project
theraven added a comment to D104264: Fix atomic loads and stores of 64-bit values in non-default address spaces on ARM.

The Morello (AArch64 + CHERI) implementation uses AS 200 for capabilities and does different instruction selection for loads and stores (including atomics) depending on the address space.

Jun 22 2021, 5:20 AM · Restricted Project

May 25 2021

theraven accepted D102523: [docs] Explain address spaces a bit more in opaque pointers doc.
May 25 2021, 9:49 AM · Restricted Project

May 14 2021

theraven added a comment to D102292: [docs] Add page on opaque pointer types.

Yeah, that seems out of scope for this document. https://llvm.org/docs/LangRef.html#pointer-type documents that pointers to functions and pointers to other things are all roughly the same sort of thing - and we're changing all of them over to the opaque pointer type. & other wording generally treats all pointers as having the same size, etc. I think that's best left elsewhere than this doc if there's no interesting distinction between function pointers and data pointers currently (which it doesn't seem like there is).

May 14 2021, 1:30 AM · Restricted Project

Feb 22 2021

theraven added a comment to D96914: [ELF] Add -z start-stop-gc to let __start_/__stop_ not retain C identifier name sections.

Please can you ensure that this is tested with some Objective-C code compiled with -fobjc-runtime=gnustep-2.0? If I am reading the intention correctly, it may result in all of the Objective-C code being dropped from the final link.

Feb 22 2021, 1:55 AM · Restricted Project

Feb 18 2021

theraven accepted D96816: [ObjC] Encode pointers to C++ classes as "^v" if the encoded string would otherwise include template specialization types .

Thanks!

Feb 18 2021, 7:42 AM · Restricted Project
theraven added inline comments to D96816: [ObjC] Encode pointers to C++ classes as "^v" if the encoded string would otherwise include template specialization types .
Feb 18 2021, 1:39 AM · Restricted Project

Feb 17 2021

theraven requested changes to D96816: [ObjC] Encode pointers to C++ classes as "^v" if the encoded string would otherwise include template specialization types .

I'm broadly in favour of this change, but with the GNUstep ABIs this is an ABI-breaking change and so should not be on by default. The type encoding leaks into the ABI in two ways:

Feb 17 2021, 1:20 AM · Restricted Project

Jan 27 2021

theraven accepted D95386: Fix namespace for MLIR Async Runtime.

Assuming @ezhulenev's description of the desired behaviour is correct (which the comment on line 366 appears to support), this patch looks right. I don't think we have tests for the sets of exported symbols anywhere else, which is a bit unfortunate.

Jan 27 2021, 4:03 AM · Restricted Project

Jan 12 2021

theraven accepted D94491: [llvm] [cmake] Remove obsolete /usr/local hack for *BSD.

Great!

Jan 12 2021, 9:22 AM · Restricted Project
theraven added a comment to D94491: [llvm] [cmake] Remove obsolete /usr/local hack for *BSD.

Patches that just remove code without breaking functionality are my favourite kind!

Jan 12 2021, 6:00 AM · Restricted Project
theraven added a comment to D94491: [llvm] [cmake] Remove obsolete /usr/local hack for *BSD.

This patch certainly looks correct for fixing the symptom, but I'm somewhat concerned that the original logic was incorrect anyway. I believe CMake's FindLibrary and FindPackage work correctly with things installed in /usr/local on FreeBSD, so I don't know why we need these.

Jan 12 2021, 4:53 AM · Restricted Project

Dec 1 2020

theraven committed rGd1ed67037de6: [GNU ObjC] Fix a regression listing methods twice. (authored by theraven).
[GNU ObjC] Fix a regression listing methods twice.
Dec 1 2020, 1:51 AM
theraven closed D91874: [GNU ObjC] Fix a regression listing methods twice..
Dec 1 2020, 1:50 AM · Restricted Project

Nov 30 2020

theraven added a comment to D91874: [GNU ObjC] Fix a regression listing methods twice..

I'd like to get this into the 11 point release, so it would be good to have a review...

Nov 30 2020, 6:43 AM · Restricted Project
theraven added reviewers for D91874: [GNU ObjC] Fix a regression listing methods twice.: plotfi, lanza, dexonsmith.
Nov 30 2020, 6:42 AM · Restricted Project

Nov 20 2020

theraven added a comment to D91874: [GNU ObjC] Fix a regression listing methods twice..

This was caught with the GNUstep runtime's test suite, which apparently had not been run with anything newer than clang 8 until recently. With this patch, all of the runtime's tests now pass again (a few others failed in 10 but appear to have been fixed in 11 or 12). We've now configured our CI to test with the nightly builds on Linux, so should catch these things sooner in the future.

Nov 20 2020, 8:50 AM · Restricted Project
theraven added a reviewer for D91874: [GNU ObjC] Fix a regression listing methods twice.: rjmccall.
Nov 20 2020, 8:48 AM · Restricted Project
theraven requested review of D91874: [GNU ObjC] Fix a regression listing methods twice..
Nov 20 2020, 8:47 AM · Restricted Project

Nov 6 2020

theraven added a comment to D90757: [lldb] Enable FreeBSDRemote plugin by default and update test status.

Does the new plugin work with processes that are created with pdfork? The last time I tried this, it caused the old plugin to lock up the debugger entirely. Please can you ensure that there are tests that cover pdfork and cap_enter in the child? These are currently quite badly broken.

Nov 6 2020, 2:26 AM · Restricted Project

Oct 9 2020

theraven accepted D88466: [CSKY 1/n] Add basic stub or infra of csky backend.

I lost track of the mailing list discussions, but assuming that there is consensus to accept this back end I am happy with the structure of the initial code, the size of the contributed diffs, and the engagement from the maintainer.

Oct 9 2020, 1:06 AM · Restricted Project

Oct 8 2020

theraven added a comment to D88466: [CSKY 1/n] Add basic stub or infra of csky backend.

Mostly boilerplate that looks fine, a few minor nits.

Oct 8 2020, 3:00 AM · Restricted Project

Oct 2 2020

theraven added a comment to D87544: [CFGuard] Add address-taken IAT tables and delay-load support.

We don't normally revert commits for downstream build failures. Please can you submit a test case that triggers this issue?

Oct 2 2020, 1:51 AM · Restricted Project

Oct 1 2020

theraven committed rGef4e971e5e18: [CFGuard] Add address-taken IAT tables and delay-load support (authored by ajpaverd).
[CFGuard] Add address-taken IAT tables and delay-load support
Oct 1 2020, 4:46 AM
theraven closed D87544: [CFGuard] Add address-taken IAT tables and delay-load support.
Oct 1 2020, 4:46 AM · Restricted Project

Sep 24 2020

theraven accepted D75574: RFC: Implement objc_direct_protocol attribute to remove protocol metadata.

Looks good to me, thank you!

Sep 24 2020, 3:54 AM · Restricted Project

Sep 2 2020

theraven accepted D48803: Place the BlockAddress type in the address space of the containing function.

Looks good to me. This bakes in the assumption that function pointers and basic block addresses are always in the same address space. That seems reasonable to me but it might be worth documenting in the DataLayout docs about the program address space.

Sep 2 2020, 1:56 AM · Restricted Project

Aug 7 2020

theraven added a comment to D75574: RFC: Implement objc_direct_protocol attribute to remove protocol metadata.

This feature looks generally useful. A few small suggestions:

Aug 7 2020, 1:52 AM · Restricted Project

Jul 26 2020

Herald added a reviewer for D69991: Implement __attribute__((objc_direct)), __attribute__((objc_direct_members)): jdoerfert.

Sorry for getting to this late, I assumed it was a runtime-agnostic feature until someone filed a bug against the GNUstep runtime saying that we didn't implement it. It would be polite to tag me in reviews for features that contain runtime-specific things.

Jul 26 2020, 6:56 AM · Restricted Project

Jun 19 2020

theraven added inline comments to D70326: [docs] LLVM Security Group and Process.
Jun 19 2020, 2:39 AM · Restricted Project

Jun 4 2020

theraven requested changes to D81105: [compiler-rt] [builtin] Implement __atomic_fetch_nand_* builtins.
Jun 4 2020, 4:18 AM · Restricted Project

May 26 2020

theraven committed rGe72cba975735: Use configure depends to trigger reconfiguration when LLVMBuild files change (authored by danielframpton).
Use configure depends to trigger reconfiguration when LLVMBuild files change
May 26 2020, 8:39 AM
theraven closed D80218: Use configure depends to trigger reconfiguration when LLVMBuild files change.
May 26 2020, 8:39 AM · Restricted Project

May 21 2020

theraven added a comment to D80218: Use configure depends to trigger reconfiguration when LLVMBuild files change.

This seems to be failing on the Windows pre-merge test run. Unfortunately, I don't have access to those logs and so I can't merge this until this issue is fixed: https://github.com/google/llvm-premerge-checks/issues/187

May 21 2020, 3:13 AM · Restricted Project

May 20 2020

theraven added a comment to D80218: Use configure depends to trigger reconfiguration when LLVMBuild files change.

That makes sense. Do you have commit access yet? If not, I'll merge this tomorrow.

May 20 2020, 9:48 AM · Restricted Project
theraven added a comment to D80225: [Driver] Recognize -fuse-ld={bfd,gold,lld} but don't prepend "ld." or "ld64." for other values.

I'm a bit nervous about this. I'm aware of at least one out-of-tree toolchain that uses this mechanism to select their proprietary linker. I'd expect an RFC and for this to be highlighted in LLVM Weekly before I'm happy that this won't break downstream consumers.

May 20 2020, 2:39 AM · Restricted Project

May 19 2020

theraven accepted D80218: Use configure depends to trigger reconfiguration when LLVMBuild files change.

Looks good to me. I presume we didn't use this because of CMake version dependencies. Was this feature available in our current minimum CMake version?

May 19 2020, 10:22 AM · Restricted Project

May 14 2020

theraven added a comment to D79846: [compiler-rt] [builtin] Add public functions prototypes.

OK, we will need to live with -Wno*.

May 14 2020, 6:57 AM · Restricted Project
theraven added a comment to D79846: [compiler-rt] [builtin] Add public functions prototypes.

@krytarowski , as I read this change you are:

May 14 2020, 2:05 AM · Restricted Project

May 13 2020

theraven added a comment to D79846: [compiler-rt] [builtin] Add public functions prototypes.

It should already be buildable out of the box. The missing prototypes warning is opt-in. I am not particularly in favour of changes motivated solely by an external build system that explicitly opts in to warnings that don't make sense for a particular compilation unit.

May 13 2020, 5:54 AM · Restricted Project
theraven added a comment to D79846: [compiler-rt] [builtin] Add public functions prototypes.

I'm guessing that this is explicitly enabling the missing prototypes warning. I'm not a huge fan of that for compilation units that don't have public headers, it makes the code more complex and doesn't catch any bugs. It's valuable only when you have a public header and want to ensure that it's in sync with the implementation.

May 13 2020, 4:48 AM · Restricted Project
theraven accepted D79845: [compiler-rt] [builtin] Switch the return type of __atomic_compare_exchange_##n to bool.

I don't object to this, it more correctly expresses the intent. The original int was taken from the GCC docs describing the ABI for these functions. Have the GCC docs been updated?

May 13 2020, 4:48 AM · Restricted Project

May 12 2020

theraven added a comment to D79713: [compiler-rt] [builtins] Port atomic.c to GCC.

FreeBSD uses GNU libatomic for the combination with GCC.

May 12 2020, 8:34 AM · Restricted Project
theraven added a comment to D79713: [compiler-rt] [builtins] Port atomic.c to GCC.

To give some background (please correct me if I'm wrong): This is initially motivated by having snmalloc working on NetBSD. Snmalloc relies on two-pointer compare-and-exchange. When passing -mcx16, clang will happily emit these instructions for the atomic builtins used by <atomic> but GCC currently contains a bug that will emit these only for the old-style __sync_* builtins and not for the __atomic_ ones. As a result, the gcc builds of snmalloc include a call to __atomic_compare_exchange_16, which is not found on NetBSD because they don't ship the relevant support functions. NetBSD would like to ship chunks of compiler-rt, compiled with their default toolchain (GCC).

May 12 2020, 3:43 AM · Restricted Project

May 11 2020

theraven requested changes to D79713: [compiler-rt] [builtins] Port atomic.c to GCC.

I don't think that this should be including <stdatomic.h>. These routines are used to implement interfaces in <stdatomic.h> and it would be completely valid for a conforming implementation to use _Generic macros to directly call these functions from things in <stdatomic.h> that we then depend call, giving a circular dependency.

May 11 2020, 7:29 AM · Restricted Project

Feb 11 2020

theraven added a comment to D73835: [IRBuilder] Virtualize IRBuilder.

Please can we have some perf comparisons for just -emit-llvm (not invoking any of the back-end infrastructure)? Given the numbers so far, I'd expect these to also be in the noise, but even at -O0 a quite significant proportion of the compile time is spent after the stages that use IRBuilder.

Feb 11 2020, 8:27 AM · Restricted Project, Restricted Project

Jan 10 2020

theraven committed rGbdd88b7ed395: Add support for __declspec(guard(nocf)) (authored by ajpaverd).
Add support for __declspec(guard(nocf))
Jan 10 2020, 8:05 AM
theraven closed D72167: Add support for __declspec(guard(nocf)).
Jan 10 2020, 8:05 AM · Restricted Project, Restricted Project

Jan 8 2020

theraven added a comment to D70326: [docs] LLVM Security Group and Process.

We (Microsoft) are interested in participating in this process.

Jan 8 2020, 3:05 AM · Restricted Project

Dec 16 2019

theraven added inline comments to D71499: Add builtins for aligning and checking alignment of pointers and integers.
Dec 16 2019, 5:31 AM · Restricted Project

Dec 10 2019

theraven added inline comments to D71094: [libc] Add implementation of errno and define the other macros of errno.h..
Dec 10 2019, 2:23 AM · Restricted Project

Nov 14 2019

theraven accepted D70198: On FreeBSD use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath.
Nov 14 2019, 2:33 AM · Restricted Project

Nov 9 2019

theraven added a comment to D69690: [GlobalsAA] Restrict ModRef result if any internal method has its address taken..
Nov 9 2019, 9:00 AM · Restricted Project

Nov 4 2019

theraven added inline comments to D69421: [libc] Header generation scheme..
Nov 4 2019, 1:18 AM · Restricted Project

Nov 3 2019

theraven added a comment to D69690: [GlobalsAA] Restrict ModRef result if any internal method has its address taken..

I think this version of the test case is slightly oversimplified and it would be valid for an optimisation to remove the check. If there is any address-taken function that may have escaped, then it is not okay to assume that @llvm.objc.autoreleasePoolPop will definitely not write to it, but in this case there are no stores to an internal global and so GVN is at liberty to eliminate it entirely. The fact that it doesn't is a missed optimisation caused by not having sufficient knowledge of @llvm.objc.autoreleasePoolPop.

Nov 3 2019, 8:58 AM · Restricted Project

Oct 30 2019

theraven added inline comments to D69421: [libc] Header generation scheme..
Oct 30 2019, 4:41 AM · Restricted Project

Oct 28 2019

theraven committed rGd157a9bc8ba1: Add Windows Control Flow Guard checks (/guard:cf). (authored by ajpaverd).
Add Windows Control Flow Guard checks (/guard:cf).
Oct 28 2019, 8:20 AM
theraven closed D65761: Add Windows Control Flow Guard checks (/guard:cf)..
Oct 28 2019, 8:20 AM · Restricted Project, Restricted Project
theraven added inline comments to D69421: [libc] Header generation scheme..
Oct 28 2019, 2:32 AM · Restricted Project
theraven added inline comments to D69421: [libc] Header generation scheme..
Oct 28 2019, 2:15 AM · Restricted Project

Oct 4 2019

theraven added inline comments to D68328: Fix occurrences that size and range of pointers are assumed to be the same..
Oct 4 2019, 6:36 AM · Restricted Project, Restricted Project

Sep 29 2019

theraven added inline comments to D67867: [libc] Add few docs and implementation of strcpy and strcat..
Sep 29 2019, 12:39 AM · Restricted Project, Restricted Project
theraven added a comment to D67867: [libc] Add few docs and implementation of strcpy and strcat..

Maybe everything is fine, but given this setup, does anyone see any potential problems with compiling these functions for nvptx? I'd like to eventually see a mode where we compile an appropriate subset of these functions for GPU targets -- either in bitcode form for linking with our device-side OpenMP runtime library or as a native object -- to provide a more feature-complete offloading environment.

The one thing that caught by eye was the use of the section attribute, and I was curious what nvptx does with that. As far as I can tell, perhaps the answer is nothing.

Then I think this scheme won't work, since the point of the sections is to enable the creation of the global symbols post-build.

E.g., I think the idea is that the main implementation defines the function with C++ name __llvm_libc::strcpy(char *, const char *), and places the code in the .llvm.libc.entrypoint.strcpy section. And then another tool comes along and iterates the llvm.libc.entrypoint sections, and adds global symbol aliases for each one.

That scheme feels probably over-complex, IMO, but I don't have an concrete counter-proposal in mind.

Sep 29 2019, 12:18 AM · Restricted Project, Restricted Project

Sep 27 2019

theraven added inline comments to D67867: [libc] Add few docs and implementation of strcpy and strcat..
Sep 27 2019, 3:13 AM · Restricted Project, Restricted Project
theraven added a comment to D67867: [libc] Add few docs and implementation of strcpy and strcat..

We don't have anything documenting the usage of reserved identifiers. The C standard reserves identifiers that begin with a double underscore or with an underscore or a capital as reserved for the 'implementation' but assumes that the compiler and library are a single blob. GCC has a documented policy that double-underscore identifiers are reserved for the compiler and underscore-capital identifiers are reserved for the library (but glibc doesn't follow it, so ended up with __block being used as an identifier in unistd.h, which broke many things for a long time). Do we want to have a stricter policy, for example that the only identifiers that we use in public headers that are not standard symbols are __LLVM_LIBC_{FOO} for macros and __llvm_libc_foo for other identifiers?

Sep 27 2019, 2:57 AM · Restricted Project, Restricted Project
theraven added a comment to D68108: Redeclare Objective-C property accessors inside the ObjCImplDecl in which they are synthesized..

The changes for the GNU runtimes look correct to me. We're missing a bunch of tests there, unfortunately.

Sep 27 2019, 1:45 AM · Restricted Project

Sep 3 2019

theraven committed rL370736: Add my GitHub account..
Add my GitHub account.
Sep 3 2019, 3:28 AM

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 · Restricted Project

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 · Restricted Project

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 · Restricted Project

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