Page MenuHomePhabricator

joerg (Joerg Sonnenberger)
User

Projects

User Details

User Since
Nov 23 2012, 10:16 AM (316 w, 14 h)

Recent Activity

Tue, Dec 11

joerg added a comment to D43871: [modules] No longer include stdlib.h from mm_malloc.h..

This header is used on systems without glibc. So please don't argue about behavior based only on that. Granted, most other libc implementation are less annoying when it comes to free and malloc, but still.

Tue, Dec 11, 1:16 PM
joerg added inline comments to D55542: [llvm-xray] Support for PIE.
Tue, Dec 11, 12:55 PM

Mon, Dec 10

joerg added a comment to D55167: Add a new interceptors for cdbr(3) and cdbw(3) API from NetBSD.

I don't see why this interceptor needs to know about the internals of struct cdbr or struct cdbw at all. They are fully opaque. All memory accessed by users is explicitly sized as argument to the functions or returned with the size.

Then we give up on TSAN check of fieds, or msan check if caller will try to read particular fields

Mon, Dec 10, 2:49 PM · Restricted Project

Sun, Dec 9

joerg added a comment to D55167: Add a new interceptors for cdbr(3) and cdbw(3) API from NetBSD.

I don't see why this interceptor needs to know about the internals of struct cdbr or struct cdbw at all. They are fully opaque. All memory accessed by users is explicitly sized as argument to the functions or returned with the size.

Sun, Dec 9, 11:31 AM · Restricted Project

Mon, Dec 3

joerg added a comment to D55213: Python2/3 compat - print.

I'd recomment another pass to reduce the now fully redundant () pairs around % string substitutions, but in principle LGTM.

Mon, Dec 3, 5:07 AM
joerg accepted D55207: Python 2/3 compat - shebang.

LGTM

Mon, Dec 3, 4:17 AM
joerg requested changes to D55199: Python2/3 compat - urllib.
Mon, Dec 3, 4:16 AM
joerg accepted D55198: Python 2/3 compat - type destructuring.

LGTM

Mon, Dec 3, 4:14 AM
joerg added inline comments to D55196: Python2/3 compatibility - StringIO.
Mon, Dec 3, 4:10 AM
joerg accepted D55195: Python2/3 compat - exceptions.

LGTM

Mon, Dec 3, 4:06 AM
joerg added a comment to D55194: Python2/3 compatiility - has_key.

LGTM

Mon, Dec 3, 4:04 AM

Sun, Dec 2

joerg added a comment to D55121: Make several Python scripts portable across Python2 and Python 3.

Can you split off the pure modernisation changes like new exception or print ? Those are completely non-contentious changes after all. I generally do not like the range and list related changes as many instances are clear regressions for the 2.x case. filter to list comprehension should IMO be a separate change as well, but those are much less problematic and often an improvement in terms of both performance and readability.

Sun, Dec 2, 11:29 AM

Mon, Nov 19

joerg added a comment to D54657: [clang] Do not dump compilation-database entries for -E..

I'm sorry, but it still sounds to me like you want to address badly written build rules by making the driver more complicated. I don't see that is a reasonable goal forward.

Mon, Nov 19, 12:12 PM

Sat, Nov 17

joerg added a comment to D54657: [clang] Do not dump compilation-database entries for -E..

I don't understand the point here. Why would you want to include pre-processing-only commands in the compilation database?

Sat, Nov 17, 7:09 AM

Fri, Nov 16

joerg added a comment to D54605: [lld][ELF] Add negative test coverage for unknown "-z" flags..

Well, I do like the general idea. I would go with a sorted static array and a binary search though. This is not really time critical, but the array version would be smaller in terms of code without involving run-time allocations.

Fri, Nov 16, 6:32 AM

Nov 13 2018

joerg added a comment to D54328: Added 'cd -' built in to lit.

I would actually rule out subshells as well. I see no reason why a test case should have to use them, i.e. compared to just change the working directory back afterwards. As I said, I want to be able to repeat a problematic command manually and interactively as easy as possible. Using non-portable shell features is a problem for that. Depending on state between commands is also annoying. Let's really try to keep it minimal and where necessary, adjust test case guidelines and test cases to simplify things.

Nov 13 2018, 3:36 PM
joerg added a comment to D54328: Added 'cd -' built in to lit.

As I said: because it makes it harder to rerun parts of the test interactively. Which is a good enough reason to forbid cd - as well as any directory stack operations, IMO.

Nov 13 2018, 2:24 PM

Nov 12 2018

joerg added a comment to D54328: Added 'cd -' built in to lit.

Personally, I would strongly prefer if the test cases are as explicit as possible. That makes debugging based on the llvm-lit output a lot easier. Ignoring anything else, this feature would make it a lot more tricky to figure out what exactly is going on.

Nov 12 2018, 5:53 PM

Nov 11 2018

joerg requested changes to D54328: Added 'cd -' built in to lit.

I'm quite against this. "cd -" is a non-portable extension to shell and should never be used in first place.

Nov 11 2018, 2:07 PM

Nov 9 2018

joerg added a comment to D54338: Fix threads build on GNU/Hurd.

I think I would enumerate the BSDs here (and Apple) explicitly and not depend on BSD.

Nov 9 2018, 2:14 PM

Nov 5 2018

joerg added a comment to D34018: Support __float128 on NetBSD libstdc++ x86/x86_64.

Nothing changed. I don't see how catering to the broken libstdc++ self-configuration helps. So no, I still object to this change.

Nov 5 2018, 4:44 AM

Nov 4 2018

joerg added inline comments to D33878: Handle NetBSD specific _Unwind_Ptr.
Nov 4 2018, 2:40 PM

Oct 30 2018

joerg added a comment to D53838: [builtins] Re-enable x86-only long double tests.

__m68k__ and __ia64__ too, just for completeness.

Oct 30 2018, 5:58 AM

Oct 24 2018

joerg added a comment to D53383: [PowerPC] Make no-PIC default to match GCC - LLVM .

To summarize the discussion on IRC, from my perspective this change is wrong. PPC as architecture is strongly geared towards PIC code. We used to create quite bad position dependent code and I generally don't see the advantage. I can understand wanting to default to PIE (i.e. position independent code with main binary assumption as far as interception is considered). In other words, the middle end generally tended to create better results for position independent codegen. The default behavior of GCC is ephemeral here, IMO.

Oct 24 2018, 1:35 PM

Oct 19 2018

joerg added a comment to D34796: upporting -f(no)-reorder-functions flag, clang side change.

Excuse me for bring this up so late, but why do we want to make any such promises? As in: fundamentally, LLVM IR doesn't have any order property on the module level. I have yet so seen reasonable code where the order of functions matters for anything but performance. I've seen a few things that required -funit-at-a-time, most noticable GCC's CRT implementation. But those are all major hacks. So under what premise is it useful to have to even pretend to honor source code order?

Oct 19 2018, 4:34 AM

Oct 1 2018

joerg added inline comments to D49466: Initial implementation of -fmacro-prefix-map and -ffile-prefix-map.
Oct 1 2018, 11:38 AM

Sep 30 2018

joerg added a comment to D52696: Update ifunc attribute support documentation.

Yeah, I would restrict it to just mention that it depends on the target, link time editor and runtime linker. Even the concrete feature set on Linux changes with glibc versions.

Sep 30 2018, 6:21 PM
joerg added a comment to D52696: Update ifunc attribute support documentation.

I think this is still too optimistic. Full support for ifunc seems to be generally limited to x86. Most other architectures lack even definitions for anonymous ifunc relocations or support proper relaxation only in limited forms. That's especially annoying when looking at static linking.

Sep 30 2018, 11:00 AM

Sep 16 2018

joerg added a comment to D52137: Added warning for unary minus used with unsigned type.

I find this warning confusing. I find a4 to be perfectly expected. IMO this warning should be applied only, if the effective value of the expression is not the same as in the modulo-n arithmetic. This means that if (-x) is explicitly or implicitly cast to a less wide unsigned type, it should not warn. It would consider a warning for the case of using (-x) if integer promotion rules makes it negative though. The question is, how to best patch around the warning though. What options does MSVC have for that? I.e. what equivalent expressions do not trigger this warning?

Sep 16 2018, 11:25 AM

Sep 6 2018

joerg added a comment to D51683: Fix arm_neon.h and arm_fp16.h generation for compiling with std=c89.

Correct. The protected name is double underscore as both suffix and prefix.

Sep 6 2018, 12:53 PM

Sep 5 2018

joerg added inline comments to D51683: Fix arm_neon.h and arm_fp16.h generation for compiling with std=c89.
Sep 5 2018, 8:28 AM

Sep 4 2018

joerg added a comment to D43871: [modules] No longer include stdlib.h from mm_malloc.h..

Please check the history of the file for some of the problems with the redefinition. I'm quite against this change.

Sep 4 2018, 4:42 AM

Aug 31 2018

joerg added a comment to D51419: Switch syscall(2)/__syscall(2) calls to libc calls on NetBSD.

Every system call has a public and internal variant. The former might be replaced by libpthread etc for thread cancellation support, but that's a different topic.

Aug 31 2018, 5:59 AM · Restricted Project

Aug 29 2018

joerg added a comment to D50969: [Sparc] Improve the builtin setjmp/longjmp.

Yes, it is optional, but on most architectures, the builtin variant is much cheaper. That said, I'm not sure what the situation is on SPARC with the necessary register window flush.

Aug 29 2018, 3:44 PM
joerg added a comment to D51419: Switch syscall(2)/__syscall(2) calls to libc calls on NetBSD.

I don't understand why most of this symbols don't reference the plain system call directly, i.e. _sys_read etc.

Aug 29 2018, 3:25 PM · Restricted Project
joerg added a comment to D50969: [Sparc] Improve the builtin setjmp/longjmp.

There is one user of builtin_setjmp/builtin_longjmp that should be kept in mind: Ruby.

Aug 29 2018, 2:42 PM

Aug 20 2018

joerg accepted D47814: Teach libc++ to use native NetBSD's max_align_t.
Aug 20 2018, 1:11 PM
joerg requested changes to D47814: Teach libc++ to use native NetBSD's max_align_t.
Aug 20 2018, 1:10 PM
joerg added a comment to D50413: [libunwind][include] Add some missing definitions to <unwind.h>..

Is there a reason for defining them? As in: does anything outside libunwind use them? I haven't seen such software yet.

Aug 20 2018, 12:04 PM
joerg added a comment to D50966: Fix an undefined behavior when storing an empty StringRef..

Why do we need to allocate memory in this case at all? I.e. why can't this just be:

if (S.empty())
  return StringRef("", 0);
...
Aug 20 2018, 6:28 AM

Aug 16 2018

joerg added inline comments to D50839: [llvm] Make YAML serialization up to 2.5 times faster.
Aug 16 2018, 9:37 AM
joerg added inline comments to D50839: [llvm] Make YAML serialization up to 2.5 times faster.
Aug 16 2018, 6:52 AM
joerg added a comment to D50243: [libunwind][mips] Include gcc_s for linkage.

If a build against compiler-rt works, that's ok. It wasn't clear from the diff.

Aug 16 2018, 4:50 AM

Aug 15 2018

joerg added a comment to D50477: WIP: Ensure that the type of size_t is represended as one of the fixed width types.

I don't understand the desire for this logic. Why can't wasm override the rest of the types if it wants to have something special?

Aug 15 2018, 2:53 PM
joerg added a comment to D50243: [libunwind][mips] Include gcc_s for linkage.

This hard-coding seems to be counter-productive, it could be compiler-rt just as well.

Aug 15 2018, 6:14 AM

Aug 1 2018

joerg added a comment to D49771: CodeGen: use non-zero memset when possible for automatic variables.

There are two different considerations here:
(1) Create less target code
(2) Create less IR

Aug 1 2018, 10:19 AM

Jul 24 2018

joerg added a comment to D49763: [CUDA] Call atexit() for CUDA destructor early on..

Depends a bit on the platform, __cxa_atexit on most modern ELF systems, fallback to atexit. If the global dtor is run too late, it smells like a missing library dependency. They are executed in topological order after all.

Jul 24 2018, 4:24 PM
joerg added a comment to D49763: [CUDA] Call atexit() for CUDA destructor early on..

Can this ever end up in a shared library? If yes, please use the normal logic for creating a global destructor. atexit is not very friendly to dlopen...

Jul 24 2018, 3:52 PM

Jul 18 2018

joerg added inline comments to D49466: Initial implementation of -fmacro-prefix-map and -ffile-prefix-map.
Jul 18 2018, 1:44 PM
joerg requested changes to D49481: Haiku: Enable thread-local storage and disable PIE by default.

Both needs a test case :)

Jul 18 2018, 8:27 AM
joerg added a comment to D49482: Haiku: add a test for haiku driver.

It seems to miss most of the interesting checks, i.e. crt files. Compare with any of the entries on netbsd.c for example.

Jul 18 2018, 7:35 AM
joerg requested changes to D49480: Haiku: support for secondary arch.

This is absolutely not how the clang driver is supposed to work. No conditional compilation.

Jul 18 2018, 7:34 AM

Jul 17 2018

joerg committed rUNW337312: The semantics of DW_CFA_GNU_args_size have changed subtile over the.
The semantics of DW_CFA_GNU_args_size have changed subtile over the
Jul 17 2018, 12:38 PM
joerg committed rL337312: The semantics of DW_CFA_GNU_args_size have changed subtile over the.
The semantics of DW_CFA_GNU_args_size have changed subtile over the
Jul 17 2018, 12:06 PM
joerg closed D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size.
Jul 17 2018, 12:06 PM
joerg committed rC337277: Always use __mcount on NetBSD. Some platforms don't provide _mcount..
Always use __mcount on NetBSD. Some platforms don't provide _mcount.
Jul 17 2018, 6:19 AM
joerg committed rL337277: Always use __mcount on NetBSD. Some platforms don't provide _mcount..
Always use __mcount on NetBSD. Some platforms don't provide _mcount.
Jul 17 2018, 6:18 AM
joerg committed rL337274: For NetBSD, unwind data is emitted by default, so also enable frame.
For NetBSD, unwind data is emitted by default, so also enable frame
Jul 17 2018, 5:44 AM
joerg committed rC337274: For NetBSD, unwind data is emitted by default, so also enable frame.
For NetBSD, unwind data is emitted by default, so also enable frame
Jul 17 2018, 5:44 AM
joerg committed rL337271: By popular demand, switch in64_t on NetBSD/AArch64 and NetBSD/PowerPC64.
By popular demand, switch in64_t on NetBSD/AArch64 and NetBSD/PowerPC64
Jul 17 2018, 5:38 AM
joerg committed rC337271: By popular demand, switch in64_t on NetBSD/AArch64 and NetBSD/PowerPC64.
By popular demand, switch in64_t on NetBSD/AArch64 and NetBSD/PowerPC64
Jul 17 2018, 5:38 AM
joerg committed rL337269: Don't assert that a size_t fits into 64bit..
Don't assert that a size_t fits into 64bit.
Jul 17 2018, 5:35 AM

Jul 15 2018

joerg committed rL337139: Prune empty directory..
Prune empty directory.
Jul 15 2018, 4:57 PM

Jul 12 2018

joerg committed rC336947: Support linking static PIE binaries on NetBSD.
Support linking static PIE binaries on NetBSD
Jul 12 2018, 2:26 PM
joerg committed rL336947: Support linking static PIE binaries on NetBSD.
Support linking static PIE binaries on NetBSD
Jul 12 2018, 2:26 PM

Jul 9 2018

joerg added a comment to D48915: [Sparc] Use the names .rem and .urem instead of __modsi3 and __umodsi3.

Looking further, at least on NetBSD libgcc seems to always include both the "normal" and the .rem/.urem routines. While we currently don't replace __umodsi3 and friends, that looks more like an oversight on our part.
I asked the Sparc folks and they can't remember any special reason for why .urem should be used. I.e. it follows the normal Sparc ABI.
As such, I'm mostly ambivalent on this change and the rest of the block.

Jul 9 2018, 7:33 AM

Jul 5 2018

joerg added a comment to D48915: [Sparc] Use the names .rem and .urem instead of __modsi3 and __umodsi3.

Not what I mean. Certain platforms like Sparc and SH link a copy of certain routines into every DSO. This is the so-called milli code. They sometimes use special calling conventions as well. That's different from the "normal" helper routines in libgcc, which are shared by all libraries.

Jul 5 2018, 4:21 AM

Jul 4 2018

joerg added a comment to D48915: [Sparc] Use the names .rem and .urem instead of __modsi3 and __umodsi3.

That would be the milli code version, wouldn't it?

Jul 4 2018, 3:43 PM

Jun 18 2018

joerg added a comment to D48244: hfghgfhfgh.

Please update the summary / title

Jun 18 2018, 11:12 AM

Jun 5 2018

joerg updated the diff for D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size.

After a careful review of newer GCC / libgcc and the assembler annotations from LLVM, I have come to the following conclusions:

Jun 5 2018, 3:12 PM
joerg commandeered D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size.
Jun 5 2018, 3:03 PM

May 22 2018

joerg added a comment to D47138: [Sparc] Use the leon arch for Leon3's when using an external assembler.

This still needs a test case?

May 22 2018, 4:19 PM

May 9 2018

joerg added a comment to D46585: Align ClearShadowForThreadStackAndTLS for NetBSD/i386.

This looks sensible, but I don't know what PoisonShadow will do for the rest of the memory block.

May 9 2018, 6:32 AM · Restricted Project

May 8 2018

joerg added a comment to D46544: Set DF_TEXTREL only if text relocations are really needed..

"-z textrel" can also be used in build instructions if some platforms will need it, even if not all of them do.

May 8 2018, 3:12 PM

Apr 27 2018

joerg added a comment to D46082: [LowerTypeTests] Mark .cfi.jumptable nounwind..

Yes, if that option is enabled explicitly or implicitly in the frontend, the expectation is that all compiler-generated functions have uwtable as well.

Apr 27 2018, 12:58 PM
joerg added a comment to D46082: [LowerTypeTests] Mark .cfi.jumptable nounwind..

Given that .eh_frame sections can be used to create backtraces i.e. from signal handlers, this seems to be undesirable in the generality. Shouldn't this attribute be conditional on whether functions are normally supposed to have unwind data?

Apr 27 2018, 6:58 AM

Apr 24 2018

joerg added a comment to D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size.

I'm back to the point where I can't reproduce the problem :( Can we start providing an actual failing test case? It's annoying to debug a problem when you can't reproduce it.

Apr 24 2018, 12:57 PM

Apr 23 2018

joerg added a comment to D41240: [Solaris] __float128 is supported on Solaris/x86.

Things are different for a libgcc-based toolchain and a compiler-rt based toolchain.

Apr 23 2018, 11:50 AM

Apr 6 2018

joerg added a comment to D45240: [ARM] Compute a target feature which corresponds to the ARM version..

Can you make sure that we handle the older ARM versions correctly as well, i.e. v4, v5 and v6? I take it we still have test cases for the arm <-> thumb transition? That's the one part of the triple logic that is really non-trivial.

Apr 6 2018, 5:26 AM

Mar 30 2018

joerg added a comment to D44494: [libunwind] Support __register_frame with a full .eh_frame section.

The "struct object" is an implementation detail of the unwind implementation. You are guaranteed historically to get at least 8 longs / 8 pointers for internal use statically allocated in each object. What is stored inside is up to the unwind implementation.

Mar 30 2018, 10:22 AM

Mar 28 2018

joerg added a comment to D44921: [PowerPC] Option for secure plt mode.

GCC supports -mbss-plt to get the legacy behavior. Not sure if anyone actually uses it though.

Mar 28 2018, 5:45 AM

Mar 27 2018

joerg added a comment to D44669: Use local symbols for creating .stack-size.

Given that some people like to post-process assembler files, using the section symbol directly is a bad idea. Adding the local symbols is fine.

Mar 27 2018, 12:34 PM

Mar 26 2018

joerg added a comment to D44774: [Driver] Allow use of -fsyntax-only together with -MJ.

Oh, we certainly should never be hitting an assertion on front-end flags. As such, there is a problem to fix here. I still maintain that the combination of flags is non-sense, so the question is:

Mar 26 2018, 7:36 AM

Mar 23 2018

joerg added a comment to D42112: [PowerPC] Secure PLT support.

It should be kept in mind that secure PLT is desirable for certain cases with non-position independent code as well. Even in static binaries it can be desirable... But that is for a follow-up patch.

Mar 23 2018, 12:54 PM
joerg added a comment to D44774: [Driver] Allow use of -fsyntax-only together with -MJ.

IMO we should explicitly error out. That combination is nonsense to me. Creating useless JSON database fragments is not an improvement.

Mar 23 2018, 12:39 PM

Mar 5 2018

joerg added a comment to D41813: [builtins] Enable CRT_HAS_128BIT for MSVC.

The difference is that modsi3 etc are all paired instructions. A backend should not be lowering to one of them if a real division instruction exists and it should be consistent in the lowering.

Mar 5 2018, 2:01 PM

Feb 21 2018

joerg added a comment to D42740: Implement a case-folding version of DJB hash.

ARM and x86 implement different chars, don't they?

Feb 21 2018, 12:16 PM

Feb 19 2018

joerg added a comment to D43146: [builtins] Fix c?zdi2 on sparc64/Linux and ignore riscv32.

We tried to keep the condition simple. I.e. does the compiler on any of those platforms ever use the libcall? If not, it is IMO not worth the complexity.

Feb 19 2018, 9:35 AM
joerg requested changes to D41813: [builtins] Enable CRT_HAS_128BIT for MSVC.
Feb 19 2018, 9:14 AM

Feb 12 2018

joerg added a comment to D43188: [ELF] Make .eh_frame relro if one of the inputs is SHF_WRITE.

Please stop adding complexity to doctor around the symptoms. There are two real fixes here and this change doesn't help with either:
(1) Emit cross-section pointers as indirect. This increases the binary size, but otherwise ensures that any linker can create read-only .eh_frame on MIPS.
(2) Teach lld on MIPS to properly reassemble the DWARF instructions, similar to what GNU ld can do. The latter is a bit stupid and needs a good kick to work properly, but this is the correct approach forward.

Feb 12 2018, 7:12 AM
joerg requested changes to D43185: [MIPS] Mark .eh_frame as writable for PIC output.

This is not acceptable. If anything, the encoding should be switched to indirect, but that should already be the case.

Feb 12 2018, 6:16 AM
joerg added a comment to D42593: GCC compatibility: Ignore -fstack-clash-protection.

I really don't like ignoring options that are supposed to provide actual functionality. Most of the other options are for pointless fine tuning and workarounds for broken gcc behavior in ancient versions.

Feb 12 2018, 5:13 AM

Feb 8 2018

joerg added inline comments to D42740: Implement a case-folding version of DJB hash.
Feb 8 2018, 10:47 AM
joerg added inline comments to D42740: Implement a case-folding version of DJB hash.
Feb 8 2018, 9:53 AM

Feb 5 2018

joerg added a comment to D42902: [compiler-rt] Workaround for endless recursion in ctzdi2.

I really, really dislike this patch. It is using very blunt force to workaround a GCC bug. The comment is too verbose as well. Please try the following change from NetBSD instead:

Feb 5 2018, 5:48 AM

Jan 19 2018

joerg accepted D42055: Fallback option for colorized output when terminfo isn't available.

Good enough for me.

Jan 19 2018, 2:36 AM

Jan 18 2018

joerg added a comment to D42055: Fallback option for colorized output when terminfo isn't available.

Do you see the comment just following the code? The patch completely violates that basic design principle. It would be perfectly sensible to hard-code a list of dumb terminals and explicitly default to no colors for them. The reverse (hard-coding a list and assuming it is fine for everything else) is not.

Jan 18 2018, 3:47 PM
joerg requested changes to D42055: Fallback option for colorized output when terminfo isn't available.

That's no excuse for making the situation even worse.

Jan 18 2018, 3:17 PM
joerg added a comment to D42055: Fallback option for colorized output when terminfo isn't available.

I completely disagree with this approach. A lot of GNU tools (including GCC) are completely broken. We shouldn't follow them. There are a lot more terminals around than just "dumb", "xterm" and "linux". It is completely non-acceptable to just assume ANSI escape sequences work. If Android doesn't ship a usable terminfo implementation, I consider that an Android bug. Wouldn't be the first portability nightmare with Android.

Jan 18 2018, 1:37 PM

Jan 11 2018

joerg added inline comments to D41957: Utility for checking out llvm, clang, and associated tools and configuring a build folder.
Jan 11 2018, 2:47 PM