Page MenuHomePhabricator

efriedma (Eli Friedman)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 10 2016, 1:07 PM (346 w, 3 d)

Recent Activity

Thu, Mar 30

efriedma added a comment to D147212: [ARM] Handle generating SEH unwind info for t2STR_PRE/t2LDR_POST.

I'm assuming the load/store ops are getting generated by expanding a PUSH/POP, and not some other transform? (So the offset will actually reliably be 4, in practice?)

Not sure actually - if looking at the output of -print-after-all here, the t2STR_PRE appears as such directly, not as a transformation of something else - I don't directly see where it comes from (other than printf instrumenting the code in Target/ARM to see which reference to t2STR_PRE gets hit).

Thu, Mar 30, 1:59 PM · Restricted Project, Restricted Project
efriedma accepted D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.

LGTM

Thu, Mar 30, 12:24 PM · Restricted Project, Restricted Project
efriedma accepted D138247: PR58819: Correct linkage and mangling of lambdas in inline static member initializers.

LGTM

Thu, Mar 30, 11:03 AM · Restricted Project, Restricted Project
efriedma accepted D146960: [builtins] Support architectures with 16-bit int in __ashlti3, __ashrti3 and __lshrti3.

LGTM

Thu, Mar 30, 10:52 AM · Restricted Project, Restricted Project
efriedma added a comment to D147020: [AA] Add a tbaa-fence intrinsic..

Would we want to use this intrinsic as part of the code generation for C++ new expressions? See https://github.com/llvm/llvm-project/issues/54878 .

Thu, Mar 30, 10:50 AM · Restricted Project, Restricted Project
efriedma accepted D147212: [ARM] Handle generating SEH unwind info for t2STR_PRE/t2LDR_POST.

Can you stick the testcase into wineh-opcodes.ll?

Thu, Mar 30, 10:47 AM · Restricted Project, Restricted Project

Mon, Mar 27

efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Mon, Mar 27, 12:58 PM · Restricted Project, Restricted Project

Sun, Mar 26

efriedma added a comment to D146386: [MS ABI] Fix mangling references to declarations..

The numbers are backreferences of the sort generated by mangleSourceName(), I think. If you nest deeply enough, MSVC stops using them; for example:

Sun, Mar 26, 7:58 PM · Restricted Project, Restricted Project
efriedma added a comment to D146386: [MS ABI] Fix mangling references to declarations..

I don't still understand how to mangle nested unnamed tags in general.

Sun, Mar 26, 2:30 PM · Restricted Project, Restricted Project

Fri, Mar 24

efriedma added a comment to D146531: [AArch64][GlobalISel] Add support for some across-vector NEON intrinsics.

What does f8 actually mean? There are at least 4 proposed "f8" types, and your "f8" represents none of them.

Fri, Mar 24, 10:52 AM · Restricted Project, Restricted Project
efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Fri, Mar 24, 10:44 AM · Restricted Project, Restricted Project

Thu, Mar 23

efriedma added a comment to D146466: [clang] diagnose function fallthrough.

I think the reason "recoverable" ubsan causes trouble is that it introduces branches that subsequent optimizations can abuse. So without ubsan, we just have an udiv instruction. With ubsan, we conveniently have a branch on exactly the condition that would make the udiv undefined, so we can easily prove control flow doesn't continue after the ubsan handler. Subsequent optimizations take advantage of that, so ubsan "breaks" code. (So the code was never actually correct according to the semantic model, but it was broken in a way the compiler is less likely optimize.)

Thu, Mar 23, 3:52 PM · Restricted Project, Restricted Project, Restricted Project
efriedma added a comment to D146767: [NVPTX] Fix integer overflow affecting array size calculation..

Please don't use size_t to represent anything other than the size of a buffer allocated by the compiler itself; LLVM supports 32-bit hosts. We generally use uint64_t for the size of LLVM IR types.

Thu, Mar 23, 3:45 PM · Restricted Project, Restricted Project
efriedma accepted D146534: [llvm-nm] Print EC symbol map..

There's only one tool in existence that produces archives with an ecsymbols section; with your patch to llvm, there will be two. Corrupted sections aren't actually a thing anyone is likely to run into, outside of random data corruption. Certainly not as part of a normal build process.

Thu, Mar 23, 2:35 PM · Restricted Project, Restricted Project
efriedma added a comment to D146466: [clang] diagnose function fallthrough.

The problem with a change like that is that it's not clear what the underlying semantic model is. If we add a flag that says "try to generate code that matches Linux kernel developers' mental model of the underlying machine", or "loop unrolling should try to preserve undefined behavior", or "out-of-bounds memory accesses are well-defined", the semantics are unclear. The point of having well-defined IR is that a developer can tell whether a transform is legal or not based on reading LangRef, as opposed to trying to blindly guess whether a transform is going to break some user's code.

Thu, Mar 23, 12:17 PM · Restricted Project, Restricted Project, Restricted Project
efriedma added a comment to D146534: [llvm-nm] Print EC symbol map..

I wasn't sure what to do when the map is invalid. We could treat it as an error in Archive constructor, but I decided to just ignore the map instead assuming that the archive may still be useful.

Thu, Mar 23, 11:50 AM · Restricted Project, Restricted Project
efriedma accepted D146534: [llvm-nm] Print EC symbol map..

LGTM

Thu, Mar 23, 11:41 AM · Restricted Project, Restricted Project
efriedma added inline comments to D146339: [StackProtector] attribute __stack_chk_fail as NoReturn.
Thu, Mar 23, 11:12 AM · Restricted Project, Restricted Project
efriedma added a comment to D146466: [clang] diagnose function fallthrough.

There are limits to how much we can do by just changing the code clang generates... but the two particular cases you mention probably could be "fixed" by messing with the IR generated by clang. Sure, that probably makes sense to pursue. (If you're going to pick an arbitrary value, zero is probably a better choice than "freeze poison".)

Thu, Mar 23, 11:07 AM · Restricted Project, Restricted Project, Restricted Project
efriedma added inline comments to D146534: [llvm-nm] Print EC symbol map..
Thu, Mar 23, 10:54 AM · Restricted Project, Restricted Project
efriedma added a comment to D138247: PR58819: Correct linkage and mangling of lambdas in inline static member initializers.

The relevant text of the current Itanium ABI (which was updated in https://github.com/itanium-cxx-abi/cxx-abi/commit/d8e9d102c83f177970f0db6cc8bee170f2779bc1)

Thu, Mar 23, 10:40 AM · Restricted Project, Restricted Project
efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Thu, Mar 23, 10:17 AM · Restricted Project, Restricted Project

Wed, Mar 22

efriedma added inline comments to D143540: [llvm-lib] Use COFF archive format in llvm-lib (other archive tools don't use this format)..
Wed, Mar 22, 8:27 PM · Restricted Project, Restricted Project
efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Wed, Mar 22, 8:25 PM · Restricted Project, Restricted Project
efriedma added inline comments to D143540: [llvm-lib] Use COFF archive format in llvm-lib (other archive tools don't use this format)..
Wed, Mar 22, 4:40 PM · Restricted Project, Restricted Project
efriedma added a comment to D146466: [clang] diagnose function fallthrough.

Yes, but kernel developers would prefer to diagnose issues at compile time when possible, rather that at runtime. Function fallthough is diagnosable at compile time, as this patch demonstrates.

Wed, Mar 22, 4:10 PM · Restricted Project, Restricted Project, Restricted Project
efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Wed, Mar 22, 1:02 PM · Restricted Project, Restricted Project
efriedma accepted D143540: [llvm-lib] Use COFF archive format in llvm-lib (other archive tools don't use this format)..

Please explicitly note in the commit message that this doesn't affect other archive-writing tools, like llvm-ar.

Wed, Mar 22, 12:52 PM · Restricted Project, Restricted Project
efriedma accepted D143537: [Object][NFC] Factor out computeHeadersSize..

LGTM

Wed, Mar 22, 12:30 PM · Restricted Project, Restricted Project

Tue, Mar 21

efriedma added inline comments to D143550: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames (Deeper Refactoring).
Tue, Mar 21, 1:25 PM · Restricted Project, Restricted Project
efriedma added inline comments to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.
Tue, Mar 21, 1:21 PM · Restricted Project, Restricted Project
efriedma added inline comments to D143537: [Object][NFC] Factor out computeHeadersSize..
Tue, Mar 21, 1:03 PM · Restricted Project, Restricted Project
efriedma accepted D143538: [Object][NFC] Don't insert string table into object members vector..

LGTM

Tue, Mar 21, 12:57 PM · Restricted Project, Restricted Project
efriedma added a comment to D146534: [llvm-nm] Print EC symbol map..

This code seems like it isn't being careful to ensure calls to read16le/read32le/etc. don't read past the end of a buffer. Maybe it makes sense to add some sort of bounds-checked read helper? Maybe could leave it for a followup, though, if it's confusing to mix it in with this patch.

Tue, Mar 21, 12:43 PM · Restricted Project, Restricted Project
efriedma added a comment to D141481: [SCEV] Canonicalize ext(min/max(x, y)) to min/max(ext(x), ext(y)).

Nevermind, ignore me, I somehow got it backwards; the given example gets improved.

Tue, Mar 21, 12:10 PM · Restricted Project, Restricted Project
efriedma added a comment to D141481: [SCEV] Canonicalize ext(min/max(x, y)) to min/max(ext(x), ext(y)).
Tue, Mar 21, 12:04 PM · Restricted Project, Restricted Project
efriedma added reviewers for D145301: Add more efficient vector bitcast for AArch64: dmgreen, david-arm, bcl5980.
Tue, Mar 21, 11:35 AM · Restricted Project, Restricted Project
efriedma added a comment to D145208: [COFF] Add MC support for emitting IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY symbols.

Is this something we should support in MASM as well?

Tue, Mar 21, 10:32 AM · Restricted Project, Restricted Project
efriedma accepted D146513: Add missing nearbyintf16 builtin functions.

Can you add a codegen testcase? Otherwise LGTM.

Tue, Mar 21, 10:23 AM · Restricted Project
efriedma accepted D144843: Add missing min/max builtin functions for some FP instructions to be generated from C-written codes.

LGTM

Tue, Mar 21, 10:22 AM · Restricted Project

Mon, Mar 20

efriedma added a comment to D146466: [clang] diagnose function fallthrough.

I'm concerned about the potential for false positives:

Mon, Mar 20, 4:24 PM · Restricted Project, Restricted Project, Restricted Project
efriedma updated the diff for D145208: [COFF] Add MC support for emitting IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY symbols.

Rebased on updated llvm-readobj dumping

Mon, Mar 20, 1:14 PM · Restricted Project, Restricted Project
efriedma added reviewers for D144226: [Loop-Interchange] Allow inner-loop only reductions: Meinersbur, congzhe, bmahjour.

Adding more reviewers. (Better for someone who's spent more time with this pass recently to look.)

Mon, Mar 20, 1:08 PM · Restricted Project, Restricted Project
efriedma added inline comments to D141429: [AArch64] Codegen for FEAT_LRCPC3.
Mon, Mar 20, 12:57 PM · Restricted Project, Restricted Project
efriedma added a comment to D143487: [IR] Allow destruction of symbol table entries regardless of DiscardValueNames.

If I'm understanding correctly, the issue here is that you create a context with shouldDiscardValueNames() disabled, parse some code, then enable shouldDiscardValueNames()? That's a little exotic, but I guess we can accommodate if there isn't a measurable penalty for normal frontends.

Mon, Mar 20, 12:50 PM · Restricted Project, Restricted Project
efriedma accepted D146339: [StackProtector] attribute __stack_chk_fail as NoReturn.

LGTM

Mon, Mar 20, 12:04 PM · Restricted Project, Restricted Project
efriedma committed rG5452d8607185: [llvm-readobj] Pretty-print IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY. (authored by efriedma).
[llvm-readobj] Pretty-print IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY.
Mon, Mar 20, 12:00 PM · Restricted Project, Restricted Project
efriedma added inline comments to D146386: [MS ABI] Fix mangling references to declarations..
Mon, Mar 20, 10:42 AM · Restricted Project, Restricted Project
efriedma added a comment to D146370: [Clang][OpenMP]Solved the the always truth condition in Arm64.

The patch is currently impossible to read; please don't clang-format the whole file. There's a script clang-format-diff.py that can format just the parts of a file you change, if you need it.

Mon, Mar 20, 10:11 AM · Restricted Project, Restricted Project

Thu, Mar 16

efriedma added a comment to D146233: [LICM] Don't promote store to global even in single-thread mode.

Is the issue here actually specific to global variables? I mean, you can't mark a local variable noalias, but noalias/TBAA metadata can apply to local variables.

Thu, Mar 16, 4:56 PM · Restricted Project, Restricted Project
efriedma accepted D146211: Make globals used for array initialization codegen constant.

LGTM

Thu, Mar 16, 4:39 PM · Restricted Project, Restricted Project

Wed, Mar 15

efriedma accepted D145369: Emit const globals with constexpr destructor as constant LLVM values.

LGTM

Wed, Mar 15, 4:09 PM · Restricted Project, Restricted Project

Tue, Mar 14

efriedma accepted D145150: clang: Emit nofpclass(nan inf) for -ffinite-math-only.

LGTM

Tue, Mar 14, 4:08 PM · Restricted Project, Restricted Project
efriedma added a comment to D145150: clang: Emit nofpclass(nan inf) for -ffinite-math-only.

Looks fine from a codegen perspective, assuming these are the semantics we want for -ffinite-math-only.

Tue, Mar 14, 12:52 PM · Restricted Project, Restricted Project
efriedma added reviewers for D145208: [COFF] Add MC support for emitting IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY symbols: MaskRay, compnerd.
Tue, Mar 14, 12:33 PM · Restricted Project, Restricted Project
efriedma accepted D145564: [clang][docs] Clarify the semantics of -fexceptions.

LGTM

Tue, Mar 14, 12:24 PM · Restricted Project, Restricted Project
efriedma accepted D143813: [ClangFE] Check that __sync builtins are naturally aligned..

I guess it's not any worse than the existing -Watomic-alignment. LGTM.

Tue, Mar 14, 12:05 PM · Restricted Project, Restricted Project
efriedma added inline comments to D145369: Emit const globals with constexpr destructor as constant LLVM values.
Tue, Mar 14, 11:54 AM · Restricted Project, Restricted Project
efriedma added inline comments to D145369: Emit const globals with constexpr destructor as constant LLVM values.
Tue, Mar 14, 11:43 AM · Restricted Project, Restricted Project

Mon, Mar 13

efriedma changed the visibility for D145859: [Clang][CodeGen] Fix linkage and visibility of template parameter objects.
Mon, Mar 13, 4:01 PM · Restricted Project, Restricted Project
efriedma added a comment to D145786: [LLD] Increase thunk pass limit.

In some other cases of iterative algorithms like this, we change the algorithm after a few passes to a version that converges faster. For example, you could consider adding extra padding after inserted thunks, in anticipation of the need for more thunks.

Mon, Mar 13, 12:56 PM · Restricted Project, Restricted Project
efriedma added a comment to D145726: Fix assembler error when -g and -gdwarf-* is passed with -fno-integrated-as..

Isn't this only an issue with ancient versions of GNU as? Older than 2.16?

I am able to reproduce this issue with 4.9.0 GNU as.

Mon, Mar 13, 11:55 AM · Restricted Project, Restricted Project
efriedma added a comment to D145369: Emit const globals with constexpr destructor as constant LLVM values.

There appear to be 8 different places that call isTypeConstant(Ty, true); I'd like to see testcases for all of them if it's relevant. (I agree with your assessment for global variables, but not sure about the other places.)

Mon, Mar 13, 9:27 AM · Restricted Project, Restricted Project

Thu, Mar 9

efriedma added a comment to D145726: Fix assembler error when -g and -gdwarf-* is passed with -fno-integrated-as..

Following reproduces for me (clang from main, Ubuntu 16.04).

Thu, Mar 9, 3:01 PM · Restricted Project, Restricted Project
efriedma added a comment to D144903: [X86] Drop single use check for freeze(undef) in LowerAVXCONCAT_VECTORS.

I think the point of the hasOneUse check is to avoid a possible miscompile; if a FREEZE has more than one use, all users need to see the same value. So not sure dropping the check is correct in general.

Thu, Mar 9, 12:28 PM · Restricted Project, Restricted Project, Restricted Project
efriedma added a comment to D144843: Add missing min/max builtin functions for some FP instructions to be generated from C-written codes.

I don't really care what happens if someone uses a __builtin_ prefixed name that the underlying libc doesn't support; user should know the semantics of builtins they use. (Some __builtin names refer to functions the compiler can't realistically provide even if we wanted to.)

Thu, Mar 9, 10:45 AM · Restricted Project

Wed, Mar 8

efriedma accepted D144927: [GVNHoist] don't hoist callbr users into the callbr's block.

LGTM

Wed, Mar 8, 6:38 PM · Restricted Project, Restricted Project
efriedma added inline comments to D144927: [GVNHoist] don't hoist callbr users into the callbr's block.
Wed, Mar 8, 4:10 PM · Restricted Project, Restricted Project
efriedma accepted D145209: [DAE] Don't DAE if we musttail call a "live" (non-DAE-able) function.

I'm not really an expert on this pass, but sure, seems fine, assuming @nikic doesn't have any further comments.

Wed, Mar 8, 12:36 PM · Restricted Project, Restricted Project
efriedma added a comment to D145564: [clang][docs] Clarify the semantics of -fexceptions.

Something like that, sure.

Wed, Mar 8, 12:34 PM · Restricted Project, Restricted Project
efriedma added a comment to D145564: [clang][docs] Clarify the semantics of -fexceptions.

I'd prefer to focus the documentation more generically on exceptions, not unwind information specifically. -fexceptions makes code generation change in other ways, and "unwind information" doesn't exist on all targets where exception handling is relevant.

Wed, Mar 8, 11:24 AM · Restricted Project, Restricted Project

Tue, Mar 7

efriedma added a comment to D145497: [AArch64] Allocate emergency spillslot when using fixed-length SVE..

Does using an SVE instruction to access a fixed stack slot ever work? I mean, I guess if you get lucky, the fixed offset is zero, but that should happen rarely. Maybe we'd get better code if we expand out the arithmetic earlier. (Doesn't need to block this patch, just something to think about.)

Tue, Mar 7, 10:50 AM · Restricted Project, Restricted Project
efriedma added inline comments to D145209: [DAE] Don't DAE if we musttail call a "live" (non-DAE-able) function.
Tue, Mar 7, 10:31 AM · Restricted Project, Restricted Project
efriedma added inline comments to D144927: [GVNHoist] don't hoist callbr users into the callbr's block.
Tue, Mar 7, 10:24 AM · Restricted Project, Restricted Project

Mon, Mar 6

efriedma added inline comments to D145209: [DAE] Don't DAE if we musttail call a "live" (non-DAE-able) function.
Mon, Mar 6, 7:57 PM · Restricted Project, Restricted Project
efriedma added a comment to D145416: [clang] model 'p' inline asm constraint as reading memory.

I think this is going to change what inputs Sema will accept for "p". If that's intentional, please add test coverage. Otherwise, please make a narrower change.

Mon, Mar 6, 1:12 PM · Restricted Project, Restricted Project
efriedma added inline comments to D145209: [DAE] Don't DAE if we musttail call a "live" (non-DAE-able) function.
Mon, Mar 6, 1:08 PM · Restricted Project, Restricted Project
efriedma accepted D144927: [GVNHoist] don't hoist callbr users into the callbr's block.

LGTM with a couple minor comments

Mon, Mar 6, 12:50 PM · Restricted Project, Restricted Project
efriedma added inline comments to D144843: Add missing min/max builtin functions for some FP instructions to be generated from C-written codes.
Mon, Mar 6, 9:12 AM · Restricted Project

Sat, Mar 4

efriedma added a comment to D145275: [CGP] Hoist allocas used in catchpad instructions, if they are not in the entry block..

You're right, this IR won't come out of clang --- it's an artifact of a function shrinkwrapping project that someone was working on. The IR seems generically "legal" but was causing a crash later in codegen. The patch avoids the crash.

Sat, Mar 4, 4:24 PM · Restricted Project, Restricted Project

Fri, Mar 3

efriedma added inline comments to D145208: [COFF] Add MC support for emitting IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY symbols.
Fri, Mar 3, 4:57 PM · Restricted Project, Restricted Project
efriedma added a comment to D145275: [CGP] Hoist allocas used in catchpad instructions, if they are not in the entry block..

How do you end up with IR that looks like "@hoist"? clang shouldn't generate IR like that.

Fri, Mar 3, 4:49 PM · Restricted Project, Restricted Project
efriedma added a comment to D145275: [CGP] Hoist allocas used in catchpad instructions, if they are not in the entry block..

Hoisting like this is completely unsafe; dynamic allocation is dynamic for a reason (because the allocation is variable size, or happens in a loop).

Fri, Mar 3, 4:04 PM · Restricted Project, Restricted Project

Thu, Mar 2

efriedma added inline comments to D145209: [DAE] Don't DAE if we musttail call a "live" (non-DAE-able) function.
Thu, Mar 2, 10:12 PM · Restricted Project, Restricted Project
efriedma requested review of D145208: [COFF] Add MC support for emitting IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY symbols.
Thu, Mar 2, 6:16 PM · Restricted Project, Restricted Project

Feb 28 2023

efriedma added a comment to D144927: [GVNHoist] don't hoist callbr users into the callbr's block.

If you're going to enable hoisting past a callbr, please add a testcase to ensure we don't hoist a load past a callbr which modifies the memory in question.

Feb 28 2023, 5:12 PM · Restricted Project, Restricted Project
efriedma accepted D144935: Add missing roundtointegral builtin functions for some FP instructions to be generated from C-written codes.

LGTM. These are standard C23 functions, and glibc already has implementations; we should be recognizing them.

Feb 28 2023, 5:05 PM · Restricted Project, Restricted Project
efriedma added a comment to D143233: [Clang][CodeGen] Fix this argument type for certain destructors.

Maybe worth cherry-picking to 16 branch? I think someone will need to rebase onto the branch for that, though; there was merge conflict on the microsoft-abi-eh-cleanups.cpp change.

Feb 28 2023, 4:57 PM · Restricted Project, Restricted Project
efriedma added a comment to D144861: [SCEV][IndVars][WIP] Check outer loop invariant when cononicalize comparision.

From my analysis of the testcase, we called "getAddExpr(SCEV::FlagNUW)" while analyzing the first loop, and that broke the analysis of the second loop. The actual simplification isn't relevant.

Feb 28 2023, 4:51 PM · Restricted Project, Restricted Project
efriedma closed D143233: [Clang][CodeGen] Fix this argument type for certain destructors.

rG674099113533

Feb 28 2023, 4:44 PM · Restricted Project, Restricted Project
efriedma committed rG674099113533: [Clang][CodeGen] Fix this argument type for certain destructors (authored by jacobly).
[Clang][CodeGen] Fix this argument type for certain destructors
Feb 28 2023, 4:43 PM · Restricted Project, Restricted Project
efriedma accepted D144871: [CodeGen] Always expand division larger than i128.

LGTM

Feb 28 2023, 2:16 PM · Restricted Project, Restricted Project

Feb 27 2023

efriedma added a comment to D144541: [X86] Save/restore base pointer register when it is clobbered.

That register (other register) may also be clobbered in another inline asm

We don't have to use the same register for each inline asm.

The base pointer register is reserved by compiler, we can't reserve too much register?

Feb 27 2023, 7:31 PM · Restricted Project, Restricted Project
efriedma added a comment to D144889: [C2x] Support <string.h> in freestanding.

perhaps because they did char buf[256] = {0} though

Feb 27 2023, 3:32 PM · Restricted Project, Restricted Project
efriedma added a reviewer for D144907: [RegAllocFast] insert additional spills along indirect edges of INLINEASM_BR: arsenm.
Feb 27 2023, 3:16 PM · Restricted Project, Restricted Project
efriedma added a comment to D144889: [C2x] Support <string.h> in freestanding.

A freestanding implementation doesn't necessarily mean that everything is header-only. It's fine to require linking against a (freestanding) C runtime library. All header-only is fine too though, if you want to make that work.

Architecturally, I don't feel it is required that Clang be the location of all the freestanding headers for C. I think that's fine for the C library in the final toolchain to own those headers. I'm not super familiar with what interface contracts you have between the clang-provided C headers and the C-library provided C headers though.

Feb 27 2023, 1:56 PM · Restricted Project, Restricted Project
efriedma added inline comments to D144843: Add missing min/max builtin functions for some FP instructions to be generated from C-written codes.
Feb 27 2023, 11:30 AM · Restricted Project
efriedma added a comment to D144889: [C2x] Support <string.h> in freestanding.

Historically, the required functions for a "freestanding" C implementation were very restricted. Freestanding headers didn't export library functions, just constants and types.

Feb 27 2023, 11:18 AM · Restricted Project, Restricted Project
efriedma added reviewers for D144891: [SCEV] Add SCEVType to represent `vscale`.: reames, mkazantsev.

Seems reasonable to me.

Feb 27 2023, 10:49 AM · Restricted Project, Restricted Project
efriedma added a comment to D144541: [X86] Save/restore base pointer register when it is clobbered.

Why it would mess unwinding?

Feb 27 2023, 9:26 AM · Restricted Project, Restricted Project