rnk (Reid Kleckner)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Yesterday

rnk committed rL308765: Fix DebugInfo/PDB build by adding missing changes.
Fix DebugInfo/PDB build by adding missing changes
Fri, Jul 21, 11:32 AM
rnk committed rL308764: [PDB] Dump extra info about the publics stream.
[PDB] Dump extra info about the publics stream
Fri, Jul 21, 11:30 AM
rnk accepted D35259: Complex Long Double classification In RegCall calling convention.

lgtm

Fri, Jul 21, 10:59 AM

Thu, Jul 20

rnk accepted D35518: [COFF, ARM64, CodeView] Add support to emit CodeView debug info for ARM64 COFF.

lgtm

Thu, Jul 20, 12:58 PM
rnk accepted D33278: [LLVM][x86][Inline Asm] - Enum support for MS syntax.

Thanks @coby for finding the simplification!

Thu, Jul 20, 9:49 AM
rnk accepted D33277: [Clang][x86][Inline Asm] - Enum support for MS syntax.

lgtm

Thu, Jul 20, 9:49 AM · Restricted Project
rnk added inline comments to D33852: Enable __declspec(selectany) on linux.
Thu, Jul 20, 9:41 AM

Wed, Jul 19

rnk added a comment to D35558: Use sys::Memory::AllocateRWX for JIT code.

They are not allocated RWX, they are allocated RW with the option for later X. I.e. the kernel enforces W^X, but you can request
additional protections for later use. Without that, mprotect with X would be rejected later. There are patching for Linux for similar effect, but I don't think
they ever got merged. libffi is a victim of that on Linux.

Wed, Jul 19, 5:25 PM
rnk committed rL308568: Try to deflake fuzzer-oom.test on Windows.
Try to deflake fuzzer-oom.test on Windows
Wed, Jul 19, 5:12 PM
rnk committed rL308552: Use llvm::make_unique once more to avoid ADL ambiguity with std::make_unique.
Use llvm::make_unique once more to avoid ADL ambiguity with std::make_unique
Wed, Jul 19, 4:43 PM
rnk committed rL308548: Fix fuzzer-flags.test on Windows.
Fix fuzzer-flags.test on Windows
Wed, Jul 19, 4:22 PM
rnk requested changes to D35558: Use sys::Memory::AllocateRWX for JIT code.

Yeah, I spoke too soon. I didn't realize that AllocateRWX now does different things on different OSs. We should revisit that.

Wed, Jul 19, 3:18 PM
rnk accepted D35546: [AArch64] Produce correct defaultlib directives for windows in MSVC style.

lgtm

Wed, Jul 19, 3:10 PM
rnk accepted D34781: Introduce a MCReloc class.

Looks good

Wed, Jul 19, 3:04 PM
rnk accepted D35558: Use sys::Memory::AllocateRWX for JIT code.
Wed, Jul 19, 2:57 PM
rnk requested changes to D34873: Fix miscompiled 32bit binaries by mingw.

This doesn't seem like an acceptable workaround, surely this regresses functionality for arrays with more than UINT_MAX elements.

Wed, Jul 19, 2:37 PM
rnk added inline comments to D35518: [COFF, ARM64, CodeView] Add support to emit CodeView debug info for ARM64 COFF.
Wed, Jul 19, 2:33 PM
rnk added inline comments to D35259: Complex Long Double classification In RegCall calling convention.
Wed, Jul 19, 11:49 AM
rnk committed rL308497: [PDB] Emit TPI and IPI hashes.
[PDB] Emit TPI and IPI hashes
Wed, Jul 19, 10:26 AM

Mon, Jul 17

rnk committed rL308244: Fix pdbdump-headers.test after TPI hash changes.
Fix pdbdump-headers.test after TPI hash changes
Mon, Jul 17, 5:44 PM
rnk committed rL308241: Fix pdb-type-server-simple test on non-Windows.
Fix pdb-type-server-simple test on non-Windows
Mon, Jul 17, 5:34 PM
rnk committed rL308240: [PDB] Finish and simplify TPI hashing.
[PDB] Finish and simplify TPI hashing
Mon, Jul 17, 5:34 PM
rnk closed D35515: [PDB] Finish and simplify TPI hashing by committing rL308240: [PDB] Finish and simplify TPI hashing.
Mon, Jul 17, 5:34 PM
rnk committed rL308235: [PDB] Merge in types and items from type servers (/Zi).
[PDB] Merge in types and items from type servers (/Zi)
Mon, Jul 17, 5:22 PM
rnk closed D35504: [PDB] Merge in types and items from type servers (/Zi) by committing rL308235: [PDB] Merge in types and items from type servers (/Zi).
Mon, Jul 17, 5:21 PM
rnk added inline comments to D35515: [PDB] Finish and simplify TPI hashing.
Mon, Jul 17, 5:21 PM
rnk added inline comments to D35504: [PDB] Merge in types and items from type servers (/Zi).
Mon, Jul 17, 5:14 PM
rnk updated the diff for D35504: [PDB] Merge in types and items from type servers (/Zi).
  • rebase, remove for loop
Mon, Jul 17, 5:12 PM
rnk committed rL308234: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
[codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId
Mon, Jul 17, 5:00 PM
rnk closed D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId by committing rL308234: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
Mon, Jul 17, 5:00 PM
rnk added a comment to D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
In D35495#812153, @ruiu wrote:

How about UUID, which seems to be used as a synonym to GUID? (https://en.wikipedia.org/wiki/Universally_unique_identifier)

Mon, Jul 17, 4:48 PM
rnk added inline comments to D35518: [COFF, ARM64, CodeView] Add support to emit CodeView debug info for ARM64 COFF.
Mon, Jul 17, 4:47 PM
rnk updated the diff for D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
  • Rename WindowsGuid to GUID
Mon, Jul 17, 4:43 PM
rnk added inline comments to D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
Mon, Jul 17, 4:40 PM
rnk created D35515: [PDB] Finish and simplify TPI hashing.
Mon, Jul 17, 4:15 PM
rnk updated the diff for D35504: [PDB] Merge in types and items from type servers (/Zi).
  • remove CheckGuids hack
Mon, Jul 17, 3:25 PM
rnk added inline comments to D35504: [PDB] Merge in types and items from type servers (/Zi).
Mon, Jul 17, 3:23 PM
rnk created D35504: [PDB] Merge in types and items from type servers (/Zi).
Mon, Jul 17, 1:57 PM
rnk added a dependent revision for D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId: D35504: [PDB] Merge in types and items from type servers (/Zi).
Mon, Jul 17, 1:57 PM
rnk updated the diff for D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
  • rebase on type server removal
Mon, Jul 17, 1:39 PM
rnk committed rL308213: [codeview] Don't use the type visitor to merge types.
[codeview] Don't use the type visitor to merge types
Mon, Jul 17, 1:32 PM
rnk closed D35496: [codeview] Don't use the type visitor to merge types by committing rL308213: [codeview] Don't use the type visitor to merge types.
Mon, Jul 17, 1:32 PM
rnk committed rL308212: [codeview] Remove TypeServerHandler and PDBTypeServerHandler.
[codeview] Remove TypeServerHandler and PDBTypeServerHandler
Mon, Jul 17, 1:28 PM
rnk closed D35394: [codeview] Remove TypeServerHandler and PDBTypeServerHandler by committing rL308212: [codeview] Remove TypeServerHandler and PDBTypeServerHandler.
Mon, Jul 17, 1:28 PM
rnk added a comment to D35394: [codeview] Remove TypeServerHandler and PDBTypeServerHandler.
In D35394#810049, @ruiu wrote:

It seems a reasonable simplification, but do you have a change to visit types without it?

Mon, Jul 17, 1:15 PM
rnk accepted D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64.

Thanks, looks great!

Mon, Jul 17, 12:53 PM
rnk updated the diff for D35496: [codeview] Don't use the type visitor to merge types.
  • comments
Mon, Jul 17, 12:48 PM
rnk updated the summary of D35496: [codeview] Don't use the type visitor to merge types.
Mon, Jul 17, 12:40 PM
rnk added a dependent revision for D35394: [codeview] Remove TypeServerHandler and PDBTypeServerHandler: D35496: [codeview] Don't use the type visitor to merge types.
Mon, Jul 17, 12:40 PM
rnk added inline comments to D35496: [codeview] Don't use the type visitor to merge types.
Mon, Jul 17, 10:58 AM
rnk created D35496: [codeview] Don't use the type visitor to merge types.
Mon, Jul 17, 10:45 AM
rnk created D35495: [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId.
Mon, Jul 17, 10:44 AM

Sat, Jul 15

rnk added inline comments to D34857: [COFF, ARM64] Add initial relocation types.
Sat, Jul 15, 3:06 PM
rnk committed rL308107: [CodeView] Dump BuildInfoSym and ProcSym type indices.
[CodeView] Dump BuildInfoSym and ProcSym type indices
Sat, Jul 15, 11:11 AM
rnk committed rL308106: Fix mis-use of std::lower_bound.
Fix mis-use of std::lower_bound
Sat, Jul 15, 11:10 AM

Fri, Jul 14

rnk accepted D35333: Create empty shell of llvm-mt..

lgtm

Fri, Jul 14, 11:02 AM
rnk added a comment to D35396: [lit] Make %T return a per-test temporary directory.

I'm not suggesting to mkdir a new directory for each test. %T will point to a non-existent directory, just like %t points to a non-existent file. If the tests wants to use %T, it will have to mkdir it.

Fri, Jul 14, 9:41 AM

Thu, Jul 13

rnk added a comment to D35396: [lit] Make %T return a per-test temporary directory.

@rnk Actually it would be quite easy to do the mkdir iff %T is present in the file, if performance is a concern.
I would argue that test runs should be isolated by the test runner, and test authors should not be trying to judge whether it's safe to share a directory.

In any case, inconsistent documentation should be updated one way or the other.

Thu, Jul 13, 5:51 PM
rnk added a comment to D35396: [lit] Make %T return a per-test temporary directory.

@rnk There are two documentation files. The lit.rst says it's unique, TestingGuide.rst says it's not.
So at least that should be fixed.
In any case, I disagree with your comment: what if the user still wants to have %t to signify a temporary file? Why an extra mkdir?

Thu, Jul 13, 5:39 PM
rnk added a comment to D35396: [lit] Make %T return a per-test temporary directory.

Tests that have this bug simply did not read the documentation for %T: it is the parent directory of %t, which is a non-existent path unique for the test. Any test that fails this way should do RUN: mkdir %t and use %t instead of %T.

Thu, Jul 13, 5:20 PM
rnk committed rL307979: [PDB] Put LLD's PDB writing code in a class NFC.
[PDB] Put LLD's PDB writing code in a class NFC
Thu, Jul 13, 5:15 PM
rnk closed D35392: [PDB] Put LLD's PDB writing code in a class NFC by committing rL307979: [PDB] Put LLD's PDB writing code in a class NFC.
Thu, Jul 13, 5:15 PM
rnk created D35394: [codeview] Remove TypeServerHandler and PDBTypeServerHandler.
Thu, Jul 13, 5:13 PM
rnk updated the diff for D35392: [PDB] Put LLD's PDB writing code in a class NFC.
  • fix lifetime issues
  • add commit method
Thu, Jul 13, 5:07 PM
rnk created D35392: [PDB] Put LLD's PDB writing code in a class NFC.
Thu, Jul 13, 4:38 PM
rnk committed rL307971: Fix build due to const-correctness issue after last minute refactoring.
Fix build due to const-correctness issue after last minute refactoring
Thu, Jul 13, 3:05 PM
rnk committed rL307970: [PDB] Fix quadratic behavior when writing a BinaryItemStream.
[PDB] Fix quadratic behavior when writing a BinaryItemStream
Thu, Jul 13, 3:03 PM
rnk committed rL307948: [COFF] Bounds check relocations.
[COFF] Bounds check relocations
Thu, Jul 13, 1:30 PM
rnk closed D35371: [COFF] Bounds check relocations by committing rL307948: [COFF] Bounds check relocations.
Thu, Jul 13, 1:30 PM
rnk accepted D35378: [clang] Add getSignedSizeType method.

lgtm

Thu, Jul 13, 1:28 PM
rnk added a comment to D34474: [AArch64] Extend CallingConv::X86_64_Win64 to AArch64 as well.

I commented on the clang side that I think it's worth having a single ms_abi calling convention, but I don't think it matters too much for LLVM. The only code that cares about the convention is going to be in lib/Target/{X86|AArch64} anyway. It might be worth a try, though.

Thu, Jul 13, 1:27 PM
rnk added inline comments to D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64.
Thu, Jul 13, 1:25 PM
rnk committed rL307946: [PDB] Fix type server handling for archives.
[PDB] Fix type server handling for archives
Thu, Jul 13, 1:12 PM
rnk closed D35369: [PDB] Fix type server handling for archives by committing rL307946: [PDB] Fix type server handling for archives.
Thu, Jul 13, 1:12 PM
rnk added inline comments to D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64.
Thu, Jul 13, 1:10 PM
rnk updated the diff for D35371: [COFF] Bounds check relocations.
  • Mark SectionChunk final
  • Hoist loop-invariant getSize call
Thu, Jul 13, 12:55 PM
rnk added a comment to D35371: [COFF] Bounds check relocations.
In D35371#808377, @ruiu wrote:

This adds one virtual function call for each relocation. I believe it's negligible, but can you run the linker with and without this patch to see if this is fine?

Thu, Jul 13, 12:53 PM
rnk created D35371: [COFF] Bounds check relocations.
Thu, Jul 13, 10:48 AM
rnk accepted D35008: [AArch64] Produce the right kind of va_arg for windows.

lgtm

Thu, Jul 13, 10:46 AM
rnk created D35369: [PDB] Fix type server handling for archives.
Thu, Jul 13, 10:45 AM
rnk committed rL307925: Put std::mutex usage behind #ifdefs to pacify the sanitizer buildbot.
Put std::mutex usage behind #ifdefs to pacify the sanitizer buildbot
Thu, Jul 13, 9:56 AM
rnk accepted D34588: Check for _MSC_VER before define _LIBCPP_MSVCRT.

Some non-windows targets using MS extensions define _WIN32 for compatibility with Windows but do not have MSVC compatibility.

Thu, Jul 13, 8:30 AM

Wed, Jul 12

rnk accepted D35290: [pdb/lld] Add an empty globals stream.

lgtm

Wed, Jul 12, 6:44 PM
rnk added a comment to D34781: Introduce a MCReloc class.

I read through this, but it's hard to see exactly the simplifications that this will yield. I like the follow-up patch to merge PCRel handling between ELF, COFF, and wasm, though.

Wed, Jul 12, 3:06 PM
rnk committed rL307835: Fix non-Windows build after PDB native builtin type change.
Fix non-Windows build after PDB native builtin type change
Wed, Jul 12, 12:47 PM
rnk committed rL307829: Re-land "[PDB] Use a more appropriate message for a fatal error".
Re-land "[PDB] Use a more appropriate message for a fatal error"
Wed, Jul 12, 11:50 AM
rnk accepted D35163: [PDB] Enable NativeSession to create symbols for built-in types on demand.

lgtm

Wed, Jul 12, 11:30 AM
rnk committed rL307827: Use std::mutex to avoid memory allocation after OOM.
Use std::mutex to avoid memory allocation after OOM
Wed, Jul 12, 11:23 AM
rnk added a comment to D34753: [Support] - Add bad alloc error handler for handling allocation malfunctions.

Hopefully rL307827 addresses the memory allocation consideration.

Wed, Jul 12, 11:23 AM
rnk added a comment to D34753: [Support] - Add bad alloc error handler for handling allocation malfunctions.
In D34753#805362, @rnk wrote:

I made some minor modifications. Taking the revision to upload them so you can see them.

Thanks for commiting my change. One comment on your changes. The reason why I changed the fallback behavior to calling an assertion instead of the report_fatal_error function was that 'report_fatal_error' itself does some allocation, e.g. constucts a MutexGuard. This is problematic in an OOM situation.

Wed, Jul 12, 9:23 AM

Tue, Jul 11

rnk committed rL307733: [PDB] Use a more appropriate message for a fatal error.
[PDB] Use a more appropriate message for a fatal error
Tue, Jul 11, 4:45 PM
rnk committed rL307732: [codeview] Change readobj symbol dumping format.
[codeview] Change readobj symbol dumping format
Tue, Jul 11, 4:42 PM
rnk committed rL307726: [PDB] Tweak bad type index error handling.
[PDB] Tweak bad type index error handling
Tue, Jul 11, 3:38 PM
rnk committed rL307725: [codeview] Fix type index discovery for four symbol records.
[codeview] Fix type index discovery for four symbol records
Tue, Jul 11, 3:37 PM
rnk accepted D35277: Make shell redirection construct portable.

Eventually when we standardize on the lit test runner, this will not be an issue. LLVM can choose what shell syntax it wants to use without worrying about the system shell.

Tue, Jul 11, 3:06 PM
rnk added a comment to D35006: [AArch64] Implement support for windows style vararg functions.

This seems like the right approach to me. It's like the Win x64 "shadow slots" are allocated on the callee side instead of the caller side. We might want to consider implementing /homeparams at some point across the Windows-supporting backends, which will require more FrameLowering surgery.

Tue, Jul 11, 2:13 PM
rnk added inline comments to D35006: [AArch64] Implement support for windows style vararg functions.
Tue, Jul 11, 2:12 PM
rnk committed rL307701: Fix clang-tidy diagnostic.cpp test on Windows.
Fix clang-tidy diagnostic.cpp test on Windows
Tue, Jul 11, 1:22 PM
rnk added a comment to D35259: Complex Long Double classification In RegCall calling convention.

Oren discovered this miss to the original implementation. I'd reviewed this internally quite a bit.

The reason for the Win32ABI test is that MSVC 'long double' is actually small enough for SSE registers in this case. I DO now (looking again, sorry Elizabeth) wonder if there is a better way to exclude extended-length LongDouble type? Could we us the 'length' of it instead? @rnk : opinion?

Tue, Jul 11, 10:05 AM
rnk added inline comments to D35163: [PDB] Enable NativeSession to create symbols for built-in types on demand.
Tue, Jul 11, 9:57 AM