joerg (Joerg Sonnenberger)
User

Projects

User Details

User Since
Nov 23 2012, 10:16 AM (247 w, 4 d)

Recent Activity

Yesterday

joerg added a comment to D33878: Handle NetBSD specific _Unwind_Ptr.

Well, the libexecinfo one exists as fallback because gcc doesn't provide one.

Mon, Aug 21, 10:06 AM
joerg added a comment to D33878: Handle NetBSD specific _Unwind_Ptr.

Kamil, which unwind.h are you using? The outdated copy in libexecinfo.h or the modern one used by libunwind? I see little reason to cater to the bugs in the former...

Mon, Aug 21, 9:35 AM

Fri, Aug 18

joerg added a comment to D13104: Mips - Mark the section .eh_frame as writeable for pic.

BTW, I recently spend some time slapping GNU ld in NetBSD into shape so that it can properly support read-only .eh_frame even on MIPS. You might want to look at adopting similar changes.

Fri, Aug 18, 1:35 PM
joerg committed rL311156: Spelling.
Spelling
Fri, Aug 18, 5:58 AM

Thu, Aug 17

joerg added a comment to D36764: The following functions and tests work fine for powerpc64, so enable them..

divtc3 and friends.

Thu, Aug 17, 1:09 PM
joerg added a comment to D36764: The following functions and tests work fine for powerpc64, so enable them..

Because PPC uses the TC variant.

Thu, Aug 17, 9:06 AM
joerg added a comment to D36587: Add NetBSD ASAN shadow mapping for x86-64.

Just assume that the full 32bit address space is available.

Thu, Aug 17, 8:39 AM · Restricted Project
joerg added a comment to D35200: Don't use mmap on Windows.

The primary reason for using mmap is not so much performance, but reduced memory foot print.

Thu, Aug 17, 4:48 AM

Sat, Aug 12

joerg added a comment to D35035: [InstCombine] Prevent memcpy generation for small data size.

@spatel: I don't see a reason why we can't (or shouldn't) try to do common-prefix elimination for the memcmp intrinsic. It certainly seems to be better to me to preserve the intrinsics in your case as they should be easier to reason about. That's kind of my question for here too -- why does the expansion allow better code?

Sat, Aug 12, 7:18 AM
joerg added a comment to D35035: [InstCombine] Prevent memcpy generation for small data size.

What is the advantage of expanding the memcpy intrinsic in InstCombine vs doing it later in the target-specific code?

Sat, Aug 12, 2:18 AM

Thu, Aug 10

joerg added a comment to D34158: For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available .

Now, the "/tmp/foo-XXX.sh" also has a line labeled "Driver args: " with the original command-line on it. If I understand correctly, you then like to take this
simpler Driver command-line, and edit it manually: add -save-temps, and change the input filename to the "/tmp/foo-XXX.c" file, and run that, instead
of actually invoking the reproducer foo-XXX.sh.

Thu, Aug 10, 10:51 AM
joerg added a comment to D34158: For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available .

(2) It adds magic behavior that can make debugging more difficult. Partially preprocessed sources for example could be compiled with plain -c before, now they need a different command line.

If this is a problem, making it be Linux-only does _nothing_ to solve it. But I don't actually see how this is a substantively new problem? Compiling with plain -c before
would get #defines for those predefined macros that the compiler sets, even though you may not have wanted those. Is this fundamentally different?

It makes it a linux-only problem. As such, it is something *I* only care about secondary. A typical use case I care about a lot is pulling the crash report sources from my (NetBSD) build machine,
extracting the original command line to rerun the normal compilation with -save-temps. I don't necessarily have the (same) system headers on the machine I use for debugging and that's exactly
the kind of use case this change breaks. All other predefined macros are driven by the target triple and remain stable.

Don't you use preprocessed source files from a crash?

Thu, Aug 10, 10:44 AM

Wed, Aug 9

joerg added a comment to D34158: For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available .

(2) It adds magic behavior that can make debugging more difficult. Partially preprocessed sources for example could be compiled with plain -c before, now they need a different command line.

If this is a problem, making it be Linux-only does _nothing_ to solve it. But I don't actually see how this is a substantively new problem? Compiling with plain -c before
would get #defines for those predefined macros that the compiler sets, even though you may not have wanted those. Is this fundamentally different?

Wed, Aug 9, 12:08 PM
joerg added inline comments to D36484: Add NetBSD support in asan_symbolize.py.
Wed, Aug 9, 11:40 AM · Restricted Project

Thu, Aug 3

joerg added a comment to D35917: [mips] Implement -muninit-const-in-rodata.

I don't see any reason why zero-initialised constants should be emitted in BSS. I know that GCC does that and I just fixed bugs in that because created wrong section flags for it. So yes, I'd prefer to revert this and fix the real problem.

Thu, Aug 3, 12:07 PM
joerg added a comment to D35680: [ELF] - Round executable PT_LOAD to page size and pad it with traps.

I'm not sure I want anything like this unconditionally. It is going to waste quite a bit of space, i.e. 2KB per executable and shared library sums up.

Thu, Aug 3, 4:53 AM

Tue, Aug 1

joerg added a comment to D34158: For Linux/gnu compatibility, preinclude <stdc-predef.h> if the file is available .

I had a long discussion with James about this on IRC without reaching a clear consensus. I consider forcing this behavior on all targets to be a major bug. It should be opt-in and opt-in only:

Tue, Aug 1, 4:13 AM

Wed, Jul 26

joerg added a comment to D35567: [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removed.

Merging would be reasonable, yes.

Wed, Jul 26, 2:05 PM

Tue, Jul 25

joerg added a comment to D35509: Covnert .[cd]tors to .{init,fini}_array using synthetic section..

Warning for .ctor/.dtor use would IMO be completely bogus. They can easily be translated and they are kind of the LCD for "portable" assembler, i.e. much less problematic to deal with than plain .init/.fini segments.

Tue, Jul 25, 5:13 AM

Sun, Jul 23

joerg added a comment to D35780: Introduce -nostdlib++ flag to disable linking the C++ standard library..

I don't really like this. The reason why -lm is added explicitly on many targets is because the C++ STL typically depends on it and that means for static linking and broken ELF linkers, it will be necessary to link against it explicitly.
There is also the question on whether any platform we have currently uses separate STL and ABI libraries and it is not clear whether the flag should handle both.

Sun, Jul 23, 12:08 PM

Jul 23 2017

joerg added a comment to D35778: Add NetBSD PaX MPROTECT support in allocateMappedMemory.

While more localized, this seems to be an even greater hack than adopting the JIT users to use AllocateRWXMemory.

Jul 23 2017, 9:44 AM

Jul 21 2017

joerg 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.

When you say "additional protections" do you mean you can add the 'X' permission later (to get RWX), or just that you can later toggle from RW- to R-X?

Jul 21 2017, 2:11 AM

Jul 20 2017

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

Keep in mind that the SELinux case in libffi is not fork-safe. One important part LLVM needs to consider is
whether it wants to enshrine the performance penalty of mprotect-after-commit in its APIs or not. The second part
is whether platforms should aim to support hot-patchable JIT for multi-threaded environments or not. If the latter is
not considered relevant, the API only needs to provide a function to allocate JIT-safe memory and a function to make
it executable. If the latter is relevant, the current AllocateRWX is the interface you will end up with, one way or the other.

Jul 20 2017, 1:53 AM

Jul 19 2017

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

Right, the pages are allocated RWX.

It seems odd to prevent the flipping of the W/X bits while allowing RWX pages. I assume there are additional privileges
required (granted only to JITs and debuggers?) to get RWX pages? Is there a good source for me to read up about the PaX MPROTECT design?

Jul 19 2017, 5:09 PM

Jul 18 2017

joerg accepted D35331: [Solaris] enable --whole-archive for shared-library build, disable --version-script for Solaris-ld.
Jul 18 2017, 5:04 PM
joerg added inline comments to D35577: Add -flookup-tables and -fno-lookup-tables flags.
Jul 18 2017, 3:28 PM
joerg added inline comments to D35579: [SimplifyCFG] Make the no-jump-tables attribute also disable switch lookup tables.
Jul 18 2017, 3:22 PM
joerg added a comment to D35567: [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removed.

Test cases?

Jul 18 2017, 9:48 AM
joerg added a comment to D35067: [x86, CGP] increase memcmp() expansion up to 4 load pairs.

i386: code requires three push instructions + call + potential stack cleanup.
x86_64: code requires three register loads + call

Jul 18 2017, 6:37 AM
joerg added inline comments to D35554: Add NetBSD support in sanitizer_platform_limits_posix.*.
Jul 18 2017, 6:06 AM · Restricted Project
joerg added a comment to D35553: Define OFF_T as 64-bit integer on NetBSD.

This doesn't make sense to me, both the existing and new code. off_t is a signed type.

Jul 18 2017, 6:00 AM · Restricted Project

Jul 16 2017

joerg accepted D35462: Also add the option -no-pie (like -nopie).

Please mark it as alias for -nopie, otherwise fine.

Jul 16 2017, 9:48 AM

Jul 12 2017

joerg added a comment to D35190: __builtin_constant_p should consider the parameter of a constexpr function as constant.

What if the constexpr function is called with in a non-constexpr context, e.g. with a random global variable as argument?

Jul 12 2017, 6:28 AM

Jul 11 2017

joerg accepted D35277: Make shell redirection construct portable.

Strictly speaking, I think this comes from csh, but LGTM.

Jul 11 2017, 2:38 PM
joerg added a comment to D35245: [LibFuzzer] Fix GCC `-Wunused-result` warning.

A better construct would be to compute the full length and change both it and Str in the loop. No point in the complex arithmetic. I generally do prefer this as it improves interaction with pipes etc.

Jul 11 2017, 11:52 AM
joerg committed rL307665: NetBSD uses soft-float by default, unless the environment is EABIHF or.
NetBSD uses soft-float by default, unless the environment is EABIHF or
Jul 11 2017, 8:51 AM
joerg committed rL307664: Run the preprocessor test as frontend test for NetBSD, since CC1 mode.
Run the preprocessor test as frontend test for NetBSD, since CC1 mode
Jul 11 2017, 8:50 AM

Jul 10 2017

joerg committed rL306965: Add an option group for deprecated warnings. Add the removed.
Add an option group for deprecated warnings. Add the removed
Jul 10 2017, 9:42 AM

Jul 6 2017

joerg added inline comments to D35065: [LLDB][ppc64le] Rename enums in AuxVector.
Jul 6 2017, 4:09 PM
joerg added inline comments to D35065: [LLDB][ppc64le] Rename enums in AuxVector.
Jul 6 2017, 2:54 PM
joerg added a comment to D35065: [LLDB][ppc64le] Rename enums in AuxVector.

If you want to go this way, rename them consistently and use a different prefix (e.g. AUXV_*) please.

Jul 6 2017, 9:56 AM
joerg accepted D35054: [Solaris] get rid of _RESTRICT_KYWD warning during the build.

LGTM, as Kamil said, we have the same change in pkgsrc for Illumos.

Jul 6 2017, 8:38 AM
joerg added a comment to D33657: Allow libraries to be loaded with RTLD_LOCAL on Unix..

The bigger question for me is: what depends on the RTLD_GLOBAL behavior? I generally consider using it a design bug. I.e. what breaks if we just change to RTLD_LOCAL?

Jul 6 2017, 5:43 AM

Jul 1 2017

joerg closed D34926: Deprecation flag group + use for BB vectorizer options by committing rL306965: Add an option group for deprecated warnings. Add the removed.
Jul 1 2017, 2:36 PM
joerg created D34926: Deprecation flag group + use for BB vectorizer options.
Jul 1 2017, 9:49 AM
joerg added a comment to D34918: [libc++] Refactoring __sync_* builtins; NFC.

Lock-free atomic operations are also signal safe. Your code is not. While I don't know whether all this functions are not required to be signal safe, the general assertion is certainly questionable.

Jul 1 2017, 3:37 AM

Jun 30 2017

joerg added a comment to D34875: ARM: Report error for invalid use of AAPCS_VFP calling convention.

LGTM, but please cut down the test cases by hand. Most of the attributes and module flags should be unnecessary.

Jun 30 2017, 7:37 AM

Jun 29 2017

joerg added a comment to D34790: [NewPM] Add Clang cc1 flag -fdebug-pass-manager for printing debug information..

As I said in the discussion about similar flags for GVN, I'm generally fine with. We should have a big fat warning in the Release Notes that all -fexperimental-* flags are exactly that -- temporary and not intended for long term consumption. I.e. "we can and will remove them whenever it creates the most havoc".

Jun 29 2017, 6:56 AM

Jun 22 2017

joerg added a comment to D33895: [Support] Add TempFailureRetry helper function.

Do you need someone to commit this?

Jun 22 2017, 8:14 AM
joerg added a comment to D34506: Factor out a functionality from `isBeforeInTranslationUnit`.

I don't think it is a good idea to make this function non-transitive.

Jun 22 2017, 7:27 AM
joerg added a comment to D34387: [PATCH 2/2] Implement "probe-stack" on x86.

It would be nice to make the stackprobesize a proper TLI attribute, so that OSes can decide how much guarding they are willing to guarantee. I think I would also like to have an option to inline the probing without the complexity of the function call. But both can be done as a separate step.

Jun 22 2017, 7:05 AM
joerg accepted D34136: [Solaris] replace Solaris.h hack with a set of better hacks.
Jun 22 2017, 4:47 AM

Jun 21 2017

joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

If the jump table is writable

FWIW, that also sounds like a hack and a (minor?) security issue.

Jun 21 2017, 7:20 AM
joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

If the jump table is writable, you can just use the absolute pointers, PIC or no PIC. That would be the "block address" encoding.

Jun 21 2017, 2:16 AM
joerg added a comment to D34397: [SCEV] Make MulOpsInlineThreshold lower to avoid excessive compilation time.

What about the old TODO item of extending powi to integer types and folding them together in the middle end?

Joerg, what TODO item do you mean? Where can I read about it?
Anyways, even if we have a concept of powi in IR, it does not automatically mean that we have it in SCEV. It would be extremely good to have it, though, but it looks like a massive task that takes time.

Jun 21 2017, 2:14 AM

Jun 20 2017

joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

If you want to create a stop-gap solution that bad, I would make it emit the jump table as writable for non-PIC && largeish code model. That's a much more contained change. It would be really better to work on the real fix and not add more hacks...

Jun 20 2017, 4:15 PM
joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

For some reason we are using large code model with PIC in the JIT and this is the only issue I see on x86-64 so far.

Jun 20 2017, 4:12 PM
joerg accepted D33895: [Support] Add TempFailureRetry helper function.

Go ahead.

Jun 20 2017, 3:05 PM
joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

The x86_64 code is mixed: it is correct for non-PIC but large, it doesn't work correctly for PIC. That covers the cases most people have been interested in, especially since large model and PIC runs into various other issues too from what I remember.

Jun 20 2017, 3:03 PM
joerg added a comment to D34409: Use 64bit jump table with large code model on 64bit.

The entirely sensible assumption of the PPC backend is that a single function is no longer than 2GB/4GB.

What's being produced is an offset from the basic blocks (.text) to the Jump table (.rodata). That's not necessarily 32-bits, and I think there are entirely legitimate reasons for putting jump tables in .rodata.

Jun 20 2017, 2:08 PM
joerg requested changes to D34409: Use 64bit jump table with large code model on 64bit.

At least the PPC change is definitely wrong. AArch64 should be wrong as well from what I discussed with Tim.

Jun 20 2017, 1:42 PM
joerg added a comment to D34397: [SCEV] Make MulOpsInlineThreshold lower to avoid excessive compilation time.

What about the old TODO item of extending powi to integer types and folding them together in the middle end?

Jun 20 2017, 5:51 AM

Jun 19 2017

joerg added a comment to D34322: [lldb] Correctly escape newlines and backslashes in the JSON serializer.

Not parsers, encoders. Note that the escaping is not correct for control characters other than \n.

Jun 19 2017, 10:04 AM · Restricted Project
joerg added a comment to D34322: [lldb] Correctly escape newlines and backslashes in the JSON serializer.

I don't disagree with you, but please see the referenced review for further details.

Jun 19 2017, 9:30 AM · Restricted Project

Jun 18 2017

joerg added a comment to D34322: [lldb] Correctly escape newlines and backslashes in the JSON serializer.

My suggestion would be to just use the YAML writer for now and leave a comment to make it clear that this is really JSON only.

Jun 18 2017, 3:01 PM · Restricted Project
joerg accepted D33874: Implement AllocateRWX and ReleaseRWX for NetBSD.
Jun 18 2017, 9:49 AM

Jun 17 2017

joerg added a comment to D34322: [lldb] Correctly escape newlines and backslashes in the JSON serializer.

Please see the discussion in D31992. This patch seems to go in the wrong direction.

Jun 17 2017, 5:56 PM · Restricted Project
joerg added a comment to D34018: Support __float128 on NetBSD libstdc++ x86/x86_64.

As I said, I don't see the point in pretending we support float128 when the runtime doesn't contain the necessary pieces.

Jun 17 2017, 11:36 AM

Jun 14 2017

joerg added inline comments to D33895: [Support] Add TempFailureRetry helper function.
Jun 14 2017, 6:19 AM
joerg added inline comments to D34136: [Solaris] replace Solaris.h hack with a set of better hacks.
Jun 14 2017, 1:52 AM

Jun 13 2017

joerg added inline comments to D34136: [Solaris] replace Solaris.h hack with a set of better hacks.
Jun 13 2017, 11:04 AM
joerg added inline comments to D34136: [Solaris] replace Solaris.h hack with a set of better hacks.
Jun 13 2017, 5:56 AM

Jun 11 2017

joerg added a comment to D34088: [DAGCombine] Make sure we check the ResNo from UADDO before combining.

This fixes the problem in mbedtls, thanks.

Jun 11 2017, 4:28 AM

Jun 8 2017

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

Soft-float on the runtime environment part. I.e. non-trivial operations are lowered to library calls.

Jun 8 2017, 5:54 AM
joerg added a comment to D34018: Support __float128 on NetBSD libstdc++ x86/x86_64.

At the very least, missing test case.

Jun 8 2017, 4:55 AM

Jun 7 2017

joerg added a comment to D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.
In D33726#774105, @ruiu wrote:

I'm totally against adding per-OS path knowledge to our linker. Compilers already know include paths and I don't want to maintain another list of paths in the linker. Also this can be more confusing than useful when you are doing cross-linking.

Jun 7 2017, 6:55 AM
joerg added a comment to D31972: Do not force the frame pointer by default for ARM EABI.

Actually, for NetBSD we want to use -fomit-frame-pointer by default whenever the implicit -funwind-tables is also present. In general, that should be the justification for the default behavior: "Can I reliably unwind a binary with the available information?" Performance of stack unwinding is IMO secondary and users of sanitizers can disable it where necessary.

Jun 7 2017, 6:28 AM
joerg added a comment to D33874: Implement AllocateRWX and ReleaseRWX for NetBSD.

Given that W^X is becoming a lot more popular across systems including SELinux and other variants, I think it would be better to extend MemoryBlock to store separate pointers for W and X mappings. That avoids the complexity of storing the pointer directly in the allocation.

I was thinking about this and I was evaluating this option. My concern whether it is appropriate to include additional internal pointer for all targets unconditionally or just one extra for NetBSD (and other who can catch up).

I will add this pointer without ifdefs.

Jun 7 2017, 5:46 AM

Jun 6 2017

joerg added a comment to D33874: Implement AllocateRWX and ReleaseRWX for NetBSD.

Given that W^X is becoming a lot more popular across systems including SELinux and other variants, I think it would be better to extend MemoryBlock to store separate pointers for W and X mappings. That avoids the complexity of storing the pointer directly in the allocation.

Jun 6 2017, 2:39 PM

Jun 1 2017

joerg added a comment to D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.

A small subset can be found by searching for LINKER_RPATH_FLAG in pkgsrc. A classic offender is Emacs. For more, I would have to systematically search.

Jun 1 2017, 11:37 AM

May 31 2017

joerg added a comment to D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.

sysroot is already handled in NetBSD.cpp line 118 or so.

May 31 2017, 3:39 PM
joerg added a comment to D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.

Such knowledge is necessary anyway. There is enough software that wants to use the linker directly.

May 31 2017, 3:38 PM
joerg added a comment to D33726: [driver][netbsd] Build and pass `-L` arguments to the linker.

I'm against it. I consider this a strong bug on the LLD side and the behavior of clang correct.

May 31 2017, 3:12 PM

May 29 2017

joerg committed rL304179: Revert r303763, results in asserts i.e. while building Ruby..
Revert r303763, results in asserts i.e. while building Ruby.
May 29 2017, 3:52 PM

May 21 2017

joerg added a comment to D32782: Add pthread_self function prototype and make it speculatable..

Strictly speaking, the glibc attribute violates the specification of const. I.e. we could turn a call for pthread_self() into a once() initialised static variable and that transform would be valid under the const rules. That clearly doesn't reflect the intention...

May 21 2017, 4:29 AM

May 20 2017

joerg added a comment to D33372: Infer relocation model from module flags in relocatable LTO link.
In D33372#760060, @pcc wrote:

Non-LTO pipeline allows the user to put PIC code in a non-PIE executable, or non-PIC code in a shared library if they wish so. Maybe we should completely ignore the output type here and strictly go by module flags, to be consistent.

Disabling PIC can sometimes act as an optimization.

May 20 2017, 4:13 AM

May 19 2017

joerg added inline comments to D33356: [Nios2] Changes in frontend to support Nios2 LLVM target.
May 19 2017, 9:19 AM
joerg added inline comments to D33356: [Nios2] Changes in frontend to support Nios2 LLVM target.
May 19 2017, 7:50 AM
joerg added inline comments to D33356: [Nios2] Changes in frontend to support Nios2 LLVM target.
May 19 2017, 7:16 AM

May 18 2017

joerg added a comment to D33304: [clang-tidy][Part1] Add a new module Android and three new checks..

I find the use of "must" at the very least inappropriate. If there was no use case for not including it, it wouldn't be an option. There is also nothing really Android-specific here beside maybe the open64 mess.

May 18 2017, 9:42 AM · Restricted Project
joerg added a comment to D33272: Method loadFromCommandLine should be able to report errors.

Can this use ErrorOr?

May 18 2017, 9:38 AM

May 17 2017

joerg added a comment to D31516: Separate {Min,Max}AtomicLockFreeWidth from MaxAtomicInlineWidth.

Lock-free operations provide two major advantages. You don't need to worry about signal safety and they can be mixed with certain non-atomic operations without creating havoc. All I said is that the presence of a 32bit CAS is enough to ensure lock-free atomic operations for (appropriately aligned) 8bit and 16bit values can be implemented. That will not be worse than any locked atomic operation on any non-brain-dead platform. E.g. it might not be true on SPARC v7 and v8 or the VAX, but then they don't have a 32bit CAS. It doesn't mean that you have to implement 16bit atomics using a 32bit CAS. I would hope the webassembly backend exposes atomics as precise operations, but if it only provides a 32bit CAS, that's still good enough for the needs of any frontend language.

May 17 2017, 2:00 AM

May 16 2017

joerg added a comment to D33259: Don't defer to the GCC driver for linking arm-baremetal.

While I fully agree that the current fallback-to-GCC behavior is far from helpful, I'm not sure how much sense providing linker support for bare-metal makes. I would expect this to changes wildly depending on the specific environment.

May 16 2017, 3:57 PM
joerg added a comment to D31516: Separate {Min,Max}AtomicLockFreeWidth from MaxAtomicInlineWidth.

I don't get this. If you have a lock-free 32bit CAS, you can implement all the 16bit operations on top of that and they are still lock-free.

May 16 2017, 7:05 AM

May 15 2017

joerg added a comment to D32605: Recognize CTLZ builtin.

Can you check the countable part in one of the cases? Otherwise it looks good.

If I get yuo right, "ctlz_and_other" checks conversion to countable loop and that CPUs that not support ctlz will not insert it in this case.

May 15 2017, 12:59 PM
joerg added a comment to D32605: Recognize CTLZ builtin.

Can you check the countable part in one of the cases? Otherwise it looks good.

May 15 2017, 10:10 AM

May 10 2017

joerg added a comment to D33046: [ELF] - Set DF_TEXTREL flag properly..

At least NetBSD doesn't support/use DF_TEXTREL and only DT_TEXTREL.

May 10 2017, 1:28 PM
joerg added a comment to D33041: [ELF] - Set DF_STATIC_TLS flag for x86_64 target..

It's actually more a diagnostic hint. Due to things like Nvidia's binary-only libGL, this is actually supported by most TLS implementations as long as no initializers are needed.

May 10 2017, 1:26 PM
joerg accepted D33018: [compiler-rt][cmake] Provide empty version of enable_execute_stack for baremetal targets.
May 10 2017, 7:36 AM
joerg added a comment to D32605: Recognize CTLZ builtin.

Just as a side note: this is not only ARMv4. Older SPARC, M68K, SH, IA64, Alpha all seem to lack a FFS / CLZ instruction from cursory check.

May 10 2017, 5:01 AM