Page MenuHomePhabricator

dexonsmith (Duncan P. N. Exon Smith)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 18 2014, 10:33 AM (269 w, 6 d)

Recent Activity

Tue, May 14

dexonsmith accepted D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format.

LGTM too.

Tue, May 14, 1:59 PM · Restricted Project

Thu, May 9

dexonsmith added a comment to D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format.
In D61547#1495339, @rnk wrote:

Presumably test/Bitcode/upgrade-global-ctors.ll.bc should remain unchanged, i.e. not be regenerated? We want it to use the pre-upgraded, two field form.

I used llvm-as without this patch to generate it. I added anither test to check the upgrader correctly adds i8* null

What's the problem with using the pre-existing file?

test/Bitcode/upgrade-global-ctors.ll.bc uses zeroinitializer, it doesn't check if AuoUpgrader adds i8* null as the third field. So I improved the test a bit and made it clear both globals_ctors and global_dtors are upgraded.

Thu, May 9, 6:04 PM · Restricted Project
dexonsmith added a comment to D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format.
In D61547#1495339, @rnk wrote:

Presumably test/Bitcode/upgrade-global-ctors.ll.bc should remain unchanged, i.e. not be regenerated? We want it to use the pre-upgraded, two field form.

I used llvm-as without this patch to generate it. I added anither test to check the upgrader correctly adds i8* null

Thu, May 9, 11:54 AM · Restricted Project
dexonsmith updated subscribers of D53072: [clang-format] Add a new extra command line option for ide-specific formatting.
Thu, May 9, 11:25 AM

Wed, May 8

dexonsmith added a comment to D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format.
In D61547#1495339, @rnk wrote:

Presumably test/Bitcode/upgrade-global-ctors.ll.bc should remain unchanged, i.e. not be regenerated? We want it to use the pre-upgraded, two field form.

Wed, May 8, 10:57 AM · Restricted Project

Tue, May 7

dexonsmith added a reviewer for D58497: Clear the KnownModules cache if the preprocessor is going away: bruno.

+bruno

Tue, May 7, 6:00 PM · Restricted Project
dexonsmith requested changes to D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format.

Hmm; it doesn't seem safe to obsolete the 2-field form if we don't have a working bitcode upgrade from 2-field to 3-field.

Tue, May 7, 10:42 AM · Restricted Project

Mon, May 6

dexonsmith added a comment to D61165: Fix a crash where a [[no_destroy]] destructor was not emitted in an array.

Duncan pointed out eel.is/c++draft/class.init#class.base.init-13, which appears to claim that initialization ends with the execution of the constructor, excluding temporary destructors.

(13) In a non-delegating constructor, initialization proceeds in the following order:
/* list of steps... */
(13.4) Finally, the compound-statement of the constructor body is executed.

John: do you agree with this analysis?

That's talking about constructor bodies.

Mon, May 6, 5:37 PM · Restricted Project, Restricted Project
dexonsmith updated subscribers of D60285: Make calls into the pthread library use weak symbols..
Mon, May 6, 4:47 PM · Restricted Project
dexonsmith added a reviewer for D61547: [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format: steven_wu.

The 3-field form was introduced by D3499 in 2014 and the legacy 2-field
form was planned to be removed in LLVM 4.0

Mon, May 6, 11:31 AM · Restricted Project
dexonsmith edited reviewers for D61369: [DebugInfo] Delete TypedDINodeRef, added: rnk; removed: dexonsmith.

+rnk

Mon, May 6, 9:26 AM · Restricted Project

Tue, Apr 30

dexonsmith added a reviewer for D61346: [CMake] Do not use libtool on Apple platforms when building LLVM with (full) LTO.: steven_wu.

Shouldn't this just send DYLD_LIBRARY_PATH through to the second stage, so that ar and ranlib use the just-built libLTO.dylib?

Tue, Apr 30, 3:50 PM · Restricted Project

Mon, Apr 29

dexonsmith accepted D60924: [ThinLTO] Adding architecture name into saved object filename.

LGTM.

Mon, Apr 29, 2:29 PM · Restricted Project

Apr 19 2019

dexonsmith added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

Is there a good way to test this?

Not currently in LLVM. It might be possible to add a test in clang repo which requires DARWIN and ld64.

Maybe we can split out the function to generate the filename, and add a unit test for that?

That almost looks like a test for path::append. Not sure if there is much value to add that.

Apr 19 2019, 4:38 PM · Restricted Project
dexonsmith added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

Is there a good way to test this?

Not currently in LLVM. It might be possible to add a test in clang repo which requires DARWIN and ld64.

Apr 19 2019, 2:56 PM · Restricted Project
dexonsmith added a comment to D60924: [ThinLTO] Adding architecture name into saved object filename.

Is there a good way to test this?

Apr 19 2019, 2:40 PM · Restricted Project
dexonsmith added a comment to D60748: Fix i386 struct and union parameter alignment.

I suspect Darwin also doesn't want to take this. We care very little about 32-bit Intel, and part of caring very little is not wanting to spend any effort dealing with the ramifications of ABI breaks. That would apply both to the rule in general and to the vector rule specifically. @dexonsmith, agreed?

Apr 19 2019, 11:18 AM · Restricted Project

Apr 18 2019

dexonsmith added a comment to D60162: [ThinLTO] Add module flags for TargetLibraryInfoImpl and use in LTO backends.

I wonder if we could add a module flag for the TLI, and then store that in the summary. Would it work for both implementations in that case?

Apr 18 2019, 11:28 AM · Restricted Project, Restricted Project
dexonsmith updated subscribers of D60880: [libc++] Use COPYFILE_CLONE from the macOS copyfile(3) API to support APFS clones.

+aprantl

Apr 18 2019, 11:10 AM · Restricted Project

Apr 15 2019

dexonsmith added a comment to D60233: [clang-scan-deps] initial outline of the tool that runs preprocessor to find dependencies over a JSON compilation database.

A comment by whisperity in the origin WIP did not seem to be addressed.
Have you looked at IWYU https://github.com/include-what-you-use/include-what-you-use ?
The end goals of clang-scan-deps and iwyu seem similar so their implementation problems would also be similar.
The iwyu problems doc is https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYUIsDifficult.md

Apr 15 2019, 10:49 AM · Restricted Project

Apr 2 2019

dexonsmith added a comment to D55463: Introduce a source minimizer that reduces source to directives that might affect the dependency list for a compilation.

Are you planning to do this recursively?
The minimizer does not help much for the following example, while Sema.h contains 10,000 lines of useless code.

#include "clang/Sema/Sema.h"

int foo() {}
Apr 2 2019, 9:38 AM · Restricted Project

Mar 28 2019

dexonsmith added inline comments to D59930: Parallel STL version updated.
Mar 28 2019, 5:46 PM

Mar 26 2019

dexonsmith added a comment to D59767: [pstl] Indent preprocessor directives as part of the clang-format rules.

I'm in favour of this.

Mar 26 2019, 7:42 PM · Restricted Project
dexonsmith committed rGdb8a74220674: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC (authored by dexonsmith).
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
Mar 26 2019, 3:31 PM
dexonsmith committed rC357038: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
Mar 26 2019, 3:31 PM
dexonsmith committed rCTE357038: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
Mar 26 2019, 3:31 PM
dexonsmith committed rL357038: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
Mar 26 2019, 3:31 PM
dexonsmith closed D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.

Committed r357038.

Mar 26 2019, 3:30 PM
dexonsmith committed rG1da7eac87c15: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC (authored by dexonsmith).
Frontend: Remove CompilerInstance::VirtualFileSystem, NFC
Mar 26 2019, 3:19 PM
dexonsmith committed rLLDB357037: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Frontend: Remove CompilerInstance::VirtualFileSystem, NFC
Mar 26 2019, 3:19 PM
dexonsmith committed rCTE357037: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Frontend: Remove CompilerInstance::VirtualFileSystem, NFC
Mar 26 2019, 3:18 PM
dexonsmith committed rC357037: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Frontend: Remove CompilerInstance::VirtualFileSystem, NFC
Mar 26 2019, 3:18 PM
dexonsmith committed rL357037: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Frontend: Remove CompilerInstance::VirtualFileSystem, NFC
Mar 26 2019, 3:18 PM
dexonsmith closed D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.

Committed r357037.

Mar 26 2019, 3:18 PM

Mar 20 2019

dexonsmith edited reviewers for D59628: Add support for __attribute__((objc_class_stub)), added: erik.pilkington, arphaman; removed: dexonsmith.

+Erik and Alex, can you take a look at this?

Mar 20 2019, 7:51 PM · Restricted Project
dexonsmith accepted D59489: [libc++][CMake] Clean up some of the libc++ re-exporting logic.

LGTM.

Mar 20 2019, 10:42 AM

Mar 18 2019

dexonsmith accepted D58548: IR: Support parsing numeric block ids, and emit them in textual output..

LGTM!

Mar 18 2019, 3:25 PM · Restricted Project, Restricted Project
dexonsmith updated the diff for D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.

Rebase.

Mar 18 2019, 9:03 AM
dexonsmith added a comment to D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.

... since I noticed that FileManager ...

This kind of implies that we should move the comment from FileManager constructor implementation to the header thus making it an explicit part of the interface contract.

// If the caller doesn't provide a virtual file system, just grab the real
// file system.

Maybe https://reviews.llvm.org/D59388 would be the right place to do it.

Mar 18 2019, 9:00 AM
dexonsmith updated the diff for D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.

Document the default VFS used by the FileManager.

Mar 18 2019, 9:00 AM
dexonsmith added a comment to D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.

Hi Duncan, thanks for working on better interfaces in clang!

I am just wondering - is it safe to have the lifetime of a single object on heap managed by two different IntrusiveRefCntPtr instances?

Mar 18 2019, 8:50 AM

Mar 14 2019

dexonsmith added a parent revision for D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC: D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Mar 14 2019, 2:49 PM
dexonsmith added a child revision for D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC: D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.
Mar 14 2019, 2:49 PM
dexonsmith created D59388: Basic: Return a reference from FileManager::getVirtualFileSystem, NFC.
Mar 14 2019, 2:49 PM
dexonsmith updated the diff for D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.

I slightly simplified the code for CompilerInstance::createFileManager (replaced with an assert), since I noticed that FileManager always constructs its own VFS if it isn't passed one.

Mar 14 2019, 2:25 PM
dexonsmith added reviewers for D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC: Bigcheese, arphaman, bruno.
Mar 14 2019, 1:07 PM
dexonsmith created D59377: Frontend: Remove CompilerInstance::VirtualFileSystem, NFC.
Mar 14 2019, 11:30 AM

Mar 13 2019

dexonsmith added a comment to D58514: Avoid needlessly copying blocks that initialize or are assigned to local auto variables to the heap.

Sorry, I misread the code. If you change the parameter type of bar to BlockTy, the code crashes. If the type is id, it doesn't crash because IRGen copies the block to the heap in foo before passing it to bar.

Mar 13 2019, 5:19 PM · Restricted Project
dexonsmith added a comment to D58514: Avoid needlessly copying blocks that initialize or are assigned to local auto variables to the heap.

That code doesn't crash because the block is retained at the entry of bar and ARC optimizer doesn't remove the retain/release pairs in bar.

Mar 13 2019, 4:33 PM · Restricted Project
dexonsmith added a comment to D58514: Avoid needlessly copying blocks that initialize or are assigned to local auto variables to the heap.

Seems like the chromium code is valid and shouldn't crash. John/Erik what do you think? The following code also crashes with this patch applied.

typedef void (^BlockTy)();

BlockTy sb;
__weak BlockTy wb;

void foo(id a) {
  auto b = ^{ NSLog(@"foo %@", a); };
  wb = b; // block isn't copied to the heap.
  sb = b; // block is copied to the heap.
}

int main() {
  auto x = [NSObject new];
  foo(x);
  sb();
  wb();
  return 0;
}
Mar 13 2019, 4:21 PM · Restricted Project

Mar 12 2019

dexonsmith committed rG70d759b4eb95: Modules: Add LangOptions::CacheGeneratedPCH (authored by dexonsmith).
Modules: Add LangOptions::CacheGeneratedPCH
Mar 12 2019, 11:39 AM
dexonsmith committed rL355950: Modules: Add LangOptions::CacheGeneratedPCH.
Modules: Add LangOptions::CacheGeneratedPCH
Mar 12 2019, 11:39 AM
dexonsmith committed rC355950: Modules: Add LangOptions::CacheGeneratedPCH.
Modules: Add LangOptions::CacheGeneratedPCH
Mar 12 2019, 11:38 AM
dexonsmith closed D59176: Modules: Add LangOptions::CacheGeneratedPCH.

Committed in r355950. Thanks for the review.

Mar 12 2019, 11:38 AM

Mar 11 2019

dexonsmith added inline comments to D59176: Modules: Add LangOptions::CacheGeneratedPCH.
Mar 11 2019, 8:35 PM
dexonsmith updated the diff for D59176: Modules: Add LangOptions::CacheGeneratedPCH.

Updated the constructor call to PCHGenerator in GenerateModuleAction::CreateASTConsumer to use BuildingImplicitModule on its own. Checking where it's set (only in compileModuleImpl), it's exactly the condition we want here.

Mar 11 2019, 8:25 PM
dexonsmith added a comment to D59176: Modules: Add LangOptions::CacheGeneratedPCH.

This commit by itself doesn't change any behavior, right?

Mar 11 2019, 1:56 PM

Mar 9 2019

dexonsmith committed rGb7db2e9f8242: Stop relying on allocator behaviour in modules unit test (authored by dexonsmith).
Stop relying on allocator behaviour in modules unit test
Mar 9 2019, 12:15 PM
dexonsmith committed rC355780: Stop relying on allocator behaviour in modules unit test.
Stop relying on allocator behaviour in modules unit test
Mar 9 2019, 12:14 PM
dexonsmith committed rL355780: Stop relying on allocator behaviour in modules unit test.
Stop relying on allocator behaviour in modules unit test
Mar 9 2019, 12:14 PM
dexonsmith committed rG2fd0d227f6bc: Fix slashes in path references in -Rmodule-import test from r355778 (authored by dexonsmith).
Fix slashes in path references in -Rmodule-import test from r355778
Mar 9 2019, 11:33 AM
dexonsmith committed rC355779: Fix slashes in path references in -Rmodule-import test from r355778.
Fix slashes in path references in -Rmodule-import test from r355778
Mar 9 2019, 11:32 AM
dexonsmith committed rL355779: Fix slashes in path references in -Rmodule-import test from r355778.
Fix slashes in path references in -Rmodule-import test from r355778
Mar 9 2019, 11:32 AM
dexonsmith closed D58893: Modules: Invalidate out-of-date PCMs as they're discovered.

Committed in r355778.

Mar 9 2019, 9:44 AM
dexonsmith committed rG0a2be46cfdb6: Modules: Invalidate out-of-date PCMs as they're discovered (authored by dexonsmith).
Modules: Invalidate out-of-date PCMs as they're discovered
Mar 9 2019, 9:44 AM
dexonsmith committed rL355778: Modules: Invalidate out-of-date PCMs as they're discovered.
Modules: Invalidate out-of-date PCMs as they're discovered
Mar 9 2019, 9:44 AM
dexonsmith committed rC355778: Modules: Invalidate out-of-date PCMs as they're discovered.
Modules: Invalidate out-of-date PCMs as they're discovered
Mar 9 2019, 9:44 AM
dexonsmith committed rC355777: Modules: Rename MemoryBufferCache to InMemoryModuleCache.
Modules: Rename MemoryBufferCache to InMemoryModuleCache
Mar 9 2019, 9:34 AM
dexonsmith committed rG8bef5cd49a8b: Modules: Rename MemoryBufferCache to InMemoryModuleCache (authored by dexonsmith).
Modules: Rename MemoryBufferCache to InMemoryModuleCache
Mar 9 2019, 9:34 AM
dexonsmith closed D58890: Modules: Rename MemoryBufferCache to InMemoryModuleCache.

Committed in r355777.

Mar 9 2019, 9:34 AM
dexonsmith committed rL355777: Modules: Rename MemoryBufferCache to InMemoryModuleCache.
Modules: Rename MemoryBufferCache to InMemoryModuleCache
Mar 9 2019, 9:33 AM
dexonsmith added a child revision for D58893: Modules: Invalidate out-of-date PCMs as they're discovered: D59176: Modules: Add LangOptions::CacheGeneratedPCH.
Mar 9 2019, 9:23 AM
dexonsmith added a parent revision for D59176: Modules: Add LangOptions::CacheGeneratedPCH: D58893: Modules: Invalidate out-of-date PCMs as they're discovered.
Mar 9 2019, 9:23 AM
dexonsmith created D59176: Modules: Add LangOptions::CacheGeneratedPCH.
Mar 9 2019, 9:23 AM

Mar 7 2019

dexonsmith added inline comments to D59112: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic.
Mar 7 2019, 7:42 PM · Restricted Project
dexonsmith accepted D59112: [Bitcode] Fix bitcode compatibility issue with clang.arc.use intrinsic.

LGTM too with some nitpicks (forgot to hit "submit" earlier this afternoon).

Mar 7 2019, 7:29 PM · Restricted Project
dexonsmith resigned from D59080: Merge of global constants does not happen when constants have common linkage.

+ab, do you still know this code?

Mar 7 2019, 10:25 AM
dexonsmith added inline comments to D59093: [libc++] Mark <filesystem> as unavailable on Apple platforms.
Mar 7 2019, 10:25 AM

Mar 6 2019

dexonsmith accepted D59032: Passthrough compiler launcher.

LGTM. Thanks!

Mar 6 2019, 11:33 AM · Restricted Project

Mar 5 2019

dexonsmith committed rGa75c4df5242f: Fix slashes in path references in -Rmodule-import test from r355477 (authored by dexonsmith).
Fix slashes in path references in -Rmodule-import test from r355477
Mar 5 2019, 9:43 PM
dexonsmith committed rC355482: Fix slashes in path references in -Rmodule-import test from r355477.
Fix slashes in path references in -Rmodule-import test from r355477
Mar 5 2019, 9:43 PM
dexonsmith committed rL355482: Fix slashes in path references in -Rmodule-import test from r355477.
Fix slashes in path references in -Rmodule-import test from r355477
Mar 5 2019, 9:43 PM
dexonsmith committed rG9dda8f540c8e: Modules: Add -Rmodule-import (authored by dexonsmith).
Modules: Add -Rmodule-import
Mar 5 2019, 6:51 PM
dexonsmith committed rC355477: Modules: Add -Rmodule-import.
Modules: Add -Rmodule-import
Mar 5 2019, 6:51 PM
dexonsmith committed rL355477: Modules: Add -Rmodule-import.
Modules: Add -Rmodule-import
Mar 5 2019, 6:51 PM
dexonsmith closed D58891: Modules: Add -Rmodule-import.

Committed in r355477.

Mar 5 2019, 6:51 PM

Mar 4 2019

dexonsmith added a comment to D58890: Modules: Rename MemoryBufferCache to InMemoryModuleCache.

InMemoryModuleCache seems like a way more appropriate name here. Also thanks for improving some of the comments.

Because of the move to Serialization we can no longer abuse the Preprocessor to forward it to the ASTReader. Besides the rename and file move, that means Preprocessor::Preprocessor has one fewer parameter and ASTReader::ASTReader has one more.

Are there any C api bits that expose preprocessor stuff and also need updates?

Mar 4 2019, 4:32 PM

Mar 3 2019

dexonsmith added inline comments to D58891: Modules: Add -Rmodule-import.
Mar 3 2019, 11:29 PM
dexonsmith added parent revisions for D58893: Modules: Invalidate out-of-date PCMs as they're discovered: D58890: Modules: Rename MemoryBufferCache to InMemoryModuleCache, D58891: Modules: Add -Rmodule-import.
Mar 3 2019, 11:20 PM
dexonsmith created D58893: Modules: Invalidate out-of-date PCMs as they're discovered.
Mar 3 2019, 11:20 PM
dexonsmith added a child revision for D58891: Modules: Add -Rmodule-import: D58893: Modules: Invalidate out-of-date PCMs as they're discovered.
Mar 3 2019, 11:20 PM
dexonsmith added a child revision for D58890: Modules: Rename MemoryBufferCache to InMemoryModuleCache: D58893: Modules: Invalidate out-of-date PCMs as they're discovered.
Mar 3 2019, 11:20 PM
dexonsmith created D58891: Modules: Add -Rmodule-import.
Mar 3 2019, 9:56 PM
dexonsmith created D58890: Modules: Rename MemoryBufferCache to InMemoryModuleCache.
Mar 3 2019, 9:51 PM
dexonsmith committed rGfae03d8add5d: Modules: Document that ReadASTCore exits its final loop via `return`, NFC (authored by dexonsmith).
Modules: Document that ReadASTCore exits its final loop via `return`, NFC
Mar 3 2019, 12:17 PM
dexonsmith committed rC355294: Modules: Document that ReadASTCore exits its final loop via `return`, NFC.
Modules: Document that ReadASTCore exits its final loop via `return`, NFC
Mar 3 2019, 12:17 PM
dexonsmith committed rL355294: Modules: Document that ReadASTCore exits its final loop via `return`, NFC.
Modules: Document that ReadASTCore exits its final loop via `return`, NFC
Mar 3 2019, 12:17 PM

Feb 25 2019

dexonsmith accepted D58631: [ThinLTO] Use defined node and edge order when dumping DOT files.
Feb 25 2019, 10:12 AM · Restricted Project

Feb 23 2019

dexonsmith committed rGe7b9464943e1: VFS: Avoid some unnecessary std::string copies (authored by dexonsmith).
VFS: Avoid some unnecessary std::string copies
Feb 23 2019, 3:49 PM
dexonsmith committed rL354739: VFS: Avoid some unnecessary std::string copies.
VFS: Avoid some unnecessary std::string copies
Feb 23 2019, 3:48 PM