Page MenuHomePhabricator

rnk (Reid Kleckner)
User

Projects

User Details

User Since
Jan 2 2013, 4:34 PM (368 w, 5 d)

Recent Activity

Yesterday

rnk added inline comments to D73304: [compiler-rt] enable test-suite discovery in source tree for libFuzzer & profile.
Mon, Jan 27, 4:24 PM · Restricted Project, Restricted Project
rnk accepted D73202: Make AST reading work better with LLVM_APPEND_VC_REV=NO.

lgtm

Mon, Jan 27, 4:15 PM · Restricted Project
rnk accepted D73510: Reland "[StackColoring] Remap PseudoSourceValue frame indices via MachineFunction::getPSVManager()"".

lgtm

Mon, Jan 27, 3:51 PM · Restricted Project
rnk added a comment to D73510: Reland "[StackColoring] Remap PseudoSourceValue frame indices via MachineFunction::getPSVManager()"".

test/CodeGen/X86/catchpad-lifetime.ll (added in rL257158 @majnemer) appears to be bit-rotted. If I delete:
...
Not test will break.

Mon, Jan 27, 3:47 PM · Restricted Project
rnk committed rGc23212a438f6: [IR] Keep a double break between functions when printing a module (authored by rnk).
[IR] Keep a double break between functions when printing a module
Mon, Jan 27, 3:38 PM
rnk added a comment to D73505: [IR] Keep a double break between function decls and defs.

Keep a double break between function decls and defs

This patch also inserts an empty line between two declarations or two definitions.

(It actually adds a newline before printing any declaration or definition.)

Mon, Jan 27, 3:38 PM · Restricted Project
rnk committed rG9521c18438a9: [IR] Keep a double break between functions when printing a module (authored by rnk).
[IR] Keep a double break between functions when printing a module
Mon, Jan 27, 3:33 PM
rnk closed D73505: [IR] Keep a double break between function decls and defs.
Mon, Jan 27, 3:32 PM · Restricted Project
rnk committed rGc7feb6b36aa8: [WinEH] Re-run stack coloring test for i686 (authored by rnk).
[WinEH] Re-run stack coloring test for i686
Mon, Jan 27, 3:29 PM
rnk created D73505: [IR] Keep a double break between function decls and defs.
Mon, Jan 27, 1:49 PM · Restricted Project
rnk accepted D73044: {tablegen] Emit string literals instead of char arrays.

Thanks!

Mon, Jan 27, 10:09 AM · Restricted Project

Sun, Jan 26

rnk accepted D72331: OpaquePtr: add type to inalloca attribute..

I remember reading through this last week, but apparently I did not hit send. This patch actually prompted me to start working on the replacement for this thing.

Sun, Jan 26, 8:22 AM · Restricted Project, Restricted Project

Fri, Jan 24

rnk committed rG0ebc8e6c4216: [Sema] Remove unneeded TreeTransform.h includes, NFC (authored by rnk).
[Sema] Remove unneeded TreeTransform.h includes, NFC
Fri, Jan 24, 5:49 PM
rnk committed rGde863bcc6c86: [Support] Fix up header comments after splitting Allocator.h, NFC (authored by rnk).
[Support] Fix up header comments after splitting Allocator.h, NFC
Fri, Jan 24, 5:48 PM
rnk committed rGdd8e0a0a23ba: [Sema] Split availability processing into SemaAvailability.cpp (authored by rnk).
[Sema] Split availability processing into SemaAvailability.cpp
Fri, Jan 24, 5:39 PM
rnk committed rG0697bcb66f1d: [Support] Split MallocAllocator out of Allocator.h (authored by rnk).
[Support] Split MallocAllocator out of Allocator.h
Fri, Jan 24, 5:39 PM
rnk closed D73385: [Sema] Split availability processing into SemaAvailability.cpp.
Fri, Jan 24, 5:39 PM · Restricted Project
rnk closed D73392: [Support] Split MallocAllocator out of Allocator.h.
Fri, Jan 24, 5:39 PM · Restricted Project
rnk committed rG3da47749ddd0: [IR] Move CallBase::getOperandBundlesAsDefs out of line, NFC (authored by rnk).
[IR] Move CallBase::getOperandBundlesAsDefs out of line, NFC
Fri, Jan 24, 5:30 PM
rnk added a comment to D73392: [Support] Split MallocAllocator out of Allocator.h.

Thanks!

Fri, Jan 24, 5:30 PM · Restricted Project
rnk created D73392: [Support] Split MallocAllocator out of Allocator.h.
Fri, Jan 24, 4:36 PM · Restricted Project
rnk committed rG632ba9fcb526: [codeview] Prune SimpleTypeSerializer.h headers, NFC (authored by rnk).
[codeview] Prune SimpleTypeSerializer.h headers, NFC
Fri, Jan 24, 4:09 PM
rnk created D73385: [Sema] Split availability processing into SemaAvailability.cpp.
Fri, Jan 24, 3:23 PM · Restricted Project
rnk accepted D72665: [X86] Break the loop in LowerReturn into 2 loops..

lgtm

Fri, Jan 24, 1:51 PM · Restricted Project
rnk committed rG8a81daaa8b58: [AST] Split parent map traversal logic into ParentMapContext.h (authored by rnk).
[AST] Split parent map traversal logic into ParentMapContext.h
Fri, Jan 24, 1:43 PM
rnk closed D71313: [AST] Split parent map traversal logic into ParentMapContext.h.
Fri, Jan 24, 1:43 PM · Restricted Project, Restricted Project
rnk added inline comments to D73126: [X86] Generate unaligned access for fixed slots in unaligned stack.
Fri, Jan 24, 1:40 PM · Restricted Project
rnk added a comment to D72665: [X86] Break the loop in LowerReturn into 2 loops..

From the commit message, this sounds like it is fixing a bug. Can it be tested? Did you have a test already, or did you forget to add it?

Fri, Jan 24, 1:31 PM · Restricted Project
rnk added inline comments to D73044: {tablegen] Emit string literals instead of char arrays.
Fri, Jan 24, 1:13 PM · Restricted Project

Thu, Jan 23

rnk added a comment to D71313: [AST] Split parent map traversal logic into ParentMapContext.h.

I think I can land this version, but I'll wait until tomorrow so I'll be around to debug fallout.

Thu, Jan 23, 4:49 PM · Restricted Project, Restricted Project
rnk updated the diff for D71313: [AST] Split parent map traversal logic into ParentMapContext.h.
  • Move things around while retaining API compatibility for getParents
Thu, Jan 23, 4:41 PM · Restricted Project, Restricted Project
rnk committed rG2af74e27ed7d: [MS] Overhaul how clang passes overaligned args on x86_32 (authored by rnk).
[MS] Overhaul how clang passes overaligned args on x86_32
Thu, Jan 23, 4:12 PM
rnk closed D72114: [MS] Overhaul how clang passes overaligned args on x86_32.
Thu, Jan 23, 4:12 PM · Restricted Project
rnk added a comment to D29428: [SimplifyCFG] Merge similar fatal error blocks ending in unreachable.

Some new numbers:

$ du -b build_a/bin/clang-11  build_b/bin/clang-11                                                                                                                                                                         
136375664       build_a/bin/clang-11                                                                         
141186840       build_b/bin/clang-11 

So, enabling this patch in build_b increases the size of clang with asserts enabled by 4.5MB. Odd.

Thu, Jan 23, 4:02 PM · Restricted Project
rnk accepted D72703: Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit.

lgtm :)

Thu, Jan 23, 2:51 PM · Restricted Project
rnk updated the diff for D29428: [SimplifyCFG] Merge similar fatal error blocks ending in unreachable.
  • three year later update, I forgot we still don't do this
Thu, Jan 23, 2:20 PM · Restricted Project
rnk committed rGe5caa156b446: [PDB] Simplify API for making section map, NFC (authored by rnk).
[PDB] Simplify API for making section map, NFC
Thu, Jan 23, 12:27 PM
rnk accepted D73221: [PGO] Attach appropriate funclet operand bundles to value profiling instrumentation calls.

lgtm

Thu, Jan 23, 12:06 PM · Restricted Project
rnk added a comment to D44485: [MC] Always emit relocations for same-section function references.

I don't think this has been a problem for mingw, GCC, & ld.bfd. At least @mstorsjo hasn't reported any issues with it. Anyway, if you can reproduce the problem, we can look into it.

Thu, Jan 23, 11:45 AM · Restricted Project
rnk added inline comments to D73044: {tablegen] Emit string literals instead of char arrays.
Thu, Jan 23, 11:41 AM · Restricted Project
rnk added inline comments to D73044: {tablegen] Emit string literals instead of char arrays.
Thu, Jan 23, 11:14 AM · Restricted Project

Wed, Jan 22

rnk accepted D72960: Include phabricator.uri in .arcconfig.

lgtm

Wed, Jan 22, 3:25 PM · Restricted Project
rnk added a comment to D72960: Include phabricator.uri in .arcconfig.

By git-phab do you mean new versions of arcanist? I don't see a git-phab tool in tree.

Wed, Jan 22, 3:25 PM · Restricted Project
rnk added a comment to D73221: [PGO] Attach appropriate funclet operand bundles to value profiling instrumentation calls.

Code makes sense and tests look good, but I have a suggestion for how to make it simpler.

Wed, Jan 22, 2:43 PM · Restricted Project
rnk created D73234: [gn] Paper over Py3 urllib2 incompatibility in gn/get.py.
Wed, Jan 22, 2:34 PM · Restricted Project
rnk accepted D73139: [LLD][COFF] Enable linking of __declspec(selectany) symbols from Clang and GCC.

lgtm

Wed, Jan 22, 11:37 AM · Restricted Project
rnk added a comment to D72703: Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit.

I like the max_tokens_here / max_tokens_total variants.

Wed, Jan 22, 11:00 AM · Restricted Project

Tue, Jan 21

rnk added a comment to D72703: Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit.

I waited to see if there was any other feedback, but I'm in favor of this.

Tue, Jan 21, 4:13 PM · Restricted Project
rnk added a comment to D73139: [LLD][COFF] Enable linking of __declspec(selectany) symbols from Clang and GCC.

This needs a testcase. Have a look in lld/test/COFF, it's probably most suitable with a .s test for this (the main test file itself simulating the object file created by e.g. clang, and then either a separate file in test/COFF/Inputs, or generating that second file with echo statements within the file (there's a few examples of this among the existing tests), for the other file - assemble both and try to link them together.

Tue, Jan 21, 3:27 PM · Restricted Project
rnk committed rGf63d76373879: [TableGen] Use a table to lookup MVE intrinsic names (authored by rnk).
[TableGen] Use a table to lookup MVE intrinsic names
Tue, Jan 21, 11:07 AM
rnk closed D72984: [TableGen] Use a table to lookup MVE intrinsic names.
Tue, Jan 21, 11:07 AM · Restricted Project

Mon, Jan 20

rnk accepted D73044: {tablegen] Emit string literals instead of char arrays.

Looks good to me, but please let @mstorsjo confirm that this will work before landing. Thanks!

Mon, Jan 20, 1:13 PM · Restricted Project

Sun, Jan 19

rnk accepted D72582: [X86] Don't inherit 32-bit calling conventions in 64-bit mode..

Hm, this will be an ABI compat issue that is relatively easy to run into:

typedef double __attribute__((vector_size(3*8))) MyVec;
MyVec f() { return {}; }

->
define dso_local <3 x double> @_Z1fv()
->

xorps   %xmm0, %xmm0
fldz
Sun, Jan 19, 10:49 AM · Restricted Project
rnk committed rGbadc7e6cf9fe: Remove extra "\01" prefix in EH docs (authored by rnk).
Remove extra "\01" prefix in EH docs
Sun, Jan 19, 8:22 AM

Sat, Jan 18

rnk created D72984: [TableGen] Use a table to lookup MVE intrinsic names.
Sat, Jan 18, 1:02 PM · Restricted Project
rnk added a comment to D67161: [clang,ARM] Initial ACLE intrinsics for MVE..

I posted a patch to speed things up:
https://reviews.llvm.org/D72984
The numbers are different, since 9 seconds is measured in a local linux build with no debug info, vs. 28s I measured when building at work, on Windows, with debug info.

Sat, Jan 18, 1:02 PM · Restricted Project
rnk committed rGff6be0ca25ce: Revert "[Support] Explicitly instantiate BumpPtrAllocatorImpl" (authored by rnk).
Revert "[Support] Explicitly instantiate BumpPtrAllocatorImpl"
Sat, Jan 18, 9:35 AM
rnk added a reverting change for rGadd95990508e: [Support] Explicitly instantiate BumpPtrAllocatorImpl: rGff6be0ca25ce: Revert "[Support] Explicitly instantiate BumpPtrAllocatorImpl".
Sat, Jan 18, 9:35 AM
rnk committed rGadd95990508e: [Support] Explicitly instantiate BumpPtrAllocatorImpl (authored by rnk).
[Support] Explicitly instantiate BumpPtrAllocatorImpl
Sat, Jan 18, 9:25 AM

Fri, Jan 17

rnk committed rG423e3db6a820: Remove unneeded FoldingSet.h include from Attributes.h (authored by rnk).
Remove unneeded FoldingSet.h include from Attributes.h
Fri, Jan 17, 4:46 PM
rnk added a comment to D67161: [clang,ARM] Initial ACLE intrinsics for MVE..

ArmMveAliasValid is the second slowest function to compile in all of clang, according to ClangBuildAnalyzer: https://reviews.llvm.org/P8185

Fri, Jan 17, 4:36 PM · Restricted Project

Thu, Jan 16

rnk accepted D72855: Make LLVM_APPEND_VC_REV=OFF affect clang, lld, and lldb as well..

lgtm

Thu, Jan 16, 3:34 PM · Restricted Project, Restricted Project, Restricted Project
rnk accepted D72786: [clang] Set function attributes on SEH filter functions correctly..

lgtm, just some test comment tweaks.

Thu, Jan 16, 11:01 AM · Restricted Project
rnk added a comment to D71082: Allow system header to provide their own implementation of some builtin.

I agree, raising -fgnuc-version is not an acceptable workaround, and we can't ship a clang that doesn't work with old versions of glibc. I think we need a different workaround. The simplest one I can think of is to make __warn_memset_zero_len a recognized builtin that generates no code.

Thu, Jan 16, 10:32 AM · Restricted Project

Wed, Jan 15

rnk committed rG8045a8a7f184: [COFF] Warn that LLD does not support /PDBSTRIPPED: (authored by rnk).
[COFF] Warn that LLD does not support /PDBSTRIPPED:
Wed, Jan 15, 3:11 PM
rnk added a comment to D72399: [Support] Replace Windows __declspec(thread) with thread_local in LLVM_THREAD_LOCAL.

Honestly, if __thread is available, I wonder if LLVM should prefer that, since it implements the check that the variable is trivially constructible/destructible. But, that has no bearing on which declspec to use.

Is "trivially constructible/destructible" actually a requirement for this? I thought that restriction was due to host platforms which didn't support C++11 thread_local (hence if/when every platform supported C++11 thread_local then the restriction would go away).

Wed, Jan 15, 2:24 PM · Restricted Project
rnk added a comment to D72742: Don't assume promotable integers are zero/sign-extended already in x86-64 ABI..

GCC does avoid the zero-extension on the caller sometimes, when not required by the language and when its optimizer finds it suitable.

Wed, Jan 15, 2:06 PM · Restricted Project, Restricted Project
rnk updated subscribers of D72742: Don't assume promotable integers are zero/sign-extended already in x86-64 ABI..

Didn't we work this out already when John added the alignment tracking stuff? I remember this bug involving libjpegturbo standalone assembly receiving a 32-bit argument, and then using the full 64-bit RDI register to read it, but clang stopped zero extending it. I thought the ABI doc was ambiguous at the time, and we studied GCC's behavior, and that is how we arrived at clang's current behavior. I am generally skeptical about changing behavior in this area just because the ABI doc says something now. It keeps changing. What did it say in the past? Shouldn't we pay more attention to that?

Wed, Jan 15, 12:14 PM · Restricted Project, Restricted Project
rnk added a comment to D70557: [lld][COFF] Add support for /map.

A couple of nits, but I think it looks pretty good, thanks!

Wed, Jan 15, 12:05 PM · Restricted Project, lld
rnk added a comment to D67847: [Support] make report_fatal_error `abort` instead of `exit`.

I'm still in favor of this change.

Wed, Jan 15, 11:55 AM · Restricted Project, Restricted Project
rnk added a comment to D72068: [IR] Refactor SubclassData.

I feel like this is creating too much unnecessary abstraction. I think we can use simple techniques, like unions, as I did here in this uncommitted patch:
https://reviews.llvm.org/D51664#C1373737NL442
Even better, we can do that incrementally, without many changes to the get/set value subclass data APIs.

Wed, Jan 15, 11:46 AM · Restricted Project
rnk added a comment to D72786: [clang] Set function attributes on SEH filter functions correctly..

Thanks, the code change looks good, but please adjust the tests a bit.

Wed, Jan 15, 10:59 AM · Restricted Project

Tue, Jan 14

rnk committed rGc42116cc653a: Fix up ms-pch-macro.c test to pass on non-Windows (authored by rnk).
Fix up ms-pch-macro.c test to pass on non-Windows
Tue, Jan 14, 10:20 PM
rnk committed rG8e780252a728: [X86] ABI compat bugfix for MSVC vectorcall (authored by rnk).
[X86] ABI compat bugfix for MSVC vectorcall
Tue, Jan 14, 6:01 PM
rnk closed D72110: [X86] ABI compat bugfix for MSVC vectorcall.
Tue, Jan 14, 6:00 PM · Restricted Project
rnk updated the diff for D72114: [MS] Overhaul how clang passes overaligned args on x86_32.
  • rebase
Tue, Jan 14, 6:00 PM · Restricted Project
rnk added inline comments to D72114: [MS] Overhaul how clang passes overaligned args on x86_32.
Tue, Jan 14, 6:00 PM · Restricted Project
rnk committed rG0f9cf42facaf: Allow /D flags absent during PCH creation under msvc-compat (authored by zahen).
Allow /D flags absent during PCH creation under msvc-compat
Tue, Jan 14, 5:33 PM
rnk closed D72405: Allow /D flags absent during PCH creation under msvc-compat.
Tue, Jan 14, 5:32 PM · Restricted Project
rnk committed rG40cd26c70081: [Win64] Handle FP arguments more gracefully under -mno-sse (authored by rnk).
[Win64] Handle FP arguments more gracefully under -mno-sse
Tue, Jan 14, 5:23 PM
rnk closed D70465: [Win64] Handle FP arguments more gracefully under -mno-sse.
Tue, Jan 14, 5:22 PM · Restricted Project
rnk accepted D72405: Allow /D flags absent during PCH creation under msvc-compat.

I had no luck converting the CHECK-FOO & CHECK-NOFOO tests to use -verify because the errors were reported against "(frontend)"

Tue, Jan 14, 5:21 PM · Restricted Project
rnk updated the diff for D72405: Allow /D flags absent during PCH creation under msvc-compat.
  • use %clang_cc1 as possible in tests
Tue, Jan 14, 5:13 PM · Restricted Project
rnk accepted D54439: CMake: Make most target symbols hidden by default.

Let's get the annotations in so we can start to benefit from them.

Tue, Jan 14, 4:32 PM · Restricted Project
rnk added a comment to D72242: Fix crash on value dependent bitfields in if conditions in templates.

I think I liked the first version of this patch better. I would say, if the AST after instantiation remains the same as it was before D69950, then the first one seems like the right fix. The pattern AST will just be missing a node to represent the promotion from the bitfield to a full integer, and then again to a boolean.

Tue, Jan 14, 4:12 PM
rnk accepted D72540: [WinEH] Ignore lifetime.end PHI nodes in empty cleanuppads.

lgtm

Tue, Jan 14, 3:52 PM · Restricted Project
rnk accepted D72399: [Support] Replace Windows __declspec(thread) with thread_local in LLVM_THREAD_LOCAL.

I checked that __declspec(thread) and thread_local seem to be functionally equivalent with MSVC.

Tue, Jan 14, 3:52 PM · Restricted Project
rnk added a comment to D69372: [X86][VARARG] Avoid spilling xmm vararg arguments..
In D69372#1820099, @avl wrote:
In D69372#1818166, @rnk wrote:

It should be possible to use musttail thunk with a prototype of void (int, ...) between the call to foo and bar.

if I correctly understood the example - such a situation should not occur.
My understanding is that musttail thunk and it`s target _must_ have identical signatures.

Tue, Jan 14, 3:34 PM · Restricted Project

Mon, Jan 13

rnk added a comment to D72427: [DebugInfo] Add option to clang to limit debug info that is emitted for classes..

Total object file size on Windows, compiling with RelWithDebInfo:

before: 4,257,448 kb
after: 2,104,963 kb

And on Linux

before: 9,225,140 kb
after: 4,387,464 kb

Mon, Jan 13, 4:03 PM · debug-info, Restricted Project
rnk added a comment to D69585: PerformPendingInstatiations() already in the PCH.

I'm interested in making clang do this, but I think this needs significantly more work until this is ready to land. It needs in-tree tests. I assumed we'd want to hook it up to clang-cl /Yc and /Yu.

Mon, Jan 13, 3:08 PM · Restricted Project
rnk requested changes to D69372: [X86][VARARG] Avoid spilling xmm vararg arguments..

For the noimplicitfloat mode, the compiler mustn't generate
floating-point code if it was not asked directly to do so.

Mon, Jan 13, 2:58 PM · Restricted Project
rnk added a comment to D70465: [Win64] Handle FP arguments more gracefully under -mno-sse.

Thanks, I'll rebase it and land it today. I was out skiing last week.

Mon, Jan 13, 2:58 PM · Restricted Project
rnk updated subscribers of D72405: Allow /D flags absent during PCH creation under msvc-compat.

Honestly, MSVC's behavior makes more sense to me. Usually warnings tell the user they are doing something silly, and then let them do it anyway. Without this change, there is no way to add extra macros to some compilations, even if they won't affect the already-parsed PCH blob.

Mon, Jan 13, 1:43 PM · Restricted Project
rnk accepted D71572: [ItaniumCXXABI] Make tls wrappers properly comdat.

This will be a small change in behavior, but nobody on ELF should notice because things with vague linkage there are both ELF-weak and comdat.

Mon, Jan 13, 1:15 PM · Restricted Project

Fri, Jan 3

rnk added inline comments to D72011: [sanitizers][windows] Global/LocalAlloc interception and tests.
Fri, Jan 3, 4:18 PM · Restricted Project, Restricted Project
rnk accepted D70447: [Support] ThreadPoolExecutor fixes for Windows/MinGW.

Given that quick_exit won't work then, let's do this thing. I don't think multiple llvm_shutdown is a real use case for anyone using these APIs today.

Fri, Jan 3, 3:58 PM · Restricted Project
rnk resigned from D71981: [LLD] [COFF] Don't error out on duplicate absolute symbols with the same value.

lgtm

Fri, Jan 3, 3:38 PM · Restricted Project
rnk updated subscribers of D69868: Allow "callbr" to return non-void values.

More reviewers: +@echristo @MaskRay

Fri, Jan 3, 3:38 PM · Restricted Project, Restricted Project
rnk added inline comments to D72114: [MS] Overhaul how clang passes overaligned args on x86_32.
Fri, Jan 3, 3:04 PM · Restricted Project
rnk added inline comments to D72114: [MS] Overhaul how clang passes overaligned args on x86_32.
Fri, Jan 3, 2:45 PM · Restricted Project