Page MenuHomePhabricator

joerg (Joerg Sonnenberger)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 23 2012, 10:16 AM (383 w, 3 d)

Recent Activity

Sat, Mar 28

joerg added a comment to D76151: [MC][X86] Allow SHT_PROGBITS for .eh_frame on x86-64.

We tend to test push .section and .pushsection in this file, so it would be nice to continue doing that.

Sat, Mar 28, 5:44 PM · Restricted Project
joerg accepted D76151: [MC][X86] Allow SHT_PROGBITS for .eh_frame on x86-64.

Can you add a variation with .pushsection for @progbits and @nobits? Otherwise LGTM.

Sat, Mar 28, 4:08 PM · Restricted Project
joerg committed rG09d402185394: Fix compatibility for __builtin_stdarg_start (authored by joerg).
Fix compatibility for __builtin_stdarg_start
Sat, Mar 28, 3:36 PM
joerg retitled D73245: Avoid using std::max_align_t in pre-C++11 mode from Depend stddef.h to provide max_align_t for C++11 and provide better fallback in <new> to Avoid using std::max_align_t in pre-C++11 mode.
Sat, Mar 28, 3:36 PM
joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

Ping?

Sat, Mar 28, 3:04 PM

Tue, Mar 24

joerg accepted D76721: Clarify use of llvm_unreachable in the coding standard.

This summarizes the IRC discussion.

Tue, Mar 24, 1:28 PM

Sat, Mar 21

joerg added inline comments to D73245: Avoid using std::max_align_t in pre-C++11 mode.
Sat, Mar 21, 2:57 PM

Fri, Mar 20

joerg added inline comments to D73245: Avoid using std::max_align_t in pre-C++11 mode.
Fri, Mar 20, 1:34 PM
joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

The original code has a functional dependency between sz and bytes and whether they can be constant evaluated. But the code doesn't express that. I don't think we can enforce that in any sensible way. There are valid use cases after all where partial inlining would result in entirely sensible decisions, just think about the more typical case of __builtin_constant_p selecting between inline asm taking immediate operands and one taking register/memory operands. That's why I am saying that I consider it a lot more useful to provide reliable building blocks to express the dependency and make sure they work.

Fri, Mar 20, 8:38 AM · Restricted Project

Thu, Mar 19

joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

...in the outer condition, I meant.

Thu, Mar 19, 6:39 PM · Restricted Project
joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

Yes, builtin_expect is just noise here. The point I wanted to make is that both sz and bytes should be used in builtin_constant_p in the other condition.

Thu, Mar 19, 6:39 PM · Restricted Project
joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

IMO the root of the problem here is that the branches are mixing predicated variables (bytes) with non-predicated variables (sz). If users want deterministic behavior here, that shouldn't be done.

Thu, Mar 19, 5:22 AM · Restricted Project

Wed, Mar 18

joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

I was discussing this with Bill off-list to get a better idea of the original test case. Basically, with the new constant intrinsic pass, we can provide a stronger semantic: the default LLVM pass chain always constant folds expressions involving is.constant and performs DCE trivially dead branches resulting from the former folding. This means that if the original expression is adjusted from:

if (__builtin_expect(!!(sz >= 0 && sz < bytes), 0)) {
    if (!__builtin_constant_p(bytes))
    ...
}

to the functionally equivalent:

if (!(__builtin_constant_p(sz) && __builtin_constant_p(bytes) && sz >= 0 && sz >= bytes) && __builtin_expect(!!(sz >= 0 && sz < bytes), 0)) {
    if (!__builtin_constant_p(bytes))
    ...
}

then we can actually ensure proper DCE even with -O0 in the default pass chain. That depends over all on two properties:

  • If __builtin_constant_p is constant folded by clang, it must DCE the appropiate places.
  • the constant intrinsic pass is run

With -O1 or higher, this should work in general.

Wed, Mar 18, 6:28 PM · Restricted Project

Tue, Mar 17

joerg closed D76186: Fix compatibility for __builtin_stdarg_start.

Committed as 0b999f76575f0196d3cd01c0781b2513b0a1af15 without link.

Tue, Mar 17, 4:46 PM
joerg updated the diff for D73245: Avoid using std::max_align_t in pre-C++11 mode.

Require __STDCPP_NEW_ALIGNMENT__ in C++03 mode. Prefer it over max_align_t in a number of tests when allocation alignment is desired. Adjust some tests to do minimal sanity checking of the alignment for C++03 only. Add an explicit check that __STDCPP_NEW_ALIGNMENT__ is more general than max_align_t if both are present.

Tue, Mar 17, 4:13 PM

Mon, Mar 16

joerg added a comment to D76151: [MC][X86] Allow SHT_PROGBITS for .eh_frame on x86-64.

This looks much better than the in-tree state, thanks.

Mon, Mar 16, 1:40 PM · Restricted Project

Sun, Mar 15

joerg added reviewers for D76186: Fix compatibility for __builtin_stdarg_start: rjmccall, rsmith.
Sun, Mar 15, 7:28 AM

Sat, Mar 14

joerg created D76186: Fix compatibility for __builtin_stdarg_start.
Sat, Mar 14, 3:02 PM

Fri, Mar 13

joerg added inline comments to D73245: Avoid using std::max_align_t in pre-C++11 mode.
Fri, Mar 13, 2:15 AM

Thu, Mar 12

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

I've already stated my disapproval of this patch. Libc++ has never and will never provide nor value C++03 conformance.
Moving backwards to C++03 is inconsistent with the libraries general direction.

@EricWF makes a point here, we want to move away from C++03.

Thu, Mar 12, 12:28 PM

Wed, Mar 11

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

Ping

Wed, Mar 11, 2:41 PM

Mon, Mar 9

joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

It still seems to be a perfectly reasonable optimisation under the semantics of is.constant. The code here seems to be an abuse of it though and makes assumptions that are not sensible.

Mon, Mar 9, 2:03 PM · Restricted Project
joerg added a comment to D75799: [Intrinsic] Give "is.constant" the "convergent" attribute.

I'm confused by that example. If jumpthreading makes it possible to answer true, it is no differerent from inlining and other use cases. The reverse is the problematic case, turning constant cases into non-constant cases?

Mon, Mar 9, 12:58 PM · Restricted Project

Tue, Mar 3

joerg committed rG388bccb01359: Add module for llvm/Bitstream (authored by joerg).
Add module for llvm/Bitstream
Tue, Mar 3, 8:56 AM

Mon, Mar 2

joerg committed rGeb812efa12fb: Explicitly include <cassert> when using assert (authored by joerg).
Explicitly include <cassert> when using assert
Mon, Mar 2, 2:09 PM

Feb 26 2020

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

libc++ has no idea what a correct max_align_t is. The internal definition works due to historic requirements that all three fundamental types are supported for new/delete, but we don't have any such guarantees for every other context. A correctly implemented stddef.h does not provide max_align_t in C++03 mode, since that would pollute the global namespace. This means that libc++ currently has two failure modes: on NetBSD, it outright tries to use a non-existing symbol. On other platforms it silently defines max_align_t in a way that can be subtle wrong.

Feb 26 2020, 2:57 PM

Feb 25 2020

joerg updated the diff for D73245: Avoid using std::max_align_t in pre-C++11 mode.

Do not depend on max_align_t in C++03 mode in the test cases.

Feb 25 2020, 11:51 AM
joerg committed rGdc383f07b080: Stop including sys/param.h from Unix.h (authored by joerg).
Stop including sys/param.h from Unix.h
Feb 25 2020, 6:39 AM

Feb 24 2020

joerg committed rG4e45ef4d77b7: Prefer PATH_MAX to MAXPATHLEN (authored by joerg).
Prefer PATH_MAX to MAXPATHLEN
Feb 24 2020, 4:45 PM
joerg committed rG03dd205c1516: Adjust max_align_t handling (authored by joerg).
Adjust max_align_t handling
Feb 24 2020, 4:45 PM

Feb 21 2020

joerg updated the diff for D73245: Avoid using std::max_align_t in pre-C++11 mode.
Feb 21 2020, 7:27 AM

Feb 20 2020

joerg added inline comments to D73245: Avoid using std::max_align_t in pre-C++11 mode.
Feb 20 2020, 5:01 AM

Feb 19 2020

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

It is used both in <new> and <memory> and the use in the latter is currently unconditional AFAICT. I don't have a problem splitting the conditional to avoid the typedef. That would address the ODR concern?

Feb 19 2020, 2:45 PM
joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

Ping2?

Feb 19 2020, 1:20 PM

Feb 12 2020

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

Ping?

Feb 12 2020, 2:42 PM

Feb 4 2020

joerg updated the diff for D73245: Avoid using std::max_align_t in pre-C++11 mode.
Feb 4 2020, 6:24 AM

Jan 30 2020

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

Let me clarify the situation for a moment:
(1) libc++ does try to work in C++03 mode. See the separate implementation of <functional> for pre-C++11. It is also desirable to support. This is completely beside the question of TR1 support.
(2) The only reason why max_align_t is currently necessary is because it is used as default alignment in <new>.
(3) Most compilers we care about already have a preprocessor symbol specifically for that purpose.

Jan 30 2020, 4:59 PM

Jan 22 2020

joerg added a comment to D73245: Avoid using std::max_align_t in pre-C++11 mode.

libc++ generally tries to play nice with C++03 code. It doesn't go out of its way to break it and keeping it usable helps dealing with a lot of rusty old code. That's what the patch is all about, not breaking things for no good reason.

Jan 22 2020, 6:17 PM
joerg committed rGd42baff45d97: Replace old-style cast of null pointer with nullptr (authored by joerg).
Replace old-style cast of null pointer with nullptr
Jan 22 2020, 5:23 PM
joerg created D73245: Avoid using std::max_align_t in pre-C++11 mode.
Jan 22 2020, 5:23 PM

Jan 20 2020

joerg added inline comments to D73000: [InstCombine] Optimize strchr(cststr, C).
Jan 20 2020, 10:54 AM · Restricted Project

Jan 16 2020

joerg added a comment to D72869: Add __warn_memset_zero_len builtin as a workaround for glibc issue.

Can this be restricted to Linux?

Jan 16 2020, 4:22 PM · Restricted Project

Jan 14 2020

joerg added inline comments to D69825: [Clang][Driver] Re-use the calling process instead of creating a new process for the cc1 invocation.
Jan 14 2020, 7:34 AM · Restricted Project, Restricted Project

Jan 5 2020

joerg added a comment to D72228: [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible.

What's the fixup behavior of the linker here, e.g. does it make sense to just use absolute encoding here and let the linker fix it up?

Jan 5 2020, 7:53 AM · Restricted Project

Nov 18 2019

joerg added a comment to D70416: [Driver] Make -static-libgcc imply static libunwind.

This is normally done by using -Bstatic/-Bdynamic around the library. See tools::addOpenMPRuntime.

Nov 18 2019, 9:57 PM · Restricted Project

Oct 30 2019

joerg added a comment to D69607: Add a feature to explain why some file gets included to the linker's output.

Just for the sake of correctness, this is provided by GNU ld as part of the map file (-Wl,-Map=foo.map). It lists all archive members and which object file and symbol triggered the inclusion.

Oct 30 2019, 7:19 AM · Restricted Project

Oct 28 2019

joerg committed rG01f3a59fb3e2: Replace abort with llvm_unreachable. (authored by joerg).
Replace abort with llvm_unreachable.
Oct 28 2019, 5:54 PM

Oct 27 2019

joerg added a comment to D68841: [PowerPC] Do not convert loop to HW loop if the body contains calls to lrint/lround.

Can we please get this or the other fix in RSN? Mesa hits this.

Oct 27 2019, 2:06 PM · Restricted Project

Oct 24 2019

joerg committed rG60b403e75cd2: Always flush pending errors in MCAsmParser (authored by joerg).
Always flush pending errors in MCAsmParser
Oct 24 2019, 3:49 PM

Oct 21 2019

joerg committed rGcb92413c5208: Fix -fuse-init-array decision logic on NetBSD (authored by joerg).
Fix -fuse-init-array decision logic on NetBSD
Oct 21 2019, 4:34 PM
joerg committed rL375468: Fix -fuse-init-array decision logic on NetBSD.
Fix -fuse-init-array decision logic on NetBSD
Oct 21 2019, 4:33 PM

Oct 15 2019

joerg added a comment to D68549: make ConstString allocate memory in non-tiny chunks.

I'm a bit puzzled by the need for this change. The bump allocator already has logic to do power-of-two scaling for the allocation, so I wonder why it doesn't work properly here.

Oct 15 2019, 5:08 PM · Restricted Project

Oct 14 2019

joerg committed rL374784: Reapply r374743 with a fix for the ocaml binding.
Reapply r374743 with a fix for the ocaml binding
Oct 14 2019, 9:20 AM
joerg committed rG9681ea9560a0: Reapply r374743 with a fix for the ocaml binding (authored by joerg).
Reapply r374743 with a fix for the ocaml binding
Oct 14 2019, 9:20 AM

Oct 13 2019

joerg committed rGe4300c392de2: Add a pass to lower is.constant and objectsize intrinsics (authored by joerg).
Add a pass to lower is.constant and objectsize intrinsics
Oct 13 2019, 3:59 PM
joerg closed D65280: Add a pass to lower is.constant and objectsize intrinsics.
Oct 13 2019, 3:59 PM · Restricted Project
joerg committed rL374743: Add a pass to lower is.constant and objectsize intrinsics.
Add a pass to lower is.constant and objectsize intrinsics
Oct 13 2019, 3:59 PM
joerg committed rG529f4ed401ea: Improve __builtin_constant_p lowering (authored by joerg).
Improve __builtin_constant_p lowering
Oct 13 2019, 3:39 PM
joerg committed rL374742: Improve __builtin_constant_p lowering.
Improve __builtin_constant_p lowering
Oct 13 2019, 3:38 PM
joerg closed D67638: Improve __builtin_constant_p lowering.
Oct 13 2019, 3:38 PM · Restricted Project

Oct 11 2019

joerg added inline comments to D65280: Add a pass to lower is.constant and objectsize intrinsics.
Oct 11 2019, 5:07 AM · Restricted Project
joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Adjust based on comments.

Oct 11 2019, 4:42 AM · Restricted Project

Oct 7 2019

joerg committed rG2b9f0b064b48: Fix the spelling of my name. (authored by joerg).
Fix the spelling of my name.
Oct 7 2019, 10:22 PM
joerg committed rL373980: Fix the spelling of my name..
Fix the spelling of my name.
Oct 7 2019, 10:22 PM
joerg added a comment to D68570: Unify the two CRC implementations.

Why go back to the large tables for crc32? Just because JamCRC had that bug doesn't mean it should persist.

Oct 7 2019, 7:24 AM · Restricted Project, Restricted Project, Restricted Project

Oct 5 2019

joerg added a comment to D68410: [AttrDocs] document always_inline.

I wonder if we should actually enumerate evil here, i.e. give the situations in which inlining actually fails. As mentioned on IRC, I wonder if we shouldn't aim for the stronger semantics and at least warn by default of any situation that prevents always_inline from doing its job.

Oct 5 2019, 4:20 PM · Restricted Project

Oct 3 2019

joerg added a comment to D67986: [InstCombine] snprintf (d, size, "%s", s) -> memccpy (d, s, '\0', size - 1), d[size - 1] = 0.

I'd make the argument that it should be strlcpy if present. That covers a lot of existing systems too. I'm not sure this optimisation should be done for freestanding mode though.

Oct 3 2019, 4:24 PM · Restricted Project

Oct 1 2019

joerg added a comment to D65280: Add a pass to lower is.constant and objectsize intrinsics.

2nd ping. Chandler, care to check this please?

Oct 1 2019, 1:21 PM · Restricted Project

Sep 21 2019

joerg added a comment to D67638: Improve __builtin_constant_p lowering.

Ping.

Sep 21 2019, 4:51 AM · Restricted Project
joerg updated subscribers of D67638: Improve __builtin_constant_p lowering.
Sep 21 2019, 4:51 AM · Restricted Project
joerg added a comment to D65280: Add a pass to lower is.constant and objectsize intrinsics.

Ping

Sep 21 2019, 4:49 AM · Restricted Project

Sep 16 2019

Herald updated subscribers of D67638: Improve __builtin_constant_p lowering.
Sep 16 2019, 3:16 PM · Restricted Project
joerg created D67638: Improve __builtin_constant_p lowering.
Sep 16 2019, 3:16 PM · Restricted Project
joerg accepted D67628: [compiler-rt][crt] make test case nontrivial in check_cxx_section_exists.

LGTM

Sep 16 2019, 1:46 PM · Restricted Project, Restricted Project
joerg added a comment to D67628: [compiler-rt][crt] make test case nontrivial in check_cxx_section_exists.

Can you declare a volatile variable and set that from f instead?

Sep 16 2019, 11:10 AM · Restricted Project, Restricted Project

Sep 9 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Switch the pass to use two rounds. The first round will collect all relevant intrinsics in RPO, the second one will translate them accordingly.

Sep 9 2019, 3:41 PM · Restricted Project

Aug 29 2019

joerg committed rG799c96693f68: Allow replaceAndRecursivelySimplify to list unsimplified visitees. (authored by joerg).
Allow replaceAndRecursivelySimplify to list unsimplified visitees.
Aug 29 2019, 6:22 AM
joerg committed rL370355: Allow replaceAndRecursivelySimplify to list unsimplified visitees..
Allow replaceAndRecursivelySimplify to list unsimplified visitees.
Aug 29 2019, 6:22 AM

Aug 28 2019

joerg added inline comments to D65280: Add a pass to lower is.constant and objectsize intrinsics.
Aug 28 2019, 8:03 AM · Restricted Project
joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Apply feedback.

Aug 28 2019, 8:03 AM · Restricted Project

Aug 27 2019

joerg added a comment to D65280: Add a pass to lower is.constant and objectsize intrinsics.

Chandler, are you OK with getting the InstructionSimplify.h part in now, so that it can be merged into 9.0 and the rest follow separately?

Aug 27 2019, 7:06 AM · Restricted Project

Aug 26 2019

joerg added a comment to D66685: Handle UNW_X86_64_RIP in Registers_x86_64.

It would be interesting to get an actual backtrace. It should not be a DWARF register number, but it might be from a direct caller of the unw interface.

Aug 26 2019, 12:55 PM
joerg added a comment to D66618: [WIP] Expose functions to determine pointer properties (Align & Deref).

At least for freestanding environments, it would be useful to separate nonnull completely from deferencable. GCC has a separate flag for it, which might also be a reasonable idea.

Aug 26 2019, 10:20 AM · Restricted Project
joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Hook up a second instance of the pass after the Float To Int pass for optimized builds. This is after the initial loop transforms, so it can profit from some unrolling, but it is before vectorization. The late run of the pass should is kept for now and ensures any potentially added variants are still dropped before SDAG.

Aug 26 2019, 8:23 AM · Restricted Project

Aug 24 2019

joerg added a comment to D66664: [FIX] Nonnull is not always implied by dereferenceable.

It would be nice to also default to this for -ffreestanding.

Aug 24 2019, 11:33 AM · Restricted Project

Aug 23 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Simplify the pass logic. First round will update the predecessor links and note if any block is orphaned, a second round will remove unreachable blocks if necessary.
The pass can be further refined to use and update DominatorTree and AssumptionCache incrementally, but this should be functionally complete now. It will not handle more complex cases like orphaned loops, but I don't think those are commonly used with is.constant or objectsize conditions either.
The pass will now scan every BB once, but fall back to the start of a BB of recursive removal invalidates the iterator. This seems to be the strictest form I can manage.

Aug 23 2019, 6:29 AM · Restricted Project

Aug 21 2019

joerg added a comment to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.

Please read the discussion. The general consensus was and likely is that this is at least somewhat bogus in the standard at best and the cost of not artificially breaking code is much higher than the benefit. Yes, GCC made different choices, but that's no excuse.

Aug 21 2019, 6:04 AM · Restricted Project
joerg added a comment to D53342: [SimplifyLibCalls] Mark known arguments with nonnull.

Take a look at the list archives for the discussion about attribute nonnull and nullable a while ago. The short version is that the library interface specification might have a wildcard clause that NULL pointers are invalid unless explicitly allowed, but it works perfectly fine on any sensible implementation except the ds9k. When the combination of glibc annotations and aggressive gcc optimizations started, it pointlessly broke a lot of code for no good reason.

Aug 21 2019, 4:31 AM · Restricted Project

Aug 7 2019

joerg accepted D65762: lit: Use a License classifier that pypi will accept.

Thanks, this looks good enough within the limitations of the framework.

Aug 7 2019, 1:20 PM · Restricted Project

Aug 5 2019

joerg added a comment to D65280: Add a pass to lower is.constant and objectsize intrinsics.

Looking a bit more into the details. Chandler, you've originally suggested going with the LowerAtomic route and that actually does create code that fails the SDAG lowering if the pass is skipped, e.g. on ARM.
The second part is currently overlapping with the CodeGenPrepare pass. I can cleanup the implementation somewhat by reusing the same functionality as that pass is using OR I could factor out a minimal branch for doing the constant folding optimization from CodeGenPrepare as a general branch that is included in the pass chain for -O0, e.g. instead of the more general CodeGenPrepare pass. The main difference is that the non-optimized build would not get any recursive folding from PHI-simplification, but I think that's fine for the original use case. It would also not get the block merging, but again, that seems to be fine for the constraints.

Aug 5 2019, 6:55 AM · Restricted Project

Aug 4 2019

joerg added a comment to D65280: Add a pass to lower is.constant and objectsize intrinsics.

For the first part, I was actually asked to do that. I don't mind either way.

Aug 4 2019, 7:31 AM · Restricted Project

Aug 3 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Generalize slightly to also cover llvm.objectsize which has very similar constraints.

Aug 3 2019, 1:06 PM · Restricted Project

Aug 2 2019

joerg added a comment to D60943: Delay diagnosing asm constraints that require immediates until after inlining.

The combination of D60942, D06943 and D65280 solves the problems for me on all targets I have.

Aug 2 2019, 5:31 AM · Restricted Project, Restricted Project

Aug 1 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Update PHI nodes in disconnected block.

Aug 1 2019, 11:34 AM · Restricted Project

Jul 30 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Replace boolean argument to replaceAndRecursivelySimplify with optional vector of un-modified instructions. This simplifies the API change significantly and allows other potential use cases. Redo the restart handling. After a successful simplification step, restart the current BB only, but always do another full pass of the function.

Jul 30 2019, 7:46 AM · Restricted Project

Jul 29 2019

joerg added inline comments to D64963: Add a pass to lower is.constant intrinsics.
Jul 29 2019, 3:08 PM · Restricted Project
joerg added inline comments to D65280: Add a pass to lower is.constant and objectsize intrinsics.
Jul 29 2019, 3:01 PM · Restricted Project
joerg added inline comments to D64963: Add a pass to lower is.constant intrinsics.
Jul 29 2019, 2:45 PM · Restricted Project

Jul 27 2019

joerg updated the diff for D65280: Add a pass to lower is.constant and objectsize intrinsics.

Avoid goto. Create new BranchInst instead of modifying in-place. Update tests to reflect changes. Move most of the x86 is-constant test to generic.

Jul 27 2019, 1:22 PM · Restricted Project
joerg accepted D60942: Emit diagnostic if an inline asm constraint requires an immediate.

LGTM otherwise.

Jul 27 2019, 1:13 PM · Restricted Project