Page MenuHomePhabricator

joerg (Joerg Sonnenberger)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 23 2012, 10:16 AM (496 w, 1 h)

Recent Activity

Apr 11 2022

joerg added a comment to D123345: Treat `std::move`, `forward`, and `move_if_noexcept` as builtins..

The patch contains at least one user visible change that would be quite surprising: it is no longer possible to intentionally set a break point on std::move.

Apr 11 2022, 7:50 AM · Restricted Project, Restricted Project

Apr 9 2022

joerg added a comment to D123345: Treat `std::move`, `forward`, and `move_if_noexcept` as builtins..

As is, I think this conflicts with -ffreestanding assumptions or at the very least the spirit.

Apr 9 2022, 5:55 PM · Restricted Project, Restricted Project

Mar 29 2022

joerg added a comment to D122077: [InstCombine] Fold (ctpop(X) == 1) | (X == 0) into ctpop(X) < 2.

Why is this fold preferable to (X & (X-1)) == 0? At least on all architectures without native population count, the binary-and based test is preferable and it might even be better with it.

Mar 29 2022, 3:03 AM · Restricted Project, Restricted Project

Mar 13 2022

joerg added a comment to D121512: [Support] Change zlib::compress to return void.

LGTM

Mar 13 2022, 3:04 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 12 2022

joerg added a comment to D121531: [ELF] Implement --build-id={md5,sha1} with truncated BLAKE3.

I would find it quite surprising to find two binaries produced with the same command line now resulting in different build-ids, if that is the only difference. Especially when the cryptographic hash function is explicitly set.

Mar 12 2022, 4:18 PM · Restricted Project, Restricted Project
joerg added a comment to D121512: [Support] Change zlib::compress to return void.

Explicit check for Z_MEM_ERROR and assert that it is otherwise Z_OK. Other return values would point to a programming error in zlib.

Mar 12 2022, 4:04 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
joerg added a comment to D121512: [Support] Change zlib::compress to return void.

But that doesn't really matter much as long as it is uninitialized virtual memory? This is almost always used for a very short time as well.

Mar 12 2022, 3:31 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project
joerg added a comment to D121512: [Support] Change zlib::compress to return void.

compressBound gives the maximum possible size for the output, so of course it can be larger than the input. In combination with resize_for_overwrite, that should be cheaper than possible multiple copies for the loop if there is even a slight chance that the data doesn't compress that well. The code complexity is certainly much higher. The only expected error from compress2 here is Z_MEM_ERROR when it can't allocate the dictionary etc. As such, we could convert that one into a fatal error easily.

Mar 12 2022, 1:23 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project

Feb 17 2022

joerg added a comment to D120026: [ARM] Fix ARM backend to correctly use atomic expansion routines..

I'm ambivalent about wether to use sync_* or atomic_*, but last time I looked at this, we generated the generic unsized variant a lot, even when the arguments have a known static size.

Feb 17 2022, 4:29 AM · Restricted Project, Restricted Project

Feb 15 2022

joerg added inline comments to D119567: [libcxx] String format class marked as packed.
Feb 15 2022, 3:33 PM · Restricted Project, Restricted Project
joerg added a comment to D119695: [Support] Fix build on illumos.

Wouldn't the correct solution for Illumos be to use posix_madvise instead? Possibly with __EXTENSIONS__. Declaring prototypes like this is just begging for problems long term...

Feb 15 2022, 7:17 AM · Restricted Project
joerg added inline comments to D119567: [libcxx] String format class marked as packed.
Feb 15 2022, 7:12 AM · Restricted Project, Restricted Project

Feb 14 2022

joerg added a comment to D119655: [Driver][NetBSD] -r: imply -nostdlib like GCC.

Well, it doesn't work with GCC either, that's why I don't care much about this change. It just attempts to legalize a user bug (using a linker option directly as a compiler flag). But I don't care enough to object either.

Feb 14 2022, 2:11 AM · Restricted Project, Restricted Project

Feb 13 2022

joerg added a comment to D119655: [Driver][NetBSD] -r: imply -nostdlib like GCC.

I'm ambivalent about this change. To me, it falls into the category of "stop passing random ld options to the compiler driver".

Feb 13 2022, 1:59 PM · Restricted Project, Restricted Project

Jan 24 2022

joerg added inline comments to D118021: [Driver] Use libatomic for 32-bit SPARC atomics support.
Jan 24 2022, 2:40 AM · Restricted Project, Restricted Project

Jan 19 2022

joerg added a comment to D116088: [compiler-rt] Implement ARM atomic operations for architectures without SMP support.

Correct me if I'm wrong, but I don't think this stubs are async signal safe nor will they work for preemptive multitasking systems?

Jan 19 2022, 5:38 AM · Restricted Project, Restricted Project, Restricted Project

Jan 9 2022

joerg accepted D116882: [docs] [clang] Small documentation change for compilation databases.
Jan 9 2022, 1:30 PM · Restricted Project

Dec 17 2021

joerg added a comment to D115957: [Support] Revert posix_fallocate in resize_file.

I agree that I don't think it generally helps all that much. Under memory pressure it can even result in additional writes.

Dec 17 2021, 3:46 PM · Restricted Project

Dec 12 2021

joerg added a comment to D113372: [Driver] Add CLANG_DEFAULT_PIE_ON_LINUX to emulate GCC --enable-default-pie.

Last update introduced a lot of unrelated changes? But the actual intended change seems fine now.

Dec 12 2021, 8:22 PM · Restricted Project, Restricted Project

Dec 11 2021

joerg added inline comments to D113372: [Driver] Add CLANG_DEFAULT_PIE_ON_LINUX to emulate GCC --enable-default-pie.
Dec 11 2021, 7:22 PM · Restricted Project, Restricted Project

Dec 9 2021

joerg added inline comments to D114564: Fix the use of -fno-approx-func along with -Ofast or -ffast-math.
Dec 9 2021, 5:19 PM · Restricted Project

Nov 16 2021

joerg added a comment to D113991: Support using sha256 as --build-id kind.

Exactly. This patch only provides a way to tick a checkbox on a stupid compliance list. SHA2 provides no security benefit here for the price of slower linking. If we want to use a more modern cryptographic hash function, the primary criterion should be performance, IMO.

Nov 16 2021, 1:26 PM · Restricted Project, Restricted Project

Nov 4 2021

joerg added a comment to D113081: [LowerSwitch] Delete all new dead blocks accurately.

I fully agree that constructing DT can be expensive especially if it is potentially done multiple times. I don't mind using it when available, but the gain seems limited for forcing it.

Nov 4 2021, 10:52 AM · Restricted Project

Oct 25 2021

joerg added inline comments to D112413: [X86] Add -mskip-rax-setup support to align with GCC.
Oct 25 2021, 5:09 AM · Restricted Project, Restricted Project

Oct 22 2021

joerg added a comment to D112354: [NFC][X86] Add MC tests for all untested VIA PadLock instructions.

It should be noted that xstore is currently misassembled compared to GNU as.

Oct 22 2021, 5:30 PM · Restricted Project

Oct 19 2021

joerg added a comment to D111863: [libunwind] Add an interface for dynamic .eh_frame registration.

It's also worth noting that FreeBSD's version of libgcc exception handling is actually based on the libunwind code, with a local patch that implements compatibility with libgcc __register_frame by changing it to parse an entire .eh_frame section (in a slightly more ad hoc fashion than this code). Having this new entry point in-tree would simplify the FreeBSD local changes.

Oct 19 2021, 6:50 AM · Restricted Project, Restricted Project
joerg added a comment to D111863: [libunwind] Add an interface for dynamic .eh_frame registration.

I would strongly prefer if ORCv2 doesn't depend on this. It essentially forces libunwind to parse the whole section just to find the delimiters of the FDEs. That's a lot of unnecessary work as JIT use normally allows registering functions individually.

I don't follow this. Does libunwind provide some way to register FDEs without parsing the FDE content? If so we can definitely use that, but we should still process the whole section: ORC links objects (not functions), and we should register every FDE for an object when it's linked in.

It's also worth noting that ORC and MCJIT have always called __register_frame on every frame, which seems like it should be at least as much work as this.

Oct 19 2021, 6:49 AM · Restricted Project, Restricted Project

Oct 18 2021

joerg added a comment to D111863: [libunwind] Add an interface for dynamic .eh_frame registration.

I would strongly prefer if ORCv2 doesn't depend on this. It essentially forces libunwind to parse the whole section just to find the delimiters of the FDEs. That's a lot of unnecessary work as JIT use normally allows registering functions individually.

Oct 18 2021, 1:26 PM · Restricted Project, Restricted Project

Oct 12 2021

joerg added a comment to D111241: [APInt] Fix isAllOnes and extractBits for zero width values..

Did this get an audit for existing users? It can be argued in both ways. E.g. "".isdigit() in Python is False, because there is no digit contained and that's pretty much the same use case.

Oct 12 2021, 6:59 AM · Restricted Project

Oct 6 2021

joerg added a comment to D110535: [llvm] [ADT] Update llvm::Split() per Pavel Labath's suggestions.

Can't you wrap iterator_range<T> and possibly even support Twines like that? That is, don't extend the life time of the iterators, but store it in the range?

Oct 6 2021, 6:46 PM · Restricted Project, Restricted Project

Sep 28 2021

joerg added a comment to D110535: [llvm] [ADT] Update llvm::Split() per Pavel Labath's suggestions.

Why are all the changes from separator character to separator string necessary or desirable?

Sep 28 2021, 1:11 PM · Restricted Project, Restricted Project

Aug 10 2021

joerg accepted D107825: [AIX] Define __HOS_AIX__ macro only for AIX target.

LGTM. Maybe include a small hint in the commit message that xlC never shipped cross-compiling support and the difference is therefore not observable anyway.

Aug 10 2021, 8:06 AM · Restricted Project

Aug 9 2021

joerg added a comment to D107242: [AIX] Define __HOS_AIX__ macro.

clang is fundamentally a cross-compiler only. I don't see any point for having host-specific branches in this case at all. Either the macro should be specified for the target all the time or not at all, but it should most definitely not depend on the host. That's actually breaking a number of existing use case for clang in subtle ways, e.g. partially preprocessed files (-frewrite-includes) should behave the same on any platform given the same command line.

Aug 9 2021, 8:08 AM · Restricted Project

Aug 6 2021

joerg added a comment to D107242: [AIX] Define __HOS_AIX__ macro.

I'm puzzled by this change. I don't think we have any case so far where the compiler behavior changes with the host OS and I don't think it should. What's the point / use case of this macro?

Aug 6 2021, 4:18 PM · Restricted Project

Aug 4 2021

joerg added a comment to D107304: [clangd][query-driver] Extract GCC version from the driver output.

This discussion is becoming pointless. Clang is not a 1:1 replacement for later GCC versions. Easiest example is the support for __builtin_apply and friends.

Aug 4 2021, 6:01 AM · Restricted Project

Aug 3 2021

joerg added a comment to D107304: [clangd][query-driver] Extract GCC version from the driver output.

Yes, there are quite a number of small differences in builtin support and even certain macros that just invite even more trouble than this. This is IMO begging for hard to trace down errors.

Aug 3 2021, 6:08 AM · Restricted Project

Aug 2 2021

joerg added a comment to D107304: [clangd][query-driver] Extract GCC version from the driver output.

What do you mean with "GCC macros are correct"? Clang is *not* GCC 5 and not 1:1 compatible with GCC 5. Project that have checks like that should arrive in 2010...

Aug 2 2021, 2:38 PM · Restricted Project

Jul 26 2021

joerg added a comment to D106577: [clang] Define __STDC_ISO_10646__.

I still don't fully understand the original comment from Joerg. The encoding of L'a' cannot change at runtime; it's a literal whose encoding is decided entirely at compile time. @joerg -- did you mean that Clang produces a different literal encoding depending on the environment the host compiler is running in?

Jul 26 2021, 4:56 PM · Restricted Project, Restricted Project

Jul 23 2021

joerg added a comment to D106577: [clang] Define __STDC_ISO_10646__.

This patch is certainly wrong for NetBSD as the wchar_t encoding is up to the specific locale charset and *not* UCS-2 or UCS-4 for certain legacy encodings like the various shift encodings in East Asia.

How does the value of a macro get impacted by a runtime locale?

Jul 23 2021, 12:37 PM · Restricted Project, Restricted Project
joerg added a comment to D106577: [clang] Define __STDC_ISO_10646__.

This patch is certainly wrong for NetBSD as the wchar_t encoding is up to the specific locale charset and *not* UCS-2 or UCS-4 for certain legacy encodings like the various shift encodings in East Asia.

Jul 23 2021, 4:35 AM · Restricted Project, Restricted Project

Jun 30 2021

joerg added a comment to D104680: [clang] Eliminate relational function pointer comparisons in all C++ modes.

Is there any reason for breaking C++03 code here? I don't see the advantage to that at all.

Jun 30 2021, 2:53 PM · Restricted Project, Restricted Project

Jun 21 2021

joerg added a comment to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.

Thanks, that's better. The clang front-end option is not directly relevant for the semantic of the intrinsic, so it would be better to explicitly specify it was not being fuseable unless the operand degenerates into a single operand. Otherwise the specification sounds reasonable.

Jun 21 2021, 5:04 AM · Restricted Project, Restricted Project

Jun 13 2021

joerg added a comment to D88460: Strlen loop idiom recognition.

Please make sure at the very least that it doesn't get matched if a function named strlen and also test for that.

Jun 13 2021, 5:18 PM · Restricted Project

Jun 8 2021

joerg added a comment to D103906: Do not generate calls to the 128-bit function __multi3() on 32-bit ARM..

We inherited the lack of int128_t support on 32bit platforms from GCC. IMO we should fix that, the only tricky one is division.

Jun 8 2021, 12:56 PM · Restricted Project

Jun 4 2021

joerg added inline comments to D100118: [clang] Add support for new builtin __arithmetic_fence to control floating point optimization, and new clang option fprotect-parens.
Jun 4 2021, 4:44 PM · Restricted Project, Restricted Project

May 26 2021

joerg added inline comments to D103184: Reland "[AArch64] handle -Wa,-march=".
May 26 2021, 6:23 PM · Restricted Project

May 23 2021

joerg committed rGcb1511645170: [libc++] use more early returns for consistency (authored by joerg).
[libc++] use more early returns for consistency
May 23 2021, 2:11 PM
joerg closed D96983: [libc++] use more early returns for consistency.
May 23 2021, 2:11 PM · Restricted Project
joerg committed rG30c413cda010: [SPARC] recognize the "rd %pc, reg" special form (authored by joerg).
[SPARC] recognize the "rd %pc, reg" special form
May 23 2021, 1:55 PM
joerg closed D96312: [SPARC] recognize the "rd %pc, reg" special form.
May 23 2021, 1:55 PM · Restricted Project

May 20 2021

joerg committed rG80836ee519eb: [SPARCv9] allow stw as alias for st (authored by joerg).
[SPARCv9] allow stw as alias for st
May 20 2021, 6:30 AM
joerg closed D96313: [SPARCv9] allow stw as alias for st.
May 20 2021, 6:29 AM · Restricted Project

May 12 2021

joerg added a comment to D102367: [LowerConstantIntrinsics] reuse isManifestLogic from ConstantFolding.

One of the mots important use cases of __builtin_constant_p is ensuring that inline assembler variants that require immediate arguments are DCE'ed. There are some other use cases where it is used for compile-time assertions of invariants, so we do want to be as correct as possible. All that said, I fully agree that is.constant(undef) should fold to false as it is consistent with the immarg parameter attribute and other places. Even stronger, I would argue that it applies even to is.constant(freeze undef).

May 12 2021, 7:59 PM · Restricted Project

Apr 23 2021

joerg added a comment to D101122: introduce flag -fsanitize-address-detect-stack-use-after-return-mode. No functional change..

There are two approaches that work for reviewing: starting from clang and going down or starting from compiler-rt and going up the layers. I'd prefer to do the latter as it means meaningful testing can be done easier. There are two natural steps here: clang flag+IR generation is one, llvm codegen and compiler-rt is the other. The clang step should include tests that ensure that proper IR is generated for the different flag combination (including documentation for the IR changes). The LLVM step should ensure that the different attributes (either function or module scope) are correctly lowered in the instrumentation pass and unit tests on the compiler-rt side to do functional testing. The unit testing might also be done as a third step if it goes the full way from C to binary code.

Apr 23 2021, 5:53 AM · Restricted Project, Restricted Project

Apr 22 2021

joerg added a comment to D101122: introduce flag -fsanitize-address-detect-stack-use-after-return-mode. No functional change..

This review doesn't make sense to me. Why add a flag that isn't affecting anything? Why add a flag that isn't even tested?

Apr 22 2021, 5:55 PM · Restricted Project, Restricted Project

Apr 21 2021

joerg added a comment to D93031: Enable fexec-charset option .

"Keeping the original spelling around" would assume that the input is not using a stateful encoding. That seems worse as assumption than giving the canonical output in UTF-8 and shifting the problem to the user's editor?

Apr 21 2021, 6:29 PM · Restricted Project, Restricted Project, Restricted Project

Apr 7 2021

joerg added a comment to D100054: Handle flags such as -m32 when computing the prefix for programs/runtime libs.

This sounds wrong. If you are using 'x86_64-freebsd' as triple and -m32, it should still call 'x86_64-freebsd-ld', but it is the responsibility of the driver to ensure that also the right set of linker flags are passed as well. Compare netbsd::Linker::ConstructJob for one way to handle this.

Apr 7 2021, 2:12 PM · Restricted Project

Mar 31 2021

joerg committed rG9f4022ffeb20: [libc++] Avoid <climits> dependency in <thread> (authored by joerg).
[libc++] Avoid <climits> dependency in <thread>
Mar 31 2021, 6:29 AM
joerg closed D99516: [libc++] Avoid <climits> dependency in <thread>.
Mar 31 2021, 6:29 AM · Restricted Project

Mar 30 2021

joerg added a comment to D99516: [libc++] Avoid <climits> dependency in <thread>.

Yeah, I hit a compilation error somewhere depending on the include error. I forgot the details, this has been sitting around in my tree for while.

Mar 30 2021, 12:58 PM · Restricted Project

Mar 29 2021

joerg added inline comments to D99516: [libc++] Avoid <climits> dependency in <thread>.
Mar 29 2021, 11:10 AM · Restricted Project
joerg requested review of D99516: [libc++] Avoid <climits> dependency in <thread>.
Mar 29 2021, 9:44 AM · Restricted Project

Mar 28 2021

joerg added a comment to D98574: [Sparc] Don't define __sparcv9 and __sparcv9__ when targeting V8+.

The NetBSD part looks ok, but also lacks proper testing. I'm not sure anyone but Linux cares at all otherwise as they lack 32bit SPARC support.

Mar 28 2021, 12:59 PM · Restricted Project

Mar 10 2021

joerg added inline comments to D98097: [libc++] "Merged wording" for D98077 and D96986.
Mar 10 2021, 1:46 PM · Restricted Project

Mar 8 2021

joerg abandoned D96986: [libc++] Drop template layer when using vsnprintf.
Mar 8 2021, 11:38 AM · Restricted Project

Mar 5 2021

joerg added a comment to D98097: [libc++] "Merged wording" for D98077 and D96986.

That covers my case. I'm not completely happy with the need to rethrow, but the alternatives are much worse. It's a bit sad that we can't optimize it away, too.

Mar 5 2021, 7:00 PM · Restricted Project
joerg added inline comments to D96986: [libc++] Drop template layer when using vsnprintf.
Mar 5 2021, 4:05 PM · Restricted Project

Feb 18 2021

joerg requested review of D96986: [libc++] Drop template layer when using vsnprintf.
Feb 18 2021, 12:14 PM · Restricted Project
joerg requested review of D96983: [libc++] use more early returns for consistency.
Feb 18 2021, 11:58 AM · Restricted Project
joerg committed rGa77e91801604: libcxx: use early returns (authored by joerg).
libcxx: use early returns
Feb 18 2021, 10:44 AM
joerg closed D96955: libcxx: use early returns.
Feb 18 2021, 10:43 AM · Restricted Project
joerg added inline comments to D96955: libcxx: use early returns.
Feb 18 2021, 6:56 AM · Restricted Project
joerg abandoned D96895: libcxx: use early returns.

Resummited

Feb 18 2021, 6:34 AM
joerg requested review of D96955: libcxx: use early returns.
Feb 18 2021, 6:34 AM · Restricted Project
joerg abandoned D80679: Avoid hidden <climits> dependency in <thread>.
Feb 18 2021, 6:21 AM

Feb 17 2021

joerg added a comment to D96901: [libunwind] Add support for PC reg column in arm64.

Registers_arm64::jumpto in UnwindRegistersRestore.S.

Feb 17 2021, 6:35 PM · Restricted Project, Restricted Project
joerg added a comment to D96901: [libunwind] Add support for PC reg column in arm64.

Let me rephrase then. The restore code explicitly ends in "ret x30". It cannot set "pc" separate from "x30" in the current form. I'm not saying that the DWARF register shouldn't be supported, but this change doesn't do that.

Feb 17 2021, 6:13 PM · Restricted Project, Restricted Project
joerg added a comment to D96901: [libunwind] Add support for PC reg column in arm64.

I don't get this change. The restore code is literally returning by jumping to x30, so how is splitting PC and LR supposed to work?

Feb 17 2021, 5:53 PM · Restricted Project, Restricted Project
joerg committed rG2628e9146120: [NetBSD] Use cortex-a8 as default CPU for ARMv7 (authored by joerg).
[NetBSD] Use cortex-a8 as default CPU for ARMv7
Feb 17 2021, 5:03 PM
joerg updated subscribers of D96895: libcxx: use early returns.
Feb 17 2021, 1:18 PM
joerg requested review of D96895: libcxx: use early returns.
Feb 17 2021, 1:18 PM

Feb 8 2021

joerg requested review of D96313: [SPARCv9] allow stw as alias for st.
Feb 8 2021, 7:43 PM · Restricted Project
joerg requested review of D96312: [SPARC] recognize the "rd %pc, reg" special form.
Feb 8 2021, 7:42 PM · Restricted Project
joerg updated the diff for D96311: [SPARC] Recognize the prefetch instruction.
Feb 8 2021, 7:41 PM · Restricted Project
joerg requested review of D96311: [SPARC] Recognize the prefetch instruction.
Feb 8 2021, 7:39 PM · Restricted Project
joerg accepted D47458: [Sparc] Support relocatable expressions in the assembler.

The test case needs to be resorted, so that the DOTEXPR test comes last, but otherwise this change works for me.

Feb 8 2021, 4:04 PM · Restricted Project
joerg accepted D77737: [SPARC] Recognize and handle the %lm(sym) operator.

I have one concern about sparc-relocations.s, but that is not specific to the change at hand. IMO we should also have a variant of all the relocations with a fixed values of sym to test that the right bits are actually set. That would also make comparing the fixup handling easier e.g. to GNU as.

Feb 8 2021, 7:38 AM · Restricted Project

Feb 5 2021

joerg committed rG917976471068: SPARCv9: recognize SIR trap instruction (authored by joerg).
SPARCv9: recognize SIR trap instruction
Feb 5 2021, 5:04 PM
joerg added a comment to D96070: [clang] [driver] Enable static linking to libc++.

I can't speak for other systems, but forcing libpthread to be linked is in general not desirable as it creates a non-trivial runtime cost, especially when <thread> is not used. That's still a pretty common use case of C++.

Feb 5 2021, 1:49 AM · Restricted Project

Feb 4 2021

joerg added a comment to D96070: [clang] [driver] Enable static linking to libc++.

The NetBSD part is most definitely not acceptable.

Feb 4 2021, 1:52 PM · Restricted Project

Jan 30 2021

joerg added a comment to D94355: [Passes] Add relative lookup table converter pass.

First of all, I find this patch to be nearly impossible to read. It seems to mix a lot of refactoring with a functional change, making it very hard to focus on the core.

Jan 30 2021, 5:32 AM · Restricted Project, Restricted Project

Jan 15 2021

joerg added a comment to D94355: [Passes] Add relative lookup table converter pass.

It might be specific to the jump table case, but it should be instructional on how to do it. One important point is that it avoids inter-section relocations, which are a problem at least on MIPS.

Jan 15 2021, 6:06 AM · Restricted Project, Restricted Project
joerg added a comment to D94355: [Passes] Add relative lookup table converter pass.

Some targets already do this. Please check that you don't create regressions, especially on PowerPC.

Jan 15 2021, 5:25 AM · Restricted Project, Restricted Project

Nov 30 2020

joerg added a comment to D92307: [analyzer][StdLibraryFunctionsChecker] Fix typos in summaries of mmap and mmap64.

off_t is s signed type. Please fix the description.

Nov 30 2020, 5:17 AM · Restricted Project

Nov 23 2020

joerg added a comment to D91968: llvm/ADT/StringExtras.h hexDigitValue - Init of integer buffer.

Do we really want to change the code here? It is perfectly well defined behavior.

Nov 23 2020, 11:52 AM · Restricted Project

Nov 19 2020

joerg added a comment to D91760: [Driver] Default Generic_GCC aarch64 to use -fasynchronous-unwind-tables.

The difference is whether we promise to be instruction precise or not. I'm not sure we do or want to promise that as default.

Nov 19 2020, 2:55 PM · Restricted Project
joerg added a comment to D91760: [Driver] Default Generic_GCC aarch64 to use -fasynchronous-unwind-tables.

I have no problem with the change, but please adjust the description to take about -funwind-tables. I don't think we do async by default, at least not by design.

Nov 19 2020, 1:58 PM · Restricted Project

Oct 29 2020

joerg added a comment to D90231: [GVN] Don't replace argument to @llvm.is.constant.*().

"It compiles with GCC" is not really helpful as argument because the observed behavior depends on a lot of internals. It is quite frankly impossible to be 100% identical to GCC's behavior. What LLVM guarantees is:
(1) Folding to false happens as late as reasonable possible. It happens most importantly after the first round of function and loop optimizations.
(2) Folding to true happens as part of constant folding etc as early as the condition is evaluated.
(3) The result is propagated to derived expression and those are folded recursively, including dead code elimination. This happens even for -O0.

Oct 29 2020, 4:45 AM · Restricted Project

Oct 28 2020

joerg added a comment to D90231: [GVN] Don't replace argument to @llvm.is.constant.*().

I completely agree with Roman that this patch is very undesirable since it has a high chance of breaking other reasonable uses of the intrinsic. In fact, I would say that the observed behavior here is perfectly reasonable under the definition of @lllvm.is.constant. The original code for LLVM at least should be just __builtin_constant_p(b) && b > -129 && b < 128).

Oct 28 2020, 5:39 AM · Restricted Project

Oct 27 2020

joerg added a comment to D90201: Try reading a smaller chunk when (p)read fails.

You can do an anon-mapping with size+pagesize in that case and map over it with MAP_FIXED.

Oct 27 2020, 11:51 AM · Restricted Project